8 Diseo del Procesador Fundamentos de los Computadores











































- Slides: 43
8. Diseño del Procesador Fundamentos de los Computadores Grado en Ingeniería Informática (desde diseño multiciclo en adelante)
Estructura del tema q q Metodología de sincronización Diseño de un procesador MIPS R 3000 reducido § Rutas de datos individuales § Diseño monociclo ▫ ▫ Diseño de la ruta de datos Diseño de la unidad de control de la ALU Diseño de la unidad de control Ventajas y desventajas § Diseño multiciclo ▫ Diseño de la ruta de datos ▫ Diseño de la unidad de control ▪ Control cableado ▪ Control microprogramado § Excepciones e interrupciones q Resumen y bibliografía Diseño del procesador 2
Diseño multiciclo q División del ciclo de instrucción en varias etapas o pasos § Cada etapa se ejecuta en un ciclo de reloj § Las etapas presentan cargas de trabajo equilibradas § CPI (ciclos por instrucción) variables: instrucciones lentas y rápidas q Reutilización de las unidades funcionales § Una unidad puede utilizarse más de una vez por instrucción siempre que se haga en ciclos de reloj distintos. ▫ Memoria unificada, pero un único acceso por ciclo ▫ Una única ALU, pero una única operación ALU por ciclo Diseño del procesador 3
Estructura del tema q q Metodología de sincronización Diseño de un procesador MIPS R 3000 reducido § Rutas de datos individuales § Diseño monociclo ▫ ▫ Diseño de la ruta de datos Diseño de la unidad de control de la ALU Diseño de la unidad de control Ventajas y desventajas § Diseño multiciclo ▫ Diseño de la ruta de datos ▫ Diseño de la unidad de control ▪ Control cableado ▪ Control microprogramado § Excepciones e interrupciones q Resumen y bibliografía Diseño del procesador 4
Implementación multiciclo: componentes básicos Instruction register PC Address Memory Data q q q Data A Instruction or data Memory data register Register # Registers Register # ALUOut B Register # Una sola memoria para datos e instrucciones Una sola ALU en vez de 1 ALU y 2 sumadores Uso de registros temporales a la salida de las unidades funcionales principales. Dos tipos de registros: § Tipo A: Actualizan su contenido en cada instrucción (IR) § Tipo B: Actualizan su contenido en cada ciclo de reloj (MDR, A, B, ALUOut) Diseño del procesador 5
Ruta de datos multiciclo Ior. D PC 0 M u x 1 Mem. Read Mem. Write Reg. Dst Reg. Write Instruction [25– 21] Address Memory Mem. Data Write data IRWrite Instruction [20– 16] Instruction [15– 0] Instruction register Instruction [15– 0] Memory data register ALUSrc. A 0 M u x 1 Read register 1 Read data 1 register 2 Registers Write Read register data 2 0 M Instruction u x [15– 11] 1 0 M u x 1 A B 16 Sign extend 32 Shift left 2 ALUOut 0 4 Write data Zero ALU result 1 M u 2 x 3 ALU control Instruction [5– 0] Memto. Reg q q q ALUSrc. B ALUOp Compartición de unidades funcionales (reducción del hardware) uso de multiplexores Ejecución en múltiples ciclos cada ciclo requiere un conjunto determinado de señales de control Señales de control Diseño del procesador 6
Etapas de ejecución de las instrucciones q ¿Qué operaciones realizamos en cada ciclo de reloj? § Objetivo: equilibrar la carga computacional de cada etapa Minimización del tiempo de ciclo § En cada etapa se va a realizar alguna de las siguientes operaciones: ▫ Un acceso a registro ▪ Actualización en cada ciclo (Registros temporales: MDR, A, B, ALUOut) ▪ Actualización según una señal de escritura (PC, IR) ▫ Un acceso a memoria ▫ Una operación de ALU ▫ ¿Cómo se determina el tiempo de ciclo mínimo? § Todas las operaciones de un ciclo se ejecutan en paralelo § Etapas o pasos de la instrucción se ejecutan en serie Diseño del procesador 7
Camino de datos multiciclo con las señales de control PCWrite. Cond PCWrite Ior. D PCSource Outputs ALUSrc. B Mem. Read Mem. Write Control ALUSrc. A Reg. Write Memto. Reg IRWrite ALUOp Op [5– 0] Reg. Dst 0 26 Instruction [25– 0] PC 0 M u x 1 Shift left 2 Instruction [31 -26] Address Memory Mem. Data Write data Instruction [25– 21] Read register 1 Instruction [20– 16] Read register 2 data 1 Registers Write Read register data 2 Instruction [15– 0] Instruction register Instruction [15– 0] Memory data register 0 M Instruction u x [15– 11] 1 0 M u x 1 B 16 Sign extend 32 Shift left 2 x 2 Zero ALU result ALUOut 0 4 Write data M 1 u PC [31 -28] 0 M u x 1 A 28 Jump address [31 -0] 1 M u 2 x 3 ALU control Instruction [5– 0] Diseño del procesador 8
Etapas de ejecución de las instrucciones (I) q Etapa 1: Búsqueda del código de operación (fetch) IR = Memory[PC] PC = PC + 4 q Etapa 2: Decodificación y acceso a operandos A = Reg[rs] B = Reg[rt] ALUout = PC + extensión-signo(IR[15 -0]) << 2 q Etapa 3: Ejecución, cálculo de dirección o terminación del salto § Instrucción tipo R (and, or, add, sub, slt) ALUOut = A op B § Referencia a memoria (lw/sw) ALUOut = A + extensión-signo(IR[15 -0]) § Salto (beq) if (A == B) PC = ALUOut § Bifurcación (j) PC = PC[31 -28] || IR[25 -0] << 2 Diseño del procesador 9
Etapas de ejecución de las instrucciones (II) q Etapa 4: Acceso a memoria/fin de ejecución instrucción tipo R § Referencia a memoria (lw) MDR = Memory[ALUOut] § Referencia a memoria (sw) Memory[ALUOut] = B § Fin ejecución instrucción tipo R Reg[rd] = ALUOut q Etapa 5: Fin de lectura en memoria Reg[rt] = MDR Diseño del procesador 10
T 1 = (Op ') or 'LW Memory reference FSM (Figure 5. 38) 1 ALUSrc. A = 0 ALUSrc. B = 11 ALUOp = 00 = (Op ') 'SW R-type FSM (Figure 5. 39) ) ype R-t Branch FSM (Figure 5. 40) (Op = 'JMP') Start Mem. Read ALUSrc. A = 0 Ior. D = 0 IRWrite ALUSrc. B = 01 ALUOp = 00 PCWrite PCSource = 00 'BE Q' ) Instrucción de CARGA (LW): Etapa 1 Instruction decode/ Register fetch Instruction fetch (O p= 0 Jump FSM (Figure 5. 41) PCWrite. Cond PCSource PCWrite ALUOp Ior. D Outputs ALUSrc. B Mem. Read ALUSrc. A Mem. Write Control Reg. Write Memto. Reg IRWrite Op [5– 0] Reg. Dst 0 26 Instruction [25– 0] PC 0 M u x 1 Instruction [31 -26] Address Memory Mem. Data Write data Instruction [25– 21] Read register 1 Instruction [20– 16] Read register 2 data 1 Registers Write Read register data 2 Write data Instruction [15– 0] Instruction register Instruction [15– 0] Memory data register 0 M Instruction u x [15– 11] 1 0 M u x 1 16 Sign extend 32 B 4 M 1 u x 2 PC [31 -28] 0 M u x 1 A Shift left 2 28 Jump address [31 -0] Zero ALU result ALUOut 0 1 M u 2 x 3 ALU control Instruction [5– 0] Diseño del procesador 11
T 2 (Op p= or (O W') = 'L Memory reference FSM (Figure 5. 38) 1 ALUSrc. A = 0 ALUSrc. B = 11 ALUOp = 00 = (Op ') 'SW R-type FSM (Figure 5. 39) ) ype R-t Branch FSM (Figure 5. 40) (Op = 'JMP') Start Mem. Read ALUSrc. A = 0 Ior. D = 0 IRWrite ALUSrc. B = 01 ALUOp = 00 PCWrite PCSource = 00 'BE Q' ) Instrucción de CARGA (LW): Etapa 2 Instruction decode/ Register fetch Instruction fetch (O p= 0 Jump FSM (Figure 5. 41) PCWrite. Cond PCSource PCWrite ALUOp Ior. D Outputs ALUSrc. B Mem. Read ALUSrc. A Mem. Write Control Reg. Write Memto. Reg IRWrite Op [5– 0] Reg. Dst 0 26 Instruction [25– 0] PC 0 M u x 1 Instruction [31 -26] Address Memory Mem. Data Write data Instruction [25– 21] Read register 1 Instruction [20– 16] Read register 2 data 1 Registers Write Read register data 2 Write data Instruction [15– 0] Instruction register Instruction [15– 0] Memory data register 0 M Instruction u x [15– 11] 1 0 M u x 1 16 Sign extend 32 B 4 M 1 u x 2 PC [31 -28] 0 M u x 1 A Shift left 2 28 Jump address [31 -0] Zero ALU result ALUOut 0 1 M u 2 x 3 ALU control Instruction [5– 0] Diseño del procesador 12
Instrucción de CARGA (LW): Etapa 3 T 3 PCWrite. Cond PCSource PCWrite ALUOp Ior. D Outputs ALUSrc. B Mem. Read ALUSrc. A Mem. Write Control Reg. Write Memto. Reg Op [5– 0] Reg. Dst 0 26 Instruction [25– 0] PC 0 M u x 1 Instruction [31 -26] Address Memory Mem. Data Read register 1 Instruction [20– 16] Read register 2 data 1 Registers Write Read register data 2 Write data Instruction [15– 0] Instruction register Memory data register 0 M u x 1 B 4 From state 1 (Op = 'LW') or (Op = 'SW') Zero ALU result Memory address computation 2 ALUOut ALUSrc. A = 1 ALUSrc. B = 10 ALUOp = 00 0 1 M u 2 x 3 ') 'SW Instruction [15– 0] 0 M Instruction u x [15– 11] 1 x 2 PC [31 -28] 0 M u x 1 A M 1 u p= (O Write data Instruction [25– 21] Shift left 2 28 Jump address [31 -0] (Op = 'LW') IRWrite Memory access 3 16 Sign extend 32 Shift left 2 5 ALU control Mem. Read Ior. D = 1 Instruction [5– 0] 4 Mem. Write Ior. D = 1 Write-back step Reg. Write Memto. Reg = 1 Reg. Dst = 0 Diseño del procesador Memory access To state 0 (Figure 5. 37) 13
Instrucción de CARGA (LW): Etapa 4 T 4 PCWrite. Cond PCSource PCWrite ALUOp Ior. D Outputs ALUSrc. B Mem. Read ALUSrc. A Control Mem. Write Reg. Write Memto. Reg Op [5– 0] Reg. Dst 0 26 Instruction [25– 0] PC 0 M u x 1 Instruction [31 -26] Address Memory Mem. Data Read register 1 Instruction [20– 16] Read register 2 data 1 Registers Write Read register data 2 Write data Instruction [15– 0] Instruction register Memory data register 0 M u x 1 B 4 From state 1 (Op = 'LW') or (Op = 'SW') Memory address computation Zero ALU result 2 ALUOut ALUSrc. A = 1 ALUSrc. B = 10 ALUOp = 00 0 1 M u 2 x 3 ') 'SW Instruction [15– 0] 0 M Instruction u x [15– 11] 1 A x 2 PC [31 -28] 0 M u x 1 M 1 u Jump address [31 -0] p= (O Write data Instruction [25– 21] Shift left 2 28 (Op = 'LW') IRWrite Memory access 3 16 Sign extend 32 Instruction [5– 0] Shift left 2 5 Mem. Read Ior. D = 1 ALU control 4 Mem. Write Ior. D = 1 Write-back step Reg. Write Memto. Reg = 1 Reg. Dst = 0 Diseño del procesador Memory access To state 0 (Figure 5. 37) 14
Instrucción de CARGA (LW): Etapa 5 T 5 PCWrite. Cond PCSource PCWrite ALUOp Ior. D Outputs ALUSrc. B Mem. Read ALUSrc. A Control Mem. Write Reg. Write Memto. Reg Op Reg. Dst IRWrite [5– 0] 0 26 Instruction [25– 0] 0 M u x 1 Instruction [31 -26] Address Memory Mem. Data Write data Instruction [25– 21] Read register 1 Instruction [20– 16] Read register 2 data 1 Registers Write Read register data 2 Write data Instruction [15– 0] Instruction register 16 Sign extend 32 4 Shift left 2 Zero ALU result (Op = 'LW') or (Op = 'SW') ALUOut Memory address computation 2 0 1 M u 2 x 3 ALUSrc. A = 1 ALUSrc. B = 10 ALUOp = 00 ALU control ') 'SW Memory data register 0 M u x 1 B From state 1 p= (O Instruction [15– 0] 0 M Instruction u x [15– 11] 1 x 2 PC [31 -28] 0 M u x 1 A M 1 u Jump address [31 -0] (Op = 'LW') PC Shift left 2 28 Memory access 3 Memory access 5 Mem. Read Ior. D = 1 Mem. Write Ior. D = 1 Instruction [5– 0] 4 Write-back step Reg. Write Memto. Reg = 1 Reg. Dst = 0 Diseño del procesador To state 0 (Figure 5. 37) 15
Estructura del tema q q Metodología de sincronización Diseño de un procesador MIPS R 3000 reducido § Rutas de datos individuales § Diseño monociclo ▫ ▫ Diseño de la ruta de datos Diseño de la unidad de control de la ALU Diseño de la unidad de control Ventajas y desventajas § Diseño multiciclo ▫ Diseño de la ruta de datos ▫ Diseño de la unidad de control ▪ Control cableado ▪ Control microprogramado § Excepciones e interrupciones q Resumen y bibliografía Diseño del procesador 16
Diseño multiciclo - Diseño de la unidad control q Control cableado (Máquina de estados finitos - FSM) § Especificación del control mediante un diagrama de estados finitos (representación gráfica o tabular) § Máquina de estados finitos ▫ Conjunto de estados ▫ Función estado siguiente ▪ Si ×Ij Sk ▫ Función salida ▪ Máquinas de Moore: Si Ok ▪ Máquinas de Mealy: Si ×Ij Ok q Control microprogramado § Especificación del control mediante un programa § Necesaria para simplificar la especificación de una UC compleja Diseño del procesador 17
Ruta de datos multiciclo completo con las señales de control PCWrite. Cond PCWrite Ior. D PCSource Outputs ALUSrc. B Mem. Read Mem. Write Control ALUSrc. A Reg. Write Memto. Reg IRWrite ALUOp Op [5– 0] Reg. Dst 0 26 Instruction [25– 0] PC 0 M u x 1 Shift left 2 Instruction [31 -26] Address Memory Mem. Data Write data Instruction [25– 21] Read register 1 Instruction [20– 16] Read register 2 data 1 Registers Write Read register data 2 Instruction [15– 0] Instruction register Instruction [15– 0] Memory data register 0 M Instruction u x [15– 11] 1 0 M u x 1 B 16 Sign extend 32 Shift left 2 M 1 u x 2 Zero ALU result ALUOut 0 4 Write data Jump address [31 -0] PC [31 -28] 0 M u x 1 A 28 1 M u 2 x 3 ALU control Instruction [5– 0] Diseño del procesador 18
Estructura del tema q q Metodología de sincronización Diseño de un procesador MIPS R 3000 reducido § Rutas de datos individuales § Diseño monociclo ▫ ▫ Diseño de la ruta de datos Diseño de la unidad de control de la ALU Diseño de la unidad de control Ventajas y desventajas § Diseño multiciclo ▫ Diseño de la ruta de datos ▫ Diseño de la unidad de control ▪ Control cableado ▪ Control microprogramado § Excepciones e interrupciones q Resumen y bibliografía Diseño del procesador 19
Control cableado - FSM Representación abstracta Start § Etapas 1 y 2 comunes a todas las instrucciones Instruction fetch/decode and register fetch (Figure 5. 37) Memory access instructions (Figure 5. 38) Branch instruction (Figure 5. 40) Jump instruction (Figure 5. 41) Diagrama de estados Start (Op or W') = 'L Memory reference FSM (Figure 5. 38) Diseño del procesador (Op Mem. Read ALUSrc. A = 0 Ior. D = 0 IRWrite ALUSrc. B = 01 ALUOp = 00 PCWrite PCSource = 00 W') = 'S R-type FSM (Figure 5. 39) 1 ALUSrc. A = 0 ALUSrc. B = 11 ALUOp = 00 p (O pe) -ty R = Branch FSM (Figure 5. 40) (Op = 'JMP') 0 EQ ') Etapas 1 y 2 'B § Instruction decode/ Register fetch Instruction fetch = q R-type instructions (Figure 5. 39) (O p q Jump FSM (Figure 5. 41) 20
Control cableado – FSM completa Instruction decode/ register fetch Instruction fetch = (Op 2 ') 'SW Execution 6 ALUSrc. A = 1 ALUSrc. B = 10 ALUOp = 00 ') EQ 'B 8 ALUSrc. A =1 ALUSrc. B = 00 ALUOp= 10 Jump completion 9 ALUSrc. A = 1 ALUSrc. B = 00 ALUOp = 01 PCWrite. Cond PCSource = 01 PCWrite PCSource = 10 (O p= 'S ') W (Op = 'LW') ) ype R-t = (Op Branch completion (Op = 'J') p= r (O ') o 'LW ALUSrc. A = 0 ALUSrc. B = 11 ALUOp = 00 = Memory address computation 1 p Start Mem. Read ALUSrc. A = 0 Ior. D = 0 IRWrite ALUSrc. B = 01 ALUOp = 00 PCWrite PCSource = 00 (O 0 Memory access 3 Memory access 5 Mem. Read Ior. D = 1 R-type completion 7 Mem. Write Ior. D = 1 Reg. Dst = 1 Reg. Write Memto. Reg = 0 Write-back step 4 Reg. Dst =0 Reg. Write Memto. Reg =1 Diseño del procesador 21
Control cableado – Especificación de la UC con una FSM Diseño del procesador 22
Control cableado - Implementación de la FSM q Unidad de control = Lógica de control + Registro de Estado § Reg. Estado: Se escribe en cada flanco de reloj y es estable durante el ciclo PCWrite. Cond Ior. D Mem. Read Mem. Write IRWrite Control logic Memto. Reg PCSource Outputs ALUOp ALUSrc. B ALUSrc. A Reg. Write Reg. Dst NS 3 NS 2 NS 1 NS 0 Diseño del procesador S 0 S 1 S 2 S 3 Op 0 Op 1 Op 2 Op 3 Op 4 Op 5 Inputs Instruction register opcode field Estado Siguiente State register Estado Actual 23
Control cableado – Ecuaciones de implement. de la FSM Diseño del procesador 24
Control cableado - Implementación de FSM con ROM q Diseño unificado § Tamaño: 210 × 20 = 20 Kb § 6 bits código de operación + 4 bits de los estados = 210 posiciones de memoria § 16 salidas de control + 4 salidas de nuevo estado = 20 bits de anchura q Diseño no unificado § Tamaño: 4. 25 Kb § ROM de señales de salida (Tamaño = 24 × 16 = 256 b) ▫ 4 bits de los estados = 24 posiciones de memoria ▫ 16 salidas de control = 16 bits de anchura § ROM de nuevo estado (Tamaño 210 × 4 = 4 Kb) ▫ 6 bits código de operación + 4 bits de los estados = 210 posiciones de memoria ▫ 4 salidas de nuevo estado = 4 bits de anchura Diseño del procesador 25
Control cableado - Implementación de FSM con PLA q Tamaño de la PLA § #inputs × #minterms + #outputs × #minterms = (10 × 17) + (20 × 17) = 510 celdas Diseño del procesador 26
Estructura del tema q q Metodología de sincronización Diseño de un procesador MIPS R 3000 reducido § Rutas de datos individuales § Diseño monociclo ▫ ▫ Diseño de la ruta de datos Diseño de la unidad de control de la ALU Diseño de la unidad de control Ventajas y desventajas § Diseño multiciclo ▫ Diseño de la ruta de datos ▫ Diseño de la unidad de control ▪ Control cableado ▪ Control microprogramado § Excepciones e interrupciones q Resumen y bibliografía Diseño del procesador 27
Diseño de la UC – Control microprogramado q El control se especifica como un programa (microprograma) que está compuesto por instrucciones (microinstrucciones) que están almacenadas en una memoria (memoria de microcódigo) q Un registro (contador de microprograma) indica cuál es la siguiente microinstrucción a ejecutar. Diseño del procesador 28
Control microprogramado – Formato de la microinstrucción q 7 campos: 6 campos de control + 1 campo de secuenciación Diseño del procesador 29
Control microprogramado– Señales asociadas a los campos y valores Diseño del procesador 30
Control microprogramado – Microprograma de la UC Diseño del procesador 31
Diseño de la UC – Control microprogramado q El estado siguiente es frecuentemente el estado actual + 1 q Las señales de control están almacenadas en una memoria Diseño del procesador 32
Control microprogramado –Secuenciador del microprograma q La lógica de selección de direcciones genera la dirección de la siguiente microinstrucción a ejecutar Diseño del procesador 33
Estructura del tema q q Metodología de sincronización Diseño de un procesador MIPS R 3000 reducido § Rutas de datos individuales § Diseño monociclo ▫ ▫ Diseño de la ruta de datos Diseño de la unidad de control de la ALU Diseño de la unidad de control Ventajas y desventajas § Diseño multiciclo ▫ Diseño de la ruta de datos ▫ Diseño de la unidad de control ▪ Control cableado ▪ Control microprogramado § Excepciones e interrupciones q Resumen y bibliografía Diseño del procesador 34
Excepciones e interrupciones q Definiciones § Eventos inesperados que cambian el flujo normal de ejecución de las instrucciones § Excepción ▫ Evento que tiene su origen en el interior del procesador (desbordamiento aritmético, instrucción ilegal, etc. ) § Interrupción ▫ Evento que tiene su origen en el exterior del procesador (dispositivos de entrada/salida, fallo de página, etc. ) Diseño del procesador 35
Tratamiento de excepciones en MIPS q Las acciones básicas a realizar son: § Guardar la dirección de la instrucción causante en el registro Contador de Programa de Excepciones (EPC) § Registrar la causa de la excepción en el Registro Cause § Transferir el control al Sistema Operativo en alguna dirección especificada (0 x. C 0000) donde se tratará la excepción (ejecución de una rutina de servicio) Programa Interrupción Rutina de servicio de la interrupción Salto a rutina de servicio Retorno de la rutina de servicio Diseño del procesador 36
Implementación de excepciones en MIPS q Excepciones a implementar § Desbordamiento aritmético § Instrucción ilegal o no definida q Registros adicionales requeridos § EPC: Registro de 32 bits para guardar la dirección de la instrucción causante de la excepción § CAUSE: Registro de 32 bits para registrar la causa de la excepción. Utilizaremos sólo el bit menos significativo ▫ bit 0 = 0 → Instrucción ilegal ▫ bit 0 = 1 → Desbordamiento aritmético q Señales de control adicionales § § Intcause (0: instrucción ilegal - 1: desbordamiento) Cause. Write (1: escritura en el registro CAUSE - 0: no escribe) EPCWrite (1: escritura en el registro EPC - 0: no escribe) Constante: C 0000 (dirección a donde se transfiere el control cada vez que se interrumpe) Diseño del procesador 37
Especificación de la UC con soporte de excepciones Mem. Read ALUSrc. A = 0 Ior. D = 0 IRWrite ALUSrc. B = 01 ALUOp = 00 PCWrite PCSource = 00 ') W 'S (Op = 'LW') ALUSrc. A = 1 ALUSrc. B = 00 ALUOp = 01 PCWrite. Cond PCSource = 01 (Op = 'J') 9 PCWrite PCSource = 10 p= (O Memory access 3 Memory access 5 Mem. Read Ior. D = 1 4 8 Jump completion r) ALUSrc. A = 1 ALUSrc. B = 00 ALUOp = 10 Branch completion e oth ALUSrc. A = 1 ALUSrc. B = 00 ALUOp = 00 (Op e) -typ R = p= (O ') 'SW p= O ( or Execution W') = 'L p 6 (O Memory address computation 2 ALUSrc. A = 0 ALUSrc. B = 11 ALUOp = 00 'BE Q' ) Start Instruction decode/ Register fetch 1 Instruction fetch (O p= 0 R-type completion 7 Mem. Write Ior. D = 1 Write-back step 11 Reg. Dst = 1 Reg. Write Memto. Reg = 0 Overflow Int. Cause = 1 Cause. Write ALUSrc. A = 0 ALUSrc. B = 01 ALUOp = 01 EPCWrite PCSource = 11 10 Int. Cause = 0 Cause. Write ALUSrc. A = 0 ALUSrc. B = 01 ALUOp = 01 EPCWrite PCSource = 11 Overflow Reg. Write Memto. Reg = 1 Reg. Dst = 0 Diseño del procesador 38
Ruta de datos con soporte de excepciones Cause. Write Int. Cause EPCWrite PCSource ALUOp PCWrite. Cond PCWrite Ior. D Outputs Mem. Read Mem. Write ALUSrc. B ALUSrc. A Control Memto. Reg IRWrite Reg. Write Op [5– 0] Reg. Dst 0 26 Instruction [25– 0] PC 0 M u x 1 Instruction [31 -26] Address Memory Mem. Data Write data Read register 1 Instruction [20– 16] Read register 2 data 1 Registers Write Read register data 2 Instruction register Instruction [15– 0] Memory data register 28 Jump address [31 -0] CO 00 00 00 Instruction [25– 21] Instruction [15– 0] Shift left 2 0 M Instruction u x [15– 11] 1 0 M u x 1 B 4 Write data Zero ALU result 0 1 M u 2 x 3 Sign extend 32 Shift left 2 u x 3 ALUOut 0 1 16 2 PC [31 -28] 0 M u x 1 A 1 M EPC 0 M u x 1 Cause ALU control Instruction [5– 0] Diseño del procesador 39
Instrucciones para excepciones en MIPS q mfc 0 $rt, $rd (move from coprocesador 0) § Transfiere la información desde el registro de propósito general $rd al registro de propósito especial $rt (0 para CAUSE, 1 para EPC) § Tipo R ▫ 010000 ttttt ddddd 000000 q mtc 0 $rd, $rt (move to coprocesador 0) § Transfiere la información desde el registro de propósito especial $rt (0 para CAUSE, 1 para EPC) al registro de propósito general $rd § Tipo R ▫ 010000 0100 ttttt ddddd 000000 q rfe (return from exception) § Transfiere el contenido del EPC al registro contador de programa § Tipo J ▫ 010000000000100000 Diseño del procesador 40
Estructura del tema q q Metodología de sincronización Diseño de un procesador MIPS R 3000 reducido § Rutas de datos individuales § Diseño monociclo ▫ ▫ Diseño de la ruta de datos Diseño de la unidad de control de la ALU Diseño de la unidad de control Ventajas y desventajas § Diseño multiciclo ▫ Diseño de la ruta de datos ▫ Diseño de la unidad de control ▪ Control cableado ▪ Control microprogramado § Excepciones e interrupciones q Resumen y bibliografía Diseño del procesador 41
Resumen q Para diseñar un procesador es necesario diseñar en primer lugar el repertorio de instrucciones q A continuación se diseña la ruta de datos que es capaz de ejecutar el repertorio de instrucciones q El siguiente paso es diseñar la unidad de control q El manejo de excepciones es la parte difícil del control. Diseño del procesador 42
Bibliografía Estructura y diseño de computadores: interficie circuitería/programación Capítulo 5 David A. Patterson, John L. Hennessy Editorial Reverté, 1999 Diseño del procesador 43