Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porPedro Sánchez Muñoz Modificado hace 10 años
1
Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas,
Tema 2 Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales. -Técnicas para reducir el número de instrucciones por ciclo (CPI):Arquitecturas segmenta- das, superescalares y vectoriales. - Recuerdo básico de Arquitecturas segmentadas. Enfasis en “Trabas a la segmentación” - Arquitecturas superescalares: Recuerdo de hardware Límites y posibles remedios Enfasis en soluciones software: Planificación software Planificación de saltos Desenrolle de bucles Movimiento global de código - Arquitecturas vectoriales - Conclusiones Bibliografía: - Arquitectura de Computadores, J.L. Hennesst, D.A. Patterson, Mc Graw Hill - Superescalar Microprocessor design, M. Johnson, Prentice Hall
2
Computador de von Neumann
control Memoria Principal instrucciones datos control Unidad de Control Unidad Aritmética Entrada/ Salida control Procesador Dispositivos Periféricos Propiedades Clave: Las instrucciones y los datos se almacenan en la misma memoria Las instrucciones utilizan operandos escalares La ejecución del programa es inherentemente secuencial
3
(Micro-) Procesador Escalar
1a Generación Ejecución secuencial de instrucciones F: búsqueda D: decodificación D ALU D ALU D ALU F F F Instrucción 1 Instrucción 2 Instrucción 3 Años 70 <10K transistores; 4-8 bits; <10MHz Ejemplos: i4004,i8008/80, MC6800, MCS6502, Z80, F8 … Los primeros computadores personales eran juguetes (Altair 8800, Sphere 310, Kim-1, Apple II ….) N. Tredennick, Microprocessor-Based Computers, IEEE Computer, 29(10), Oct. 96, p.27-37
4
Procesador Escalar: Organización Básica
Memoria Principal load: Rx M[] Store: M[] Rx instrucciones Procesador datos Aritmética R1 Ri Rj <op> Rk Rn Control
5
(Micro-) Procesador Escalar
2a Generación Ejecución segmentada (superpuesta) de instrucciones, con pocas etapas F: búsqueda D: decodificación F D ALU Instrucción 1 F D ALU Instrucción 2 F D ALU Instrucción 3 F D ALU Instrucción 4 F D ALU Instrucción 5 Principios de años 80 < 150K transistores; 16 bits; < 20 MHz Ejemplos: MC68000, i8086/286, Z8000 … Primeros computadores personales (PC in ´81) y estaciones de trabajo (HP, DEC,Sun,SGI) N. Tredennick, Microprocessor-Based Computers, IEEE Computer, 29 (10), Oct. 96, p.27-37
6
Procesador Escalar Segmentado
Una unidad segmentada es una secuencia de etapas con la propiedad de que Nuevas operaciones pueden iniciarse mientras otras están en proceso H. Stone, High Performance Computer Architecture, Addison-Wesley, MS,1993 N P 1 IPC T = tc * * Objetivos: * Reducir tc * Emitir una instrucción por ciclo ( IPC=1 ) Rendimiento limitado por: * Instrucciones no numéricas * Dependencias de control y datos
7
Procesador Escalar Segmentado
Organización Básica Memoria Principal instrucciones Procesador datos Aritmética R1 Rn Control
8
(Micro-) Procesador Escalar
3a Generación Ejecución segmentada (superpuesta) de instrucciones, con muchas etapas (supersegmentación) F: búsqueda D: decodificación EA: dirección efectiva E: ejecución M: memoria WB: postescritura F D EA E M WB Instrucción 1 F D EA E M WB Instrucción 2 F D EA E M WB Instrucción 3 F D EA E M WB Instrucción 4 F D EA E M WB Instrucción 5 Mediados de los años 80 ~ 300K transistores; bits; < 50 MHz Ejemplos: MC68020, i80386, R2000/3000 … Microprocesadores con cache interna; primeros procesadores RISC N. Tredennick, Microprocessor-Based Computers, IEEE Computer, 29(10), Oct. 96, p.27-37
9
(Micro-) Procesador Escalar
4a Generación Ejecución segmentada (superpuesta) de instrucciones, con muchas etapas (supersegmentación) F: búsqueda D: decodificación EA: dirección efectiva E: ejecución M: memoria WB: postescritura F D EA E M WB Instrucción 1 F D EA E M WB Instrucción 2 F D EA E M WB Instrucción 3 F D EA E M WB Instrucción 4 F D EA E M WB Instrucción 5 F D EA E M WB Instrucción 6 Finales de los años 80, principios de los 90 < 2M transistores; bits; < 100 MHz Ejemplos: MC68040, i80486, MC88110, i80860,PA-RISC, Sparc, R La mayoría de microprocesadores usan arquitectura RISC, casi todos los fabricantes de workstations usan su propio microprocesador. N. Tredennick, Microprocessor-Based Computers, IEEE Computer, 29(10), Oct. 96, p.27-37
10
Procesador Superescalar
Permite la ejecución concurrente de instrucciones en la misma o en distintas “pipelines” M. Johnson, Superscalar Microprocessor Design, Prentice Hall, NJ, 1991 N P 1 IPC T = tc * * Objetivos: * Reducir tc * Emitir mas de una instrucción por ciclo ( IPC>1 ) Rendimiento limitado por: * Instrucciones no numéricas * Dependencias de control y datos
11
Procesador Superescalar
Organización básica
12
(Micro-) Procesador Escalar
Ejecución paralela y segmentada de 5a Generación instrucciones (superescalar desacoplado) F D EA E E E WB Instrucción 1 F D EA E E WB Instrucción 2 F D EA E E WB Instrucción 3 F D EA E E E WB Instrucción 4 F D EA E E WB Instrucción 5 F D EA M WB Instrucción 6 Mediados de 1990 y... < 10M transistores; bits; < 500 MHz Ejemplos: iP5/6, Hyper/Ultra Sparc, Alpha 21164, MIPS 8K/10K, PA-RISC 7K3/8K Computadores personales dominados principalmente por una familia de microprocesadores, fragmentación del mercado de las estaciones de trabajo, se aproximan ambos mercados. N. Tredennick, Microprocessor-Based Computers, IEEE Computer, 29(10), Oct. 96, p.27-37
13
Dependencias de Control y Datos
real Dependencia de datos: Ri RAW WAW ... Ri op Rj Dependencia de salida WAR Antidependencia Ri Dependencia de control: Nivel: ... Nivel Branch (cond) ...
14
Actuación Cuando se produce un riesgo hay que “parar” el sistema
En un procesador segmentado hay que: * Parar la instrucción que produce el riesgo * Parar las instrucciones que siguen a la que produce el riesgo * Continuar ejecutando instrucciones anteriores a la que produce el riesgo * No se buscan más instrucciones mientras permanece el riesgo continuar parar detección del riego ciclos de parada
15
Ejemplo de riesgos Código original R3:= R3 op R5 (1) R4:= R3 + 1 (2)
1) RAW (dependencia verdadera) La salida de (1), R3, es uno de los operandos en (2) 2) WAW (dependencia de salida) (1) y (3) intentan escribir en R3 3) WAR (antidependencia) La instrucción (3) no puede comenzar hasta que la instrucción (2) haya obtenido uno de sus operandos (R3)
16
Ejemplo de riesgos Código modificado R3b:= R3a op R5a (1)
R4a:= R3b + 1 (2) R3c:= R (3) R7a:= R3c op R4a (4) Riesgos: Sólo quedan los riesgos RAW (dependencia verdadera). La salida de (1), R3b, es uno de los operandos en (2) La salida de (3), R3c, es uno de los operandos en (4)
17
Paralelismo a nivel de instrucción
Ipc: media del número de instrucciones por ciclo de un programa suponiendo recursos hardware ilimitados (= 1/CPI) Factores que determinan ipc: 1) Dependencias de datos 2) Dependencias de flujo 3) Conflicto de recursos Determinación de ipc para distintos benchmarks Latencias: Ld, SUMF 2 ciclos; MULF 4; DIVF y fallo cache, 12 Instructions/Cycle 10 8 6 4 2 5diff ccom doduc grep latex nroff troff wolf awk compress espresso irsim linpack simple whetstone yacc gnuches spice2g6 ipc varía entre 1,3 (linpack) y 9 (troff). Media 3,3
18
> Benchmarks de propósito general no se pueden emitir muchas instrucciones en paralelo. Speedup 12 10 8 6 4 2 5diff ccom doduc grep latex nroff troff wolf awk compress espresso irsim linpack simple whetstone yacc gnuchess spice2g6 Aceleración (speed up) esperada = ipc (superescalar)/ipc(escalar) Media aceleración: 5,5 -> límite de rendimiento óptimo.
19
Efecto de los Saltos y la Dep. de Datos
Percentage of All Cycles Percentage of Zero-Issue and Single-Issue Cycles in an Ideal Supescalar Processor with Given Latencies and Caches
21
Paralelismo a nivel de máquina
Ipcm: media del número de instrucciones por ciclo para programas con paralelismo de instrucciones óptimo. Factores que determinan el paralelismo de máquina: - Número de instrucciones buscadas por ciclo - Número de Ufs - Mecanismos para encontrar instrucciones indep Emisión-finalización fuera de orden Renombre de registros Ventana de instrucciones Determinación del paralelismo máquina para distintos benchmarks Procesador base: procesador escalar con emisión fuera de orden, renombre de registros y Ufs Ld/St, SUMAF, MULF/DIVF Benchmarks: muy pocas instrucciones PF No hay fallos en cache
22
Duplicar Ld/St: más costoso y menos justificable
Window size (instructions) Window size (instructions) Speedup Without renaming Speedup With renaming + ld//st, + alu, +both: procesador con dos unidades Ld/St, dos alus, ambas cosas. Duplicar ALU: mejora el rendimiento (más si ventanas de instrucciones grandes): 40% inst usan ALU Duplicar Ld/St: más costoso y menos justificable
23
Superescalares: Modelo de desarrollo
4 decodificadores paralelos 2 ALUs 1 Shifter 1 L/S 1 Branch Unit 2 Write Back Issue Latency (cycles) Result Latency (cycles) Functional Unit single double single double Integer ALU (2) 1 n/a 1 n/a Barrel Shifter 1 n/a 1 n/a Branch Unit 1 n/a 1 n/a Load Unit 1 2 2 3 Store Unit 1 2 n/a n/a Memory (cache reload) 13 n/a 12 n/a Float Add 1 2 2 3 Float Multiply 1 2 4 6 Float Divide 12 27 12 27 Float Convert 1 2 2 4
24
Superescalares: Ejemplos de esquema de estudio
Supóngase un conjunto de 6 instrucciones con las siguientes características: I1 tarda dos ciclos en ejecutarse I3 e I4 requieren la misma unidad funcional I5 depende el valor producido por I4 I5 e I6 requieren la misma unidad funcional Decode Execute Writeback Cycle 1 I1 I2 I3 I4 I1 I2 2 I3 I4 I1 3 I4 I3 I1 I2 4 I5 I6 I4 5 I6 I5 I3 I4 6 I6 7 I5 I6 8 Superscalar Pipeline with In-Order Issue and In-Order Completion
25
Superscalar Pipeline with In-Order Issue and Out-of-Order Completion
Decode Execute Writeback Cycle 1 I1 I2 I3 I4 I1 I2 2 I4 I1 I3 I2 3 I5 I6 I4 I1 I3 4 I6 I5 I4 5 I6 I5 6 I6 7 Superscalar Pipeline with In-Order Issue and Out-of-Order Completion
26
Decode Window Execute Writeback Cycle I1 I2 1 I3 I4 I1, I2 I1 I2 2 I5 I6 I3, I4 I1 I3 I2 3 I4, I5, I6 I6 I4 I1 I3 4 I5 I5 I4 I6 5 I5 6 Superscalar Pipeline with Out-of-Order Issue and Out-of-Order Completion
27
Planificación software
Objetivo: Reordenar el código para mejorar el tiempo de ejecución Ayudar al hardware a descubrir instrucciones que se pueden ejecutar juntas Comenzar antes la secuencia de instrucciones que más tarde Evitar conflictos de recursos que aumenten el tiempo de ejecución Características del procesador superescalar Ejecución fuera de orden 2 ALUs, 1 UF desplazamiento, 1 UF saltos (latencias: 1 ciclo) 1 UF Load/Store completamente segmentada (latencia 2) * Loads se ejecutan en orden Cortocircuitos: en el último ciclo de ejecución leen el resultado las instrucciones dependientes. Escritura (en BR): en el ciclo siguiente el último ciclo de ejecución (máximo: dos escrituras por ciclo)
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.