Title: Arquitectura de Procesadores Procesadores Segmentados
1Arquitectura de ProcesadoresProcesadores
Segmentados
2Segmentación y Paralelismo
- Dos formas básicas para explotar el paralelismo
en las arquitecturas paralelas - Segmentación solapamiento temporal
- Paralelismo solapamiento espacial
3Segmentación
- Descompone una determinada operación en n
suboperaciones a realizar en etapas distintas, de
manera que se puedan realizar n operaciones
simultáneas, cada una en una etapa distinta. - Divide una operación en suboperaciones
- Desacopla las suboperaciones
F
F2
F3
F1
4Paralelismo
- Realización Concurrente de cálculos, iguales o
distintos, sobre distintos conjuntos de datos por
parte de varias unidades funcionales. - Replica la Unidad Funcional
Fc
Fb
5Segmentación y Paralelismo
F1
X
Y
Z
F2
X
Y
Z
F3
X
Y
Z
Fa
X
X
X
Fb
Y
Y
Y
Fc
Z
Z
Z
6Segmentación y Paralelismo
- Segmentación Paralelismo
- Procesadores Vectoriales
- Sistólicos
- SIMD (array)
- Segmentados
- VLIW
- Superescalares
- Multi-threaded
- Multicomputers
- Multiprocessors
7Estructura General del Pipeline
8Estructura del Pipeline de Enteros de IBM Power1
(RS/6000)
Ftech
D-latch
T-latch
Instruction Buffer
D-in
T-in
Register File
Control
S-out
A-out
B-out
Decode Unit
Decode/ Write Back
S-latch
A-latch
B-latch
Execute Unit
Control
Logic Unit
/ Unit
Execute
Address
PSQ
Cache Data Out
Cache Data In
Cache
Cache Address
9Medidas de rendimiento
- Tiempo ciclo tiempo de la etapa más larga.
- Latencia tiempo que tarda el resultado de una
instrucción en estar disponible para su posterior
utilización. - Latencia debida al load
- Latencia debida al uso de un dato que una
instrucción precedente calcula - Intervalo de Iniciación (repetition rate) es el
más corto intervalo entre subsiguientes
instrucciones del pipeline. - Para el pipeline básico, el Intervalo de
Iniciación es 1 - Para una UF particular, por ejemplo la de
multiplicación, el Intervalo de Iniciación puede
ser de 2 o más ciclos.
10Medidas de rendimiento
- P rendimiento del pipeline número de
instrucciones que se pueden ejecutar por segundo
(intervalo de tiempo unitario)
I es el Intervalo de Iniciación del pipeline t
es el tiempo de ciclo
- Ejemplo multiplicación en el PowerPC 603
- P1/(212nsec)44,6 MFLOPS
11Medidas de rendimiento
Procesador Año Carac. Tc(nsec) Precision FADD FMUL
FDIV FSQRT MC68040 1990 CISC, 40 s 7/3 9/5 42 10
7 escalar d SuperSparc 1992 RISC,
30..17 s 1/1 3/1 6/4 8/6 superescalar d 9/7
12/10 a21064 1992 RISC 7/5 s 6/1 6/1 34 - supe
rescalar d 6/1 6/1 63 - HP PA 7100 1992 RISC 16/10
s 2/1 2/1 8 8 superescalar d 2/1 15 15 15 Powe
rPC601 1992 RISC 20/15 s 4/1 4/1 17 - superesca
lar d 5/2 31 - MC 88110 1993 RISC 20 s 5/1 6/1 30
- superescalar d 6/2 9/2 60 - PowerPC603 1993
RISC 15/12 s 3/1 3/1 18 - superescalar d - 4/2
33 -
12Medidas de rendimiento
Procesador Año Carac. Tc(nsec) Precision FADD FMUL
FDIV FSQRT Power2 1993 RISC, 18/15/14 s 2/1 2/1
27 superescalar d 2/1 2/1 Pentium 1993 CISC
, 16..5 s 3/1 3/1 39 70 superescalar d 3/1 3/1
39 70 e 3/1 3/1 39 70 Pentium Pro 1995 RISC
7/5 s 3/1 5/2 18 29 superescalar d 3/1 5/2
e 3/1 5/2 PowerPC604 1995 RISC 10..6.7 s
3/1 3/1 18 - superescalar d 3/1 3/1 18 - HP
PA 8000 1996 RISC 5.6 s 3/1 3/1 17 17 superesca
lar d 3/1 3/1 17 17
13Medidas de rendimiento
- Adiciones y Multiplicaciones se segmentan,
divisiones y raíz cuadrada no. - Las latencias de las operaciones no segmentadas
han ido decreciendo. - Las latencias de las operaciones segmentadas son
estables o dependen de la frecuencia del reloj.
14Diseño del pipeline
- Número de Etapas
- Ventajas más profundogt más paralelismo
- Desventajas
- aumentan las dependencias de datos y de control
- etapas desbalanceadas
- aumenta el sesgo del reloj
- Primeros procesadores pocas etapas (2 en RISC-1
3 en RISC II). Procesadores contemporáneos de 5
a 10. - Supersegmentados DEC línea a( a 21064 , a 21164
, a 21264) , Pentium , R4000, MC68060
15Etapas del R3000
Etapa Fase Función IF F1 Usando la TLB, traduce
una dirección virtual a una dirección física
(ITLB) IF F2 Acceso a la cache de instrucciones
(I-Cache) RD F1 Llega la instrucción leída de la
caché, comprueba tag y validez (I-Cache) RD
F2 Decodifica instrucción (IDEC) Lee el Banco
de Registros (RF) Si es un salto, calcula la
dirección de salto (IA) ALU F1 F2 Si es R-R,
se realiza la operación (ALU OP) ALU F1 Si es
salto, decide si saltar o no. ALU F1 Si es una
referencia a memoria, calcula su dirección
virtual (DA) ALU F2 Si es una referencia a
memoria, traduce su dirección virtual a física
(DTLB) MEM F1 Si es una referencia a memoria,
envía la dirección a la cache de datos
(D-cache) MEM F2 Si es una referencia a
memoria, recibe el dato de la caché y chequea el
tag. (TC) WB F1 Escribe en el Banco de Registros
16Ejemplo del R3000 al R4000
- Tecnología permite cortar por la mitad el tiempo
de ciclo - Acceder al Banco de Registros en la mitad de
tiempo - Incorporar la cache de instrucciones y de datos
dentro del chip
17Ejemplo del R3000 al R4000
18R4000 Supersegmentado
DFF
IFS
IFF
RF
EX
WB
TC
DFS
- Cada etapa opera a un múltiplo de la frecuencia
base grado de supersegmentación . Por ejemplo, 2
en R4000. - La frecuencia del reloj externo es la frecuencia
base. Internamente, la frecuencia del reloj se
multiplica por dos permitiendo la ejecución de
dos tareas en un ciclo - 8 etapas 8 instrucciones simultáneas
- El pipeline avanza a razón de dos etapas por
ciclo.
19R3000-R4000
IF
RD
ALU
WB
Mem
WB
DFF
IFS
IFF
RF
EX
WB
TC
DFS
ta
tb
- R3000
- ciclos de 60nseg
- 5 etapas
- avanza 1 etapa por ciclo
- R4000
- ciclo base de 30nseg
- 8 etapas
- avanza 2 etapas por ciclo base
20Diseño del pipeline
- Secuenciamiento de las etapas
- Una etapa puede o no repetirse (multiplicaciones
y divisiones)
21Diseño del pipeline
- Existencia de cortocircuitos
- Elimina los retardos (define-use) en las
operaciones de poca latencia (FX). - Todos los procesadores actuales los usan.
Excepción a 21064 tiene UN ciclo de retardo en
su pipeline de enteros - En las operaciones de FP, se reducen en un ciclo
los retardos utilizando cortocircuitos.
22Diseño del pipeline
- Síncronos o asíncronos
- Los procesadores actuales tienen todos pipelines
síncronos. - Resolución de Dependencias
Método de Resolución
Combinado MIPS-R R2000 y R3000. R6000, R4000
Estático MIPS i860
Dinámico La mayoría de los pipelines
23Aplicación de la técnica de pipeline
- Ejecución de secuencias de la misma operación
- Por ejemplo suma de los elementos de dos
vectores. Se usa para ejecutar instrucciones
vectoriales - Ejecución de instrucciones
- Ejecución de operaciones
24Pipeline en la ejecución de instrucciones
- Pipelines lógicos------gt Pipelines físicos
E1
E2
WB
F
I1
D
I2
E1
E2
E3
E4
E5
WB
E1
E2
DEC a 21064
A
C
WB
25Pipelines lógicos, Pipelines físicos
- Mismo Pipeline Físico para FX, FP, L/S y B MIPS
4200 (1994) - Mismo Pipeline Físico para FX, L/S y B master
pipeline - El adder de FX se utiliza para calcular
direcciones efectivas de L/S y B. - Ejemplos MIPS-X MIPS-R i486 Pentium
- Pipelines dedicados
- Múltiples pipelines especializados operando en
paralelo - Ejemplos Power-PC 603, 604, DEC a,
26Multiplicidad de Pipelines
- Algunos procesadores REPLICAN los pipelines
físicos - Las instrucciones más frecuentes son las de
aritmética entera y booleana (30-40). - Loads/Stores representan el 25 y 10
- Saltos, 30
- Ejemplos Pentium(1993) , Power2(1993) y DEC a
21164(1995)
27Diferentes y múltiples Pipelines
- Completan instrucciones fuera de orden
- Métodos para asegurar consistencia
- WB controlado por el software las instrucciones
de CF operan y hay una instrucción especial para
realizar la escritura.(sincronización copro con
el procesador principal) - Forzar terminación en orden
- Reorden en la etapa de finalización
28Diferentes y múltiples Pipelines
R2000- R3000 SPARC(198..) ARM 29000 (1987) i486
(1988) Pentium (1993)
PA7100 (1993) MC88110 (1993) Power2(1993) Power
603(1993) Power 604(1995) DEC a 21064 Pentium Pro
(1995)
E1
F
E1
E2
E3
WB
CO
I2
E1
E2
E
29EjemploPentium, Pipelines Lógicos
Integer
D2
E
WB
FP
D2
C
E1
E2
ER
WB
Load
F
D1
D2
C
WB
Store
D2
C
Branch
D2
E1
E2
30Pentium Etapas
- Fetch
- D1 Decodificación del código de operación.
- Integer Pipe
- Operaciones Registro-Registro D2 X WB
- Operaciones Registro-Memoria
- D2 calcula la dirección efectiva
- E accede a la cache
- E operación
- WB escribe en los registros
31Pentium Etapas
- Fetch
- D1 Decodificación del código de operación.
- FP Pipe
- D2 calcula la dirección efectiva
- C accede a la cache
- E se escribe el operando en los registros FP
- E operación (se repite lo que sea necesario)
- WB se escribe en FP registers
- ER reporte de excepciones
-
32Pentium Pipelines Físicos
Branch Prediction
Code cache
Prefetch Buffers
Decode-Issue
FP-Register File
U-Pipe
V-Pipe
FP MUL
FP ADD
FX-Register Cache
FP DIV
Data Cache
33Pentium
- Inicia 2 instrucciones de enteros por ciclo, o
una de enteros y una de CF. - 5 pipelines lógicos, 3 pipelines físicos dos
master que procesan load/store, Branch e Integer
y 1 pipeline de FP. - U-pipe procesa las 5 primeras etapas de FP-pipe
- Consistencia secuencial e interrupciones precisas
obtenidas por el método de retardar las
operaciones hasta que las más largas han
finalizado (sincronización).
34Power PC 604 Pipelines Lógicos
Single-Cycle Integer Pipe
E
Single-Cycle Integer Pipe
E
E1
E2
E3
Multi - Cycle Integer Pipe
WB
CMPL
D
I
F
E1
E3
E2
FP pipe
E
Branch
E
Load/Store
35Power PC 604 Pipelines Físicos
36PowerPC 604
- Cada pipeline lógico está implementado con una UF
dedicada. - Características más importantes
- Inicio 4 instrucciones por ciclo
- 6 UF, 2 Bancos de Registros
- Estaciones de Reserva (Ejecución en desorden)
- Buffer de Reorden en la etapa CMPL garantiza
terminación en orden (4 instrucciones por ciclo)
y excepciones precisas - Buffers de Renombre
- Predicción Dinámica
37Pipelines de Enteros en RISC
RISC
5 -etapas
4 -etapas
D
E
F
WB
C
D
E
F
WB
MIPS (excepto R8000 y R10000), HP PA7100
I860, Sparc, Am29000, PowerPC
38Pipelines de Enteros en CISC
Registro-Memoria
39Pipelines de Enteros en CISC
D
F
C
A
E
WB
Lect R
Registro-Registro
Ejecuta
Escribe resultado
40Pipelines de Enteros en CISC
D
F
C
A
E
WB
Lect R
Genera Dirección
Load
Obtiene operando
Escribe resultado
41Pipelines de Enteros en CISC
D
F
C
A
E
WB
Lect R
Genera Dirección
Store
Obtiene operando
42Pipelines de Enteros en CISC(2)
D
F
C/E
WB
A
C/E
Lect R
Genera Dirección
Obtiene operando
Registro-Memoria
Ejecuta
Escribe resultado
43Pipelines de Enteros en CISC(2)
D
F
C/E
WB
A
C/E
Lect R
Genera Dirección
Ejecuta
Memoria-Registro
Escribe Resultado
44Pipelines de Enteros en CISC
CISC
5 -etapas
6 -etapas
D
A
F
WB
E/C
D
E
F
WB
A
C
Pentium, i486 R8000, PA8000
MC68040 MC68060
45Ejemplo i486
- Fetch Mueve 16 bytes de la cache a la cola de
prefetch (5 instrucciones) - D1 Determina la longitud de la instrucción,
decodifica prefijos y códigos de operación - D2 Computa direcciones de operandos.
- Ex Acceso a Caché. Lectura de Registros.
Ejecución - WB Actualización de los registros con datos de
la ALU o de memoria. Incluye cortocircuito
ALU-ALU.
46Pipeline de Instrucciones L/S
Ejecución de L/S
Secuencial con Fx Direcciones son calculadas por
el pipeline FX
En Paralelo con FX Hay una UF dedicada
i960CA (1989) MC88110 (1991) PowerPC 603
(1993) PowerPC 604 (1995) PowerPC620
(1996) R8000 (1994) a21064 (1992)
SuperSparc (1992) Power PC601(1993) R4000 (1992)
Pentium (1993) 68060 (1993) a21164 (1994) Power
2 (1993)
47Pipeline de Instrucciones L/S
- Secuencial con Fx
- Master Pipeline
- Paralelo con Fx
- requiere recibir datos del Banco de Registros en
paralelo con la ALUgt puertos adicionales - pueden operar sincronizadamente con el resto de
los pipelines o de forma desacoplada. - El desacople se implementa mediante colas de
loads y stores pendientes.
48Load Use Delay
- Es un parámetro de la arquitectura y depende de
la estructura del pipeline y de la implementación
de la caché LUD - Puede ser resuelto estática o dinámicamente
0 1 2 o 3 i486 MIPSX MC 88100 Pentium R2000-R
3000 R4000 SuperSparc R6000 a 21064 R8000 PA
7100 PA 7200 a 21164 Power1 (RS/6000) PowerPC
601, 603 Power2
49i486 LDU0
cortocircuito
MOV Reg1, Mem1
Fetch
D1
D2
WB
Ex
ADD Reg1, Reg2
Fetch
D1
D2
WB
Ex
MOV Mem2, Reg1
Fetch
D1
D2
WB
Ex
50PowerPC 603 LDU 1
Fetch
D
Ea
WB
CPL
Load
C
Dato Disponible
LUD
Dato necesario
Fetch
D
WB
Ex
Ex
CPL
FX
51R4000 LDU2
DFF
IFS
IFF
RF
EX
WB
TC
DFS
Dato Disponible
LDU
Dato Necesario