1 / 69

Capítulo 3

Capítulo 3. El procesador: la ruta de datos y el control (II Parte). Mejoramiento del rendimiento. Tiempo de ciclo arreglado Obviamente ineficiente Tiempo de ciclo variable Más rápido Temporización compleja Múltiples ciclos de reloj Quiebre de instrucciones en pasos de un ciclo

yamal
Télécharger la présentation

Capítulo 3

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Capítulo 3 El procesador: la ruta de datos y el control (II Parte)

  2. Mejoramiento del rendimiento • Tiempo de ciclo arreglado • Obviamente ineficiente • Tiempo de ciclo variable • Más rápido • Temporización compleja • Múltiples ciclos de reloj • Quiebre de instrucciones en pasos de un ciclo • Balance de la cantidad de trabajo por realizar • Restricciones en cada ciclo por usar una unidad funcional • Almacena valores al final de cada ciclo para ser utilizado en otros ciclos.

  3. Implementación de múltiples ciclos de reloj • Registros se actualizan en cada ciclo • Datos • Salidas del archivo de registros • Salidas de la ALU • Instrucción se actualiza al final de la instrucción.

  4. Ruta de datos • Utilice la ALU para • Incrementar el PC • Saltos • Direcciones de memoria • Operaciones aritméticas • Rutas de datos adicionales • Interpretación de IR depende del formato de las instrucciones

  5. Ruta de datos con señales de control • Direcciones de memoria • R/W • Escritura en IR • Escritura en registro • Escritura en el registro destino • Escritura en el registro fuente de datos • Multiplexor de fuente de ALU • Control de ALU

  6. Manejo del PC • La fuente del PC se selecciona por medio de un multiplexor • Salida de la ALU después de PC + 4 (instrucción normal) • Salida de la ALU después de calcular una dirección de salto condicional • Nueva dirección de una instrucción de salto • Escritura del PC • Incondicional después de una instrucción normal y salto. • Sobre escritura condicional si se realiza un salto • PCWriteCond permite cargas condicionales • El bit de Zero de ALU decide si el PC se cargará con la nueva dirección de salto.

  7. Diseño de la multiciclo • Se pueden reutilizar las unidades funcionales • La ALU se puede reutilizar para el cálculo de direcciones y para incrementar el PC • La memoria se puede utilizar para almacenar instrucciones y datos • Las señales de control no son determinadas únicamente por la instrucción. • Se utiliza una máquina de estados finita (FSM) para implementar el control. • No solamente el uso de lógica combinacional en el diseño del sistema. • Ahora la unidad de control es secuencial por lo que se requiere de una FSM

  8. MUX 0 1 2 3 R1id Registros R2id Memoria ALU IR M A R M D R O U t B A P C M U X M U X M U X M U X M U X 0 0 0 0 0 WRid M U X D 0 1 2 3 1 1 1 1 1 4 Shift Componentes básicos Multiplexores para enrutar Registros Extra Conductores Salida de registros Dirección de memoria Salida de memoria Palabra de instrucción Actualizar el PC Salida de ALU

  9. MUX 1 0 1 2 3 cargue 0 0 M U X R1id Registros M U X 0 0 Memoria R2id A 1 1 O U t ALU M U X IR M A R M D R P C 0 WRid M U X 0 1 D M U X B 0 1 2 3 1 4 sume cargue Shift M U X 0 1 1 Operación de búsqueda Ruta del PC a Memoria & ALU Add 4 Load PC Load IR

  10. Ruta de datos completa y su control

  11. Quiebra de instrucciones • Moverse de un ciclo a multiciclo • Identificar los pasos que tardan un ciclo • Misma distribución en el tiempo de ejecución • Por lo menos una operación para cada uno de los módulos • ALU • Archivo de Registros • Memoria • Nuevos registros si • La señal se genera en un ciclo y se utiliza en otro. • Las entradas del bloque que genera la señal puede cambiar en el segundo ciclo.

  12. Los 5 pasos en la ejecución • Búsqueda de instrucción • Mover la instrucción de la memoria de instrucción al registro de instrucción IR • Decodificación de la instrucción y búsqueda de registro • Provee el contenido del registro a la ALU • Ejecución, cálculo de la dirección de memoria o salto • Acceso a memoria o finalización de instrucciones tipo R • Proceso de escritura.

  13. Paso 1: Búsqueda de una instrucción • Utilice el PC para obtener la instrucción y colocarla en el registro de instrucción. • IR <=MEMORIA(PC) • SET Read Address Mux (IorD) • = 0 selecciona la instrucción • SET MemRead = 1 • Incremente el PC en cuatro 4 y coloque el resultado en el PC nuevamente. • PC <= PC+4 • ALUSrcA = 0 obtenga el operando de IR • ALUSrcB = 01 obtenga el operando 4 • ALUOp = 00 add • Almacene el nuevo valor del PC en PC • Incrementar el PC y el acceso a la memoria de instrucción pueden realizarse en paralelo.

  14. Ruta de datos: IR = Memory[PC], PC = PC + 4 Control: IorD=0, MemRead=1, MemWr=0, IRwrite=1, ALUsrcA=0, etc

  15. Paso 2: Decodificación de instrucción y búsqueda de registro • Lee los registros rs y rt en caso de que se necesiten A <= Reg[IR[25-21]] rs B <= Reg[IR[20-16]] rt • Se calculan las direcciones de salto en caso de que se ejecute el salto. ALUOut <= PC + (sign-extend(IR[15-0]) << 2); Almacénelo en el registro ALUOut ALUSrcb = 11 ALUOp = 00 add

  16. A = Register[IR[25-21]] B = Register[IR[20-16]] ALUout = PC + (sign-extend (IR[15-0]) << 2)

  17. Paso 3: Ejecución, cálculo de dirección de memoria o de salto • La cantidad de pasos dependen de la instrucción • Selección realizada por interpretación de op + campo de la función en la instrucción • La ALU realiza una de las tres funciones, basándose en el tipo de instrucciones. • Calcula la dirección de memoria ALUOut <= A + sign-extend(IR[15-0]) ALUSrcA = 1 obtiene el operando de A ALUSrcB = 10 obtiene el operando de la unidad de signo externo ALUOp = 00 add

  18. Paso 3: Ejecución, cálculo de dirección de memoria o de salto (continuación) • Instrucciones tipo R: ALUOut <= A op B • ALUSrcA = 1 obtiene operando de A • ALUSrcb = 00 obtiene operando de B • ALUOp = 10 código de IR • Instrucciones con salto: if (A==B) PC <= ALUOut; • ALUSrcA = 1 obtiene operando de A • ALUSrcB = 00 obtiene operando de B • ALUOp = 01 sustracción • Escriba ALUOut en el registro PC • Salto JUMP • PC<= {PC[31-28], (IR[25-0],2’b00)}

  19. A ALU out B • En el ciclo 1, PC se incrementa en 4 • En el ciclo 2, ALUout se pone para el salto condicional • En este ciclo, condicionalmente se pone el PC: if (A==B) PC=ALUout

  20. Paso 4: Acceso a memoria o ejecución de instrucción tipo R • Acceso a memoria • El control de la ALU debe mantenerse estable • Ponga I o D = 1 direcciones de la ALU • MDR <= Memoria [ALUOut] • Carga con memoria • Ponga MemRead = 1 • B => Memoria [ALUOut] • Almacena en memoria • Ponga MemWrite = 1

  21. Paso 4: Acceso a memoria o ejecución de instrucción tipo R • Finalización de instrucciones aritméticas o lógicas • Registro [IR[15-11]]<=ALUOut • Pone RegDst = 1 seleccionar el registro de escritura • Pone RegWrite = 1 permite operaciones de escritura • Pone MemToReg = 0 selecciona datos en ALU • ALUOp, ALUSrcA, ALUSrcB = CONTANTE

  22. A B Ciclo 3: ALUout = A op B Ciclo 4:Reg[IR[15-11]] = ALUout

  23. A ALU out B Ciclo 3: ALUout = A op B Ciclo 4: Reg[IR[15-11]] = ALUout

  24. Paso 5: Proceso de escritura • Escribe datos de la memoria al registro • Reg[IR[20-16]]= MDR • Pone RegDst = 0 selecciona escritura en RT como registro de dirección • Pone RegWrite = 1 permite operaciones de escritura • Pone MenToReg = 1 selecciona la memoria de datos • ALUOp, ALUSrcA, ALUSrcB = CONTANTE

  25. RESUMEN

  26. SEÑALES DE CONTROL

  27. CONTROLANDO EL PROCESADOR • Secuencia de pasos es dependiente del tiempo (máquina de estados) • Descripción de los métodos • Diagrama de estados • Microprogramación • VHDL • Programa • ....... • En este ejemplo utilizaremos diagramas de estado y microprogramación

  28. Descomposición general • Parte común • Búsqueda de instrucciones • Decodificación de las instrucciones/búsqueda de registro • Parte específica de la instrucción

  29. Parte común • Búsqueda de instrucción • Descodificación de la instrucción/búsqueda de registro

  30. Acceso a Memoria • Cálculo de dirección • Secuencia de carga • Lectura de memoria • Almacenamiento en registro • Acceso a memoria • Escritura de secuencia de almacenamiento

  31. Instrucción tipo R • Ejecución de la instrucción • Escribir el resultado final en el registro

  32. Instrucción de salto • Un solo estado • El PC se debe cargar con la dirección de salto • Obtener la próxima instrucción

  33. Instrucción de salto (JUMP) • Carga el PC con el nuevo valor • Obtiene la próxima instrucción

  34. Maquina de estados completa • Parte común • Parte específica de la instrucción

  35. Resumen de las señales de control • Los datos en negro indican señales activas • Los datos en gris indican señales inactivas que deben establecerse • Líneas indican condiciones no importa

  36. Rendimiento • Mezcla de instrucciones y estados • CPI

  37. Posibilidades de implementación • Máquina de Moore: las salidas dependen de la entradas y del estado

  38. Para este ejemplo

  39. Opciones para implementación • ROM • Bits para direcciones: 10 • Registros de estado: 4 bits • Campo para código de operación: 6 bits • Bits de salida: 17 • PLA • Calculo de las funciones de salida • Optimización • Mapear a la arquitectura PLA • Menos área • Rápida construcción

  40. PLA

  41. ROM vs PLA • Rompe la tabla en dos partes • 4 bits de estado para generar 16 salidas, 24X16 bits de ROM • 10 bits para definir los próximos 4 estados, 210X4 bits de ROM • Total: 4.3K bits de ROM • PLA es más pequeño • Se pueden compartir términos • Solo se necesita de entradas que producen una salida • Se puede contar con condiciones no importa • El tamaño es • (#entradas´ #producto-términos) + (#salidas ´ #producto-términos) para este ejemplo = (10x17)+(20x17) = 460 PLA celdas • Las celdas del PLA generalmente tienen el tamaño de una celda de ROM

  42. MICROPROGRAMACION • Limitaciones en FSM basadas en los diagramas de estado y su complejidad • MIPS: más de 100 instrucciones • Largo de las instrucciones: 1 – 20 ciclos • Numero de estados: gigantesco y creciente • Otra alternativa: microprogramación • Implementación de instrucciones tipo MIPs se puede realizar como una secuencia de simples instrucciones • Diseñar un formato para las micro instrucciones • Escribir el programa

  43. Micro instrucciones • ¿Qué es lo que necesitamos? • Señales de control para la ALU • Señales de control para el contador de programa PC • Ruta de datos completa • ¿Qué vamos a hacer? • Analizar que sucede en cada estado • Escribirlo en una tabla • Traducirlo a binario • Almacenarlo en una forma apropiada

  44. Una simple implementación

  45. Elementos • Almacenamiento del micro código (ROM o PLA) • Salidas para el control de la ruta de datos • Secuencia para el control de salida • Decodificador de salida (opcional) • Contador de microprograma/mux • Reset • Incrementador • Nueva dirección • Control de secuencia • Mux de control • Calculo de la próxima dirección

  46. RUTA DE DATOS • Ruta de datos y control

  47. Formato de las micro instrucciones • Mezcle las señales de acuerdo a la función • Las señales que nunca se utilizarán se pueden compartir al mismo tiempo • Las señales deben ponerse

  48. Microprograma • Implementación física: ROM o PLA • Cada microinstrucción tiene una dirección • Secuencialmente ordenado • Cada paso de la secuencia es de un ciclo • Selección de la próxima instrucción • Se incrementa la dirección (campo de secuencia = seq) • Búsqueda: inicia la búsqueda de la próxima microinstrucción (campo de secuencia = fetch) • Dispatch: salta a la próxima microinstrucción el número i indica la dirección en la tabla de dispatch.

More Related