Logo Studenta

ACI-Clase-10

¡Este material tiene más páginas!

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

Otros materiales