Arquitectura Segmentada: Conceptos básicosb Diseño de Sistemas Digitales EL-3310 I SEMESTRE 2008 4 ARQUITECTURA SEGMENTADA (PIPELINING) (4 SEMANAS) 4.1 Conceptos básicos de la arquitectura segmentada Paralelismo a nivel de instrucciones Ventajas de la arquitectura segmentada Definición de riesgos estructurales, de datos, de control, atascos, riesgos de rama 4.2 Implementación de la arquitectura segmentada Flujo de datos segmentado Control segmentado Manejo de riesgos estructurales, de datos, de control, atascos, riesgos de rama 4.3 Manejo de excepciones e interrupciones en la arquitectura segmentada
Paralelismo Alto desempeño depende de dos factores: A nivel de programas, se define el paralelismo a nivel de instrucciones (ILP) Promedio de número de instrucciones en un programa que un procesador podría ejecutar simultáneamente Determinado por dependencias de datos y control A nivel de procesador, se define el paralelismo de máquina: Número de instrucciones que pueden ser leídas y ejecutadas simultáneamente Mejora del rendimiento por medio de: Arquitecturas encauzadas (segmentadas): traslape en ejecución de instrucciones Arquitecturas superescalares (emisión múltiple de instrucciones): varias rutas de datos independientes para procesamiento simultáneo de instrucciones Segmentación La segmentación (encauzamiento) depende de Paralelismo a nivel de instrucciones: dependencias de datos Paralelismo de máquina El rendimiento puede mejorarse con dos factores Rendimiento (Throughput) : número de instrucciones que se completan en un lapso de tiempo Tiempo de respuesta (Latency): tiempo requerido por una instrucción para pasar por todos los segmentos El concepto de segmentación es análogo al de una línea de producción Se divide la ejecución de instrucciones en etapas Cada etapa se conoce como segmento (pipe stage o pipe segment) Etapas de diferentes instrucciones pueden traslaparse La siguiente instrucción se inicia antes de que la instrucción actual se haya completado = paralelismo
Monociclo vs Encauzamiento Program execution Time order 200 400 600 800 1000 1200 1400 1600 1800 (in instructions) lw $1, 100($0) Instruction fetch ALU Data access lw $2, 200($0) 800 ps Instruction fetch ALU Data access lw $3, 300($0) 800 ps Instruction fetch Program execution Time order (in instructions) lw $1, 100($0) lw $2, 200($0) lw $3, 300($0) Instruction fetch 200 ps 200 400 600 800 1000 1200 1400 Instruction fetch 200 ps ALU Instruction fetch Data access ALU Data access ALU Data access 200 ps 200 ps 200 ps 200 ps 200 ps 800 ps Segmentación La segmentación no reduce el tiempo de respuesta para la instrucción (latency),sino mejora la cantidad de trabajo realizada en un lapso de tiempo (throughput) Tiempo de ejecución de instrucciones se reduce idealmente, como sigue: T entre instrucciones, segmentado = T entre instrucciones, no segmentado # Segmentos El ciclo de máquina se define como el tiempo necesario para avanzar un segmento
Etapas de Arquitectura Segmentada IF: Lectura de instrucción ID: Decodificación de instrucción/ciclo de búsqueda de registros Decodificar instrucción Leer registros de propósito general EX: Ejecución / ciclo de dirección efectiva Ejecución de operaciones de ALU MEM: Acceso a memoria / ciclo de finalización de rama Load, store y ramas WB: Ciclo de Retroescritura (write-back) Escribir resultados en registros Lectura de de instrucción Decodificación de de instrucción/ Búsqueda de de registros Ejecución/ Cálculo de de dirección efectiva Acceso Acceso a memoria/ Finalización de de rama rama Retroescritura Ejecución Paralela de Instrucciones IF ID EX MEM WB IF ID EX MEM WB IF : Instruction Fetch ID : Instruction Decode/ister Fetch EX : Execute/Address Calculation MEM : Memory Access WB : Write Back IF ID EX MEM WB IF ID EX MEM WB Segmentación de profundidad 5 IF ID EX MEM WB Ciclo de CPU actual
Etapas Básicas de la Segmentación Lectura de de instrucción (IF) (IF) Decodificación de de instrucción/ Búsqueda de de registros (ID) (ID) Decodificación de instrucción Transferencia de operandos del banco de registros a los registros de entrada de la ALU Pasos básicos de segmentación Ejecución/Cálculo de de dirección efectiva (EX) (EX) Contenido de registro de salida de ALU puede ser: El resultado de una operación aritmético-lógica en instrucciones registro-registro Una dirección efectiva de memoria, en instrucciones de referencia a memoria Dirección de salto/rama en instrucciones de transferencia de control
Pasos básicos de segmentación Acceso Acceso a memoria/ Finalización de de rama rama (MEM) (MEM) Retroescritura (WB) (WB) Acceso a memoria (MEM): Se escribe en la memoria el resultado de la operación o se revisa la condición de rama para decidir si se toma o no Retroescritura (WB): el resultado de la ejecución de una instrucción registroregistro o de carga se almacena en el banco de registros Segmentación n de Microarquitectura Monociclo
Modificaciones para Segmentación Inclusión de registros de encauzamiento para respaldo de ruta de datos y señales de control Correspondencia Microarquitectura-Segmentos
Correspondencia Microarquitectura-Segmentos Correspondencia Microarquitectura-Segmentos
Correspondencia Microarquitectura-Segmentos Correspondencia Microarquitectura-Segmentos
Modificación n para Retroescritura Ejemplo
Detalles de Modificaciones para Segmentación istros de Segmento Qué valores de la ruta de datos se respaldan en los registros de segmento? IF/ID: (64 bits) Corresponde al registro IR en la microarquitectura multiciclo Contiene la instrucción actual y la dirección de la siguiente instrucción ID/EX: (128 bits) Valores leídos de los registros Rs y Rd Dirección de la siguiente instrucción Valor inmediato extendido EX/MEM: (97 bits) Dirección de rama Resultado de ALU y bandera de cero Datos leídos de registro 2 MEM/WB: (64 bits) Datos leídos de memoria Resultado de ALU
Diseño o para Segmentación Aspectos de ISA que impactan la segmentación: Longitud de instrucción: fija facilita segmentación Pocos formatos de instrucción Campos fijos en formato de instrucción: decodificación simultánea de instrucción y registros Arquitectura: Arquitectura memoria-memoria requiere segmento de direccionamiento, acceso a memoria y ejecución arquitectura registro-registro disminuye profundidad de línea de segmentación Alineamiento de operandos en memoria No Idealidades en Arquitectura Segmentada El periodo de reloj está determinado por la etapa más lenta de la segmentación Idealmente cada segmento está activo en cada ciclo de reloj y debe poder ejecutarse cualquier combinación de operaciones No idealidades: Efectos de arranque y drenado Retardos de segmento desiguales Situaciones de transferencia de control que requieren drenado de segmentos Consideraciones de temporización: distribución de reloj y tiempos de setup y hold de los registros de segmento Atascos debido a riesgos de segmentación
Riesgos de Segmentación Riesgos de segmentación Fenómenos que impiden que la siguiente instrucción pueda ejecutarse en el siguiente ciclo de reloj Causan atascos en la segmentación 3 tipos: estructurales de datos de control Riesgo de datos: La segmentación cambia el orden de los accesos de escritura/lectura de los operandos Una instrucción podría necesitar un operando que es el resultado de una operación anterior que aún no se ha completado Riesgos de Segmentación Riesgo estructural: Combinación de instrucciones que no puede ejecutarse en paralelo debido a conflictos en el uso de recursos Un procesador tiene una unidad de hardware y dos instrucciones en la línea de segmentación que intentan utilizarla al mismo tiempo Riesgo de control: Debido a una rama, salto u otras instrucciones de control Una rama interrumpe el flujo secuencial de instrucciones, puesto que el PC debe actualizarse con la dirección de rama antes de continuar la ejecución del programa