38
Arquitectura de Computadores IIC 2342 Semestre 2008-2 Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación Clase 5 Arquitecturas y Partes de la CPU

Arquitectura de Computadores Clase5

Embed Size (px)

Citation preview

  • Arquitectura de ComputadoresIIC 2342Semestre 2008-2

    Rubn MitnikPontificia Universidad Catlica de ChileEscuela de IngenieraDepartamento de Ciencia de la ComputacinClase 5Arquitecturas y Partes de la CPU

    Arquitectura de Computadores

  • Objetivos

    Arquitecturasvon Neumann OtrasUnidad Central de Procesamiento (CPU)ResponsabilidadesRequisitosPartes de una CPUALUControl & DecodeRegistrosElectrnica y busesObjetivosR.Mitnik *Arquitectura de Computadores

    Arquitectura de Computadores

  • R.Mitnik *ndiceCaptulo 3 : Arquitecturas 3. Arquitecturas3.1 von Neumann3.2 Harvard3.3 Otras (Multiprocesador, Sistemas distribuidos)

    Arquitectura de Computadores

    Arquitectura de Computadores

  • R.Mitnik *IntroduccinCaptulo 3 : ArquitecturasArquitectura de ComputadoresCorresponde a la estructura, organizacin, e interconexin de las diversas partes de un computadorArquitectura de ComputadoresArquitectura del set de instruccionesCantidad de instruccionesTamao de las instruccionesManeras de acceder a memoria

    Organizacin funcionalRegistrosInterconexin entre los componentesMecansmos de Entrada/Salida (I/O)Jerarquas de memoria

  • R.Mitnik *IntroduccinCaptulo 3 : ArquitecturasQue hace un computador.Almacenar Datos (leer - escribir).Almacenar Programas.Ejecutar operaciones sobre datos.Ejecutar algoritmos.Recibir nuevos datos.Entregar resultados.Arquitectura de Computadores

    Arquitectura de Computadores

  • R.Mitnik *ndice3.1 von Neumann3.2 Harvard3.3 Otras (Multiprocesador, Sistemas distribuidos)

    Arquitectura de ComputadoresCaptulo 3 : Arquitecturas

    Arquitectura de Computadores

  • R.Mitnik *IntroduccinCaptulo 3 : Arquitecturas von NeumannJohn von Neumann (se pronuncia fon noiman)(28 de diciembre de 1903 - 8 de febrero de 1957)

    Fue un matemtico hngaro-estadounidense, de ascendencia juda.

    Fue pionero de la computadora digital moderna y de la aplicacin de la teora operadora a la mecnica cuntica.

    Particip del Proyecto Manhattan

    Arquitectura de Computadores

    Arquitectura de Computadores

  • R.Mitnik *IntroduccinTrabaj con Eckert y Mauchly en la Universidad de Pennsylvania, donde public un artculo acerca del almacenamiento de programas.

    El concepto de programa almacenado permiti la lectura de un programa directamente desde la memoria del computador, as como la ejecucin de las instrucciones del mismo sin necesidad de un medio externo (cinta).

    (Tomado de Wikipedia: John von Neumann)Arquitectura de ComputadoresCaptulo 3 : Arquitecturas von Neumann

    Arquitectura de Computadores

  • R.Mitnik *Arquitectura de von NeumannJohn von Neumann propuso una manera de estructurar un computador.

    Almacenar Datos (leer - escribir).Almacenar Programas.Ejecutar operaciones sobre datos.Ejecutar algoritmos.Recibir nuevos datos.Entregar resultados.

    Arquitectura de ComputadoresCaptulo 3 : Arquitecturas von Neumann

    Arquitectura de Computadores

  • R.Mitnik *Arquitectura de von NeumannCPU, Memoria e I/O se comunican a travs de Buses.

    I/OMemoriaAddress BusControlCPUControlData BusArquitectura de ComputadoresCaptulo 3 : Arquitecturas von Neumann

    Arquitectura de Computadores

  • R.Mitnik *ndice3.1 von Neumann3.2 Harvard3.3 Otras (Multiprocesador, Sistemas distribuidos)

    Arquitectura de ComputadoresCaptulo 3 : Arquitecturas

    Arquitectura de Computadores

  • R.Mitnik *Arquitectura HarvardCaptulo 3 : Arquitecturas - HarvardUtiliza 2 memorias independientesDatosInstrucciones

    El trmino proviene de la computadora Harvard Mark I, que almacenaba las instrucciones en cintas perforadas y los datos en interruptores. Arquitectura de Computadores

    Arquitectura de Computadores

  • R.Mitnik *Arquitectura HarvardVentajas de la arquitectura Harvard

    Instrucciones y datos de distinto largo

    Memorias de distinto tamaobits de direccionamiento distintos

    Memorias con distinta tecnologa

    Disminuyo el cuello de botella en el acceso a memoria

    En controladores embebidos:RAM para los datosROM para las instrucciones Arquitectura de ComputadoresCaptulo 3 : Arquitecturas - Comparacin

    Arquitectura de Computadores

  • R.Mitnik *Arquitectura de von NeumannCaptulo 3 : Arquitecturas - ComparacinVentajas de la arquitectura de von Neumann

    Uso mas eficiente de la memoriaJerarqua de memoria no requiere estar dividida en 2

    Ms simple arquitectnicamenteUn solo tipo de instrucciones para acceder a memoriaUn solo bus de datos y de direcciones Una misma forma de acceso a datos e instrucciones

    Mayor flexibilidadtil para el sistema operativoPaginacin a discoCdigo automodificante

    CPU con menos operaciones y mas flexibleArquitectura de Computadores

  • R.Mitnik *ndice3.1 von Neumann3.2 Harvard3.3 Otras (Multiprocesador, Sistemas distribuidos)

    Arquitectura de ComputadoresCaptulo 3 : Arquitecturas

    Arquitectura de Computadores

  • R.Mitnik *MultiprocesadorCaptulo 3 : ArquitecturasArquitectura de ComputadoresMemoria PrincipalI/O* Memoria Local: mantiene una copia local de una porcin de la memoria principal

    Arquitectura de Computadores

  • R.Mitnik *MultiprocesadorCaptulo 3 : ArquitecturasVentajasProcesamiento paraleloCercana entre CPUs permite altas tasas de transferencia de datos

    DesventajasNo todo es paralelizableArquitectura de ComputadoresProblemas de coherencia de memoria local con memoria principal

    Arquitectura de Computadores

  • R.Mitnik *Sistemas distribuidosArquitectura de ComputadoresRed de interconexinCaptulo 3 : Arquitecturas

    Arquitectura de Computadores

  • R.Mitnik *Sistemas distribuidosArquitectura de ComputadoresRed de interconexinCada nodo funciona como un computador independienteSe comunican por redDistintas topologas: estrella, anillo, etc.Captulo 3 : Arquitecturas

    Arquitectura de Computadores

  • R.Mitnik *Sistemas distribuidosArquitectura de ComputadoresVentajasProcesamiento paraleloFacilidad de incorporar y quitar nodos del sistemaDesventajasNo todo es paralelizableOverhead en la transferencia de datos es considerablemente mayorProblemas de coherencia de memoriasCaptulo 3 : Arquitecturas

    Arquitectura de Computadores

  • R.Mitnik *ndiceCaptulo 4 : Unidad de Procesamiento Central (CPU)4.Unidad de Central de Procesamiento (CPU)4.1 Partes de la CPU.4.2 Ciclo de la Instruccin.4.3 Conjunto de Instrucciones y tipos de funcionalidad.4.4 Diseo de una CPU bsica.4.5 CISC/RISC.4.6 Modos de direccionamiento.4.7 Instrucciones en lenguaje de mquina.4.8 Subrutinas y Manejo de Stack.4.9 Interrupciones de software y hadware.Arquitectura de Computadores

    Arquitectura de Computadores

  • R.Mitnik *IntroduccinCaptulo 4 : Unidad de Procesamiento Central (CPU)Arquitectura de ComputadoresComponente principal de un computador, encargado del control de flujo, decodificacin y ejecucin de instrucciones, y procesamiento y transferencia de datos.

    Cerebro del computadorUnidad Central de Procesamiento(CPU o procesador)

  • R.Mitnik *ndiceCaptulo 4 : Unidad de Procesamiento Central (CPU)4.1 Partes de la CPU.4.2 Ciclo de la Instruccin.4.3 Conjunto de Instrucciones y tipos de funcionalidad.4.4 Diseo de una CPU bsica.4.5 CISC/RISC.4.6 Modos de direccionamiento.4.7 Instrucciones en lenguaje de mquina.4.8 Subrutinas y Manejo de Stack.4.9 Interrupciones de software y hadware.Arquitectura de Computadores

    Arquitectura de Computadores

  • R.Mitnik *Partes de la CPUCaptulo 4 : Unidad de Procesamiento Central (CPU)ResponsabilidadesEjecutar Operaciones y AlgoritmosControlar Flujo del ProgramaControlar Circuitos InternosArquitectura de Computadores

    Arquitectura de Computadores

  • R.Mitnik *9Partes de la CPURequisitos:Procesar instruccinLeer datosAlmacenar Temporalmente los datosALU FPUAlmacenar ResultadosCaptulo 4 : Unidad de Procesamiento Central (CPU)1101110111Load (7h)45Arquitectura de Computadores00000010019ALUMemoriaEjecutar Operaciones y Algoritmos

    000111000110010211100010100311100000000401100110000500000110000600011110000700000001000811110000000900000001010A0000000000

    Arquitectura de Computadores

  • 1110000000MOVE(0Ah)R.Mitnik *11100010101100011001ADD(09h)Partes de la CPUEj. programa anterior.LOAD (07h)ADD (09h)MOVE(0Ah)GOTO(08h)Captulo 4 : Unidad de Procesamiento Central (CPU)1101110111LOAD (07h)45ALU9Requisitos Instruction PointerMecanismos de Salto

    Arquitectura de Computadores9GOTO(08h)0000001001Control de FlujoMemoria

    000102030401100110000500000110000600011110000700000001000811110000000900000001010A0000000000

    Arquitectura de Computadores

  • R.Mitnik *Partes de la CPUEj. implementacinCaptulo 4 : Unidad de Procesamiento Central (CPU)memoriamuxALU0001111000registroCircuitos internos

    RequisitosBuses internos.Seales de control.ALU (funcin)MuxRegistros (Load,etc)Contador (Inc, Load,etc)

    00000000contadorArquitectura de Computadores

    00LOAD (07h)01ADD(09h)02MOVE(0Ah)03GOTO(08h)0401100110000500000110000600011110000700000001000811110000000900000001010A0000000000

    Arquitectura de Computadores

  • R.Mitnik *Partes de la CPUControl & Decode procesa las instrucciones.ROMEspacio de Direccionamiento determina cantidad de instruccionesLas salidas son seales de control para ejecutar una instruccin.Captulo 4 : Unidad de Procesamiento Central (CPU)Control & DecodeInstruccin de k bits n seales de control para la instruccin2k palabrasn bits por palabraArquitectura de Computadores

    Arquitectura de Computadores

  • R.Mitnik *Partes de la CPURegistros de la CPUCaptulo 4 : Unidad de Procesamiento Central (CPU)Arquitectura de Computadores

    Arquitectura de Computadores

  • R.Mitnik *Registros de la CPUUn procesador incluye:registros visibles para el usuario registros de control/estado.Captulo 4 : Unidad de Procesamiento Central (CPU) Partes de la CPURegistros Visibles.Pueden referenciarse en las instrucciones.Se clasifican en:Uso general.Datos.Direcciones.Cdigos de Condicin

    Arquitectura de Computadores

    Arquitectura de Computadores

  • R.Mitnik *Registros de la CPUCaptulo 4 : Unidad de Procesamiento Central (CPU) Partes de la CPUCuntos registros de propsito general?

    ptimo entre 8 y 32Pocos registros demasiados accesos a memoria.Muchos registros no reducen considerablemente las referencias a memoria Muchos registros CPU ms compleja.

    Arquitectura de Computadores

    Arquitectura de Computadores

  • R.Mitnik *Registros de la CPUCaptulo 4 : Unidad de Procesamiento Central (CPU) Partes de la CPUDe cuntos bits deben ser los registros?

    Deben ser de un nmero suficiente tal que se puedan manejar las direcciones a memoria.

    Adems deben ser capaces de manejar una palabra completa.

    A veces se combinan dos registros para conformar uno solo.

    Arquitectura de Computadores

    Arquitectura de Computadores

  • R.Mitnik *Registros de la CPUCaptulo 4 : Unidad de Procesamiento Central (CPU) Partes de la CPURegistros Control/Estado.controlar el funcionamiento de la CPUPC = program counter: contiene la direccin de la instruccin a captar IR = instruction register: contiene la ltima instruccin captadaMAR = memory address register: contiene la direccin de una posicin de memoria. MBR = memory buffer register: contiene la palabra de datos a escribir en memoria, o la palabra leda ms recientemente

    Arquitectura de Computadores

    Arquitectura de Computadores

  • R.Mitnik *Registros de la CPUCaptulo 4 : Unidad de Procesamiento Central (CPU) Partes de la CPURegistros Control/Estado.Adicionalmente se cuenta con PSW = program status word:Signo: contiene elbit de signo del resultado de ltima operacin Cero: puesto a uno cuando el resultado es 0 Acarreo: puesto a uno si en la suma hay acarreo o en la resta hay un adeudo del bit ms significativo Igual: puesto a uno si el el resultado de una comparacin lgica es la igualdad Desbordamiento: Usado para indicar desbordamiento aritmtico

    Arquitectura de Computadores

    Arquitectura de Computadores

  • R.Mitnik *Registros de la CPUCaptulo 4 : Unidad de Procesamiento Central (CPU) Partes de la CPURegistros Control/Estado.Adicionalmente se cuenta con PSW = program status word:(continuacin)Interrupciones: usado para permitir o inhabilitar interrupcionesSupervisor: indica si la CPU funciona en modo supervisor o usuario. nicamente en modo supervisor se pueden ejecutar ciertas instrucciones privilegiadas y se puede acceder a ciertas reas de memoriaArquitectura de Computadores

    Arquitectura de Computadores

  • R.Mitnik *Partes de la CPUEj. Implementacin modificadoCaptulo 4 : Unidad de Procesamiento Central (CPU) memoriamuxALU0001111000registro00000000contadorIRControl & DecodeSeales de ControlArquitectura de Computadores

    00LOAD (07)01ADD(09)02GOTO(0A)0311100000000401100110000500000110000600011110000700000001000811110000000900000001010A0000000000

    Arquitectura de Computadores

  • R.Mitnik *Partes de la CPUCaptulo 4 : Unidad de Procesamiento Central (CPU) Partes de la CPU.RegistrosProgram CounterInstruction RegisterUso generalALUFPUControl & DecodeBusesCircuiteraArquitectura de Computadores

    Arquitectura de Computadores

  • R.Mitnik *Resumen

    Distintas arquitecturas

    Partes de la CPU y sus funcionesRegistrosVisiblesControl/EstadoALU, FPUControl & DecodeDecodificacin de instruccionesSeales de controlBuses InternosCircuiteraArquitectura de ComputadoresResumen

    Arquitectura de Computadores

    **Estructura:EstructuranControlanFuncionan

    Organizacin:AgrupanSincronizan (sncronos o asncronos)

    Interconexin:ComunicanConectan (buses o lneas dedicadas)

    Todo esto enfocado en que el computador haga lo que tiene que hacer (siguiente slide)***Teora de conjuntosTeora ergdigaTeora de juegosEconomaEstadsticaGeometraAnlisis numricoMecnica cunticaCiencia de la ComputacinContribuy en el desarrollo de los mtodos de MonteCarlo*ENVIAC y despus ENIACInstrucciones y datos en el mismo espacio de direccionamientoAntes del programa almacenado las instrucciones estaban en cintas**Explicitar que datos e instrucciones estn almacenados en la misma memoriaExplicar:Qu es una CPUel cerebro del computadorquien procesa las instruccionesquien se encarga de orquestar, dirigir y controlar todo lo que pasa en un computadorQu es IOla forma como el computador interacta con el exteriorsimil a nuestro sistema sensorial y motrizQu son los busesel medio a travs del cual viaja la informacin entre componentes dentro de un computadorsistema nervioso***Explicar:Un programa tiene dos tipos de informacin: instrucciones y datos.Ejemplo en alto nivel:Datos variables de un programaInstrucciones operaciones y flujoAmbas deben se almacenadasCada uno de estos es almacenado en una memoria independienteEj. DSPs, PICs

    *Explicar:Los datos e instrucciones son manejados en base a palabras de un tamao dado (dibujar en pizarrn dos ejemplos)Qu es el cuello de botella y por qu ocurre en von Neumann*Explicar:No requiero duplicar instrucciones (implementacin y codificacin)SO puede marcar pginas como de datos o instruccionesPuede mover los programas, tanto sus instrucciones como datos como bien le parezca por toda la memoria

    **Ej. de uso de procesamiento paralelo:multiplicacin de matrices, clculo de FFT, etc.*Ej. de clculos no paralelisables:Fibonacci, factorialExplicar concepto de coherencia en la memoria:Qu pasa si un procesador modifica la memoriacmo sabe otro procesador que su memoria local est obsoleta?Cmo sabe a qu memoria ir a buscar los datos, su copia local o la principal?*******Explicitar que la ALU y la memoria son elementos fundamentales para estos requisitos**Ya vimos los requisitos para ejecutar cada instruccin o necesidad.Ahora bien, que requerimos para ejecutar este conjunto de instrucciones coherentemente y en orden?

    Que circuito digital podemos usar para implementar el instruction pointer:ContadorQue necesita ademas de contar?Load (para los saltos)*HASTA AQU LLEGUE EN LA CLASE. TODO EL RESTO DE LA PPT LO VI EN OTRA CLASE COMPLETA ME TOM DOS CLASES COMPLETAS PASAR ESTA PPT (en la segunda clase repas las dos slides anteriores tambin a manera de contexto)

    Finalmente, cmo orquestamos todo esto de manera sincronizada?

    Introducir la pregunta Quin genera las seales de control?, siguiente diapositiva es de control & decode*Explicar en detalle:Cmo el C&D toma una instruccin y genera las seales de control.Dibujar una ROM en el pizarrnExplicar que cada direccin corresponde a una instruccin, siendo la direccin la codificacin (opcode) de la instruccin.La palabra almacenada en esa direccin corresponde a las seales de controlLa salida est cableado al resto de la CPU.

    Dibuj en el pizarrn una ROM.Expliqu en el pizarrn basndome en el siguiente ejemplo (que adems ayuda a que empiecen a entender qu es una instruccin y cmo funcionan):Asumamos que la palabra 11011xxxxxxxxx corresponde a la instruccin LOAD. Los primeros 5 bits, en este caso, corresponden al codigo de la instruccin (opcode). Son esos 5 bits los que determinan qu instruccin se va a ejecutar, y los siguientes bits corresponden a los parmetros de la instruccin (por ejemplo, en LOAD(07h) el 07h tendra que ir como parmetro).As, cada instruccin distinta tiene un opcode distinto, y la siempre que el opcode sea 11011 la CPU va a ejecutar la instruccin LOAD.Ahora bien, estos bits del opcode entran como direccin al Control & Decode, de manera que cada opcode (instruccin) va a estar asociada a una palabra (fila) especfica del C&D. Cada bit de salida de la ROM est conectado a las seales de control de los distintos componentes del computador. Es as como la palabra asociada a cada instruccin no es ms que el conjunto de seales de control necesarioas para que la CPU ejecute lo que se le est pidiendo.De esta forma, se podra entender como que es el C&D el que sabe leer las instrucciones y ejecutarlas. Sin embargo, realmente no tiene idea de lo que est pasando ni de lo que est haciendo. Slo genera una salida preprogramada para cada entrada, y resulta que con esas salidas todo funciona de manera que, al final, se ejecuta la instruccin requerida.

    *Es donde se almacenan temporalmente los datos requeridos por la CPU, tanto para su control como para ejecutar cada instruccin**Nmero mgico, sacado de pruebas experimentales. Pruebas no se hacen simplemente sumando o multiplicando matrices, sino que usando distintas cargas reales, como cargas intensivas en clculo numrico (Matlab), alto uso de I/O y red (servidores), uso de grandes cantidades de datos, juegos, etc.Ejemplo con un registro muestra que el uso de un solo registro hace muy verboso el cdigo y muy trabado de programar.Al usar muuuuchos registros resulta que voy a tener registros que nunca voy a utilizar dado que no tengo tantas variables. Sin embargo, ms registros implican ms seales de control, un C&D ms ancho, ms circuitera, ms complejidad para indicar el registro que quiero accesar, y finalmente lo que pierdo y complejizo es ms que lo que gano con registros que, a la postre, nunca voy a usar.

    Ejemplo: Ejecutar con un solo registro (A+B)/(B+AC)LOAD ALOAD B no me sirve, se me perdi AADD BSTORE D guarda el resultado en la direccin DLOAD AMULT CADD BSTORE ELOAD DDIV E y recin aqu tengo el resultado

    **Por qu necesito un IR??? Como puedo neceistar accesar a memoria para buscar operandos de la instruccin, necesito guardar la instruccin en un registro independiente, de manera de permitir otros accesos a memoria. Si leyera la instruccin desde memoria, al ir a buscar un operando perdera la instruccin, por lo que debo guardarla en algn lugar mientras ejecuto toda la instruccin.*****