Upload
martin-romero
View
219
Download
0
Embed Size (px)
Citation preview
8/8/2019 ARQII_02-Segmentacion
1/35
Segmentacin
William Stallings, Organizacin y Arquitectura deComputadores, Captulo 11: Estructura y funcin de la CPU.
John Hennessy David Patterson,Arquitectura deComputadores Un enfoque cuantitativo 1a Edicin
Captulo 6: Segmentacin(4a Edicin, Apndice A)
8/8/2019 ARQII_02-Segmentacion
2/35
8/8/2019 ARQII_02-Segmentacion
3/35
Fundamento: Slo una parte del hardware es utilizado en cada etapa delciclo de instruccin.
Definicin: Tcnica de implementacin (invisible al programador) quesuperpone, en el tiempo, las diferentes etapas del ciclo de instruccin.Explotacin del paralelismo entre partes de las instrucciones.
Ejemplo de la lnea de montaje (PIPELINE, tubera?). Aumentaproductividad, pero desmejora la latencia (la sincronizacin entre etapas escostosa).
Es imposible realizar una instruccin en un ciclo de reloj. El ptimoesperable sera realizar cada etapa del pipeline en un ciclo de reloj,alcanzando una productividad de una instruccin por ciclo.
Segmentacin
El ciclo de instruccin
8/8/2019 ARQII_02-Segmentacion
4/35
Segmentacin
El ciclo de instruccin
FETCH DECODE EXECUTE
MEM
ALU
UC
EJECUCION DELA INSTRUCCION
DECODIFICACION
CAPTACION DELA INSTRUCCION
FETCH DECODE EXECUTE
FETCH DECODE EXECUTEIns
truccin i
i+1
i+2
Ciclo
n n+1 n+2 n+3 n+4
Modelo muy simple. Qusucede cuando las instruccionescomienzan a sofisticarse?
8/8/2019 ARQII_02-Segmentacion
5/35
Segmentacin
El ciclo de instruccinCAPTACION DE
LA INSTRUCCION
DECODIFICACION
CAPTACION DELOPERANDO
EJECUCION DELA INSTRUCCION
CALCULO DIRDEL OPERANDO
ESCRITURA DELOPERANDO
MEMORIA
(datos)
MEMORIA
(datos)
MEMORIA
(programa)
ALU
ALU
UC
FI
DI
CO
FO
EI
WO
STALLINGS
CISC: operando en memoria
8/8/2019 ARQII_02-Segmentacion
6/35
Segmentacin
Stallings seis etapas
8/8/2019 ARQII_02-Segmentacion
7/35
Segmentacin
HP en cinco etapasRISC: carga/almacenamiento
1. FI: Captar la instruccin e incrementar PC2. ID: Decodificar instruccin y captar registros (Terminan saltos: 2c)3. EX: Tres opciones: calcular direccin efectiva, ALU R-R o ALU R-Inmediato4. MEM: Acceso a memoria (solo carga o almacenamiento) (Termina store: 4c)
5. WB: Escribir registro de salida (Termina el resto: 5c)
4c < CPI < 5c
8/8/2019 ARQII_02-Segmentacion
8/35
Segmentacin
HP en cinco etapas
8/8/2019 ARQII_02-Segmentacion
9/35
Segmentacin
HP en cinco etapas
8/8/2019 ARQII_02-Segmentacion
10/35
Segmentacin
HP en cinco etapas
8/8/2019 ARQII_02-Segmentacion
11/35
Las instrucciones deben poder ser descompuestas enketapas de menor duracin.
Las entradas de cada etapa kideben estar
determinadas nicamente por las salidas de la etapa
anterior ki-1. Las duraciones de las diferentes etapas t
ideben ser
comparables. El clock del pipeline estardeterminado por la etapa ms lenta (t=max{t
i}).
Segmentacin
Condiciones
Latencia de todas las instrucciones = k.t
Productividad mxima = 1/t
8/8/2019 ARQII_02-Segmentacion
12/35
Luego de k-1 ciclos las ketapas del pipeline estarn trabajando. Tericamente en ese momento el pipeline tiene la mxima
productividad (kinstrucciones simultneas) hasta que se altere lasecuencia (salto o interrupcin).
Si aumento el nmero de etapas, aumenta la productividad, hastacierto punto (ver luego).
Si el pipeline tiene ketapas de duracin t(duracin de la etapams larga), al ejecutarse un conjunto de n instrucciones, laaceleracin obtenida con esta tcnica puede expresarse como:
S= TT
P
= nkt
t k1 +nt= nkk+n1
k
Segmentacin
Aceleracin
OBJETIVOS DEL DISEADOR: Equilibrar las etapas (igual duracin),hacerlas independientes (que no compartan recursos) y mantenerlas
ocupadas (atenuar los efectos de los saltos y la dependencia de datos)
8/8/2019 ARQII_02-Segmentacion
13/35
8/8/2019 ARQII_02-Segmentacion
14/35
Retardo adicional al tener que presentar lainformacin entre etapas en registros intermedios(control de la segmentacin).
La nica opcin es implementar las etapas de igual
duracin y todas las instrucciones deben respetarlas.
Aumenta la complejidad de la CPU.
Difcil mantener el cauce completo debido a losriesgos de la segmentacin (a continuacin).
Segmentacin
Lmites en la implementacin
MAXIMO 6-9 ETAPAS
8/8/2019 ARQII_02-Segmentacion
15/35
80486 y Pentium: cinco etapas para instrucciones con enteros (FI,D1, D2, EX, WB) y ocho para instrucciones de punto flotante.
PowerPC: cuatro etapas para instrucciones con enteros y seis parainstrucciones de punto flotante.
H-P (DLX): cinco etapas (IF, ID, EX, MEM, WB).
PowerPC: Es una arquitectura de computadoras de tipo RISC introducida en1990 por la Alianza AIM, un consorcio de empresas compuesto por Apple,IBM y Motorola, de cuyas primeras letras, surgi la sigla. Los procesadores
de esta familia son producidos por IBM y Freescale Semiconductor que esla division de semiconductores y microprocesadores de Motorola, siendoutilizados principalmente en ordenadores o computadores Macintosh de
Apple Computer. Mas informacin en el sitio de IBM, Arquitecturas Power.Prctica de repaso: comparacin con Pentium en Stallings, captulos 1, 4 y11.
Segmentacin
Ejemplos
8/8/2019 ARQII_02-Segmentacion
16/35
HAZARDS: Situaciones que impiden la ejecucin de laprxima instruccin de la secuencia durante sucorrespondiente ciclo (el procesador queda detenido,suspendido, stalled, durante uno o ms ciclos). Todas lasinstrucciones posteriores son tambin suspendidas y no se
realiza una nueva captacin mientras dure la suspensin.Clasificacin:
Riesgos estructurales
Riesgos por dependencia de datos
Riesgos de control
Segmentacin
Riesgos de implementacin
8/8/2019 ARQII_02-Segmentacion
17/35
Sucede cuando un recurso (memoria, alu) debe ser utilizado por variasinstrucciones simultneamente.
Ejemplo: una instruccin de carga desde memoria impide el accesodurante un ciclo. El fetch de la instruccin i+3 debe ser suspendido.
Penalidad: 1 ciclo
Segmentacin > Riesgos
1. Riesgos estructurales
8/8/2019 ARQII_02-Segmentacion
18/35
Segmentacin > Riesgos > 1. Estructurales
Ejemplo
8/8/2019 ARQII_02-Segmentacion
19/35
Segmentacin > Riesgos > 1. Estructurales
Ejemplo (cont)
8/8/2019 ARQII_02-Segmentacion
20/35
Duplicacin de recursos, por ejemplo en el caso dela ALU.
Cache de datos e instrucciones independientes,para evitar los conflictos de memoria.
Un solo acceso a memoria de datos por instruccin(RISC).
Lectura y escritura simultnea del banco deregistros (RISC).
Las unidades funcionales de PF pueden ser a la vezsegmentadas para soportar varias instruccionessimultneas (ver ejercicio en la prctica).
Segmentacin > Riesgos > 1. Estructurales
Reduccin de los efectos
Segmentacin > Riesgos
8/8/2019 ARQII_02-Segmentacion
21/35
Sucede principalmente cuando una instruccin requiere undato generado por la ejecucin de una instruccin anteriorque an no ha finalizado.
Ejemplo:
Penalidad: 2 ciclos
Segmentacin > Riesgos
2. Riesgos por dependencia dedatos
8/8/2019 ARQII_02-Segmentacion
22/35
Para dos instrucciones consecutivas los riesgos pueden clasificarseen tres categoras, siendo la primera la ms usual.
RAW (read after write): la segunda instruccin lee un dato antesque la primera lo genere. Lee el dato antiguo.
WAR (write after read): la segunda escribe un destino antes quesea ledo por la primera. La primera toma el valor incorrecto(nuevo).
WAW (write after write): la segunda escribe un operando antes
de que sea escrito por la primera. Escrituras en ordenincorrecto. Queda lo escrito por la primera.
Segmentacin > Riesgos > 2. Dependencia de datos
Clasificacin
8/8/2019 ARQII_02-Segmentacion
23/35
ADELANTAMIENTO (forwarding,bypassing)
Camino adicional de HW.
El resultado de la ALU es realimentado
a su entrada, evitando el ciclo deescritura WO.
Penalidad: 1 ciclo (antes 2)
Segmentacin > Riesgos > 2. Dependencia de datos
Reduccin de los efectos
8/8/2019 ARQII_02-Segmentacion
24/35
Segmentacin > Riesgos > 2. Dependencia de datos
Forwarding
8/8/2019 ARQII_02-Segmentacion
25/35
Segmentacin > Riesgos > 2. Dependencia de datos
Forwarding (cont)
8/8/2019 ARQII_02-Segmentacion
26/35
Producidos por las instrucciones de salto.
Ejemplo salto incondicional: no se conoce la direccin de laprxima instruccin hasta despus del FO. Se realiza el fetchde la instruccin siguiente y luego se descarta.
Penalidad: 3 ciclos
Segmentacin > Riesgos
3. Riesgos de controlEfecto de las
INTERRUPCIONES
8/8/2019 ARQII_02-Segmentacion
27/35
Salto condicional que SALTA: no se conoce la direccin de laprxima instruccin hasta despus del EI.
Penalidad: 3 ciclos
Segmentacin > Riesgos > 3. De control
Ejemplo
8/8/2019 ARQII_02-Segmentacion
28/35
Ejemplo salto condicional que NO SALTA: no se conoce lacondicin hasta despus del EI, cuando la siguienteinstruccin puede continuar.
Penalidad: 2 ciclos
Existe penalidad aunque no salte!
Segmentacin > Riesgos > 3. De control
Ejemplo (cont)
8/8/2019 ARQII_02-Segmentacion
29/35
Las operaciones de control (condicionales o incondicionales)son muy frecuentes en los programas reales, por lo quepueden reducir drsticamente la performance del pipeline.
Estadsticas:
20-35% de las operaciones son saltos.
~65% de dichas operaciones toman el salto.
Hay casi el doble de saltos condicionales que de saltosincondicionales.
Segmentacin > Riesgos > 3. De control
Estadsticas
8/8/2019 ARQII_02-Segmentacion
30/35
Instruction fetch units y colas de instrucciones (hardwareadicional)
Buffer de bucles (pequea cache de instrucciones consecutivas)[CRAY-1]
tiles solo en el caso de saltos incondicionales.
Segmentacin > Riesgos > 3. De control
Reduccin de los efectos
8/8/2019 ARQII_02-Segmentacion
31/35
Flujos mltiples:Se siguen los dos caminos posibles, duplicando las partesiniciales del hardware.
Puede entrar en el cauce una nueva bifurcacin.
[IBM 370/168]Salto retardado:
Reordenamiento por compilador.
Luego de cada instruccin de salto hay un branch delay slot: la
instruccin siguiente se ejecuta.60-80% efectivo, si no NOP.
[RISC]
Segmentacin > Riesgos > 3. De control
Reduccin de los efectos (cont)
S t i Ri 3 D t l
8/8/2019 ARQII_02-Segmentacion
32/35
Prediccin de saltos: Esttica
Siempre salta o nunca salta [Motorola 68020] Depende de la direccion [PowerPC 601]
Dinmica Uno o dos bits (HW) asociados a cada instruccin de salto
[IBM 3090/400] Tabla de historia de saltos (memoria cache: tabla con
direccin de la instruccin de bifurcacin + bits de historia
+ destino) [AMD 29000]
NOTA: Ejecucin especulativa (no solo fetch, comienzo a ejecutar)
Segmentacin > Riesgos > 3. De control
Reduccin de los efectos (cont)
S t i Ri 3 D t l
8/8/2019 ARQII_02-Segmentacion
33/35
Esquema tpico de prediccin dinmica con dos bits: cambiar la
prediccin solo si suceden dos predicciones incorrectasconsecutivas (ver variantes).
Segmentacin > Riesgos > 3. De control
Reduccin de los efectos (cont)
Segmentacin > Riesgos
8/8/2019 ARQII_02-Segmentacion
34/35
Segmentacin > Riesgos
Resumen
RIESGOS ESTRUCTURALES(conflicto de recursos)
RIESGOS POR DEPENDENCIA DE DATOS(RAW-WAR-WAW)
RIESGOS DE CONTROL(saltos - interrupciones)
Segmentacin
8/8/2019 ARQII_02-Segmentacion
35/35
Las instrucciones son ejecutadas por la CPU como una secuencia de pasos.La ejecucin de instrucciones puede acelerarse sustancialmente utilizandosegmentacin (pipelining)
Un pipeline se organiza como una secuencia de k etapas. En un ciertoinstante puede haber k instrucciones activas en el pipeline. Ejemplo lneade montaje.
Aumentar el nmero de etapas aumenta la productividad, hasta ciertopunto.
Los riesgos (hazards) impiden mantener la mxima tasa. Los riesgosestructurales se deben a conflictos en la utilizacin de recursos. Tambinexisten riesgos por dependencia de datos y riesgos de control debidos a las
instrucciones de salto. Las instrucciones de salto pueden deteriorar significativamente la
performance del pipeline, por lo que deben aplicarse tcnicas que reduzcansus efectos.
Segmentacin
Sumario