Download
cap tulo 3 n.
Skip this Video
Loading SlideShow in 5 Seconds..
Capítulo 3 PowerPoint Presentation
Download Presentation
Capítulo 3

Capítulo 3

143 Vues Download Presentation
Télécharger la présentation

Capítulo 3

- - - - - - - - - - - - - - - - - - - - - - - - - - - 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.