¡Descarga Estructura Computadores y más Apuntes en PDF de Informática solo en Docsity!
Tema 6. Mejora de las prestaciones de un
procesador. Segmentación
À Introducción
Á Concepto de segmentación
® Aplicación al MIPS
à Riesgos por dependencias
• Riesgos de datos. Tratamiento
• Riesgos estructurales. Tratamiento
• Instrucciones multiciclo
• Riesgos de control. Tratamiento
Ä Resumen
1. Introducción
q Recordar tema anterior: Características de un RISC (MIPS)
l Control cableado, frente a control microprogramado
l Instrucciones simples y pocos modos de direccionamiento
ò Formato de instrucción de tamaño fijo
l Arquitectura load/store
l Banco de 32 registros de propósito general
l Dependencia del compilador
l Estudiamos dos soluciones:
ò Solución monociclo: toda instrucción consume 1 ck
8 Frecuencia de ck depende del camino crítico inst. + larga
ò Solución multiciclo: instrucción consume 1 ck en cada bloque funcional
8 Unidades funcionales desocupadas
Estructura de Computadores Tema 6 3
1. Introducción
Unidad de datos del MIPS
BI DI EJ M PE
Fases instruc. :
BI Ù Búsqueda Inst
DI Ù Decodif. Inst.
EJ Ù Ejecución
M Ù Acceso a Memoria
PE Ù Post-Escritura
In struction memo ry
Add ress
Add Add result
Shif t left 2
Instructio n
M
u x
Add
PC
Write data
M
u x
Registe rs
Read data 1
Read data 2
Read re gister 1
Read re gister 2
Sign exte nd
W rite re gister
W rite data
Read data Ad dress Data me mory 1
ALU
result M u x
ALU
Zero
IFI : Instruction fetch ID:: Instruction decode/
register file read
EX: Execute/
address calculation
MEM : Memory access WB: Write back
2. Concepto de Segmentación
Definiciones
q SEGMENTACIÓN : técnica para mejorar el rendimiento del procesador
mediante la superposición de la ejecución de múltiples
instrucciones
l Mayor aprovechamiento de recursos
l Invisible al programador!
q Etapa de segmentación : la instrucción accede a una unidad funcional (1ck)
q Throughput : nº de instruc. que se terminan de ejecutar por unidad de tiempo
q Latencia : tiempo necesario para ejecutar completamente una instrucción
Estructura de Computadores Tema 6 7
2. Concepto de Segmentación
Rendimiento
load : 5 ck
jmp, branch: 3 ck
resto: 4 ck TC = 10 ns
q 10% load y 20% jmp è CPI = 3.
Tiempo
Instrucciones
10 ns 10 ns 10 ns 10 ns 10 ns 10 ns 10 ns 10 ns 10 ns 10 ns
Solución Multiciclo
è T
CPU
(multic.) = 39 x NI (ns)
ck1 ck2 ck
BI DI EJ M PE
ck4 ck
BI DI EJ PE
ck6 ck7 ck8 ck
BI DI
ck10 ck
2. Concepto de Segmentación
Rendimiento
Tiempo
Instrucciones
10 ns 10 ns 10 ns 10 ns 10 ns 10 ns 10 ns 10 ns 10 ns 10 ns
Segmentación del MIPS
ck1 ck2 ck
BI DI EJ M PE
BI DI EJ M PE
BI DI EJ M PE
BI DI EJ M PE
BI DI EJ M PE
BI DI EJ M PE
ck4 ck5 ck
TC = 10 ns
CPI = 1 (Ideal)
T
CPU
= 10 x NI (ns)
ck7 ck8 ck9 ck
Proc. Seg.
en 5 etapas
Estructura de Computadores Tema 6 9
l Implementación monociclo :
Latencia = 40 ns
Throuhput = NI / T
CPU
= 1/40 x 10
= 25 Mill_ Inst/seg.
l Implementación multiciclo :
Latencia = 30 ns - 50 ns (depende de la instrucción)
Throuhput = NI / T
CPU
= 1/39 x 10
= 25.7 Mill_ Inst/seg.
l Implementación segmentada :
Latencia = 50 ns
Throuhput = NI / T
CPU
= 1/10 x 10
= 100 Mill_ Inst/seg.
2. Concepto de Segmentación
Rendimiento
3. Aplicación al MIPS
q Registros de segmentación
mantienen los valores que se
transfieren entre etapas
ò BI / DI : Almacena la
instrucción y PC (saltos)
ò DI / EJ : Almacena el valor
de Rs1, Rs2, Rd, valor inm.
y PC
ò EJ / M : Almacena la salida
de la ALU, condición de
salto, Rd o Rs
ò M / PE : Almacena salida de
memoria, salida ALU ...
Instruction memory
Address
Add Add result Shift left 2
Instruction
M
u x
Add
PC
Write^0 data
M
u x
Registers
Read data 1
Read data 2
Read register 1
Read register 2
Sign extend
Write register Write data
Read data Address Data memory 1
ALU
result M u x
ALU
Zero
BI/DI DI/EJ EJ/M M/PE
¿Por qué se guarda la salida 2 del banco de registros en EJ/M?
¿Y por qué una línea va desde EJ/M a M/PE?
¿Qué error hay en el diseño de la instrucciónlw?
Observar:
Estructura de Computadores Tema 6 13
q El control en la segmentación: tenemos 5 etapas, ¿qué hay que
controlar en cada una de ellas?
ò Lectura de la instrucción e incremento del PC. Siempre se realiza.
ò Decodificación de la instrucción / lectura de los registros. Idem.:
tampoco requiere de control.
ò Ejecución/cálculo de dirección: registro-destino, operación ALU,
fuente de la ALU.
ò Acceso a memoria: salto, escritura/lectura de memoria.
ò Post-escritura: memoria a registro, escritura registro.
3. Aplicación al MIPS
q El mismo control, pero lo agrupamos por etapas de segmentación
q Propagamos las señales de control, al igual que se hace con los datos
3. Aplicación al MIPS
Ejecución/Cálculo dirección Acceso a memoria Post-escritura
Instrucción
Reg
Dst
ALU
Op
ALU
Op
ALU
Src Branch
Mem
Read
Mem
Write
Reg
write
Mem to
Reg
R-format 1 1 0 0 0 0 0 1 0
lw
sw X 0 0 1 0 0 1 0 X
beq X 0 1 0 1 0 0 0 X
Control
EX
M
WB
M
WB
WB
IF/ID ID/EX EX/MEM MEM/WB
Instruction
Estructura de Computadores Tema 6 15
3. Aplicación al MIPS
PC
Instruction memory
Instruction
Add
Instruction [20– 16]
MemtoReg
ALUOp
Branch
RegDst
ALUSrc
Instruction [15– 0]
M
u x
Add Add result
Registers Write register
Write data
Read data 1
Read data 2
Read register 1
Read register 2
Sign extend
M
u x 1
ALU
result
Zero
Write data
Read data M u x
ALU
control
Shift left 2 RegWrite
MemRead
Control
ALU
Instruction [15– 11]
EX
M
WB
M
WB
WB
IF/ID
PCSrc
ID/EX
EX/MEM
MEM/ WB
M
u x
MemWrite
Address Data memory
Address
q Unidad de datos incluyendo las señales de control
3. Aplicación al MIPS. Ejemplo
q Ejemplo: veremos cómo avanzan estas cinco instrucciones en el pipeline:
lw $10, 20($1)
sub $11, $2, $
and $12, $4, $
or $13, $6, $
add $14, $8, $
(las instrucciones que preceden al lw se etiquetan de la siguiente manera: antes <1>, antes
<2>, ... y las que van después del add: después <1>, después <2>, ...)
Estructura de Computadores Tema 6 19
3. Aplicación al MIPS. Ejemplo
q Ciclo de reloj 3
Instructionı memory
Address
Instructionı [20– 16]
MemtoReg
Branch
ALUSrc
Instructionı [15– 0]
Add Addı result
Registers Writeı register
Writeı data
Readı data 1
Readı data 2
Readı register 1
Readı register 2 ALUı result
Shiftı left 2 RegWrite
MemRead
Control
ALU
Instructionı [15– 11]
EX
M
WB
WB
Instruction
IF/ID ID/EX EX/MEM
ID: sub $11, $2, $3 EX: lw $10,... MEM: before<1> WB: before<2>
MEM/WB
IF: and $12, $4, $
Mı uı x
Add
PC
Writeı data
Readı data Mı uı x
MemWrite
sub
X
X
X
X
Mı uı x
Mı uı x 1
ALUOp
RegDst
ALUı control
M
WB
Zero
Signı extend
Dataı memory
Address
Clock 3
3. Aplicación al MIPS. Ejemplo
q Ciclo de reloj 4
WB
EX
M
Instructionı memory
Address
MemtoReg
ALUOp
Branch
RegDst
ALUSrc
Add Addı result
Writeı register
Writeı data (^1)
ALUı result
ALUı control
Shiftı left 2 RegWrite
M
WB
Instruction
IF/ID ID/EX EX/MEM
ID: and $12, $2, $3 EX: sub $11,... MEM: lw $10,... WB: before<1>
MEM/WB
IF: or $13, $6, $
Mı uı x
Add
PC
Writeı data
Mı uı x
and Control
Registers
Readı data 1
Readı data 2
Readı register 1
Readı register 2
X
X
Instructionı [20– 16]
Instructionı [15– 0]
Instructionı [15– 11]
X
X
MemRead
MemWrite
Mı uı x
Mı uı x
ALU
Address Readı data Dataı memory
WB
Zero
Signı extend
Clock 4
Estructura de Computadores Tema 6 21
3. Aplicación al MIPS. Ejemplo
q Ciclo de reloj 5
Instructionı memory
Address
Instructionı [20– 16]
Branch
ALUSrc
Instructionı [15– 0]
Add Addı result
Registers Writeı register
Writeı data
Readı data 1
Readı data 2
Readı register 1
Readı register 2 ALUı result
Shiftı left 2 RegWrite
MemRead
Control
ALU
Instructionı [15– 11]
EX
M
WB
Instruction
IF/ID ID/EX EX/MEM
ID: or $13, $6, $7 EX: and $12,... MEM: sub $11,... WB: lw $10,...
MEM/WB
IF: add $14, $8, $
Mı uı x
Add
PC
Writeı data
Readı data Mı uı x
MemWrite
or
X
X
X
X
Mı uı x
Mı uı x 1
ALUOp
RegDst
ALUı control
M
WB
WB
MemtoReg
Zero
Dataı memory
Address
Signı extend
Clock 5
3. Aplicación al MIPS. Ejemplo
q Ciclo de reloj 6
WB
EX
M
Instructionı memory
Address
MemtoReg
ALUOp
Branch
RegDst
ALUSrc
Add Addı result
ALUı result
ALUı control
Shiftı left 2 RegWrite
M
WB
Instruction
IF/ID ID/EX EX/MEM
ID: add $14, $8, $9 EX: or $13,... MEM: and $12,... WB: sub $11,...
MEM/WB
IF: after<1>
Mı uı x
Add
PC
Writeı data
Mı uı x
add Control
Registers
Readı data 1
Readı data 2
Readı register 1
Readı register 2
X
X
Instructionı [20– 16]
Instructionı [15– 0]
Instructionı [15– 11]
X
X
MemRead
MemWrite
Mı uı x
Mı uı x
ALU
Readı data
WB
Writeı register
Writeı data
Zero
Dataı memory
Address
Signı extend
Clock 6
Estructura de Computadores Tema 6 25
3. Aplicación al MIPS. Ejemplo
q Ciclo de reloj 9
WB
EX
M
Instructionı memory
Address
MemtoReg
ALUOp
Branch
RegDst
ALUSrc
Add Addı result
ALUı result
Zero
ALUı control
Shiftı left 2 RegWrite
M
WB
Instruction
IF/ID ID/EX EX/MEM
ID: after<3> EX: after<2> MEM: after<1> WB: add $14,...
MEM/WB
IF: after<4>
Mı uı x
Add
PC
Writeı data
Mı uı x
Control
Registers
Readı data 1
Readı data 2
Readı register 1
Readı register 2
Instructionı [20– 16]
Instructionı [15– 0] (^) Signı extend
Instructionı [15– 11]
MemRead
MemWrite
Mı uı x
Mı uı x
ALU
Readı data
WB
Writeı register
Writeı data
Dataı memory
Address
Clock 9
q Dependencia : circunstancia del programa que restringe el orden de
ejecución
q Las dependencias entre instruccionespueden dar lugar a situaciones de
conflicto en la ejecución en un procesador segmentado
q Tipos de dependencias (supongamos que I
precede a I
l Dependencia de datos : se debe respetar el orden de acceso al mismo
operando (registro, posición de mem.) en I
e I
ò Dependencia verdadera
I
escribe el operando e I
lo lee
ò Antidependencia
I
lee el operando e I
lo escribe
ò Dependencia de salida
I
e I
escriben el operando
l Dependencia de recursos : I
e I
utilizan el mismo recurso
l Dependencia de control : I
decide si se ejecuta o no I
4. Riesgos por dependencias.
Clasificación de las dependencias
Dependencias falsas o
dependencias por nombre
Estructura de Computadores Tema 6 27
4. Riesgos por dependencias.
Tipos de riesgos
q RIESGO : situación conflictiva, provocada por una dependencia entre dos
instrucciones, que impide que una instrucción sea ejecutada en el
ciclo de reloj que le corresponde.
q Tipos de riesgo:
l Riesgo de datos : la instrucción necesita un operando que aún no está disponible
ò Ejemplo: una instrucción necesita un dato que será el resultado de una
escritura en instrucción anterior que aún no se ha terminado de ejecutar
l Riesgo estructural : conflicto en los accesos a los recursos del sistema
ò Ejemplo: el banco de registros tiene un solo puerto de escritura y dos
instrucciones quieren escribir al mismo tiempo
l Riesgo de control : provocado por instrucciones de control del flujo: saltos, saltos
condicionales, llamadas a rutinas
ò Ejemplo: ¿qué hacer cuando nos encontramos con un salto condicional?
¿cuál es la siguiente instrucción que se debe buscar en BI?
q Los riesgos limitan el rendimiento del sistema segmentado, porque pueden
provocar pérdidas de ciclos
4.1 Riesgos de datos en el MIPS
q Provocados por dependencias de datos
A.- RiesgosRAW (Read After Write) : dependencias verdaderas
I
lw R1, 2(R0)
I
lw R2, 3(R0)
I
add R2, R1, R
I
sub R1, R2, R
ò I
e I
dependen de I
: registro que provoca la dependencia R
ò I
depende de I
: registro que provoca la dependencia R
ò I
depende de I
: registro que provoca la dependencia R
* No todas estas dependencias dan lugar a riesgos
Estructura de Computadores Tema 6 31
add R2 , R1, R
sub R1, R2 , R
BI DI EJ M
BI DI EJ M PE
PE
tiempo
R2 nuevo
Lectura de un valor incorrecto!
4.1 Tratamiento de los riesgos de datos
Riesgos RAW
I
I
ck3 ck4 ck5 ck6 ck7 ck
R2 anterior
4.1 Tratamiento de los riesgos de datos
q Soluciones software (Compilador)
l Insertar instrucciones nop después de cada instrucción que es origen de un riesgo
de datos
l Reordenación del código: insertar otras instrucciones no dependientes, entre las
dos instrucciones para las que se produce riesgo
q Soluciones hardware : detectar el riesgo! è lógica de deteccción de riesgos
A. Detención : detener la ejecución uno o más ciclos Ý pérdida de ciclos
B. Anticipación : anticipar el resultado desde la etapa que lo produce, a la etapa
que lo consume Ý intenta reducir pérdida de ciclos
ò Etapas productoras de datos MIPS : EJ, M
ò Etapas consumidoras de datos MIPS : EJ, M
4 Tipos de cortocircuitos MIPS :
o EJ - EJ
o M - EJ
o M - M
Estructura de Computadores Tema 6 33
DI
M
DI
PE
4.1 Tratamiento de los riesgos de datos
A. Detención
q Unidad de detención de riesgos è Insertar burbujas en ID
add R2 , R1, R
sub R1, R2 , R
BI DI
BI EJ M PE
tiempo
7 Pérdida de dos ciclos de reloj
ck3 ck4 ck5 ck6 ck7 ck8 ck9 ck
DI
EJ
R2 correcto
PE
DI
tiempo
add R2 , R1, R
sub R1, R2 , R
BI DI EJ
BI DI
M
EJ M PE
PE
4.1 Tratamiento de los riesgos de datos
B. Anticipación
q Unidad de adelantamiento è caminos de anticipación desde los registros
de segmentación a la entrada de las etapas que consumen el dato
o Cortocircuito EJ - EJ
4 No se pierde ningún ciclo de reloj
Estructura de Computadores Tema 6 37
ya está listo!
no está listo!
4.1 Tratamiento de los riesgos de datos
B. Anticipación
q Hay ciertos riesgos provocados por dependencias de datos, que no se
pueden resolver sólo con cortocircuitos
o Cortocircuito M - EJ + Detención
7 Pérdida de un ciclo de reloj
tiempo
lw R2 , 3 (R0)
add R2, R1, R
BI DI EJ M
BI DI EJ M
PE
PE
lw R2 , 3 (R0)
add R2, R1, R
BI DI EJ M
BI DI EJ M
PE
PE
4.2 Riesgos estructurales en el MIPS
q Provocados por dependencia de recursos (conflicto en los accesos a los
recursos del sistema)
q No aparecen en el MIPS segmentado que acabamos de ver
q Veamos una modificación al MIPS :
l Recordemos que el banco de registros sólo tiene un puerto de escritura
l Supongamos que en la etapa de memoria (4ª etapa), también se puede
escribir en el banco de registros (M-PE)
ò Instrucciones lw /sw accederían a memoria (M)
ò Instrucciones aritmético-lógicas accederían a banco registros (PE)
l Consideremos el código (no hay dependencias de datos) :
I
lw R2, 2(R0)
I
sub R3, R4, R
Estructura de Computadores Tema 6 39
tiempo
lw R2, 2 (R0)
sub R3, R4, R
BI DI EJ
BI DI EJ PE
PE
Acceso al banco de registos!
4.2 Riesgos estructurales : ejemplo
M
PE
PE
M
ck1 ck2 ck3 ck4 ck5 ck
I
I
4 Riesgo estructural entre I
e I
: acceso al puerto de escritura del banco de registros
en el ck 5
4.2 Tratamiento de los riesgos estructurales
q Soluciones software (Compilador)
l Insertar instrucciones nop después de cada instrucción que es origen de un
riesgo estructural
l Reordenación del código: insertar otras instrucciones no dependientes,
entre las dos instrucciones para las que se produce riesgo
q Soluciones hardware :
Detección de riesgos è^ hardware con lógica de detección de
riesgos estructurales
Técnicas de tratamiento :
l A. Detención : detener la ejecución uno o más ciclos insertando burbujas
Ý pérdida de ciclos
l B. Replicación de recursos : Ý intenta reducir la pérdida de ciclos
ò en el ejemplo (MIPS modificado), utilizar un banco de registros con más
puertos de escritura
ò Replicar o segmentar las unidades funcionales en conflicto