590 likes | 890 Views
Arquitectura de Procesadores Procesadores Segmentados. 2 do Cuatrimestre de 1999. Segmentación y Paralelismo. Dos formas básicas para explotar el paralelismo en las arquitecturas paralelas Segmentación : solapamiento temporal Paralelismo : solapamiento espacial. Segmentación.
E N D
Arquitectura de ProcesadoresProcesadores Segmentados 2do Cuatrimestre de 1999
Segmentación y Paralelismo Dos formas básicas para explotar el paralelismo en las arquitecturas paralelas • Segmentación: solapamiento temporal • Paralelismo: solapamiento espacial Segmentados
Segmentació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 Segmentados
Fa Paralelismo 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 Segmentados
Segmentació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 Segmentados
Segmentación y Paralelismo Segmentación Paralelismo Procesadores Vectoriales Sistólicos SIMD (array) Segmentados VLIW Superescalares Multi-threaded Multicomputers Multiprocessors Segmentados
Multiplexores y Latches Multiplexores y Latches Tc Tc Etapa n Etapa 1 EU EU EU EU Multiplexores y Latches Multiplexores y Latches Estructura General del Pipeline
Estructura del Pipeline de Enteros de IBM Power1 (RS/6000) Ftech D-latch T-latch Instruction Buffer D-in T-in Control Register File S-out A-out B-out Decode Unit Decode/ Write Back S-latch A-latch B-latch Execute Unit Control Logic Unit * / Unit + Execute PSQ Address Cache Data Out Cache Data In Cache Cache Address
Medidas 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. Segmentados
Medidas 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 P=1/(2*12nsec)=44,6 MFLOPS Segmentados
Medidas de rendimiento Procesador Año Carac. Tc(nsec) Precision FADD FMUL FDIV FSQRT MC68040 1990 CISC, 40 s 7/3 9/5 42 107 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 - superescalar 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 PowerPC601 1992 RISC 20/15 s 4/1 4/1 17 - superescalar 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 - Segmentados
Medidas 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 PentiumPro 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 superescalar d 3/1 3/1 17 17 Segmentados
Medidas 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. Segmentados
Diseño del pipeline • Número de Etapas: • Ventajas: más profundo==> 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 Segmentados
Etapas del R3000 IF RD ALU/ EA Memoria WB WB operación D-Cache TLB I-Cache RF WB EA TLB IDEC IA 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
Ejemplo: del R3000 al R4000 IF RD ALU/ EA Memoria WB WB operación D-Cache ITLB I-Cache RF WB DA DTLB IDEC IA • 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
Ejemplo: del R3000 al R4000 IF RD ALU/ EA Memoria WB WB operación D-Cache TC ITLB I-Cache RF WB DA DTLB IDEC IA Reducción de latencias Reducción de latencias: ALU y L/S duplican velocidad I-Cac RF DTLB WB ITLB D-Cache D-Cache ITLB RF ALU WB TC ALU DTLB I-Cache Acceso Paralelo al TLB y a la Cache indexada virtualmente D-Cache ITLB RF WB TC DTLB ALU I-Cache
DFF IFS IFF RF EX DFS TC WB R4000 Supersegmentado DFF IFS IFF RF EX DFS TC WB • 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. Segmentados
IF RD ALU Mem WB WB DFF IFS IFF RF EX DFS TC WB R3000-R4000 IF RD ALU Mem WB WB DFF IFS IFF RF EX DFS TC WB • R3000 • ciclos de 60nseg • 5 etapas • avanza 1 etapa por ciclo ta tb • R4000 • ciclo base de 30nseg • 8 etapas • avanza 2 etapas por ciclo base Segmentados
Diseño del pipeline • Secuenciamiento de las etapas • Una etapa puede o no repetirse (multiplicaciones y divisiones) Segmentados
Diseñ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. Segmentados
Diseñ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 Segmentados
Aplicació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 Segmentados
Pipeline en la ejecución de instrucciones • Pipelines lógicos------> Pipelines físicos E1 E2 WB F I1 D I2 E1 E2 E3 E4 E5 WB E1 E2 DEC a 21064 A C WB Segmentados
Pipelines 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, Segmentados
Multiplicidad 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) Segmentados
Diferentes 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 Segmentados
Diferentes y múltiples Pipelines E1 WB F D E1 E2 E3 WB 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 CO WB I2 E1 E2 Segmentados E
Ejemplo:Pentium, Pipelines Lógicos Integer D2 E WB FP D2 C E1 E2 WB ER Load F D1 D2 C WB Store D2 C Branch D2 E1 E2 Segmentados
Pentium: 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 Segmentados
Pentium: 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 Segmentados
Pentium: 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
Pentium • 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).
Power PC 604: Pipelines Lógicos Single-Cycle Integer Pipe E Single-Cycle Integer Pipe E E1 E2 E3 Multi - Cycle Integer Pipe CMPL WB F D I E1 E2 E3 FP pipe E Branch E Load/Store
PowerPC 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 Segmentados
Pipelines de Enteros en RISC RISC 5 -etapas 4 -etapas F D E C WB F D E WB MIPS (excepto R8000 y R10000), HP PA7100 I860, Sparc, Am29000, PowerPC Segmentados
F D C A E WB Lect R Genera Dirección Obtiene operando Ejecuta Escribe resultado Pipelines de Enteros en CISC Registro-Memoria Segmentados
Pipelines de Enteros en CISC F D C A E WB Lect R Registro-Registro Ejecuta Escribe resultado Segmentados
Pipelines de Enteros en CISC F D C A E WB Lect R Genera Dirección Load Obtiene operando Escribe resultado Segmentados
Pipelines de Enteros en CISC F D C A E WB Lect R Genera Dirección Store Obtiene operando Segmentados
Pipelines de Enteros en CISC(2) F D C/E A C/E WB Lect R Genera Dirección Obtiene operando Registro-Memoria Ejecuta Escribe resultado Segmentados
Pipelines de Enteros en CISC(2) F D C/E A C/E WB Lect R Genera Dirección Ejecuta Memoria-Registro Escribe Resultado Segmentados
Pipelines de Enteros en CISC CISC 5 -etapas 6 -etapas F D A E/C WB F D A C E WB Pentium, i486 R8000, PA8000 MC68040 MC68060 Segmentados
Ejemplo: i486 Fetch D1 D2 Ex WB • 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. Segmentados
Pipeline 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 SuperSparc (1992) Power PC601(1993) R4000 (1992) Pentium (1993) 68060 (1993) a21164 (1994) Power 2 (1993) i960CA (1989) MC88110 (1991) PowerPC 603 (1993) PowerPC 604 (1995) PowerPC620 (1996) R8000 (1994) a21064 (1992) Segmentados
Pipeline de Instrucciones L/S • Secuencial con Fx • Master Pipeline • Paralelo con Fx • requiere recibir datos del Banco de Registros en paralelo con la ALU==> 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. Segmentados
Load 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-R3000 R4000 SuperSparc R6000 a 21064 R8000 PA 7100 PA 7200 a 21164 Power1 (RS/6000) PowerPC 601, 603 Power2 Segmentados
i486: LDU=0 cortocircuito MOV Reg1, Mem1 Fetch D1 D2 Ex WB ADD Reg1, Reg2 Fetch D1 D2 Ex WB MOV Mem2, Reg1 Fetch D1 D2 Ex WB Segmentados
PowerPC 603: LDU = 1 Load Fetch D Ea CPL WB C Dato Disponible Dato necesario LUD FX Fetch D Ex Ex CPL WB Segmentados