8 Diseo del Procesador Fundamentos de los Computadores

  • Slides: 43
Download presentation
8. Diseño del Procesador Fundamentos de los Computadores Grado en Ingeniería Informática (desde diseño

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

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 §

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

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

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

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

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

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

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

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

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.

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.

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.

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.

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

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

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.

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

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

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

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

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 §

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

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

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

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– Señales asociadas a los campos y valores Diseño del procesador 30

Control microprogramado – Microprograma de la UC Diseño del procesador 31

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

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

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

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

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

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

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

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

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)

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

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

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

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