Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Dana K. Urribarri AC 2016 1 Arquitectura de Computadoras para Ingeniería (Cód. 7526) 1° Cuatrimestre 2016 Dra. Dana K. Urribarri DCIC - UNS Dana K. Urribarri AC 2016 2 Modelos de arquitecturas Dana K. Urribarri AC 2016 3 Modelo von Neumann ● El modelo von Neumann tiene 4 partes: 1) Unidad central de proceso (CPU) 2) Memoria 3) Entradas 4) Salidas Dana K. Urribarri AC 2016 4 Modelo von Neumann 1) CPU: – ALU – Registros de alta velocidad para almacenar los operandos – Unidad de control: interpreta las instrucciones y hace que se ejecuten – Program counter (PC) 2) Memoria – Almacena instrucciones, datos y resultados intermedios y finales. Se implementa como una jerarquía. Dana K. Urribarri AC 2016 5 Modelo Harvard ● Usa memoria y buses separados para instrucciones y datos. ● Pueden ejecutar instrucciones y acceder a datos simultáneamente. ● Requiere 4 buses, dos de direcciones y dos de contenido. Dana K. Urribarri AC 2016 6 Microprocesador vs Microcontrolador ● Microprocesador: – Chip que contiene la CPU. – Modelo von Neumann. La memoria es externa al microprocesador. ● Microcontrolador: – Un único chip que contiene CPU, memoria, entrada/salida y periféricos. – Modelo Harvard. Dana K. Urribarri AC 2016 7 Medidas de desempeño Dana K. Urribarri AC 2016 8 Medidas de desempeño ● Para comparar arquitecturas se necesita mediciones que reflejen: – la arquitectura del procesador – la jerarquía de memoria independientemente: – de los programas – del subsistema de I/O. Dana K. Urribarri AC 2016 9 Medidas de desempeño ● Ciclos por instrucción (CPI) ● Instrucciones por ciclo (IPC) ● Rendimiento (Throughput) ● Latencia ● Speedup ● Eficiencia Dana K. Urribarri AC 2016 10 Tiempo de ejecución ● El tiempo de ejecución de un programa (EXCPU) depende de la cantidad de instrucciones a ejecutar y del tiempo de ejecución de cada instrucción. ● El tiempo de ejecución de una instrucción puede medirse en función de la cantidad de ciclos que demora en ejecutarse y del período de cada pulso. EXCPU = #Instrucciones × CPI × período del reloj #Total de ciclos 1/frecuencia Medidas de desempeño Dana K. Urribarri AC 2016 11 Instrucciones por ciclo ● La recíproca del CPI CPI = EXCPU / (#Instrucciones x período del reloj) es la cantidad de instrucciones que se ejecutan en un ciclo IPC = 1 / CPI IPC = #Instrucciones × período del reloj / EXCPU IPC = #Instrucciones / #Total de ciclos Medidas de desempeño Dana K. Urribarri AC 2016 12 Medidas de desempeño ● Throughput: IPC – Cantidad de trabajo (instrucciones) por unidad de tiempo ● Latencia: EXCPU – Las unidades de tiempo que demanda realizar el trabajo. Dana K. Urribarri AC 2016 13 Medidas de desempeño ● El rendimiento (performance) se define como la recíproca del tiempo de ejecución. ● Los tres factores que afecta el rendimiento son: – La cantidad de instrucciones ejecutadas Responsabilidad del compilador – CPI (o IPC) Responsabilidad del diseño e implementación de la arquitectura – Frecuencia del reloj Dependiente de la tecnología Dana K. Urribarri AC 2016 14 Comparación de desempeño ● Comparación en términos relativos (no absolutos) ● Un sistema A tiene mejor rendimiento que un sistema B si el sistema A tiene menor tiempo de ejecución (para un conjunto de programas) que el sistema B. RendimientoA RendimientoB = 1 /EXCPU A 1 /EXCPU B = EXCPU B EXCPU A Dana K. Urribarri AC 2016 15 Comparación de desempeño ● El speedup es la razón entre el rendimiento de un sistema mejorado y el rendimiento de su implementación original Speedup= Rendimiento Mejorado RendimientoOriginal = EXCPU Original EXCPU Mejorado Dana K. Urribarri AC 2016 16 Eficiencia ● Mientras el speedup es la ganancia por mejorar un sistema. ● La eficiencia mide la utilización de un recurso. ● Si Speedupn es la ganancia por mejorar el sistema con n recursos, la eficiencia mide la utilización de esos recursos. Eficiencia= Speedupn n Dana K. Urribarri AC 2016 17 Ley de Amdahl ● El speedup se definió inicialmente para procesadores paralelos. ● Si T1 es el tiempo de ejecución en un procesador y Tn es el tiempo de ejecución en n procesadores, lo esperable sería que: Tn = T1 / n y por lo tanto Speedup= T 1 T n = T 1 T 1 /n =n Dana K. Urribarri AC 2016 18 Ley de Amdahl ● La ejecución de un programa consiste de una parte secuencial seguido de una parte paralelizable. ● Si – s es el tiempo de ejecución de la parte secuencial – p es el tiempo de ejecución secuencial de la parte paralelizable ● Entonces T1 = s + p Tn = s + p / n Speedup= T 1 T n = s+p s+p /n Dana K. Urribarri AC 2016 19 Ley de Amdahl ● Si ● En el límite (n → ∞) ● Luego, si asumimos T1 = 1 (o 100%) el máximo speedup 1/s está limitado por la fracción de tiempo que se consume en la ejecución de la parte secuencial. Speedup= T 1 T n = s+p s+p /n limn→∞ Speedup= s+p s Dana K. Urribarri AC 2016 20 Microarquitectura de microprocesador (Modelo von Neumann) Dana K. Urribarri AC 2016 21 Arquitectura y Microarquitectura ● La arquitectura de una computadora la define: – El set de instrucciones – La ubicación de los operandos (registros y memoria) – x86, MIPS, SPARC, PowerPC. ● La arquitectura no define la implementación del hardware. – Intel y AMD implementan la arquitectura x86. – Diferencias en rendimiento, precio y consumo. ● La microarquitectura es la combinación específica de registros, memoria, ALUs y otros bloques del microprocesador. Dana K. Urribarri AC 2016 22 Arquitectura ● Vamos a considerar DLX, un subconjunto de MIPS. ● MIPS: – RISC – 32 y 64 bits ● Implementaciones de MIPS se usan en Sistemas Embebidos: – Dispositivos con Windows CE – Routers – Consolas como Nintendo 64, Sony PlayStation, PlayStation 2 y PlayStation Portable. Dana K. Urribarri AC 2016 23 Arquitectura DLX DLX incluye: ● Instrucciones R-type Instrucciones aritmético-lógico ● Instrucciones de escritura y lectura en memoria Load y store ● Instrucciones de bifurcación Saltos condicionles (branch) e incondicionales (jump) Dana K. Urribarri AC 2016 24 Microarquitectura ● La microarquitectura se divide en dos partes que interactúan entre sí: – Datapath – Unidad de Control ● Datapath – Opera sobre los datos. – Involucra memorias, registros, ALUs y multiplexores. ● Unidad de Control – A partir de la instrucción actual le indica al datapath cómo ejecutar la instrucción. – Produce señales de multiplexado, habilitaciones de registros y señales a la memoria para controlar las operaciones del datapath. Dana K. Urribarri AC 2016 25 Ciclo de ejecución Los pasos básicos para ejecutar una instrucción: 1) Se trae de memoria la próxima instrucción a ejecutar (apuntada por el PC) 2) La unidad de control decodifica la instrucción 3) Se ejecuta la instrucción. Puede ser: – Operación de la ALU – Cargar un registro con un dato de memoria – Almacenar un dato de un registro en memoria – Testear la condición de un salto 4) Se actualiza el PC 5) Volver al paso 1 Dana K. Urribarri AC 2016 26 Diseño de la microarquitectura ● Tres posibles microarquitecturas para MIPS: – Diseño único ciclo: Ejecuta la instrucción completa en un único ciclo. – Diseño multi-ciclo: Ejecuta las instrucciones en una serie de ciclos cortos. – Diseño en pipeline: Aplica pipeline a la microarquitectura de un único ciclo. Dana K. Urribarri AC 2016 27 Microarquitectura único ciclo ● Cada instrucción se ejecuta en un único ciclo de reloj (CPI = 1). – Comienza en un flanco ascendente (o descendente) – Termina en el próximo flanco ascendente (o descendente) ● El ciclo tiene que ser lo suficientemente largo para permitir la ejecución de la instrucción más lenta. ● No es práctico pero es simple. Dana K. Urribarri AC 2016 28 Microarquitectura único ciclo SignImm CLK A RD Instruction Memory + 4 A1 A3 WD3 RD2 RD1 WE3 A2 CLK Sign Extend Register File 0 1 0 1 A RD DataMemory WD WE 0 1 PC0 1 PC' Instr 25:21 20:16 15:0 5:0 SrcB 20:16 15:11 <<2 + ALUResult ReadData WriteData SrcA PCPlus4 PCBranch WriteReg4:0 Result 31:26 RegDst Branch MemWrite MemtoReg ALUSrc RegWrite Op Funct Control Unit Zero PCSrc CLK ALUControl2:0 A LU Dana K. Urribarri AC 2016 29 Microarquitectura único ciclo Load: ● R[d] ← Mem[R[s] + #valor] ● PC ← PC + 4 1) Traer la instrucción 2) Obtener los operandos: leer el registro del banco de registros y obtener el valor inmediato 3) Calcular la dirección de memoria 4) Leer el dato de memoria y escribirlo en el banco de registros. 5) Actualizar el PC Dana K. Urribarri AC 2016 30 SignImm CLK A RD Instruction Memory + 4 A1 A3 WD3 RD2 RD1 WE3 A2 CLK Sign Extend Register File 0 1 0 1 A RD Data Memory WD WE 0 1 PC0 1 PC' Instr 25:21 20:16 15:0 5:0 SrcB 20:16 15:11 <<2 + ALUResult ReadData WriteData SrcA PCPlus4 PCBranch WriteReg4:0 Result 31:26 RegDst Branch MemWrite MemtoReg ALUSrc RegWrite Op Funct Control Unit Zero PCSrc CLK ALUControl2:0 A LU Load: Traer la instrucción Microarquitectura único ciclo Dana K. Urribarri AC 2016 31 Load: Obtención de operandos SignImm CLK A RD Instruction Memory + 4 A1 A3 WD3 RD2 RD1 WE3 A2 CLK Sign Extend Register File 0 1 0 1 A RD Data Memory WD WE 0 1 PC0 1 PC' Instr 25:21 20:16 15:0 5:0 SrcB 20:16 15:11 <<2 + ALUResult ReadData WriteData SrcA PCPlus4 PCBranch WriteReg4:0 Result 31:26 RegDst Branch MemWrite MemtoReg ALUSrc RegWrite Op Funct Control Unit Zero PCSrc CLK ALUControl2:0 A LU Microarquitectura único ciclo Dana K. Urribarri AC 2016 32 Load: Cálculo de dirección SignImm CLK A RD Instruction Memory + 4 A1 A3 WD3 RD2 RD1 WE3 A2 CLK Sign Extend Register File 0 1 0 1 A RD Data Memory WD WE 0 1 PC0 1 PC' Instr 25:21 20:16 15:0 5:0 SrcB 20:16 15:11 <<2 + ALUResult ReadData WriteData SrcA PCPlus4 PCBranch WriteReg4:0 Result 31:26 RegDst Branch MemWrite MemtoReg ALUSrc RegWrite Op Funct Control Unit Zero PCSrc CLK ALUControl2:0 A LU Microarquitectura único ciclo Dana K. Urribarri AC 2016 33 Load: Escribir el dato obtenido en el destino SignImm CLK A RD Instruction Memory + 4 A1 A3 WD3 RD2 RD1 WE3 A2 CLK Sign Extend Register File 0 1 0 1 A RD Data Memory WD WE 0 1 PC0 1 PC' Instr 25:21 20:16 15:0 5:0 SrcB 20:16 15:11 <<2 + ALUResult ReadData WriteData SrcA PCPlus4 PCBranch WriteReg4:0 Result 31:26 RegDst Branch MemWrite MemtoReg ALUSrc RegWrite Op Funct Control Unit Zero PCSrc CLK ALUControl2:0 A LU Microarquitectura único ciclo Dana K. Urribarri AC 2016 34 Load: Actualizar PC SignImm CLK A RD Instruction Memory + 4 A1 A3 WD3 RD2 RD1 WE3 A2 CLK Sign Extend Register File 0 1 0 1 A RD Data Memory WD WE 0 1 PC0 1 PC' Instr 25:21 20:16 15:0 5:0 SrcB 20:16 15:11 <<2 + ALUResult ReadData WriteData SrcA PCPlus4 PCBranch WriteReg4:0 Result 31:26 RegDst Branch MemWrite MemtoReg ALUSrc RegWrite Op Funct Control Unit Zero PCSrc CLK ALUControl2:0 A LU Microarquitectura único ciclo Dana K. Urribarri AC 2016 35 Microarquitectura único ciclo R-type (add, or, etc): ● R[d] ← R[s] + R[t] ● PC ← PC + 4 1) Traer la instrucción 2) Obtener los operandos: leer el registro del banco de registros los dos operandos 3) Realizar la operación de la ALU 4) Escribir el resultado en el banco de registros. 5) Actualizar el PC Dana K. Urribarri AC 2016 36 SignImm CLK A RD Instruction Memory + 4 A1 A3 WD3 RD2 RD1 WE3 A2 CLK Sign Extend Register File 0 1 0 1 A RD Data Memory WD WE 0 1 PC0 1 PC' Instr 25:21 20:16 15:0 5:0 SrcB 20:16 15:11 <<2 + ALUResult ReadData WriteData SrcA PCPlus4 PCBranch WriteReg4:0 Result 31:26 RegDst Branch MemWrite MemtoReg ALUSrc RegWrite Op Funct Control Unit Zero PCSrc CLK ALUControl2:0 A LU R-type: Traer la instrucción Microarquitectura único ciclo Dana K. Urribarri AC 2016 37 R-type: Obtención de operandos SignImm CLK A RD Instruction Memory + 4 A1 A3 WD3 RD2 RD1 WE3 A2 CLK Sign Extend Register File 0 1 0 1 A RD Data Memory WD WE 0 1 PC0 1 PC' Instr 25:21 20:16 15:0 5:0 SrcB 20:16 15:11 <<2 + ALUResult ReadData WriteData SrcA PCPlus4 PCBranch WriteReg4:0 Result 31:26 RegDst Branch MemWrite MemtoReg ALUSrc RegWrite Op Funct Control Unit Zero PCSrc CLK ALUControl2:0 A LU Microarquitectura único ciclo Dana K. Urribarri AC 2016 38 R-type: Realizar la operación de la ALU SignImm CLK A RD Instruction Memory + 4 A1 A3 WD3 RD2 RD1 WE3 A2 CLK Sign Extend Register File 0 1 0 1 A RD Data Memory WD WE 0 1 PC0 1 PC' Instr 25:21 20:16 15:0 5:0 SrcB 20:16 15:11 <<2 + ALUResult ReadData WriteData SrcA PCPlus4 PCBranch WriteReg4:0 Result 31:26 RegDst Branch MemWrite MemtoReg ALUSrc RegWrite Op Funct Control Unit Zero PCSrc CLK ALUControl2:0 A LU Microarquitectura único ciclo Dana K. Urribarri AC 2016 39 SignImm CLK A RD Instruction Memory + 4 A1 A3 WD3 RD2 RD1 WE3 A2 CLK Sign Extend Register File 0 1 0 1 A RD Data Memory WD WE 0 1 PC0 1 PC' Instr 25:21 20:16 15:0 5:0 SrcB 20:16 15:11 <<2 + ALUResult ReadData WriteData SrcA PCPlus4 PCBranch WriteReg4:0 Result 31:26 RegDst Branch MemWrite MemtoReg ALUSrc RegWrite Op Funct Control Unit Zero PCSrc CLK ALUControl2:0 A LU R-type: Escribir el resultado Microarquitectura único ciclo Dana K. Urribarri AC 2016 40 R-type: Actualizar PC SignImm CLK A RD Instruction Memory + 4 A1 A3 WD3 RD2 RD1 WE3 A2 CLK Sign Extend Register File 0 1 0 1 A RD Data Memory WD WE 0 1 PC0 1 PC' Instr 25:21 20:16 15:0 5:0 SrcB 20:16 15:11 <<2 + ALUResult ReadData WriteData SrcA PCPlus4 PCBranch WriteReg4:0 Result 31:26 RegDst Branch MemWrite MemtoReg ALUSrc RegWrite Op Funct Control Unit Zero PCSrc CLK ALUControl2:0 A LU Microarquitectura único ciclo Dana K. Urribarri AC 2016 41 Microarquitectura único ciclo Store: ● Mem[d + #valor] ← R[s] ● PC ← PC + 4 1) Traer la instrucción 2) Obtener los operandos: leer los registros s y d del banco de registros y el valor inmediato. 3) Calcular la dirección destino 4) Escribir el valor del registro en memoria. 5) Actualizar el PC Dana K. Urribarri AC 2016 42 SignImm CLK A RD Instruction Memory + 4 A1 A3 WD3 RD2 RD1 WE3 A2 CLK Sign Extend Register File 0 1 0 1 A RD Data Memory WD WE 0 1 PC0 1 PC' Instr 25:21 20:16 15:0 5:0 SrcB 20:16 15:11 <<2 + ALUResult ReadData WriteData SrcA PCPlus4 PCBranch WriteReg4:0 Result 31:26 RegDst Branch MemWrite MemtoReg ALUSrc RegWrite Op Funct Control Unit Zero PCSrc CLK ALUControl2:0 A LU Store: Traer la instrucción Microarquitectura único ciclo Dana K. Urribarri AC 2016 43 Store: Obtención de operandos SignImm CLK A RD Instruction Memory + 4 A1 A3 WD3 RD2 RD1 WE3 A2 CLK Sign Extend Register File 0 1 0 1 A RD Data Memory WD WE 0 1 PC0 1 PC' Instr 25:21 20:16 15:0 5:0 SrcB 20:16 15:11 <<2 + ALUResult ReadData WriteData SrcA PCPlus4 PCBranch WriteReg4:0 Result 31:26 RegDst Branch MemWrite MemtoReg ALUSrc RegWrite Op Funct Control Unit Zero PCSrc CLK ALUControl2:0 A LU Microarquitectura único ciclo Dana K. Urribarri AC 2016 44 Store: Calcular la dirección SignImm CLK A RD Instruction Memory + 4 A1 A3 WD3 RD2 RD1 WE3 A2 CLK Sign Extend Register File 0 1 0 1 A RD Data Memory WD WE 0 1 PC0 1 PC' Instr 25:21 20:16 15:0 5:0 SrcB 20:16 15:11 <<2 + ALUResult ReadData WriteData SrcA PCPlus4 PCBranch WriteReg4:0 Result 31:26 RegDst Branch MemWrite MemtoReg ALUSrc RegWrite Op Funct Control Unit Zero PCSrc CLK ALUControl2:0A LU Microarquitectura único ciclo Dana K. Urribarri AC 2016 45 Store: Escribir el resultado SignImm CLK A RD Instruction Memory + 4 A1 A3 WD3 RD2 RD1 WE3 A2 CLK Sign Extend Register File 0 1 0 1 A RD Data Memory WD WE 0 1 PC0 1 PC' Instr 25:21 20:16 15:0 5:0 SrcB 20:16 15:11 <<2 + ALUResult ReadData WriteData SrcA PCPlus4 PCBranch WriteReg4:0 Result 31:26 RegDst Branch MemWrite MemtoReg ALUSrc RegWrite Op Funct Control Unit Zero PCSrc CLK ALUControl2:0 A LU Microarquitectura único ciclo Dana K. Urribarri AC 2016 46 Store: Actualizar PC SignImm CLK A RD Instruction Memory + 4 A1 A3 WD3 RD2 RD1 WE3 A2 CLK Sign Extend Register File 0 1 0 1 A RD Data Memory WD WE 0 1 PC0 1 PC' Instr 25:21 20:16 15:0 5:0 SrcB 20:16 15:11 <<2 + ALUResult ReadData WriteData SrcA PCPlus4 PCBranch WriteReg4:0 Result 31:26 RegDst Branch MemWrite MemtoReg ALUSrc RegWrite Op Funct Control Unit Zero PCSrc CLK ALUControl2:0 A LU Microarquitectura único ciclo Dana K. Urribarri AC 2016 47 Microarquitectura único ciclo Branch (beq): ● Si R[s] == R[t] – Entonces PC ←PC + offset – Si no PC ← PC + 4 1) Traer la instrucción 2) Obtener los operandos: leer los registros s y t del banco de registros y el valor inmediato. 3) Evaluar la condición 4) Actualizar el PC en función de la condición Dana K. Urribarri AC 2016 48 SignImm CLK A RD Instruction Memory + 4 A1 A3 WD3 RD2 RD1 WE3 A2 CLK Sign Extend Register File 0 1 0 1 A RD Data Memory WD WE 0 1 PC0 1 PC' Instr 25:21 20:16 15:0 5:0 SrcB 20:16 15:11 <<2 + ALUResult ReadData WriteData SrcA PCPlus4 PCBranch WriteReg4:0 Result 31:26 RegDst Branch MemWrite MemtoReg ALUSrc RegWrite Op Funct Control Unit Zero PCSrc CLK ALUControl2:0 A LU Branch: Traer la instrucción Microarquitectura único ciclo Dana K. Urribarri AC 2016 49 Branch: Obtención de operandos SignImm CLK A RD Instruction Memory + 4 A1 A3 WD3 RD2 RD1 WE3 A2 CLK Sign Extend Register File 0 1 0 1 A RD Data Memory WD WE 0 1 PC0 1 PC' Instr 25:21 20:16 15:0 5:0 SrcB 20:16 15:11 <<2 + ALUResult ReadData WriteData SrcA PCPlus4 PCBranch WriteReg4:0 Result 31:26 RegDst Branch MemWrite MemtoReg ALUSrc RegWrite Op Funct Control Unit Zero PCSrc CLK ALUControl2:0 A LU Microarquitectura único ciclo Dana K. Urribarri AC 2016 50 Branch: Evaluar la condición SignImm CLK A RD Instruction Memory + 4 A1 A3 WD3 RD2 RD1 WE3 A2 CLK Sign Extend Register File 0 1 0 1 A RD Data Memory WD WE 0 1 PC0 1 PC' Instr 25:21 20:16 15:0 5:0 SrcB 20:16 15:11 <<2 + ALUResult ReadData WriteData SrcA PCPlus4 PCBranch WriteReg4:0 Result 31:26 RegDst Branch MemWrite MemtoReg ALUSrc RegWrite Op Funct Control Unit Zero PCSrc CLK ALUControl2:0 A LU Microarquitectura único ciclo Dana K. Urribarri AC 2016 51 Branch: Actualizar PC SignImm CLK A RD Instruction Memory + 4 A1 A3 WD3 RD2 RD1 WE3 A2 CLK Sign Extend Register File 0 1 0 1 A RD Data Memory WD WE 0 1 PC0 1 PC' Instr 25:21 20:16 15:0 5:0 SrcB 20:16 15:11 <<2 + ALUResult ReadData WriteData SrcA PCPlus4 PCBranch WriteReg4:0 Result 31:26 RegDst Branch MemWrite MemtoReg ALUSrc RegWrite Op Funct Control Unit Zero PCSrc CLK ALUControl2:0 A LU Microarquitectura único ciclo Dana K. Urribarri AC 2016 52 Microarquitectura único ciclo ● Implica: ✔ Diseño simple ✗ El período del ciclo está limitado por la instrucción más lenta. ✗ Necesita 2 sumadores además de la ALU ✗ Fuerza memorias separadas ✗ La operación del datapath es puramente combinacional. La máquina está en estados estables solamente al principio y al final del ciclo. Dana K. Urribarri AC 2016 53 Microarquitectura multi-ciclo ● Las instrucciones se ejecutan a lo largo de varios ciclos cortos. ● Reduce el hardware ya que permite reusar bloques de hardware. ● Agrega hardware para almacenar resultados intermedios. ● Ejecuta una instrucción por vez y cada instrucción demanda múltiples ciclos. Dana K. Urribarri AC 2016 54 SignImm CLK A RD Instr / Data Memory A1 A3 WD3 RD2 RD1 WE3 A2 CLK Sign Extend Register File 0 1 0 1 0 1 PC 0 1 PC' Instr 25:21 20:16 15:0 5:0 SrcB20:16 15:11 <<2 ALUResult SrcA ALUOut 31:26 R e gD st Branch MemWrite M em toR eg ALUSrcA RegWrite Op Funct Control Unit Zero PCSrc CLK CLK ALUControl2:0 A L U WD WE CLK Adr 0 1 Data CLK CLK A B 00 01 10 11 4 CLK ENEN ALUSrcB1:0IRWrite IorD PCWrite PCEn Traer la instrucción Dana K. Urribarri AC 2016 55 SignImm CLK A RD Instr / Data Memory A1 A3 WD3 RD2 RD1 WE3 A2 CLK Sign Extend Register File 0 1 0 1 0 1 PC 0 1 PC' Instr 25:21 20:16 15:0 5:0 SrcB20:16 15:11 <<2 ALUResult SrcA ALUOut 31:26 R e gD st Branch MemWrite M em toR eg ALUSrcA RegWrite Op Funct Control Unit Zero PCSrc CLK CLK ALUControl2:0 A L U WD WE CLK Adr 0 1 Data CLK CLK A B 00 01 10 11 4 CLK ENEN ALUSrcB1:0IRWrite IorD PCWrite PCEn Obtención de operandos Dana K. Urribarri AC 2016 56 SignImm CLK A RD Instr / Data Memory A1 A3 WD3 RD2 RD1 WE3 A2 CLK Sign Extend Register File 0 1 0 1 0 1 PC 0 1 PC' Instr 25:21 20:16 15:0 5:0 SrcB20:16 15:11 <<2 ALUResult SrcA ALUOut 31:26 R e gD st Branch MemWrite M em toR eg ALUSrcA RegWrite Op Funct Control Unit Zero PCSrc CLK CLK ALUControl2:0 A L U WD WE CLK Adr 0 1 Data CLK CLK A B 00 01 10 11 4 CLK ENEN ALUSrcB1:0IRWrite IorD PCWrite PCEn Operación ALU / Cálculo dirección Dana K. Urribarri AC 2016 57 SignImm CLK A RD Instr / Data Memory A1 A3 WD3 RD2 RD1 WE3 A2 CLK Sign Extend Register File 0 1 0 1 0 1 PC 0 1 PC' Instr 25:21 20:16 15:0 5:0 SrcB20:16 15:11 <<2 ALUResult SrcA ALUOut 31:26 R e gD st Branch MemWrite M em toR eg ALUSrcA RegWrite Op Funct Control Unit Zero PCSrc CLK CLK ALUControl2:0 A L U WD WE CLK Adr 0 1 Data CLK CLK A B 00 01 10 11 4 CLK ENEN ALUSrcB1:0IRWrite IorD PCWrite PCEn Escritura en memoria / registros Dana K. Urribarri AC 2016 58 SignImm CLK A RD Instr / Data Memory A1 A3 WD3 RD2 RD1 WE3 A2 CLK Sign Extend Register File 0 1 0 1 0 1 PC 0 1 PC' Instr 25:21 20:16 15:0 5:0 SrcB20:16 15:11 <<2 ALUResult SrcA ALUOut 31:26 R e gD st Branch MemWrite M em toR eg ALUSrcA RegWrite Op Funct Control Unit Zero PCSrc CLK CLK ALUControl2:0 A L U WD WE CLK Adr 0 1 Data CLK CLK A B 00 01 10 11 4 CLK ENEN ALUSrcB1:0IRWrite IorD PCWrite PCEn Actualización del PC Dana K. Urribarri AC 2016 59 Microarquitectura multi-ciclo ✔ Permite mayor frecuencia de reloj. ✗ No todos los pasos son de igual duración. El reloj debe ser permitir el paso más lento. ✗ Agrega la sobrecarga de los registros entre los pasos. Dana K. Urribarri AC 2016 60 Microarquitectura en pipeline ● Se divide la microarquitectura único ciclo en etapas. ● Cada instrucción se ejecuta en varios ciclos, pero todas en la misma cantidad de ciclos. ● Las etapas se ejecutan en pipeline y diferentes etapas pueden ejecutarse en paralelo. ● Los procesadores modernos están diseñados en pipeline. Dana K. Urribarri AC 2016 61 Bibliografía ● Capítulo 1. Jean-Loup Baer. Multiprocessor Architecture. From simple pipelines to chip multiprocessor. Cambridge University Press. 2010. ● Capítulo 7. David Money Harris & Sarah L. Harris. Digital Design and Computer Architecture. Elsevier. 2013, 2da Ed. ● Capítulo 4. David A. Patterson & John L. Hennessy. Computer Organization and Design. The Hardware/Software Interface. Elsevier Inc. 2014, 5ta Ed. Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35 Slide 36 Slide 37 Slide 38 Slide 39 Slide 40 Slide 41 Slide 42 Slide 43 Slide 44 Slide 45 Slide 46 Slide 47 Slide 48 Slide 49 Slide 50 Slide 51 Slide 52 Slide 53 Slide 54 Slide 55 Slide 56 Slide 57 Slide 58 Slide 59 Slide 60 Slide 61
Compartir