Está en la página 1de 31

ARQUITECTURA DE COMPUTADORES I

Tema 3: Procesadores Superescalares

Lección 8: Introducción: Paralelismo entre Instrucciones y


Procesadores Superescalares

Curso 2011/2012
Bibliografía

1.  D. SIMA and T. FOUNTAIN, and P. KACSUK.


Advanced Computer Architectures: A Design Space Approach,
Addison Wesley, 1997.

2.  J. L. HENNESSY and D. A. PATTERSON.


Computer Architecture. A Quantitative Approach,
Morgan Kaufmann, 3rd edition, 2003.

3.  J. ORTEGA, M. ANGUITA y A. PRIETO.


Arquitectura de Computadores,
Thomson, 2005.

Arquitectura de Computadores I. Tema 3. Lección 8 2


Tema 3. Procesadores Superescalares

1.  Introducción: Motivación y Nota Histórica [Ortega 3.1; Sima 7.1.1]


1.  Motivación
2.  Definición e historia
3.  Ejemplos de procesadores superescalares
2.  Paralelismo entre instrucciones (ILP). Orden en Emisión y Finalización
3.  Aspectos del procesamiento Superescalar
1.  Decodificación Paralela y Predecodificación
2.  Emisión Paralela de Instrucciones. Estaciones de Reserva
3.  Renombrado de registros
4.  Mantenimiento de la Consistencia Secuencial. Reorden
4.  Procesamiento de Instrucciones de Salto
5.  Excepciones e Interrupciones
6.  Conexión Procesador-Memoria

Arquitectura de Computadores I. Tema 3. Lección 8 3


Motivación para el Procesamiento Superescalar (I)

Una única unidad para operaciones en coma flotante

Aparecen dependencias estructurales que dan lugar a que se pierdan ciclos

Arquitectura de Computadores I. Tema 3. Lección 8 4


Motivación para el Procesamiento Superescalar (II)

Varias unidades para operaciones en coma flotante

Se reduce el número de ciclos al poder ejecutarse varias operaciones al


mismo tiempo

Arquitectura de Computadores I. Tema 3. Lección 8 5


Motivación para el Procesamiento Superescalar (III)

Instrucciones que se ejecutan fuera de orden (I)

•  Las instrucciones pueden terminar de forma desordenada si existen


cauces diferentes con distinto número de etapas (distinta latencia).
Habría que comprobar los riesgos WAR y WAW en este caso.

•  En cualquier caso, en un procesador segmentado no se podría terminar


más de una instrucción por ciclo puesto que sólo hay una etapa WB

Arquitectura de Computadores I. Tema 3. Lección 8 6


Motivación para el Procesamiento Superescalar (IV)

Instrucciones que se ejecutan fuera de orden (II)

•  Dado que sólo una instrucción puede estar en la etapa MEM o en la etapa
WB, no se puede terminar más de una instrucción por ciclo.
•  Lo que se conseguiría con la utilización de varios cauces es reducir los
ciclos que se pierden.
•  Se podría conseguir mejores prestaciones si se pudieran tener varias
instrucciones en las distintas etapas (IF, ID, MEM y WB). Esta es la idea
del procesamiento superescalar.

Arquitectura de Computadores I. Tema 3. Lección 8 7


Procesadores Superescalares: Definición e Historia (I)

•  Un procesador superescalar es un procesador segmentado que puede


iniciar varias instrucciones (que se ejecutarían simultáneamente) y
terminar varias instrucciones por ciclo.
•  Consecuentemente su microarquitectura presenta una mayor complejidad.

Estructura de bloques de un procesador Estructura de un procesador con


segmentado con dos cauces etapas que trabajan simultáneamente
(Ejemplo: Pentium) con varias instrucciones

Arquitectura de Computadores I. Tema 3. Lección 8 8


Procesadores Superescalares: Definición e Historia (II)

Arquitectura de Computadores I. Tema 3. Lección 8 9


Ejemplos de Procesadores Superescalares (I)

Familia MIPS Sun SPARC

SPARC64
Microprocesador R8000 R10000 RM7000 SuperS SuperSII HyperS SPARC64 UltraS III
III

Año 1994 1995 1997 1991 1995 1995 1995 1997 1997

Frecuencia (MHz) 75 275 300 60 90 200 154 250 300

Superescalar
4 4 2 3 3 2 4 4 4
(emisión)

P P P
Interrupciones P/I P (Hist.) P P/I P/I P/I
(Check) (Check) (Check)

Dinam. Dinam.
Dinam. Dinam. Retard. Retard. Retard. Dinam.
Saltos (Predicción) Retard. (BTAC) (BTAC)
(BTAC) (BTH) Cod. Cnd Cod. Cnd Cod. Cnd (BTH)
(BTH) (BTH)

Segmentación
5 5 5 4 4 5 4 4 9
(Etapas)

Arquitectura de Computadores I. Tema 3. Lección 8 10


Ejemplos de Procesadores Superescalares (II)

Familia HP - PA DEC Alpha PowerPC

PA7300
Microprocesador PA8000 PA8500 21064 21164 21264 601 604 620
LC

Año 1995 1996 1998 1992 1996 1998 1993 1994 1996

Frecuencia (MHz) 160 180 400 200 200 600 80 133 200

Superescalar
2 4 4 2 4 4 3 4 4
(emisión)

Interrupciones - P (ROB) P (ROB) I I P P (ROB) P (ROB) P (ROB)

Retard.E Dinam. Dinam. Dinam. Dinam. Dinam.


Dinam. Dinam.
Saltos (Predicción) st. (S. (BTH) (BTH) (BTH) Estat. (BTH) (BTH)
(BTH) (BTH)
Atrás) (BTAC) (BTAC) (BTAC) (BTAC) (BTAC)

Segmentación
5 7 7 7 7 7/9 4 6 5
(Etapas)

Arquitectura de Computadores I. Tema 3. Lección 8 11


Ejemplos de Procesadores Superescalares (III)

Familia AMD Intel

Pentium Pentium Pentium


Microprocesador Athlon K7
II III 4

Año 1999 1997 1999 2000

Frecuencia (MHz) 1200 300 450 1400

6 uop (3 6 uop (3
Superescalar (emisión) 3 (x86) 3 uop
x86) x86)

Interrupciones Prec. Prec. Prec. Prec.

Saltos (Predicción) Dinam. Dinam. Dinam. Dinam.

Segmentación (Etapas) 9/11 (FP 15) 12 12 22/24

Arquitectura de Computadores I. Tema 3. Lección 8 12


Microarquitecturas de Intel

Arquitectura de Computadores I. Tema 3. Lección 8 13


Resumen de procesadores/microarquitecturas de Intel

Microarquitectura Microprocesador
Intel P6 Intel Pentium Pro
(cauce de 11 etapas; decodifica 6 uop/ciclo; Intel Pentium II/III
emite 3uop/ciclo; retira 3 uop/ciclo)
Intel Netburst Intel Pentium 4
(cauce de 22-24 etapas; decodifica 3 uop/ciclo Intel Xeon
con cache de traza; emite 3 uop/cilco; retira 3 Intel Pentium D
uop/ciclo) Intel Pentium Extreme Editions
Intel Mobile (Pentium M) Dual-core Intel Xeon
(cauce 12-14 etapas; decodifica como P6; Intel Core Solo
emite 5 uop/ciclo; retira 3 uop/ciclo) Intel Core Duo
Intel Core Intel Core 2
(cauce 14 etapas; decodifica 5 int/ciclo; emite 6 Intel Xeon serie 3000
uop/ciclo; retira 4 uop/ciclo……..) Intel Xeon serie 5100

Arquitectura de Computadores I. Tema 3. Lección 8 14


Microprocesadores P6 y P7 de Intel
Otras
Procesador Año Reloj (MHz) Cache L1(KB) Cache L2
Carac.
Pentium Pro 1993 100-200 8(I)+8(D) 256KB-1MB (Multichip)
256KB (on) – 512KB
Pentium II 1998 233-450 16(I)+16(D) MMX
(on)
Pentium II Xeon 1999 400-450 16(I)+16(D) 512KB-2MB (off) MMX
Celeron 1999 500-900 16(I)+16(D) 128KB
256KB (on) – 512KB
Pentium III 1999 450-1100 16(I)+16(D) SSE
(off)
Pentium III Xeon 2000 700-900 16(I)+16(D) 1MB – 2 MB (off) SSE
2001 1300-2000 256 KB (on)
Pentium 4 12(I)+8(D) SSE-II
2002 2000-2800 512 KB (on)
256-512 KB (on)
Pentium 4 2002 1400-2000 12(I)+8(D) SSE-II
512KB-2MB (L3 off)
Pentium 4
2004 3600 12(I)+8(D) 1 MB (on) SSE-II
(Prescott)
Pentium 4 Xeon
2004 4000 12(I)+8(D) 1 MB (on) SSE-II
Nocona (64 bits)
www.geek.com/procspec/procspec.htm

Arquitectura de Computadores I. Tema 3. Lección 8 15


Microprocesadores P7, M, y Core de Intel

Procesador Año Reloj (MHz) Cache L1 (KB) Cache L2 Otras Carac.


Pentium M 2004 1.0-2.1GHz 32 + 32 2MB 90nm
Pentium 4 Extreme 2004 3.46GHz 32 + 32 2MB Bus 1.066GHz
Pentium 4 2005 3GHz-3.6GHz 32 + 32 2MB EM64T, 90nm
Dual core, EM64T
Pentium D 920-950 2005 2.8-3.2GHz 32 + 32 2MB (por core)
65nm
Pentium Extreme
2006 3.73GHz 32 + 32 2MB (por core) Dual Core, 65nm
965
Pentium D 960 2006 3.60GHz 32 + 32 2MB (por core) Dual Core, 65nm
Dual Core, 65nm
Core 2 Duo 2006 2.66GHz 32 + 32 2MB (por core)
Bus 1.066GHz

http://www.intel.com/products/processor/index.htm?iid=home+hdr_nav2_processors

Arquitectura de Computadores I. Tema 3. Lección 8 16


Tema 3. Procesadores Superescalares

1.  Introducción: Motivación y Nota Histórica [Ortega 3.1; Sima 7.1.1]


2.  Paralelismo entre instrucciones (ILP). Orden en Emisión y Finalización
[Ortega 3.2]
3.  Aspectos del procesamiento Superescalar
1.  Decodificación Paralela y Predecodificación
2.  Emisión Paralela de Instrucciones. Estaciones de Reserva
3.  Renombrado de registros
4.  Mantenimiento de la Consistencia Secuencial. Reorden
4.  Procesamiento de Instrucciones de Salto
5.  Excepciones e Interrupciones
6.  Conexión Procesador-Memoria

Arquitectura de Computadores I. Tema 3. Lección 8 17


Paralelismo entre Instrucciones (ILP) y Paralelismo de la Máquina

Paralelismo entre Instrucciones Paralelismo de la Máquina


Depende de la frecuencia de las Determinado por el número de
dependencias de datos y control, y del instrucciones que pueden
retardo de la operación (tiempo hasta captarse y ejecutarse al mismo
que el resultado de una operación esté tiempo (número de cauces
disponible). paralelos) y por la velocidad y
los mecanismos que usa el
procesador para encontrar las
load r1, r2(23) dependencias entre
instrucciones
add r3,#1 (Paralelismo: 3)
add r4,r5
add r3, #1
add r4,r3 (Paralelismo: 1)
store (r4),r0

Arquitectura de Computadores I. Tema 3. Lección 8 18


Paralelismo entre Instrucciones (ILP): Límites

Los estudios de Tjaden-Flynn (1970) y Riseman-Foster (1972) concluyeron


que sólo se podía aprovechar un paralelismo entre instrucciones bajo (a no
ser que se utilizase un hardware muy complejo). Esto supuso un cierto freno
en la investigación y desarrollo de procesadores ILP hasta el trabajo de
Nicolau-Fisher (1984)
Resumen de estudios posteriores
Máquina Ideal Limitaciones
Programa
(IPC) (IPC)
Tjaden, Flynn: Detection of Parallel execution
gcc 54.8 2-35 of independent instructions . IEEE Trans. On
Computers, C19, pp.889-895. ctubre, 1970.
espresso 62.6 2-41
Riseman, Foster: Percolation of Code to
enhance parallel dispatching and execution .
li 17.9 2-16
IEEE Trans. On Computers, C21, pp.
fpppp 75.2 3-59
1411-1415. Diciembre, 1972.
Nicolau, Fisher: Measuring the parallelism
doducd 118.7 4-58 available for very long instruction words
architectures . IEEE Trans. On Computers, pp.
tomcatv 150.1 4-60 968-976. Noviembre, 1984.

Arquitectura de Computadores I. Tema 3. Lección 8 19


Procesamiento Superescalar de Instrucciones (I):
Fases del Procesamiento de una Instrucción
•  Captación de Instrucciones (IF)
Se llevan las instrucciones de la cache al procesador
•  Decodificación de Instrucciones (ID)
Se identifica qué operación hay que realizar y con qué operandos
•  Emisión de Instrucciones (Issue, ISS)
Las instrucciones esperan hasta que las unidades funcionales donde se van a
ejecutar están libres y los operandos que necesitan estén disponibles
•  Ejecución de Instrucción (EX)
Se realizan las operaciones codificadas en las instrucción (operaciones
aritméticas, lectura o escritura de memoria, determinación de si se produce salto
o no,..). Termina con la ejecución de los resultados en los registros intermedios
(Finish)
•  Escritura (WB)
Escritura de los resultados en los registros de la arquitectura (Commit, o
Complete)

Arquitectura de Computadores I. Tema 3. Lección 8 20


Procesamiento Superescalar de Instrucciones (II):
Etapas de un Cauce Superescalar .

Cache Pre- Cache Captación Cola de


L2 decodificación L1 (I) (IF) Instrucciones

Registros
Emisión Ventana de Instrucciones, Decodificación
de la
(ISS) ROB, Buffer de Renombrado, … (ID)
Arquitectura

Registros UF Registros UF Registros UF Registros UF

Escritura Unidad Unidad Unidad Unidad Ejecución


(WB) Funcional Funcional Funcional Funcional (EX)

Registro UF Registro UF Registro UF Registro UF

Arquitectura de Computadores I. Tema 3. Lección 8 21


Procesamiento Superescalar de Instrucciones (III)

•  En una secuencia de instrucciones se pueden distinguir tres tipos


de ordenaciones:
–  El orden en que se captan las instrucciones (el orden de las instrucciones en
el código)
–  El orden en que las instrucciones se ejecutan
–  El orden en que las instrucciones cambian los registros y la memoria.

•  El procesador debe ser capaz de identificar el paralelismo entre


instrucciones (ILP) que exista en el programa y organizar la
captación, decodificación y ejecución de instrucciones en
paralelo, utilizando eficazmente los recursos existentes.

•  Cuanto más sofisticado sea el procesador, menos tiene que ajustarse


a la ordenación de las instrucciones según se captan, para la
ejecución y modificación de los registros de cara a mejorar los
tiempos de ejecución. La única restricción es que el resultado del
programa sea correcto.

Arquitectura de Computadores I. Tema 3. Lección 8 22


Orden en Emisión y Finalización (I)

•  Emisión Ordenada con Finalización Ordenada

•  Emisión Ordenada con Finalización Desordenada

•  Emisión Desordenada con Finalización Ordenada

•  Emisión Desordenada con Finalización Desordenada

Arquitectura de Computadores I. Tema 3. Lección 8 23


Orden en Emisión y Finalización (II):
Ejemplo de Emisión Ordenada
i Instr. i Latencia
[1] add r4,r1,r2 (2) t
[2] mult r5,r1,r5 (5)
Cod-OP Registros de la Arquitectura
[3] sub r6,r5,r2 (2)
[4] sub r5,r4,r3 (2)

add
[1]
Emisión de [1] y [2] (tienen
sus operandos) mult
[2]

Aunque [4] tiene sus


operandos debe esperar

Emisión de [3] (tiene sus


operandos al terminar [2]) sub sub
y [4] [4] [3]

Arquitectura de Computadores I. Tema 3. Lección 8 24


Orden en Emisión y Finalización (III):
Ejemplo de Emisión Desordenada
i Instr. i Latencia
[1] add r4,r1,r2 (2) t
[2] mult r5,r1,r5 (5)
Cod-OP Registros de la Arquitectura
[3] sub r6,r5,r2 (2)
[4] sub r5,r4,r3 (2)

Emisión de [1] y [2] (tienen add


[1]
sus operandos)
mult
Emisión de [4] (tiene sus [2]
operandos al terminar [1])
sub
Emisión de [3] (tiene sus [4]
operandos al terminar [2])

Las instrucciones que esperan alguno de sus operandos para ser emitidas deberían
recibir dichos operandos lo más rápidamente posible (una vez obtenidos): sub
[3]
Implementar aspectos del Paradigma de Flujo de Datos

Arquitectura de Computadores I. Tema 3. Lección 8 25


Ejemplo: Ejecución de un Programa DLX
en un Procesador Segmentado
start: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

ld f2, a

addi r2, r0, #192

add r1, r0, xtop


ld f0, 0(r1)

ld f6, -8(r1)

multd f4, f6, f2

addd f6, f4, f2

addd f4, f0, f2

sd 0(r1), f4

sd -8(r1), f6
sub r2, r2, #16
bnez r2, loop
nop Etapas
trap #0 Existen varios sumadores IF OF EX M WB

Arquitectura de Computadores I. Tema 3. Lección 8 26


Ejemplo: Ejecución Superescalar de un Programa DLX
(Emisión Ordenada/Finalización Ordenada)
start: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

ld f2, a

addi r2, r0, #192

add r1, r0, xtop


ld f0, 0(r1)

ld f6, -8(r1)

multd f4, f6, f2

addd f6, f4, f2

addd f4, f0, f2

sd 0(r1), f4

sd -8(r1), f6
sub r2, r2, #16
bnez r2, loop
nop - Una unidad de carga y varias de almacenamiento Etapas
trap #0 - Tantas unidades de suma/producto como haga falta IF ID ISS EX WB

Arquitectura de Computadores I. Tema 3. Lección 8 27


Ejemplo: Ejecución Superescalar de un Programa DLX
(Emisión Ordenada/Finalización Desordenada)
start: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

ld f2, a

addi r2, r0, #192

add r1, r0, xtop


ld f0, 0(r1)

ld f6, -8(r1)

multd f4, f6, f2

addd f6, f4, f2

addd f4, f0, f2

sd 0(r1), f4

sd -8(r1), f6
sub r2, r2, #16
bnez r2, loop
nop - Una unidad de carga y varias de almacenamiento Etapas
trap #0 - Tantas unidades de suma/producto como haga falta IF ID ISS EX WB

Arquitectura de Computadores I. Tema 3. Lección 8 28


Ejemplo: Ejecución Superescalar de un Programa DLX
(Emisión Desordenada/Finalización Ordenada)
start: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

ld f2, a

addi r2, r0, #192

add r1, r0, xtop En las


instrucciones
ld f0, 0(r1) store, la
finalización y la
ld f6, -8(r1)
ejecución de la
multd f4, f6, f2 instrucción se
pueden
addd f6, f4, f2 considerar
coincidentes
addd f4, f0, f2

sd 0(r1), f4

sd -8(r1), f6
sub r2, r2, #16
bnez r2, loop
nop - Una unidad de carga y varias de almacenamiento Etapas
trap #0 - Tantas unidades de suma/producto como haga falta IF ID ISS EX WB

Arquitectura de Computadores I. Tema 3. Lección 8 29


Ejemplo: Ejecución Superescalar de un Programa DLX
(Emisión Desordenada/Finalización Desordenada)
start: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

ld f2, a

addi r2, r0, #192 WAW

add r1, r0, xtop


ld f0, 0(r1)

ld f6, -8(r1)

multd f4, f6, f2

addd f6, f4, f2

addd f4, f0, f2 WAR

sd 0(r1), f4

sd -8(r1), f6
sub r2, r2, #16
bnez r2, loop
nop - Una unidad de carga y varias de almacenamiento Etapas
trap #0 - Tantas unidades de suma/producto como haga falta IF ID ISS EX WB

Arquitectura de Computadores I. Tema 3. Lección 8 30


Para ampliar …

•  Páginas Web:
–  Journal of Instruction Level Parallelism http://www.jilp.org
(Primera revista con artículos de investigación en ILP en Internet).
•  Libros:
–  Stallings, W.: Organización y Arquitectura de Computadores . 5ª Edición,
Prentice Hall, 2000. (Capítulo 13: Paralelismo a Nivel de Instrucciones y
Procesadores Superescalares).
–  Johnson, M.: Superscalar Microprocessor Design . Englewood Cliffs, Prentice
Hall, 1991.
•  Artículos de Revistas:
–  Agerwala, T.; Cocke, J.: High Performance Reduced Instruction Set
Processors . IBM Tech. Report, Marzo, 1987. (Descripción del Proyecto
America y de la generación del término Superescalar).
–  Wall, D.W.: Limits of instruction-level parallelism . Rsearch Rep. 93/6, DEC.
Noviembre, 1993.

Arquitectura de Computadores I. Tema 3. Lección 8 31

También podría gustarte