Pipelines: Riesgos.

Slides:



Advertisements
Presentaciones similares
Arquitectura RISC & CISC y DSP
Advertisements

Procesadores Superescalares
El modelo de Von Neumann
Arquitectura de Computadores I
Arquitectura Introducción Paralelismo de grano muy fino
TEMA 3 ILP, Panificación dinámica, Predicción de saltos, Especulación
Estructuras segmentadas
Arquitectura de Computadores I
ARQUITECTURA DE COMPUTADORES - VON NEUMANN MODEL
Scheduling dinámico Scoreboarding.
PROCESADORES SUPERESCALARES
CICLO DE EJECUCION DE UNA INSTRUCCION
Hazards.
Departamento de Ingeniería de Sistemas Universidad de Antioquia
Arquitectura de Computadores
LECCIÓN 10. INTRODUCCIÓN AL CONTROL MICROPROGRAMADO
El procesador: la ruta de datos y el control (II Parte)
SEGMENTACIÓN DEL CAUCE
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
El nivel de la Microprogramación
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-

Procesadores VLIW y procesadores vectoriales
Microcomputadores Prof : Tatiana Marín R.. Sistema basado en microprocesador de 8 bits.
MICRO Y MACRO ARQUITECTURA
PLANIFICACIÓN DINÁMICA DE INSTRUCCIONES
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
Unidad 2: Segmentación 2.7. Dependencias de Datos Docente: Ing. José Díaz Chow.
Segmentación No Lineal
Pipelining Predicción dinámica de brincos. Universidad de SonoraArquitectura de Computadoras2 Introducción En base a la historia de la instrucción, predecir.
Pipelines Paralelismo Temporal y Espacial Ciclo de ejecución
Unidad 2: Segmentación Dependencias de Control Docente: ing. José Díaz Chow.
Gustavo Andrés Uribe Gómez
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.
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.),
Overview Sistemas Computacionales
Procesadores VLIW y procesadores vectoriales
Asignación de Espacio No Contiguo
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
Organización de Computadoras
Capítulo 7 Gestión de memoria.
Funcionamiento de la CPU
Unidad 2: Segmentación Excepciones en la Segmentación Docente: Ing. José Díaz Chow ARQUITECTURA DE MÁQUINAS COMPUTADORAS III.
Arquitectura de Von Neumann
Datapath para las instrucciones de carga y almacenamiento (load/store)
Departamento de Ingeniería de Sistemas Universidad de Antioquia
“Organización y Arquitectura de Computadores” William Stallings
Organización del Computador I Verano Memoria Virtual Basado en el capítulo 7 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn.
El procesador Diseño del control.
Cap. 6: Pipelining. Encauzamiento de procesadores
CLASE 14.
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.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 20 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 14 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
PROCESADORES SUPERESCALARES
Principio unidad 1.
3.4 PROCESAMIENTO DE LAS INSTRUCCIONES DE SALTO
Curso: Fundamentos de Computación
Arquitectura de Computadores
Gestión de Memoria – Parte 2
Arquitectura de Computadoras (Taller) Semestre II de 2008.
Arquitectura de Computadores Clase 22 Pipelining IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento.
Hiperpipeline Superescalares Arquitectura de Computadoras 2012.
Arquitectura 2013 Explicación 4.
Transcripción de la presentación:

Pipelines: Riesgos

Riesgos estructurales Sucede cuando un recurso (memoria, alu) debe ser utilizado por varias instrucciones simultáneamente. Ejemplo: una instrucción de carga desde memoria impide el acceso durante un ciclo. El fetch de la instrucción i+3 debe ser suspendido.

Reducción de los efectos -Duplicación de recursos, por ejemplo en el caso de la ALU - Cache de datos e instrucciones independientes, para evitar los conflictos de memoria. - Un solo acceso a memoria de datos por instrucción (RISC). - Lectura y escritura simultánea del banco de registros (RISC). - Las unidades funcionales de PF pueden ser a la vez segmentadas para soportar varias instrucciones simultáneas

Riesgos por dep. de datos Sucede principalmente cuando una instrucción requiere un dato generado por la ejecución de una instrucción anterior que aún no ha finalizado. Ejemplo: Penalidad: 2 ciclos

Tipos de Riesgos de Datos Para dos instrucciones consecutivas los riesgos pueden clasificarse en tres categorías, siendo la primera la más usual. - RAW (read after write): la segunda instrucción lee un dato antes que la primera lo genere. Lee el dato antiguo. - WAR (write after read): la segunda escribe un destino antes que sea leído por la primera. La primera toma el valor incorrecto (nuevo). - WAW (write after write): la segunda escribe un operando antes de que sea escrito por la primera. Escrituras en orden incorrecto. Queda lo escrito por la primera.

Reducción de los efectos Adelantamiento (Forwarding) Camino adicional de hardware: El resultado de la ALU es realimentado a su entrada, evitando el ciclo de escritura WO. Búsqueda del operando (FO) y Escritura del operando por la instrucción anterior se hacen en el mismo ciclo. Penalidad: 1 ciclos

Riesgos de control Producidos por las instrucciones de salto. Interrupciones. Ejemplo salto incondicional: no se conoce la dirección de la próxima instrucción hasta después del FO. Se realiza el fetch de la instrucción siguiente y luego se descarta. Penalidad: 3 ciclos

Riesgos de control Salto condicional que SALTA: no se conoce la dirección de la próxima instrucción hasta después del EI. Penalidad: 3 ciclos

Riesgos de control Ejemplo salto condicional que NO SALTA: no se conoce la condición hasta después del EI, cuando la siguiente instrucción puede continuar. Penalidad: 2 ciclos

Riesgos de control Las operaciones de control (condicionales o incondicionales) son muy frecuentes en los programas reales, por lo que pueden reducir drásticamente la performance del pipeline. Estadísticas: -20-35% de las operaciones son saltos. - ~65% de dichas operaciones toman el salto. - Hay casi el doble de saltos condicionales que de saltos incondicionales.

Reducción de los efectos Instruction fetch units y colas de instrucciones (hardware adicional) Buffer de bucles (pequeña cache de instrucciones consecutivas) Útiles solo en el caso de saltos incondicionales. Flujos múltiples: Se siguen los dos caminos posibles, duplicando las partes iniciales del hardware. Puede entrar en el cauce una nueva bifurcación. Salto retardado: Modificación del ciclo de instrucción, que requiere reordenamiento del código por parte del compilador. Luego de cada instrucción de salto hay un branch delay slot: la instrucción siguiente se ejecuta SIEMPRE. 60-80% efectivo, si no NOP.

Reducción de los efectos Predicción de saltos: - Estática -Siempre salta o nunca salta -Depende de la dirección - Dinámica - Uno o dos bits (HW) asociados a cada instrucción de salto -Tabla de historia de saltos (memoria cache: tabla con dirección de la instrucción de bifurcación + bits de historia + destino)

Reducción de los efectos Esquema típico de predicción dinámica con dos bits: cambiar la predicción solo si suceden dos predicciones incorrectas consecutivas