Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas,

Slides:



Advertisements
Presentaciones similares
Arquitectura RISC & CISC y DSP
Advertisements

Procesadores Superescalares
El modelo de Von Neumann
Arquitectura de Computadores I
UNIVERSIDAD DEL VALLE DE MEXICO CAMPUS CHAPULTEPEC
Estructuras segmentadas
Arquitectura de Computadores I
ARQUITECTURA DE COMPUTADORES - VON NEUMANN MODEL
PROCESADORES SUPERESCALARES
Departamento de Ingeniería de Sistemas Universidad de Antioquia
Departamento de Ingeniería de Sistemas Universidad de Antioquia
PROCESADORES SUPERESCALARES Y VLIW
Arquitectura de Computadores
Pipelines: Riesgos.
EL Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Arquitectura Segmentada Pipeline (Segmentación)
EMISION MULTIPLE DE INSTRUCCIONES
Mejoras a las Máquinas Von Neumann
Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento-
PLANIFICACIÓN DINÁMICA DE INSTRUCCIONES
Unidad 2: Organización del CPU
Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento-
INGENIERIA DE COMPUTADORES II
ARQUITECTURA DE MÁQUINAS COMPUTADORAS III
EL MICROPROCESADOR.
Programación en los procecesadores Intel® Multi Core.
P(C) = m * nMAXIMO GRADO DE PARALELISMO WSBS ha sido llamado el procesamiento en serie de bits, ya que se procesa un bit por vez (n = m = 1). Es el procesamiento.
5º Microprocesadores para comunicaciones
Organización del Computador I Verano MIPS (1 de 2) Basado en el capítulo 3 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
Procesador Introducción - Funcionamiento - Memoria caché
Segmentación No Lineal
Pipelines Paralelismo Temporal y Espacial Ciclo de ejecución
Memoria Cachés. Universidad de SonoraArquitectura de Computadoras2 Introducción Caché es el nivel de memoria situada entre el procesador y la memoria.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Universidad Tecnológica de la Selva Ing. Emmanuel Gordillo Espinoza.
Scheduling dinámico Algoritmo de Tomasulo.
Organización de Computadoras
MICROCONTROLADORES NOCIONES BÁSICAS COMPUTO II. ¿QUÉ ES UN MICROCONTROLADOR? MICROCONTROLADOR = MICROPROCESADOR + MEMORIA + PERIFERICOS.
Unidad 2: Segmentación Excepciones en la Segmentación Docente: Ing. José Díaz Chow ARQUITECTURA DE MÁQUINAS COMPUTADORAS III.
Tema 2: Lenguaje máquina
Arquitectura de Von Neumann
PROCESADOR Por: Luis Gonzaga Trujillo Cuervo USCO
Tema 2. CPU: Introducción
Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento-
Departamento de Ingeniería de Sistemas Universidad de Antioquia
“Organización y Arquitectura de Computadores” William Stallings
Organización del Computador I Verano Procesador Segmentado Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
Michael Carter Joshua Carvacho Magdalena Von Borries 1.
Sistemas Operativos Avanzados
Microprocesador.
Sánchez Manjarrez Silvana Ing. Daniel Domínguez C. México, D.F. a 13 de septiembre del 2006 Arquitectura de Computadoras Arquitecturas CISC Y RISC Campus.
Hecho por: M.C. Luis Fernando Guzmán Nateras v3 Organización de Computadoras Preparación: Examen 1 JEOPARDY.
Informática Clase Arquitectura de la Computadora.
RENDIMIENTO DEL COMPUTADOR
CPU. Laura Ayala.
Instruction fetch cycle (IF) IR
ARQUICTECTURA DE SERVIDORES
LOGO CPU. COMPANY LOGO DEFINICIÓNHISTORIA CPU DE TRANSISTORE S Y DE CIRCUITOS INTEGRADOS DISCRETOS MICROPROCES ADORES OPERACIÓN DEL CPU.
PROCESADORES SUPERESCALARES
Son los atributos de un sistema que son visibles para un programador, es decir aquellos atributos que impactan directamente en la ejecución lógica de un.
Principio unidad 1.
PROCESADORES.
E.A.P. “INGENIERÍA DE SISTEMAS” UNIVERSIDAD PERUANA UNION.
ARQUITECTURAS DE LOS SERVIDORES El computador tiene 2 aspectos para entender su funcionamiento al nivel de programación: Almacenamiento Procesamiento Para.
PROCESADOR SEBASTIAN MADRID PEREZ. ¿QUÉ ES UN PROCESADOR? El procesador, también conocido como CPU o micro, es el cerebro del PC. A pesar de que generalmente.
Ingeniería en Computación Centro Universitario UAEM Valle de México Arquitectura de Computadoras Elaborado por: Dra. Maricela Quintana López.
Santiago Restrepo Rodríguez
CAPITULO V Arquitectura de Von Neumann
Arquitectura de Computadoras (Taller) Semestre II de 2008.
Hiperpipeline Superescalares Arquitectura de Computadoras 2012.
Procesadores superescalares
Transcripción de la presentación:

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

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

(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

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

(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

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

Procesador Escalar Segmentado Organización Básica Memoria Principal instrucciones Procesador datos Aritmética R1 Rn Control

(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; 16-32 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

(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; 32-64 bits; < 100 MHz Ejemplos: MC68040, i80486, MC88110, i80860,PA-RISC, Sparc, R6000 ... 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

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

Procesador Superescalar Organización básica

(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; 32-64 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

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) ...

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

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)

Ejemplo de riesgos Código modificado R3b:= R3a op R5a (1) R4a:= R3b + 1 (2) R3c:= R5 + 1 (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)

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

> 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.

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

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

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

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

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

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

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

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)