Hiperpipeline Superescalares Arquitectura de Computadoras 2012.

Slides:



Advertisements
Presentaciones similares
Procesadores Superescalares
Advertisements

El modelo de Von Neumann
Arquitectura de Computadores I
Estructuras segmentadas
1.3. PROGRAMACION PARALELA
Multiprocesadores 3.1 Dominios de aplicación
ARQUITECTURA DE COMPUTADORES - VON NEUMANN MODEL
PROCESADORES SUPERESCALARES
Microprocesadores.
Fecha: 11/09/13.  Todos los sistemas distribuidos constan de varias CPU, organizadas de diversas formas.  La forma de interconectarlas entre sí. 
Hazards.
PROCESADORES SUPERESCALARES Y VLIW
Arquitectura de Computadores
Pipelines: Riesgos.
El procesador: la ruta de datos y el control (II Parte)
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
Composición Interna de un Procesador
Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento-
Sistemas Distribuidos y Paralelos
PROCESAMIENTO PARALELO.  Organización lógica ◦ Visión que tiene el programados  Capacidad de expresar tareas paralelas (Estructura de control)  Método.
PLANIFICACIÓN DINÁMICA DE INSTRUCCIONES
Centralizados y Distribuidos
Unidad 2: Organización del CPU
INGENIERIA DE COMPUTADORES II
ARQUITECTURA DE MÁQUINAS COMPUTADORAS III
Programación en los procecesadores Intel® Multi Core.
CONCEPTOS FUNDAMENTALES FORMAS DE ALMACENAR INFORMACION UNIDAD BASE DE INFORMACION: BIT BYTE = 8 BITS UN KILOBYTE = 1024 BYTES UN MEGABYTE = 1024 KILOBYTES.
Procesamiento paralelo
Segmentación No Lineal
INSTITUTO TECNOLÓGICO DE CD. GUZMÁN
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
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.),
Soporte HW para Administración de Memoria Cecilia Hernández
Scheduling dinámico Algoritmo de Tomasulo.
INTRODUCCIÓN FACTORES QUE IMPULSAN LA RENOVACIÓN EN ARQUITECTURA
TEMA 2: Organización de computadores
Organización de Computadoras
Unidad 2: Segmentación Excepciones en la Segmentación Docente: Ing. José Díaz Chow ARQUITECTURA DE MÁQUINAS COMPUTADORAS III.
TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS
Inst. Tec. de Morelia ISC BASES DE DATOS DISTRIBUIDAS VERANO DEL 2006 MC. Anastacio Antolino Hernández TAXONOMÍA DE FLYNN.
14 de diciembre de 2005 Universidad de Murcia1 Modelos de computadores paralelos Domingo Giménez Departamento de Informática y Sistemas Universidad de.
Arquitecturas Paralelas
PROGRAMACIÓN PARALELA Modelos de programación paralela Modelos computacionales Paradigmas de programación paralela Programación en memoria compartida:
Conclusión del curso. Universidad de SonoraArquitectura de Computadoras2 Temas cubiertos Lenguaje ensamblador MIPS. Diseño de una CPU tradicional. Datapath.
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
Sistemas Operativos Avanzados
Tema 5: Multiprocesadores
Universidad Politécnica de Tulancingo Catedrático Ing. Jorge Luis Neri Trejo Asignatura Ing. De Hardware III Tema Procesamiento Paralelo Presenta Verónica.
Microprocesador.
Estructura de los Sistemas Operativos
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.
Instruction fetch cycle (IF) IR
ARQUICTECTURA DE SERVIDORES
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.
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
Pontificia Universidad Católica de Chile
Arquitectura de Computadores IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia.
Arquitectura de Computadoras (Taller) Semestre II de 2008.
ORGANIZACIÓN DE COMPUTADORAS DRA. LETICIA FLORES PULIDO.
Apuntes preparados por Néstor González Valenzuela slide 1 Arquitecturas de Sistemas Distribuidos y Paralelos.
Pipelining Datapath y control.
Transcripción de la presentación:

Hiperpipeline Superescalares Arquitectura de Computadoras 2012

Extensión del pipeline para manejar operaciones multiciclo (unpipelined)

Extensión del pipeline para manejar operaciones multiciclo (pipelined) Unidad Funcional Latencia Intervalo de iniciación Integer ALU 11 FP add 41 FP/integer multiply 71 FP/integer divide 2525

Continuación 1- Aún pueden existir riesgos estructurales dado que la unidad de división no está implementada con pipeline. 2- Debido a que las instrucciones tienen variados tiempos de ejecución, el número de escrituras requeridos en un ciclo puede ser mayor que Son factibles los riesgos WAW, dado que las instrucciones alcanzan la etapa WB fuera del orden de iniciación. 4- Las instrucciones se completan en un orden distinto al de iniciación. 5- Debido a las latencia de operaciones mas largas los riesgos RAW son mas frecuentes.

Stalls RAW Ejemplo típico de secuencia de código de FP mostrando los stalls que surgen de los riesgos RAW.

Más puertos de escritura ?! Tres instrucciones tratan de realizar un write back a los registros de FP simultaneamente.

Hiperpipeline Subdividir aun mas el trabajo en un mayor número de etapas. Típicamente etapas de acceso de memoria y otras factibles de subdividir. Se obtienen frecuencias de reloj muy altas

El pipeline del MIPS R4000 IF-Primera mitad de búsqueda de instrucción. Selección de Pc, inicio de acceso IS-segunda mitad de búsqueda de instrucción. Completa acceso. RF-Decodificación de instrucción. Chequeo de hit. EX-Ejecución. DF-Busqueda de dato. Primera mitad de acceso a cache de datos. DS-Segunda mitad de búsqueda de datos. Compleción de acceso a cache de datos. TC-Chequeo de Tag. Determinación de hit. WB-Write Back.

La estructura del R4000 lleva a un load delay de 2 ciclos

Paralelismo a Nivel de Instrucciones Dependiencias de datos (RAW) Instrucción j depende de instrucción I si: Instrucción i produce un resultado usado por instrucción j Instrucción j es dato-dependiente de inst. K y k es dato-dependiente de I Dependencias de nombre Antidependencias (WAR) Dependencias de salida (WAW) Dependencias de Control Instrucción dentro del “then” no puede moverse antes del branch Instrucción que no depende del branch no puede moverse al “then”

Procesadores Superescalares

Latencias de Saltos

Administración Dinámica de Instrucciones Ejecución Fuera de Orden Etapa IF Busca y guarda en una cola de instrucciones Etapa ID (Instruction Decode) separada en dos etapas Issue: Decodificación, chequeo de riesgos estructurales Read operands: esperar hasta no riesgos de datos, leer operandos Etapa EX Las instrucciones puede tomar distintos ciclos de acuerdo a las undidades funcionales. Múltiples instrucciones en ejecución a la vez, ejecutándose fuera de orden Etapa WB

Camino de datos superescalar: Algoritmo de Tomasulo Buffers y control distribuido con unidades funcionales. Buffers llamados estaciones de reserva (RS). Acceso a registros es reemplazado por valores o punteros a estaciones de reserva. Resultados a unidades funcionales via RS con broadcast sobre un bus común de datos (CDB). Load y store tratados como unidades funcionales.

Camino de datos FP superescalar

Información en las estaciones de reserva

Ejemplo Riesgos RAW: resueltos por copia de de operandos o punteros en RS a espera de valores a calcular. Riesgos WAR y WAW: eliminados por renombrado de registros

Estado cuando todas las instrucciones se han despachado pero solo la Primera instrucción load se ha terminado.

Arquitecturas Very Long Instrucction Word (VLIW) Arquitecturas Multithreading (MT) Organización de Computadoras

Clasificación de Arquitecturas de Computadoras de Flynn Single instruction, single data stream (SISD) Single instruction, single data Multiple instruction, single data stream (MISD) Multiple instruction, single data Single instruction, multiple data streams (SIMD) Single instruction, multiple data Multiple instruction, multiple data streams (MIMD) Multiple instruction, multiple data

Procesadores SISD Un único flujo de instrucciones se ejecuta sobre un único flujo de datos. Corresponde a todos los procesadores convencionales, incluyendo a los superescales. Ejemplos: MIPS 32, Intel Pentium 4, Intel Core 2 solo.

Procesadores SIMD Un único flujo de instrucciones se ejecuta sobre un varios flujos de datos. Típicamente es una CPU que dispone múltiples elementos procesadores con datos almacenados localmente en cada elemento procesador. Ejemplo: Illiac IV

Multiprocesadores MIMD Fuertemente Acoplados Memoria Compartida: un espacio de direcciones UMA(Uniform Memory Access): SMP (Symmetric Multiprocessors) NUMA(Non UMA(Uniform Memory Access) Debilmente Acoplados Memoria Distribuida

Multiprocesadores conectados por un único bus

Multiprocesadores conectados por una Red

Algunas Topologías de Red

Árbol

Anillo

Más Topologías

Clusters El acoplamiento es aún más débil. Agrupamiento de computadoras estandar. N CPU-MEMORIAS, N Sistemas Operativos.

Frecuencia de los distintos tipos de computadoras.

Coherencia en Multiprocesadores Caches ahorran ancho de banda Compartir datos y modificarlos: coherencia Protocolos Snooping Directorio

Coherencia en Multiprocesadores Multiprocesador de un único bus interno usando coherencia por snooping

Protocolo Write-Invalidate

Arquitectura VLIW (Very Long Instruction Word) El compilador genera una palabra que contiene varias instrucciones que se pueden ejecutar en paralelo.

Procesamiento Multihilo (MT o multithreading) Ejecución concurrente de múltiples hilos (threads) de procesamiento, pertenecientes a un mismo programa o a diferentes programas. Esto puede verse como una ejecución alternada de instrucciones de cada uno de los hilos. Diferentes Políticas de Multithreading “CMP” (On-Chip MultiProcessor), “CMT” (Coarse-Grained MultiThreading), “FMT” (Fine-Grained MultiThreading), “SMT” (Simultaneous MultiThreading).

“SMT” (Simultaneous MultiThreading) SMT: Se ejecutan instrucciones de varios hilos distintos en un mismo ciclo de reloj. No es necesario duplicar unidades funcionales. El procesador coordina a las instrucciones que se ejecutan en forma paralela sobre las distintas unidades.

Visión de la arquitectura Modelo de Memoria Compartida

Desperdicios Vertical y Horizontal

Pipeline SMT

Requerimientos para SMT Pipeline básico no cambia Recursos replicados Program counters Register Maps Recursos compartidos Register files Cola de instrucciones Caches TLBs Predictores de saltos

Enfoque de Intel

Caches Compartidas competitivamente