Departamento de Ingeniería de Sistemas Universidad de Antioquia

Slides:



Advertisements
Presentaciones similares
Procesadores Superescalares
Advertisements

El modelo de Von Neumann
Arquitectura de Computadores I
Diseño de la ruta de datos monociclo para la arquitectura MIPS
UNIVERSIDAD DEL VALLE DE MEXICO CAMPUS CHAPULTEPEC
Fundamentos de Diseño de Software INFT.1
Estructuras segmentadas
ARQUITECTURA DE COMPUTADORES - PERFORMANCE
Arquitectura de Computadores I
I S A INSTRUCTION SET ARCHITECTURE
Arquitectura de Computadores I PIPELINING. Pipelining Un pipeline es una serie de etapas, en donde en cada etapa se realiza una porción de una tarea.
ARQUITECTURA DE COMPUTADORES - VON NEUMANN MODEL
Scheduling dinámico Scoreboarding.
PROCESADORES SUPERESCALARES
Hazards.
Departamento de Ingeniería de Sistemas Universidad de Antioquia
Departamento de Ingeniería de Sistemas Universidad de Antioquia
Departamento de Ingeniería de Sistemas Universidad de Antioquia
Departamento de Ingeniería de Sistemas Universidad de Antioquia
Circuitos Digitales II
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
Técnicas Digitales III Ejemplo de multiprocesamiento - Semáforo Universidad Tecnológica Nacional Facultad Regional San Nicolás.
Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento-
Análisis Diseño y Desarrollo
CLASE 11.
ISA (Instruction Set Architecture)
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-
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.
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.
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.
Scheduling dinámico Algoritmo de Tomasulo.
El procesador Creando un solo datapath. Universidad de SonoraArquitectura de Computadoras2 Introducción 1. Crear un solo datapath a partir de los datapaths.
Funcionamiento de la CPU
Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn.
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
Departamento de Ingeniería de Sistemas Universidad de Antioquia
Arquitectura de Computadoras Héctor Antonio Villa Martínez
Organización del Computador I Verano Procesador Segmentado Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
CLASE 13.
El procesador Diseño del control.
Cap. 6: Pipelining. Encauzamiento de procesadores
CLASE 14.
Capítulo 4 CPU y la memoria.
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.
RENDIMIENTO DEL COMPUTADOR
Rendimiento de la CPU y sus factores
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.
Organización del Computador I Verano Control Multiciclo Basado en el capítulo 5 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
Instruction fetch cycle (IF) IR
ARQUICTECTURA DE SERVIDORES
Capítulo 8 Segmentación de Instrucciones.
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.
PROCESADOR.- El procesador es el cerebro del sistema, encargado de procesar toda la información. Básicamente, es el "cerebro" de la computadora. Prácticamente,
Gestión de Memoria – Parte 2
Arquitectura de Computadoras (Taller) Semestre II de 2008.
Pipelining Datapath y control.
Pipelining Peligros (hazards).
Pipelining Introducción.
El procesador Datapath y control.
Transcripción de la presentación:

Departamento de Ingeniería de Sistemas Universidad de Antioquia 2010-1 ISI374 – Arquitectura de Computadores Clase 12: Segmentación (Pipelining) Pt.1 Departamento de Ingeniería de Sistemas Universidad de Antioquia 2010-1

Resumen La recurrente analogía con una lavandería Latencia, throughput Pasos en la ejecución de una instrucción MIPS Procesador MIPS segmentado Rendimiento del procesador segmentado Speedup del pipeline ISA y pipeline Riesgos (Hazards)

La recurrente analogía con una lavandería Tenemos cuatro canastas de ropa sucia para lavar, secar, doblar y guardar en el armario El lavado toma 30 minutos El secado toma 30 minutos El doblado toma 30 minutos Ubicar la ropa en el armario toma 30 minutos A B C D 3

Lavado secuencial 30 Time 6 PM 7 8 9 10 11 12 1 2 AM T a s k O r d e B El lavado secuencial toma 8 horas para 4 canastas

Lavado segmentado (pipelined) 12 2 AM 6 PM 7 8 9 10 11 1 Time 30 T a s k O r d e B C D A El lavado segmentado toma 3.5 horas para 4 cargas Speedup = 8 / 3.5 = 2.3 ¿Qué pasa si el número de canastas es grande? Speedup  Número de etapas Ej: 500 canastas toman (4+499)×0.5 = 251.5 horas Speedup = 500× 2 / 251.5 = 3.98

Recordatorio Latencia Tiempo necesario para ejecutar completamente una tarea (retardo) Throughput Cantidad de trabajo realizado en un periodo de tiempo (tasa)

Lecciones de la analogía La segmentación no reduce la latencia de una tarea, sino que eleva el throughput de un proceso completo Varias tareas operan simultáneamente usando recursos diferentes Speedup potencial: número de etapas del pipe El speedup se reduce porque hay que llenar (fill) y vaciar (flush) el pipeline (2.3× contra 4× en este ejemplo) 6 PM 7 8 9 10 Time 30 T a s k O r d e B C D A

Lecciones de la analogía Supongamos que las tareas de lavar y ubicar la ropa en el armario ahora toman 20 minutos cada una. ¿Qué tanto más rápido es el nuevo pipeline? La rata del pipeline está limitada por la etapa más lenta Etapas desequilibradas del pipeline reducen el speedup 6 PM 7 8 9 10 Time 30 20 T a s k O r d e B C D A Secuencial= 6.67 h Segmentado= 3.17 h Speedup= 2.11

Pasos en la ejecución de una instrucción MIPS IF: (Instruction Fetch) Búsqueda de la instrucción, actualización del PC ID: (Instruction Decode) Decodificación de la instrucción, lectura del banco de registros EX: (Execution) Instrucción de acceso a memoria: Cálculo de la dirección Instrucción aritmético-lógica: Cálculo de la operación MEM: (Memory) Load: Lectura de la memoria de datos Store: Escritura de la memoria de datos WB: (Write Back) Escritura del resultado en el banco de registros

Procesador MIPS segmentado Tendremos cinco etapas, una por cada paso de ejecución de una instrucción Cada etapa del pipeline se completa en un ciclo de reloj Cada instrucción toma el mismo número de etapas (5) para ejecutarse, aunque algunas de ellas estén inactivas algunas veces Mejora el throughput aunque la latencia de cada instrucción no se reduce Time cc 1 cc 2 cc 3 cc 4 cc 5 cc 6 cc 7 cc 8 cc 9 Una vez el pipeline está lleno, se finaliza una instrucción cada ciclo (CPI = 1) IF ID EX MEM WB Instr. i Instr. i+1 Instr. i+2 Instr. i+3 Instr. i+4

Rendimiento del procesador segmentado Ciclo de reloj del procesador monociclo asumiendo que los retrasos de todos los componentes son despreciables (incluidos los cables), excepto los de los siguientes, cuyo retraso se indica: Unidades de memoria: 200 ps ALU y sumadores: 200 ps Banco de registros (R/W): 100 ps Ciclo de reloj para la versión monociclo: 800 ps Ciclo de reloj de la versión segmentada: 200 ps Tipo de instrucción Memoria de instrucciones Lectura banco de registros Operación ALU Memoria de datos Escritura banco de registros Total Tipo R 200 100 600 ps Load word 800 ps Store word 700 ps Branch 500 ps

Rendimiento del procesador segmentado Monociclo (Tc= 800ps) Segmentado (Tc= 200ps) El tiempo de ciclo del pipeline está limitado por la etapa más lenta

Speedup del pipeline Si todas las etapas están balanceadas, es decir, todas tardan el mismo tiempo: Tiempo entre instruccionessegmentado = Bajo condiciones ideales y con un gran número de instrucciones, el speedup de la segmentación es aproximadamente igual al número de etapas del pipeline Si no está balanceado, el speedup es menor La segmentación eleva el rendimiento incrementando la tasa de ejecución de instrucciones (throughput), sin reducir el tiempo de ejecución de una instrucción individual (latencia) La tasa de ejecución de instrucciones es la medida que importa porque los programas ejecutan miles de millones de instrucciones Tiempo entre instruccionesno segmentado Número de etapas del pipe

ISA y segmentación La ISA del MIPS fue diseñada para una ejecución segmentada Todas las instrucciones son de la misma longitud Facilita la búsqueda de instrucciones en la primera etapa (IF) y su decodificación en la segunda (DE) Pocos formatos de instrucción Los campos de registros fuente ocupan el mismo lugar en cada formato Esta simetría permite que en la segunda etapa se lea el banco de registros a la misma vez que se determina el tipo de instrucción Los operandos de memoria sólo aparecen en las instrucciones load y store La etapa de ejecución (EX) se usa para calcular la dirección de memoria, y el acceso se produce en la siguiente etapa (MEM) Cada instrucción escribe a lo sumo un resultado y lo hace en las últimas etapas (MEM, WB) Alineamiento de memoria Los accesos a memoria se realizan en un solo ciclo de reloj

Representación gráfica del pipeline Útil para: Saber cuántos ciclos de reloj toma la ejecución de un código Saber qué hace una unidad funcional en un ciclo determinado Si ocurre un riesgo (hazard), saber porqué y saber cómo resolverlo

Riesgos (Hazards) El principio de la segmentación es simple pero su implementación introduce una serie de problemas Riesgos (Hazards) Situaciones en las cuales la próxima instrucción no puede ejecutarse en el siguiente ciclo de reloj Pueden obligar a detener (stall) el pipeline, evitando que se logre el speedup ideal Los riesgos se pueden resolver esperando, pero será el controlador del pipeline quien los detecte y resuelva Tipos: Riesgos estructurales (Structural hazards) Riesgos de datos (Data hazards) Riesgos de control (Control hazards)

Riesgos estructurales Se presentan cuando dos instrucciones diferentes intentar usar el mismo recurso simultáneamente Ej: ¿Qué sucede si el procesador tiene una memoria de un puerto, compartida para datos e instrucciones? Solución: Emplear memorias de datos e instrucciones independientes (I$ y D$). En general, replicar los recursos necesarios para permitir todas las combinaciones posibles de instrucciones en el pipeline

Riesgos estructurales ¿Qué sucede con los accesos al banco de registros? Para resolver el riesgo estructural al momento de acceder al banco de registros, las escrituras se realizan en la primera mitad del ciclo, y las lecturas en la segunda add $t0, $t1, $t2 Instr. 1 Instr. 2 add $s2, $t0, $s3 Clock Flanco de reloj que controla la escritura de resultados en el banco de registros Flanco de reloj que controla la lectura de operandos del banco de registros

Riesgos de datos Ocurren cuando una instrucción no puede ser ejecutada porque depende del resultado de una instrucción previa que no lo ha producido aún Ocurren cuando el pipeline modifica el orden de los accesos de lectura/escritura a los operandos tal que este orden difiere del orden visto por una ejecución secuencial no segmentada

Riesgos de datos Considere la ejecución segmentada de la siguiente secuencia de instrucciones: add $t0, $t1, $t2 sub $t3, $t0, $t4 and $t5, $t0, $t6 or $t7, $t0, $t8 nor $t9, $t0, $t9

Riesgos de datos Considere la ejecución segmentada de la siguiente secuencia de instrucciones: add $t0, $t1, $t2 sub $t3, $t0, $t4 and $t5, $t0, $t6 or $t7, $t0, $t8 nor $t9, $t0, $t9 Las dependencias de datos hacia atrás en el tiempo ocasionan riesgos de datos

Riesgos de datos Los riesgos de datos pueden afectar seriamente el rendimiento Una primera solución para evitarlos consiste en producir paradas en el pipeline para satisfacer las dependencias de datos add $s0, $t0, $t1 # También aplica con lw sub $t2, $s0, $t3 Bubble (burbuja), pipeline stall (parada del pipe)

Lecturas recomendadas Computer organization and design. The hardware/software Interface, 3rd ed., Chapter 6. D. Patterson & J. Hennessy. Morgan Kaufmann Publishers Computer architecture. A quantitative approach, 3rd ed., Appendix A. J Hennessy and D. Patterson. Morgan Kaufmann Publishers