Descarga la aplicación para disfrutar aún más
Esta es una vista previa del archivo. Inicie sesión para ver el archivo original
apuntesArquitecturaComputadores/ATCtema3CacheMemVirtual.pdf Arquitectura y Tecnología de Computadores Departamento de Ingeniería Informática y Telecomunicaciones Escuela Politécnica Superior 4º Curso de Ingeniería de Telecomunicación Tema 3 : El sistema de Memoria El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 1 Contenidos 6.1.- Sistema de jerarquía de memoria. 6.2.- La memoria cache. Principios de operación. Organización. Esquemas de funcionamiento. Algoritmos de sustitución. 6.3 El Sistema de memoria Virtual Direccionamiento virtual: Paginación y Segmentación La unidad de Gestión de memoria (MMU): Funcionamiento del TLB 6.4.- Mecanismos para mejorar el sistema de memoria. Cache multinivel Cache virtual vs cache real Ejemplos: La unidad cache de microprocesadores actuales El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 2 Tecnología de los dispositivos de memoria ¿Por qué se debe mejorar el sistema de memoria? µProc 60%/año (2x/1.5año) DRAM 9%/año (2x/10 años)1 10 102 103 DRAM CPU 19 86 19 88 19 90 19 92 19 94 19 96 19 98 20 00 19 82 Gap rendimiento Procesador-Memoria (↑50%/año) “Ley de Moore” Año 19 80 19 84 R E N D IM IE N TO El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 3 Tecnología de los dispositivos de memoria ¿Cómo se puede mejorar un sistema de memoria? Organizando una jerarquía de memoria Memoria cache ( nivel L1, L2,L3) Aplicando el concepto de memoria virtual MMU y TLB Diseñando sistemas de conexionado CPU/MEM más eficientes, con el objetivo de obtener transferencia de datos a la máxima velocidad El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 4 Sistema de jerarquía de memoria Capacidad Tiempo de acceso Coste G.P.R. Cache Memoria Disco Cinta Instr./Datos Bloques Páginas Archivos Nivel superior Nivel inferior Más rápida Más grande Gestor Unidad de transfer. Prog./Comp. 1-8 Bytes Control cache 8-128 Bytes Sist. operativo 512-4kBytes Usuario MBytes G.P.R. 100’s Bytes ~ 1 ns Cache KBytes ~ 2-5 ns 10-2-10-3 $/bit Memoria Principal MBytes ~10-20 ns 10-5-10-6 $/bit Disco6 GBytes ~5-10 ms 10-7-10-8 $/bit Cinta TBytes ~sec-min 10-10 $/bit El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 5 Sistema de jerarquía de memoria ¿En qué se basa una jerarquía de memoria? El principio de Localidad: Los programas acceden a una porción relativamente pequeña del espacio de direcciones en cualquier instante de tiempo Existen dos diferentes tipos de localidad: Localidad Temporal: Códigos y datos accedidos recientemente, tienen una gran probabilidad de volver a ser accedidos en un futuro cercano. Localidad Espacial: Si un código o dato es referenciado, códigos o datos cuyas direcciones de memoria estén cerca de la anterior, tenderán a ser referenciados pronto. El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 6 Sistema de jerarquía de memoria ¿Qué se debe tener en cuenta al diseñar una jerarquía de memoria? ¿Dónde colocar un bloque en el nivel superior? ¿Cómo encontrar un bloque si este está en el nivel superior? ¿Qué bloque debe ser sustituido en caso de fallo? ¿Qué estrategia se debe seguir cuando se modifica (escribe) un bloque en el nivel superior? Memoria Nivel inferiorMemoria Nivel superiorA la CPU De la CPU Blk X CPU Blk Z Blk X Blk Y Blk Z Blk K El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 7 La memoria cache Definiciones: Cache: Memoria invisible, muy rápida y de pequeño tamaño entre el procesador y la memoria principal. H, frecuencia de aciertos (Hit rate): % de referencias a memoria que se encuentran en la cache. F, frecuencia de fallos (Miss rate): % de referencias a memoria que no se encuentran en la cache. F = 1-H tc, Tiempo de acceso a la cache: tiempo necesario para acceder a un dato de la cache. tB, penalización por fallo: tiempo necesario para reemplazar un bloque desde el nivel inferior, incluye el tiempo para llevarlo al procesador. El tiempo medio de acceso al sistema de memoria es: Un fallo en la cache AUMENTA el tiempo de ejecución de la instrucción implicada T = N I C PI + C D M ) TCPU C ICLO× ×( C D M = A ccesos M em oria N I Freq. fallos Penalización× × Bcacc tHtt )1( −+= El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 8 La memoria cache. Principios de operación CPU MEMORIA PRINCIPAL CACHE Directorio U.Control Dirección Datos Bloques El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 9 Directorio cache Realizado en memoria asociativa o memoria CAM (Content Addressable Memory). Señala si el dato solicitado por el procesador se encuentra en la cache. Si acierto (match) señala la dirección del bloque donde se encuentra el dato. Bloques cache Realizado en memoria SRAM Cada bloque contiene un número determinado de bytes a los que se accede en el caso de un acierto cache. Unidad de control Genera las señales de control para el funcionamiento de la unidad cache. La memoria cache. Principios de operación El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 10 La memoria cache. Organización Cache Completamente asociativa BITS DE ETIQUETA BYTE EN BLOQUE DIRECCION DIRECTORIO BLOQUES ¿Acierto? ó ¿Fallo? =? =? =? =? =? Si Acierto, dato a CPU El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 11 La memoria cache. Organización Ejemplo: Cache complet. asociativa de 512 Bytes, 8By/bloque 0045FF3 0 DIRECTORIO BLOQUES ¿Acierto? ó ¿Fallo? F A DIRECCION (32 b) 0045FF34100 0045FF3 0 54445F0 0 0045FF3 1 6632FF3 1 F045FF3 0 0F FA 00 FF 33 AA 0F 22 0FFA0.....A0F22 100 FF00FA0F F F F 64 comp. CPU 3b29b El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 12 La memoria cache. Organización Cache de correspondencia directa (Asociativa de 1 vía) BITS DE INDICEBITS DE ETIQUETA BYTE EN BLOQUE DIRECCION DIRECTORIO BLOQUES =? Si Acierto, dato a CPU ¿Acierto? ó ¿Fallo? El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 13 La memoria cache. Organización Ejemplo: Cache de correspondencia directa de 4kB y 16 By/Bloq 04FA067 4b DIRECCION (32 b) FA06704C DIRECTORIO BLOQUES A 2F3D0...0257F 8b20b C 00 FF FA067 2F 3D 00 A0 A0FF 25 7F A0003D2F C CPU El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 14 La memoria cache. Organización Cache asociativa por vías (N vías) BITS DE INDICEBITS DE ETIQUETA BYTE EN BLOQUE DIRECCION ¿Acierto? ó ¿Fallo? DIRECTORIO BLOQUES VIA-1 VIA-N =?=? Si Acierto, extrae dato de BL-1 ó BL-N y lo envía a la CPU BL-1 DIRECTORIO BLOQUES BL-N El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 15 La memoria cache. Organización Ejemplo: Cache de 4kB con 64 By/Bloq y asociativa de 4 vías AFA64 00 6b4b22b 00 8 452DD3FF...48 Bytes...4356FFCD3D3F4F3D00A03420 DIRECCION (32 b) AFA643081100 1100 VIA-3VIA-2 VIA-4VIA-1 3FAA.... 0 F 46FF....257A....AFA64 00 CDFF5643001000 CPU El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 16 Cache Correspondencia Directa VS Asociativa por N Vías CD necesita 1 comparador AV necesita N comparadores CD puede obtener los datos antes de producirse un acierto o fallo. AV dispone de los datos sólo tras la comparación, se necesita intercalar un multiplexor para seleccionar los datos de la vía en la que se produce el acierto. ¿Qué misión tienen los bits de validez (BV)? Si hay 1 BV por cada bloque ⇒ En caso de acierto si BV=‘0’, el bloque no contiene datos válidos. Si hay 1BV por cada palabra en el bloque ⇒ En caso de acierto, la palabra con BV a ‘0’ no contiene datos válidos. ¿Qué misión tiene el bit de modificación o suciedad (M)? Siempre asociado a un bloque. Si M=‘1’ ⇒ ha habido al menos una escritura en la cache que no ha sido escrita en memoria. La memoria cache. Organización El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 17 Operaciones de captura Captura a la demanda: Se carga un bloque (entero o parte) sólo cuando se referencia un dato en él contenido y se produce un fallo. Captura anticipativa: Se carga un bloque (entero) antes de ser referenciado. Captura selectiva: No siempre se carga un dato cuya referencia ha originado un fallo. Ejem: direcciones “no cacheables”. Operaciones de escritura y actualización de memoria Escritura Directa (ED) (Write Through): Se escribe al tiempo en la cache y en la memoria principal. Dos estrategias: EDAE y EDSAE. Post-Escritura (PE) (Write Back): Se actualiza la memoria principal, sólo al reemplazar un bloque. Dos modalidades dependiendo del bit M. La memoria cache. Esquemas de funcionamiento El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 18 La memoria cache. Esquemas de funcionamiento CPU MEMORIA PRINCIPAL CACHE Directorio U.Control Dirección Datos Bloques 1.- ED y PE: Operación de ACIERTO en lectura tacc AL = (H)(1 w)tC− Cache⇒CPU El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 19 La memoria cache. Esquemas de funcionamiento CPU MEMORIA PRINCIPAL CACHE Directorio U.Control Dirección Datos Bloques 2.- ED: Operación de FALLO en lectura tacc FL = (1- H)(1 w)tC− +(1- H)(1 w)tB− Cache⇒CPU MEM⇒Cache El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 20 La memoria cache. Esquemas de funcionamiento CPU MEMORIA PRINCIPAL CACHE Directorio U.Control Dirección Datos Bloques 2.- PE: Operación de FALLO en lectura tacc FL = (1- H)(1 w)tC− +(1- H)(1 w)tB− Cache⇒CPU Cache⇒MEM +(1- H)(1 w)w tM B− MEM⇒Cache El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 21 La memoria cache. Esquemas de funcionamiento CPU MEMORIA PRINCIPAL CACHE Directorio U.Control Dirección Datos Bloques 3.- ED: Operación de ACIERTO en escritura (H)(w)tC +(H)(w)(t tm C− ) CPU⇒Cache CPU⇒MEM tacc AW = (H)(w)t m = El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 22 La memoria cache. Esquemas de funcionamiento CPU MEMORIA PRINCIPAL CACHE Directorio U.Control Dirección Datos Bloques 3.- PE: Operación de ACIERTO en escritura tacc AW = (H)(w)tC CPU⇒Cache El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 23 La memoria cache. Esquemas de funcionamiento CPU MEMORIA PRINCIPAL CACHE Directorio U.Control Dirección Datos Bloques 2.- EDAE: Operación de FALLO en escritura tacc FW = (1- H)(w)tC +(1- H)(w)t B CPU⇒Cache CPU⇒MEM +(1- H)(w)(t - tm C ) MEM⇒Cache El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 24 La memoria cache. Esquemas de funcionamiento CPU MEMORIA PRINCIPAL CACHE Directorio U.Control Dirección Datos Bloques 2.- EDSAE: Operación de FALLO en escritura tacc FW = (1- H)(w)tC CPU⇒Cache CPU⇒MEM +(1- H)(w)(t - tm C )(1- H)(w)t m = El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 25 La memoria cache. Esquemas de funcionamiento CPU MEMORIA PRINCIPAL CACHE Directorio U.Control Dirección Datos Bloques 2.- PE: Operación de FALLO en escritura tacc FW = (1- H)(w)tC +(1- H)(w)t B CPU⇒Cache Cache⇒MEM +(1- H)(w)w tM B MEM⇒Cache El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 26 La memoria cache. Esquemas de funcionamiento Resumen de estrategias t t w(t t ) (1 H)tacc C m C B= + − + − Escritura Directa (EDAE): Escritura Directa (EDSAE): t t w(t t ) (1 H)(1- w)tacc C m C B= + − + − Post Escritura (PE): t t (1 H)(1+ w )tacc C M B= + − El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 27 La memoria cache. Esquemas de funcionamiento Algoritmos de reemplazamiento Aleatorio FIFO (First In First Out) LRU (Least Recently Used) Usando bits de control (N bloques ⇒ N! estados) Usando contadores asociados a cada bloque Usando una matriz de referencia( para un número N de bloques necesita (N x (N-1))/2) bits) El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 28 La memoria virtual ¿Qué se entiende por memoria virtual? El espacio de direcciones que ve una determinada tarea. Este espacio reside en el nivel inferior de la jerarquía de memoria. ¿Qué se entiende por memoria física o real ? El espacio de direcciones donde se ejecuta una determinada tarea. Este espacio reside en los niveles superiores de la jerarquía de memoria. DV{An-1..A0} CPU Traductor Automático de Direcciones MP Tratamiento de Faltas (S.O.) DR{Am-1..A0} MS MS1 MS2 MSi El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 29 Esquemas de funcionamiento de la MV Conceptos: ¿Cuál es el tamaño de los bloques de información que deben ser transferidos entre la memoria principal (MP) y la memoria secundaria (MS)? Organización por páginas: La memoria virtual y física están siempre divididas en bloques de igual tamaño denominados páginas. Una tarea ocupa un determinado número de páginas. Organización por segmentos: La memoria virtual y física se dividen en bloques de diferentes tamaños denominados segmentos. El tamaño y número de los segmentos dependen de la tarea que se desea ejecutar en cada instante. La estructura de la memoria varía con cada tarea a ejecutar. Organización por segmentos paginados: Los segmentos se dividen en páginas, la unidad de transferencia entre MS y MP es la página de tamaño único. El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 30 Paginación vs. Segmentación ¿Porqué es mejor paginación que segmentación? La partición en páginas es trasparente al programador. La dirección virtual está formada por una sola palabra, mientras que en segmentación está formada por dos, segmento y desplazamiento. Es fácil reemplazar un bloque ya que todos tienen el mismo tamaño. Elimina la fragmentación externa de memoria aunque no elimina completamente la interna. ¿Porqué es mejor segmentación que paginación? Facilita las operaciones con la memoria, ya que programas y tablas de datos tienen diferente tamaño. Permite compartir zonas de memoria entre procesos. Permite proteger zonas de memoria. Permite la existencia de varios espacios de direcciones, por lo que facilita la separación entre código y datos y la modificación independiente de programas. El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 31 Paginación: Mapeo de MV y MP 0 0 0 Dirección Virtual Dirección física o real Dirección de disco Traducción Tabla de páginas: contiene la información para traducir una dirección virtual a una dirección física o real. 0x8000800 0x3C00Disco ID 803C4 El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 32 Paginación: Terminología del sistema de MV Los bloques se denominan Páginas Una dirección virtual consite en: Un número de página virtual Un campo de offset dentro de la página (LSB de la dirección) Los fallos se denominan falta de página y se gestionan como excepciones. La tabla de páginas contiene la información para traducir una dirección virtual a una dirección física o real. Núm de pág virtual Offset 01131 El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 33 Tabla de páginas Registro ptr a tabla de páginas Núm. de página Virtual offset 1 Núm pág. real=MARCO MARCO offset valido Número de página real Conceptos:¿Cuáles son los mecanismos automáticos de traducción de la dirección virtual (DV) a la dirección física o real (DR)? => Tabla de páginas El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 34 Ejemplo de traducción de direcciones 0xFF000000 0x00004 0x0F3 1 0x020C0 0x020C0 0x0F3 valido Número de página real Dirección física = 0x020C00F3 El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 35 Ejemplo de traducción de direcciones Registro de tabla de páginas 0x00002 0x082 0 Direcc de disco valido Número de página real Excepción: fallo de página 1. Se para este proceso 2. Se obtiene de disco la página 3. Se actualizan los contenidos que van a ser sustituidos de MP 4. Se copia la pagina obtenida del disco en MP. 5. Actualiza la tabla de páginas 6. Se relanza el proceso. El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 36 Paginación Componentes y Recursos Necesarios a) Tabla de páginas de sustitución directa (Direct mapping) OFFSETD.V. Núm Pág. Virtual MARCO +… D.R. MARCO OFFSET INDICE MEMORIA CPU Inicio Tabla Pág El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 37 Paginación Ejemplo: Memoria: Virtual: 4GB (232), Real: 16MB (224). Páginas:4kB (212) Sustitución Directa ¡¡Como mínimo se necesita SRAM 220x12 bits!! 00000 12 b FFFFF D.R. 312 D00 MEMORIA{312D00} 312 + bit ctrl D.V. CPU {FFAACD00} D00FFAAC 20 b El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 38 Paginación b) Tabla de paginas por sustitución asociativa completa (Fully associative mapping) CPU OFFSET D.V. PAGINA MARCO+ bit ctrl D.R. MARCO OFFSET MEMORIA PAGINA ? ? ? El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 39 Paginación Ejemplo: Memoria: Virtual: 4GB (232), Real: 16MB (224). Páginas:4kB (212) Sustitución asociativa completa MEMORIA D.R. {312D00} D00312312+...FFAAC F A F D.V. CPU {FFAACD00} D00FFAAC F00 +...FFAAD FFF+...EFAAD 12 b20 b ¡¡Necesita un mínimo de CAM 220x20bits y SRAM 220x12 bits!! El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 40 Segmentación DESPLAZAMIENTOD.V. SEGMENTO DESCRIPTOR D.R. PUNTERO A TABLA DE SEG. MEMORIA CPU ¿Cómo se traduce la dirección virtual en real? >?,+ El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 41 ¿Qué contiene el descriptor de segmento? La dirección base del segmento: Sumada al desplazamiento indica la dirección de memoria real referenciada El tamaño del segmento: Debe ser superior al desplazamiento Los bits de control de la MMU Bit de presencia en memoria real Bit de protección contra escritura (segmento código) Bit de exclusión o para límitar accesos (seg. sistema) Los bits para los algoritmos de reemplazamiento LRU o similares Segmentación El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 42 D.R. DESPLAZAMIENTO D.V. SEGMENTO PUNTERO MEMORIA CPU >?BASE TAB PAGINA OFFSET MARCO OFFSETMARCO TAMAÑO ¿Cómo se traduce la dirección virtual en real? Segmentación-Paginada El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 43 Mejorar la gestión de la memoria virtual. ¿Cómo reducir el coste del sistema de traducción automática de direcciones sin perder rendimiento? Optimizando el tamaño de página Pag. Pequeñas.- Reducen la fragmentación, pero aumentan el trasiego (thrashing) Pag. Grandes.- Aumenta el rendimiento en el cambio MP⇔MS Utilizando traductores de menor tamaño, denominados TLB’s (Translation Look-Aside Buffers) Completamente asociativos Asociativos por vías (set associative mapping) Utilizando sistemas de paginación multinivel Se guardan en memoria rápida SRAM, sólo las páginas que con mayor probabilidad van a ser utilizadas Un sistema mixto con ambas opciones. El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 44 Mejorar la memoria virtual: TLB Intercalando una unidad de memoria (cache) que realice esta función denominada TLB(Translation Look-Aside Buffers) CPU MP MS Tratamiento de Faltas (S.O.) DR TLB DV Tablas de traducción Fallo DR Dato MMU El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 45 ¿Cuál es la información contenida en un elemento del TLB o de la tabla de páginas? El marco de página: con el offset permite obtener la dirección real Los bits para el control de la MMU Bit de presencia: activo a ’1’ indica la presencia de la página referenciada en memoria principal Bit de uso: activo a ’1’ indica que algún elemento de esa página ha sido referenciado Bit de modificación: activo a ’1’ indica que una dirección de la página ha sido modificada (escrita) Bit/s de protección o privilegios: supervisor, sólo lectura, no cacheable, otros... Bits de reemplazamiento: necesarios para aplicar alguno de los algoritmos de reemplazamiento, Reloj, LRU, etc... Mejorar la gestión de la memoria virtual. El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 46 PAGINA MARCOVIA-1 VIA-2 AF PAGINA MARCO Ejemplo: Memoria: Virtual: 4GB (232), Real: 16MB (224). Páginas:4kB (212) TLB asociativo por conjuntos de 2 vías y 16 entradas/vía 0 F CPU {FFAACD00} D00FFAA 12b16b 4b C FFAAAAFF 2F0 +... 312+... MEMORIA D.R. {312D00} D00312 La gestión de la memoria virtual: TLB El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 47 Paginación multinivel Sistema de paginación multinivel OFFSETD.V. Nivel 1 T.Pag. Nivel-1 o Directorio D.R. MARCO OFFSET MEMORIA CPU Nivel 2 Nivel n T. Pag. Nivel-2 T. Pag. Nivel-n Marco+bit Base N2 Base N3 Reg. Puntero Mejorar la gestión de la memoria virtual: El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 48 Ejemplo: Memoria Virtual: 4GB (232), Real: 16MB (224). Páginas:4kB (212) Sistema multipaginado de 3 niveles: (N1: 16 entradas y N2 y N3 con el mismo número de entradas. Tamaño del descriptor 4 bytes en todos los niveles) CPU {FFAACD00} D.V. D00FA 12b8b AC 8b F 4b 0 F Directorio 00 FF Tabla N2 00 FF Tabla N3 00 FF Tabla N3 AC 00 FF Tabla N2 FA 312 MEMD.R. {312D00} D00312 Paginación multinivel El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 49 Mejoras del sistema de memoria Mecanismos para mejorar el rendimiento Cache Reducir la tasa de fallos Aumentando el tamaño del bloque Aumentando el número de vías Caches independientes vs unificada Reducir la penalización por fallos Intercalar buffer de escritura Sistema cache de dos niveles Reducir el tiempo de acceso a la cache El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 50 Mejoras sistema de memoria Reducir la tasa de fallos: Aumentar el tamaño del bloque Tamaño del bloque (Bytes) Fr eq . F al lo s 0% 5% 10% 15% 20% 25% 16 32 64 12 8 25 6 1 kB 4 kB 16kB 64kB 256kB El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 51 Mejoras sistema de memoria Reducir la penalización por fallos: Caches de dos niveles Compromiso entre realizar caches mas rápidas o caches mas grandes Definiciones Frecuencia local de fallos (FLi).- Fallos en el nivel i / Accesos al nivel i Frecuencia global de fallos (FG).- Total Fallos / Accesos solicitados por la CPU. FG = FL1 x FL2 t t F (t F t )acc L1 L1 L2 L2 B2= + + El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 52 Mejoras sistema de memoria Reducir la penalización por fallos: ”Buffer” de escritura t t (1 H)tacc C B= + −Escritura Directa (EDAE): t t (1 H)(1- w)tacc C B= + − Post Escritura (PE): t t (1 H)tacc C B= + − Escritura Directa (EDSAE): CPU Cache MEM LEER BUFFER ESCRIBIR El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 53 Mejoras sistema de memoria Cache real DATO D.V. CPU CPU DV PAGINA OFFSET DR TLB =? =? =? =? =? B/BINDICE CACHE =? TAG DIR. BLOQUE TAG Caches virtuales y reales El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 54 Ejemplo.- DV: 32b; DR: 20b; Pag: 256 Bytes; TLB CA de 32 Entradas; Cache CD 256 Bytes, con 16 B/B. CD223540 D.V. [0A07B55C] CPU CPU 0A07B5 0A07B5 TLB =? =? =? =? =? C5 CACHE A 32 Comp. 3DC 3DC 33AA...CD223540 Funcionamiento óptimo en cache real de correspondencia directa se consigue con “ tamaño de la unidad cache igual que el tamaño de la página” Caches virtuales y reales El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 55 Caches virtuales y reales Cache Virtual DATO D.V. CPU CPU TAG B/BINDICE CACHE =? TAG DIR. BLOQUE MPV MPR+b TLB =? =? =? =? =? NPV OFFSET D.R A MemMPR OFFSET El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 56 Ejemplos: La unidad cache del Pentium Pentium (1993) Sistema cache interno (L1), con dos unidades independientes para instrucciones y datos de 8 kBytes cada una. Cache de asociativa de 2 vías con 32 Bytes/Bloque Estrategia de post-escritura. Posible configuración a escritura directa. Bus de enlace entre CPU y cache-instrucciones de 256 bits. Bus de enlace entre CPU y cache-datos de 32+32 (2 ALU-INT) o 64 bits (ALU-FP) Cache externa L2 256-512 kBytes asociativa de 2 vías, con 32,64, ó 128 Bytes/Bloque. Protocolo MESI para el control de coherencia de 2 bits. El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 57 Ejemplos: La unidad cache del Pentium Pentium P-II (1997) Sistema cache interno (L1), no unificado16+16 kB. LRU Cache de asociativa de 4 vías con 32 Bytes/Bloque. Cache de datos Non-Blocking. Protocolo MESI. EDAE. Cache externa L2 0kB(Celeron)-512kB(PIII)-2MB(Xeon). 4 vías, con 32 Bytes/Bloque. Pentium III (1999) Sistema cache interno (L1) igual que PII Cache L2 externa 512kB(PIII)-2MB(Xeon) 4 vías, con 32 Bytes/Bloque. Cache L2 interna 128kB*(Celeron)-256kB(PIII)-2MB(XeonA) 8 vías, con 32 Bytes/Bloque. El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 58 Ejemplos: La unidad cache del Pentium PowerPC 601 (1995) Sistema cache con una cache unificada de 32 kBytes asociativa de 8 vías y 32 Bytes/Bloque PowerPC 620 (1996) Sistema cache interno con dos unidades independientes para datos e instrucciones de 32 kBytes cada una. Asociativas de 8 vías y 64 Bytes/Bloque. Bus de enlace entre CPU y cache-instrucciones de 128 bits y de 64 bits entre CPU y cache-datos. Protocolo MESI para el control de coherencia de 3 bits El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 59 Ejemplo: La MMU del Pentium Cuatro formas de gestionar la memoria Sin segmentos y sin páginas: Memoria lógica (virtual) = Memoria Física Memoria segmentada pura: 16b segmento y 32b desplazamiento. Espacio virtual de 64TB (16 kTablas de 4GB, 8 globales y 8 locales). Espacio físico 4GB Memoria paginada pura: Memoria lineal de 4 Gb, en páginas de 4kB ó 4MB Segmentos paginados: DV {Seg(16b)+Despl(32b)} D.Lineal (32b) DR (32b) Dispone de una unidad TLB completamente asociativa de 32 entradas Cada descriptor de la tabla de segmentos ocupa 64 bits. Si se utiliza paginación, el directorio de páginas del proceso en curso, siempre se encuentra en memoria principal, cada elemento del directorio o de la tabla de páginas ocupa 32 bits El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 60 Ejemplo la MMU del Pentium Dirección Lógica 15 T. DESCRIP. SEG. GDTR/LDTR 213 SEGMENTO DESPLAZAMIENTO 0 031 DESCRIPTOR + DIRECTORIO PAGINA OFFSET Dirección Lineal 031 Dirección Física DIREC. PAGINAS TABLA PAGINAS MEMORIA PAGINA MARCO DATO CR3 210 22 11 212210 El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 61 Ejemplo: la MMU del Pentium El Sistema de Memoria Tema 3 /Universidad Autónoma de Madrid 62 Bibliografía COMPUTER ARCHITECTURE: Design and performance, 2ª Edition" Barry Wilkinson Prentice Hall International. 2ª Edition. 1996. "COMPUTER ARCHITECTURE: A Quantitative Approach". John L. Hennessy y David A. Patterson. 3rd Edition, Ed. Morgan Kaufmann 2001. "ESTRUCTURA Y DISEÑO DE COMPUTADORES interficie circuitería/programación". David A. Patterson y John L. Hennessy. Ed. Reverte 2000. Volumen. 1. "ORGANIZACIÓN Y ARQUITECTURA DE COMPUTADORES". W. Stallings. 5ª Edición. Prentice Hall 2000. Referencias WEB Memoria cache: http://www.slcentral.com/articles/00/10/cache/ apuntesArquitecturaComputadores/tema2ATCSegmentacion2008.pdf Arquitectura y Tecnología de Computadores Profesor: Francisco Javier Gómez Arribas Departamento de Ingeniería Informática y Telecomunicaciones Escuela Politécnica Superior 4º Curso de Ingeniería de Telecomunicación Tema 2 - DISEÑO DE UN PROCESADOR: Segmentación en la ejecución de instrucciones Segmentación Tema 2 /Universidad Autónoma de Madrid 1 Contenidos 2.1.-Fundamentos de diseño de un procesador. El repertorio de instrucciones. Procesadores con repertorio reducido de instrucciones RISC. Comparación entre procesadores CISC y RISC. 2.2.- La técnica de la segmentación. 2.3.- Diseño de un procesador con cauce de instrucciones segmentado. 2.4.- Limitaciones del cauce de instrucciones segmentado. Causas que producen perdidas de rendimiento por detención del pipeline. Conflictos por limitaciones estructurales. Conflictos por riesgos de control. Conflictos por dependencia de datos. 2.5.- Técnicas para evitar detenciones. Adelantamiento de datos. Predicción de saltos. Segmentación Tema 2 /Universidad Autónoma de Madrid 2 Arquitectura ISA: Especificación del conjunto de Instrucciones Recursos visibles al programador Formato Instrucciones, modos de direccionamiento. => CISC vs RISC Camino de datos Control ProcesadorInstruction Set Architecture => Reg. File Mux ALU Reg Mem Decod. Secuenciador Celdas Puertas Básicas El repertorio de Instrucciones Segmentación Tema 2 /Universidad Autónoma de Madrid 3 ADD y SUB addU rd, rs, rt OR Inmediato: ori rt, rs, imm16 LOAD y STORE Word lw rt, rs, imm16 sw rt, rs, imm16 SALTOS: beq rs, rt, imm16 jmp imm16 op rs rt rd shamt funct 061116212631 6 bits 6 bits5 bits5 bits5 bits5 bits op rs rt inmediato 016212631 6 bits 16 bits5 bits5 bits Todas las instrucciones de igual tamaño Los registros y los valores inmediatos en la misma posición Las operaciones se realizan entre registros Ejemplo de repertorio de Instrucciones: MIPS op inmediato 02631 6 bits 26 bits Tipo-R Tipo-I Tipo-J Segmentación Tema 2 /Universidad Autónoma de Madrid 4 Filosofía RISC “Hacer más sencillo y en consecuencia más rápido casi todas las tareas que se pueden ejecutar en un sistema CISC ” Instrucciones complejas Mejor no tenerlas Sustituirlas por software VLSI Un sistema sencillo ocupa menos espacio Un sistema sencillo es más rápido Facilita ejecución segmentada No utilizar Microcódigo, basta con controladores secuenciales (FSM) Minimizar riesgos estructurales de acceso a recursos Aumentar el paralelismo El repertorio de Instrucciones RISC Segmentación Tema 2 /Universidad Autónoma de Madrid 5 Utilizan arquitecturas Harvard. No se permiten códigos automodificables. Utilizan sistemas con cache de uno o mas niveles. Utilizan caches independientes para intrucciones y datos. Utilizan registros FIFO para precaptura de instrucciones. Sólo dos operaciones con memoria: LOAD Y STORE. Los accesos a memoria quedan minimizados por disponer de un gran número de registros internos. Algunos RISC utilizan registros internos como pila de memoria para guardar datos temporales entre subrutinas ( ventana de registros) Características de un RISC genérico Segmentación Tema 2 /Universidad Autónoma de Madrid 6 La ventana de registros en un sistema RISC SPARC R(31) : ENTRADA R(24) R(23) : LOCALES R(16) R(15) : SALIDA R(8) CWP+1 R(31) : ENTRADA R(24) R(23) : LOCALES R(16) R(15) : SALIDA R(8) CWP R(31) : ENTRADA R(24) R(23) : LOCALES R(16) R(15) : SALIDA R(8) CWP-1 R(7) : GLOBALES R(1) R(0) 0 Segmentación Tema 2 /Universidad Autónoma de Madrid 7 Comparación entre procesadores CISC y RISC. CISC RISC Nº Instrucciones 100-300 < 128 (27) Instrucciones complejas Si No Modos de Direccionamiento 8-20 2-3 Nº Formatos > 10 ≤ 4 Palabras/Instrucción 1-10 1 Set ortogonal de Instruc. No Si Instruc. con memoria Varias 2 (Load/Store) Ciclos/Instrucción 3-10 ~ 1 Nº Registros internos 2-16 > 32 Procesador segmentado A Veces Siempre Unidad de Control µCódigo Secuencial Segmentación Tema 2 /Universidad Autónoma de Madrid 8 Argumentos de los partidarios de CISC Los programas son más cortos Se reducen las llamadas a memoria y por tanto hay menos latencias de acceso Un set de instrucciones complejo no es más caro que uno simple Las instrucciones son más eficientes Mayor dificultad para clonar el sistema Permite la compatibilidad entre elementos de una misma familia Facilita el trabajo de los compiladores Mayor similitud entre los lenguajes de alto nivel y el ensamblador Comparación entre procesadores CISC y RISC. Segmentación Tema 2 /Universidad Autónoma de Madrid 9 Argumentos de los partidarios de RISC El Hardware es más sencillo Los sistemas ejecutan las tareas más rápido El diseño de los sistemas es menos costoso El set de instrucciones es sencillo y con pocos formatos, lo que permite homogeneizar el tiempo de ejecución de las instrucciones Facilita el uso de procesadores segmentados Facilita el procesamiento paralelo Facilita el trabajo de los compiladores Debido a la menor complejidad del set de instrucciones Comparación entre procesadores CISC y RISC. Segmentación Tema 2 /Universidad Autónoma de Madrid 10 1. Analizar el conjunto de instrucciones => requisitos de la unidad de tratamiento o camino de datos (datapath) El significado de cada instrucción viene dado por su funcionamiento a nivel de transferencia de registros (RTL). El datapath debe incluir elementos de almacenamiento para los registros accesibles en el modelo de programación del procesador. El datapath debe soportar todas las transferencias entre registros definidas en el conjunto de instrucciones. 2. Selección de los componentes y de la metodología de reloj. 3. Implementación del datapath cumpliendo los requisitos. 4. Análisis de cada instrucción para determinar el mecanismo de control que efectúe la transferencia entre registros. 5. Implementación de la lógica de control. Diseño de un procesador Segmentación Tema 2 /Universidad Autónoma de Madrid 11 Diseño de un procesador 1.- Unidad de tratamiento + Unidad de Control Unidad de Control: encargada de realizar el control del proceso, es decir de generar las señales necesarias para activar los componentes de la unidad de tratamiento que actuarán sobre los datos en el instante de tiempo que corresponda. Unidad de Tratamiento o camino de datos: agrupa a todos los componentes capaces de manipular los datos, y un conjunto de elementos de almacenamiento en en el interior del procesador. Segmentación Tema 2 /Universidad Autónoma de Madrid 12 2.- Fase de Ejecución: En un único ciclo o multiciclo Instrucción addU rd, rs, rt Descripción de la ejecución (RTL) Mem[PC] Carga de la instrucción desde memoria R[rd] ← R[rs] + R[rt] Realiza la operación (SUMAR) PC ← PC + 4 Calcula la dirección de la siguiente instrucción. op rs rt rd shamt funct 061116212631 6 bits 6 bits5 bits5 bits5 bits5 bits Diseño de un procesador.- Descripción RTL Segmentación Tema 2 /Universidad Autónoma de Madrid 13 Unidades funcionales necesarias para cada instrucción Memoria de instrucciones Memoria de Instrucciones Dirección de lectura Instrucción Memoria de datos M e m R ea d M em W rite Memoria de DatosDirección Dato Entrada Dato Salida Contador de Programa Sumador PC Su m ad or ALU A LU op. 3 Cero Resultado ALU Oper 1 Oper 2 Extensión de Signo 16 32Exten. Signo Banco de Registros Dato Entrada Reg. destino Reg. fuente 1 Registros Reg. fuente 2 Dato Salida 1 Dato Salida 2 Número De Registro Datos Datos 5 5 5 x 4 Diseño de un procesador.- Elementos básicos Segmentación Tema 2 /Universidad Autónoma de Madrid 14 Dato Entrada Reg. destino Reg. fuente 1 Diseño del camino de datos (Datapath) Conexión de los elementos: Uso de multiplexores. Señales de control Captura de la siguiente instruc. Incremento de PC. Instrucciones de la ALU entre registros. 16 32 4 A LU op. 3 R e gW rit e M e m R ea d M em W rite PCS rc A L U Src Me m 2 R eg Cero Memoria de Instrucciones Dirección de lectura Instrucción PC Registros Reg. fuente 2 Dato Salida 1 Dato Salida 2 M u x M u x Memoria de Datos Dirección Dato Entrada Dato Salida M u x Exten. Signo Despl. << 2 Su m ad or Sumador Resultado Resultado ALU Segmentación Tema 2 /Universidad Autónoma de Madrid 15 Dato Entrada Reg. destino Reg. fuente 1 Conexión de los elementos: Uso de multiplexores. Señales de control Captura de la siguiente instruc. Incremento de PC. Instrucciones LOAD/STORE. 16 32 4 A LU op. 3 R e gW rit e M e m R ea d M em W rite PCS rc A L U Src Me m 2 R eg Cero Memoria de Instrucciones Dirección de lectura Instrucción PC Registros Reg. fuente 2 Dato Salida 1 Dato Salida 2 M u x M u x Memoria de Datos Dirección Dato Entrada Dato Salida M u x Exten. Signo Despl. << 2 Su m ad or Sumador Resultado Resultado ALU Diseño del camino de datos (Datapath) Segmentación Tema 2 /Universidad Autónoma de Madrid 16 Exten. Signo Dato Entrada Reg. destino Reg. fuente 1 Diseño del camino de datos (Datapath) Conexión de los elementos: Uso de multiplexores. Señales de control Captura de la siguiente instrucción o del destino de salto =>Incremento de PC. Instrucciones de Salto y. Salto Condicional 16 32 4 A LU op. 3 R e gW rit e M e m R ea d M em W rite PCS rc A L U Src Me m 2 R eg Cero Memoria de Instrucciones Dirección de lectura Instrucción PC Registros Reg. fuente 2 Dato Salida 1 Dato Salida 2 M u x M u x Memoria de Datos Dirección Dato Entrada Dato Salida M u x Despl. << 2 Su m ad or Sumador Resultado Resultado ALU Segmentación Tema 2 /Universidad Autónoma de Madrid 17 Control (Ciclo único) PC Instruction� memory Read� address Instruction� [31– 0] Instruction [20– 16] Instruction [25– 21] Add Instruction [5– 0] MemtoReg ALUOp MemWrite RegWrite MemRead Branch RegDst ALUSrc Instruction [31– 26] 4 16 32Instruction [15– 0] 0 0M� u� x 0 1 Control Add ALU�result M� u� x 0 1 Registers Write� register Write� data Read� data 1 Read� data 2 Read� register 1 Read� register 2 Sign� extend Shift� left 2 M� u� x 1 ALU� result Zero Data� memory Write� data Read� data M� u� x 1 Instruction [15– 11] ALU� control ALU Address Instrucción RegDst ALUSrc Mem2Reg RegWrite MemRd MemWr Branch ALUOp1 ALUp0 Oper. Reg 1 0 0 1 0 0 0 1 0 LOAD 0 1 1 1 1 0 0 0 0 STORE X 1 X 0 0 1 0 0 0 BEQ X 0 X 0 0 0 1 0 1 Segmentación Tema 2 /Universidad Autónoma de Madrid 18 Desventajas del diseño uniciclo (CPI=1) Tiempo de ciclo muy largo. Todas las instrucciones utilizan, sin necesidad, tanto tiempo como la instrucción más lenta. La memoria Real no es ideal, existen detenciones y no siempre se accede en un solo ciclo (CDM). PC Inst Memory mux ALU Data Mem mux PC Reg FileInst Memory mux ALU mux PC Inst Memory mux ALU Data Mem PC Inst Memory cmp mux Reg File Reg File Reg File Aritmeticas & Logicas Load Store Branch Camino crítico setup setup Segmentación Tema 2 /Universidad Autónoma de Madrid 19 Las instrucciones pueden tardar diferente número de ciclos. Un ”datapath” multiciclo con ligeras modificaciones. Dividir las instrucciones en pasos, cada paso tarda un ciclo Balancear la cantidad de trabajo a realizar en un paso En cada ciclo solo se utiliza una unidad funcional (se reduce el número de U.F.) Al final del ciclo Almacenar los valores para su uso en posteriores pasos (es la mas fácil) Añadir registros internos adicionales Control Multiciclo Segmentación Tema 2 /Universidad Autónoma de Madrid 20 Cambios para una aproximación multiciclo Shift left 2 PC Memory MemData Write data M u x 0 1 Registers Write register Write data Read data1 Read data2 Read register 1 Read register 2 M u x 0 1 M u x 0 1 4 Instruction [15–0] Sign extend 3216 Instruction [25–21] Instruction [20–16] Instruction [15–0] Instruction register 1 M u x 0 3 2 M u x ALU result ALU Zero Memory data register Instruction [15–11] A B ALUOut 0 1 Address M u x 0 1 Segmentación Tema 2 /Universidad Autónoma de Madrid 21 1.-Carga de Instrucción (todas) IR = Memory [PC]; PC = PC + 4; 2.- Decodificación de la instrucción y lectura de registros (todas) Lee registros rs y rt cuando sean necesarios. A = Reg[IR[25-21]]; B = Reg[IR[20-16]]; En saltos calcula la dirección ALUOut = PC + (sign-extend(IR[15-0]) << 2); En este ciclo no se da valor a las líneas de control porque se está decodificando la instrucción Ejecución en cinco pasos (5 ciclos) Segmentación Tema 2 /Universidad Autónoma de Madrid 22 3.-Ejecución, Calcula dirección de memoria, Finalización de salto. La unidad ALU realiza una de las siguientes funciones dependiendo del tipo de instrucciones: Referencia a Memoria: ALUOut = A+sign-extend(IR[15-0]); Operación entre registros: ALUOut = A op B; Saltos: if (A==B) PC = ALUOut; 4.-Acceso a Memoria o escritura del registro resultado. Acceso a memoria en Loads y Stores. Load MDR = Memory[ALUOut]; Store Memory[ALUOut] = B; Escritura del registro destino en instrucciones entre registros. Reg[IR[15-11]] = ALUOut; La escritura tiene lugar en el flanco al final del ciclo. 5.- Escritura del valor leído de memoria en el registro destino (Write-back). • Reg[IR[20-16]]= MDR; “UNA INSTRUCCIÓN TARDA DE 3 A 5 CICLOS” Ejecución en cinco pasos (5 ciclos) Segmentación Tema 2 /Universidad Autónoma de Madrid 23 Control Multiciclo Segmentación Tema 2 /Universidad Autónoma de Madrid 24 Control Secuencial Segmentación Tema 2 /Universidad Autónoma de Madrid 25 Control Microprogramado Utilización de “microinstrucciones” P C W r ite P C W r ite C o n d Io rD M e m to R e g P C S o u rc e A L U O p A L U S rc B A L U S rc A R e g W r i te A d d rC t l O u t p u ts M ic r o c o d e m e m o ry IR W r ite M e m R e a d M e m W r i te R e g D s t C o n tro l u n i t In p u t M ic ro p ro g ra m c o u n te r A d d re s s s e le c t lo g ic O p[ 5– 0] A d d e r 1 D a ta p a th In s tru c tio n r e g is te r � o p c o d e f ie ld B W r it e Segmentación Tema 2 /Universidad Autónoma de Madrid 26 Segmentación - La Técnica de la Segmentación. - Funcionamiento ideal. - Conceptos asociados: Latencia y Throughput. - Segmentación de Instrucciones. -Conflictos que producen retardo en la ejecución. Riesgos estructurales. Riesgos de Control. Riesgos por la dependencia de datos - Técnicas para evitar riesgos Adelantamiento de datos Predicción de saltos Segmentación Tema 2 /Universidad Autónoma de Madrid 27 Segmentación: Funcionamiento Ideal Técnica utilizada para optimizar el tiempo de ejecución de procesos que se realizan mediante la repetición de una secuencia de pasos básicos. Permite la ejecución de procesos concurrentemente. Fundamento: Separar el proceso en etapas y ejecutar cada etapa en un recurso independiente. Objetivo: Mejorar la productividad, aumentando el número de procesos ejecutados por unidad de tiempo. Funcionamiento: Cuando una etapa del proceso termina, el recurso liberado puede empezar a ejecutar la misma etapa del siguiente proceso. Se consigue la ejecución de varios procesos en paralelo cada uno en una etapa diferente. Las etapas son ejecutadas secuencialmente. Segmentación Tema 2 /Universidad Autónoma de Madrid 28 Segmentación: Funcionamiento Ideal O rd en d e Ta re a FUNCIONAMIENTO SECUENCIAL Realizar 4 tareas Lavado 30 MIN Secado 40 MIN Planchado 20 MIN Tiempo empleado: 6 horas Segmentación Tema 2 /Universidad Autónoma de Madrid 29 Segmentación: Funcionamiento Ideal O rd en d e Ta re a FUNCIONAMIENTO SEGMENTADO Realizar 4 tareas Lavado 30 MIN Secado 40 MIN Planchado 20 MIN Tiempo empleado: 3.5 horas Cada Tarea : 1.5 horas Segmentación Tema 2 /Universidad Autónoma de Madrid 30 Segmentación: Funcionamiento Ideal Tp Ts Tp Ts SECUENCIALMENTE ( 1 unidad de proceso para todas las etapas ) Tp es el tiempo de ejecución de un proceso. Se puede descomponer en s (s=3) etapas de duración Ts Tt = NTp = NsTs Con SEGMENTACION ( unidades independientes para cada etapa ) Si N >>s ⇒ Tt≈ NTs Tt = Tp + (N-1)Ts = sT s+ (N-1)Ts = (N+s-1)Ts 1 2 3 N 1 2 3 N-1 N s=3 Ejecutar m procesos Segmentación Tema 2 /Universidad Autónoma de Madrid 31 Segmentación: Funcionamiento Ideal Proceso segmentado vs Proceso secuencial. La segmentación aunque no mejora la latencia de un solo proceso. mejora la productividad de una tarea con muchos procesos. Varios procesos se ejecutan “en paralelo”. VENTAJAS RESTRICCIONES La razón de segmentación está limitada por la etapa más lenta. La aceleración máxima posible = Número de etapas de segmentación. Etapas de segmentación desequilibradas ⇒ Reducción de productividad. Segmentación Tema 2 /Universidad Autónoma de Madrid 32 Segmentación de instrucciones. Un procesador segmentado perfecto consigue ejecutar una instrucción por ciclo. La segmentación mas evidente consta de tres etapas : Obtener instrucción (Fetch). Decodificar instrucción (Decode). Ejecutar instrucción (Execute). La frecuencia de funcionamiento es mayor si el numero de etapas de segmentación se incrementa. Aunque: La segmentación fina es muy difícil. Cada nueva etapa añade un retardo de registro. La independencia entre etapas es mas difícil de conseguir. Segmentación Tema 2 /Universidad Autónoma de Madrid 33 Segmentación de instrucciones. EJEMPLO: Segmentación de instrucciones con 5 etapas: Etapa IF Etapa ID Etapa EX Etapa MEM Etapa WB IMem Reg ALU DMem Reg Obtener instrucción. Acceso a la memoria de instrucciones Decodificar instrucción. Lectura de operandos, carga de registros. Ejecutar instrucción. o bien Calcular dirección efectiva memoria. Acceso a Memoria. o bien Escribir en PC la dirección de salto. Escribir en un registro el resultado de la operación. Segmentación Tema 2 /Universidad Autónoma de Madrid 34 Comparación: Ciclo único / Multiciclo / Segmentado Clk Ciclo 1 Implementación Multiciclo: Ifetch Reg Exec Mem Wr Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8 Ciclo 9Ciclo 10 Load Ifetch Reg Exec Mem Wr Ifetch Reg Exec Mem Load Store Implementación con Segmentación: Ifetch Reg Exec Mem WrStore Ifetch R-type Ifetch Reg Exec Mem WrR-type Clk Implementación con Ciclo único Load Store Sin uso Ciclo 1 Ciclo 2 Segmentación Tema 2 /Universidad Autónoma de Madrid 35 Muticiclo: Ciclos necesarios para Load y Op. entre registros Clock Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ifetch Reg/Dec Exec Mem Wr1erload Ifetch Reg/Dec Exec Mem Wr2ª load Ifetch Reg/Dec Exec Mem Wr3er load Las Cuatro etapas en operaciones entre Registros Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ifetch Reg/Dec Exec WrR-type Las Cinco etapas de Load Segmentación Tema 2 /Universidad Autónoma de Madrid 36 Conflictos estructurales Hay dos instrucciones que intentan acceder a memoria al tiempo. Hay dos instrucciones que intentan escribir en el banco de registros al mismo tiempo y sólo existe un puerto de escritura. Hay conflictos Ejecución de instrucciones: load seguido op. entre registros Ifetch Reg/Dec Exec WrR-type Ifetch Reg/Dec Exec WrR-type Ifetch Reg/Dec Exec Mem WrLoad Ifetch Reg/Dec Exec WrR-type Ifetch Reg/Dec Exec WrR-type Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Clock Ciclo 8 Segmentación Tema 2 /Universidad Autónoma de Madrid 37 Consideraciones de Diseño de un cauce segmentado Cada unidad funcional pueda usarse solo una vez por instrucción. → Deben aparecer dos unidades de memoria. Cada unidad funcional se utiliza en la misma etapa para todas las instrucciones: Load usa el puerto de escritura en Registros durante su 5ª etapa. Las operaciones entre Registros usan el puerto de escritura en Registros durante su 4ª etapa Ifetch Reg/Dec Exec Mem WrLoad 1 2 3 4 5 Ifetch Reg/Dec Exec WrR-type 1 2 3 4 Soluciones: Paradas entre etapas, retraso de la escritura en registro, ... Segmentación Tema 2 /Universidad Autónoma de Madrid 38 Solución1: Parar el cauce de instrucciones (Pipeline Bubble) Clock Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8 Ciclo 9 Ifetch Reg/Dec Exec WrR-type Ifetch Reg/Dec Exec Ifetch Reg/Dec Exec Mem WrLoad Ifetch Reg/Dec Exec WrR-type Ifetch Reg/Dec Exec WrR-type Pipeline Bubble Ifetch Reg/Dec Exec Wr Solución 2: Retrasar la escritura en Registro. Clock Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8 Ciclo 9 Ifetch Reg/Dec Mem WrR-type Ifetch Reg/Dec Exec Mem WrLoad Ifetch Reg/Dec Mem WrR-type Ifetch Reg/Dec Mem WrR-type Exec Exec Exec Ifetch Reg/Dec Mem WrR-type Exec Consideraciones de Diseño Segmentación Tema 2 /Universidad Autónoma de Madrid 39 Segmentación: Un diseño con 5 etapas La base es el camino de datos de un ciclo. Se añaden registros entre etapas. Hay que analizar si todas las Instrucciones funcionan. Problema: ADD R3,R2,R1 Instruction memory Address 4 32 0 Add Addresult Shift left 2 Ins tru cti on IF/ID EX/MEM MEM/WB M u x 0 1 Add PC 0Write data M u x 1 Registers Read data1 Read data2 Read register1 Read register2 16 Sign extend Write register Write data Read data 1 ALU resultM u x ALU Zero ID/EX Data memory Address Segmentación Tema 2 /Universidad Autónoma de Madrid 40 Segmentación: Modificación del datapath Para solucionar el problema de la ejecución de las instrucciones que escriben su resultado en un registro, como por ejemplo las instrucciones: ADD R3,R2,R1 y Load R3, R5, #1100 Instruction memory Address 4 32 0 Add Addresult Shift left 2 Ins tru cti on IF/ID EX/MEM MEM/WB M u x 0 1 Add PC 0 Address Write data M u x 1 Registers Read data1 Read data2 Read register 1 Read register 2 16 Sign extend Write register Write data Read data Data memory 1 ALU resultM u x ALU Zero ID/EX La información del campo que identifica el registro de escritura avanza con la instrucción Segmentación Tema 2 /Universidad Autónoma de Madrid 41 Segmentación: Añadir el Control PC Instruction memory Ins tru cti on Add Instruction [20–16] Me mt oR eg ALUOp Branch RegDst ALUSrc 4 16 32Instruction[15–0] 0 0 M u x 0 1 Add Addresult Registers Write register Write data Read data1 Read data2 Read register 1 Read register 2 Sign extend M u x 1 ALU result Zero Write data Read data M u x 1 ALU control Shift left 2Re gW rite MemRead Control ALU Instruction [15–11] 6 EX M WB M WB WBIF/ID PCSrc ID/EX EX/MEM MEM/WB M u x 0 1 Me mW rite Address Data memory Address También se deben “retrasar” las señales de control Para que la info de control avance con la instrucción. Segmentación Tema 2 /Universidad Autónoma de Madrid 42 Segmentación: Añadir el Control Control EX M WB M WB WB IF/ID ID/EX EX/MEM MEM/WB Instruction Todas las instrucciones tardan los mismos ciclos de reloj. El secuenciamiento de la instrucción está implícito en la estructura del pipeline. No hay un control especial para la duración de la instrucción Toda la información de control se calcula durante la decodificación, y se envía hacia delante a través de los registros de segmentación Los valores de las líneas de control son los mismos que los calculados en el control uniciclo. Segmentación Tema 2 /Universidad Autónoma de Madrid 43 Segmentación: Ejemplo I Segmentación Tema 2 /Universidad Autónoma de Madrid 44 Segmentación: Ejemplo II Segmentación Tema 2 /Universidad Autónoma de Madrid 45 Segmentación: Ejemplo III Segmentación Tema 2 /Universidad Autónoma de Madrid 46 Segmentación: Ejemplo IV Segmentación Tema 2 /Universidad Autónoma de Madrid 47 Segmentación: Ejemplo V Segmentación Tema 2 /Universidad Autónoma de Madrid 48 Segmentación: Ejemplo VI Segmentación Tema 2 /Universidad Autónoma de Madrid 49 Segmentación: Ejemplo VII Segmentación Tema 2 /Universidad Autónoma de Madrid 50 Aparecen problemas al poder empezar la siguiente instrucción antes de que la primera haya terminado. Dependencias problemáticas son aquellas que necesitan datos que hay que buscar “ hacia atrás” en el esquema de tiempos. IM Reg IM Reg Ciclo1 IM Reg DM Reg IM DM Reg IM DM Reg 10 10 10 10 10 /–20 –20 –20 –20 –20 DM Reg Reg Reg Reg DM TIEMPO (CICLOS) Ciclo2 Ciclo3 Ciclo4 Ciclo5 Ciclo6 Ciclo7 Ciclo8 Ciclo9 Valor de r2 PROGRAMA sub r2, r1, r3 and r12, r2, r5 or r13, r 6, r2 add r14, r2, r2 Sw r15, 100(r2) Conflictos en funcionamiento real. Segmentación Tema 2 /Universidad Autónoma de Madrid 51 Las causas que pueden reducir el rendimiento en un procesador segmentado de instrucciones son tres: 1.1. Riesgos estructuralesRiesgos estructurales:: Se intenta usar el mismo recurso de dos maneras diferentes al mismo tiempo. El hardware impide una cierta combinación de operaciones. 2.2. Riesgos por dependencia de datosRiesgos por dependencia de datos: Se intenta usar un dato antes de que esté disponible. El operando de una instrucción depende del resultado de otra instrucción precedente que todavía no se ha obtenido. 3.3. Riesgos de controlRiesgos de control:: Se intenta tomar una decisión antes de evaluarse la condición. La ejecución de una instrucción de salto supone un cierto retraso. Conflictos en funcionamiento real. Segmentación Tema 2 /Universidad Autónoma de Madrid 52 Dependencias de Salida (WAW) Ejecución de instrucciones LIMITACIONES EN LA EJECUCION DE INSTRUCCIONES Recursos Limitados Dependencias de Código Dependencias de Control Dependencias de Datos Dependencias Verdaderas Anti-Dependencias Conflictos de Almacenamiento (Dependencias Estructurales) (RAW) (WAR) Segmentación Tema 2 /Universidad Autónoma de Madrid 53 Cuando se detecta un riesgo, la solución más simple es parar la unidad de segmentación (Stall the Pipeline) hasta que desaparezca el riesgo. Las instrucciones que preceden a la causante del riesgo pueden continuar. La instrucción que causa el riesgo y siguientes, no continúan hasta que desaparece el riesgo. ¿Todos estos riesgos se pueden solucionar?.....Si ¿Cómo?...................................................Esperando Se necesita que el control de la unidad de segmentación (Pipeline) sea capaz de: Detectar las causas de riesgo. Decidir acciones que resuelvan el riesgo (por ejemplo, esperar). Dependencias: Cómo actuar Segmentación Tema 2 /Universidad Autónoma de Madrid 54 Dependencias : Cómo actuar •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 parar detección del riego continuar ciclos de parada Segmentación Tema 2 /Universidad Autónoma de Madrid 55 Casos que se pueden presentar: Accesos simultáneos a: Memoria (única para datos e instrucciones). Unidades funcionales Registros internos. Tiempo (ciclos de reloj) O rd en d e in st ru cc ió n Riesgos estructurales. Mem Load Instr 1 Instr 2 Instr 3 Instr 4 A L UMem Reg Mem Reg A L UMem Reg Mem Reg A L UMem Reg Mem Reg A L UReg Mem Reg A L UMem Reg Mem Reg La detección es fácil en este caso! (La mitad izquierda coloreada indica escritura y la mitad derecha lectura) Conflicto de lectura en Memoria Segmentación Tema 2 /Universidad Autónoma de Madrid 56 Soluciones: SW: El compilador estima el riesgo e introduce instrucciones NOPs HW : El procesador lo detecta y para la ejecución de la instrucción. Arquitectura: Duplicar recursos y separar las memorias de datos e instrucciones. Tiempo ( ciclos de reloj) O rd en d e in st ru cc ió n Riesgos estructurales. Segmentación Tema 2 /Universidad Autónoma de Madrid 57 Dependencias que se presentan para 2 instrucciones i y j, con i ejecutandose antes que j. RAW (Read After Write) Cuando la instrucción posterior j intenta leer una fuente antes que la instrucción anterior i la haya modificado. WAR (Write After Read) Cuando la instrucción j intenta modificar un destino, antes que la instrucción i lo haya leído como fuente. WAW (Write After Write) Cuando la instrucción j intenta modificar un destino, antes que la instrucción i lo haya hecho (Se modifica el orden normal de escritura). Ejemplos: RAW WAR WAW ADD r1, r2, r3 ADD r1, r2, r3 DIV r1, r2, r3 SUB r4, r1, r3 OR r3,r4, r5 AND r1,r4, r5 AND r6, r5, r7 OR r8, r1, r9 XOR r10, r1, r11 Riesgos por dependencia de datos. Segmentación Tema 2 /Universidad Autónoma de Madrid 58 I1: R3 = R3 op R5 I2: R4 = R3 + 1 I3: R3 = R5 + 1 I4: R7 = R3 op R4 Riesgos: 1) RAW (dependencia verdadera) La salida de I1, R3, es uno de los operandos en I2 I2 tiene una dependencia de datos RAW con I1 por R3. 2) WAW (dependencia de salida) I1 e I3 intentan escribir en R3 I3 tiene una dependencia de datos WAW con I1 por R3 3) WAR (antidependencia) La instrucción I3 no puede comenzar hasta que la instrucción I2 haya obtenido uno de sus operandos (R3) I3 tiene una dependencia de datos WAR con I2 por R3 WAW Ri ... ... Ri op Rj RAW WAR Ri ... Dependencia real Antidependencia Dependencia de salida Ejemplos de dependencias de datos Segmentación Tema 2 /Universidad Autónoma de Madrid 59 Código modificado compilado sin limitaciones en el número de registros I1: R23 = R13 op R15 I2: R14 = R23 + 1 I3: R33 = R25 + 1 I4: R17:= R33 op R14 Riesgos: Sólo quedan los riesgos RAW (dependencia verdadera). La salida de I1, R23, es uno de los operandos en I2 La salida de I3, R33, es uno de los operandos en I4 Código original I1: R3 = R3 op R5 I2: R4 = R3 + 1 I3: R3 = R5 + 1 I4: R7 = R3 op R4 Ejemplos de dependencias de datos Segmentación Tema 2 /Universidad Autónoma de Madrid 60 i:rk←_ j:rk←_ EscrituraRegistro Escritura Registro iOj i:_←rk j:rk←_ EscrituraRegistro Lectura Registro iAj i:rk←_ j:_←rk LecturaRegistro Escritura Registro iDj Etapa X Etapa Y dist(i,j) ≤ dist(X,Y) ⇒ ?? dist(i,j) > dist(X,Y) ⇒ ?? Riesgo WAW Riesgo WAR Riesgo RAW dist(i,j) ≤ dist(X,Y) ⇒ Dependencia de datos dist(i,j) > dist(X,Y) ⇒ Independientes Tiempo de Ejecución Dependencia de datos: condiciones necesarias Segmentación Tema 2 /Universidad Autónoma de Madrid 61 Ejemplo (RAW): Tiempo (ciclos de reloj) O rd en d e in st ru cc io ne s Riesgos por dependencia de datos. Segmentación Tema 2 /Universidad Autónoma de Madrid 62 Soluciones: “Adelantar” (Forward) el resultado de una etapa a las siguientes. Definir adecuadamente la secuencia Read/Write ( la instrucción OR funciona correctamente si en la etapa WB, Write se realiza en la 1ª mitad del ciclo y Read en la 2ª). Riesgos por dependencia de datos. Segmentación Tema 2 /Universidad Autónoma de Madrid 63 Necesidades Hardware para adelantar resultados: Multiplexores adicionales en las entradas de datos de la ALU. Buses extra entre registros internos y multiplexores. Comparadores entre los operandos de una instrucción y los operandos destino de instrucciones previas. Riesgos por dependencia de datos. Segmentación Tema 2 /Universidad Autónoma de Madrid 64 Los Riesgos persisten incluso con adelanto de resultados: La instrucción LOAD puede evitar con adelanto de resultados los riesgos en AND y en OR pero no de SUB (No puede adelantar resultados a etapas que son de tiempos anteriores) Tiempo (ciclos de reloj) O rd en d e in st ru cc io ne s Riesgos por dependencia de datos. Segmentación Tema 2 /Universidad Autónoma de Madrid 65 Solución: Insertar un ciclo de espera (Stall) en el ciclo 3º, para la instrucción SUB y siguientes Tiempo (ciclos de reloj) O rd en d e in st ru cc io ne s Riesgos por dependencia de datos. Segmentación Tema 2 /Universidad Autónoma de Madrid 66 PC Instructionmemory Registers M u x M u x M u x Control ALU EX M WB M WB WB ID/EX EX/MEM MEM/WB Data memory M u x Hazard detection unit Forwarding unit 0 M u x IF/ID In str uc tio n ID/EX.MemRead IF /ID W rit e PC W rit e ID/EX.RegisterRt IF/ID.RegisterRd IF/ID.RegisterRt IF/ID.RegisterRt IF/ID.RegisterRs Rt Rs Rd Rt EX/MEM.RegisterRd MEM/WB.RegisterRd Control para adelantamiento de datos y detección de riesgos Segmentación Tema 2 /Universidad Autónoma de Madrid 67 Control de dependencias para adelantamiento de datos Unidad de Adelantamiento de Datos (Forwarding) Se debe detectar el riesgo y luego “anticipar” el valor a la ALU Se agrega un bloque combinacional para detectar y multiplexores para adelantar los datos oportunamente Registers M u x M u x M u x ALU Datamemory M u x Forwarding unit EX/MEM.RegisterRd MEM/WB.RegisterRd IF/IDRegisterRs Rt Rd Rs Rt IF/IDRegisterRt IF/IDRegisterRt IF/IDRegisterRd ID/EX EX/MEM MEM/WB AnticiparA AnticiparB Segmentación Tema 2 /Universidad Autónoma de Madrid 68 Control de dependencias para adelantamiento de datos Unidad de Adelantamiento de Datos (Forwarding) Se debe detectar el riesgo y luego “anticipar” el valor a la ALU Existen 4 Riesgos Potenciales 1a. EX/MEM.Registro.Rd = ID/EX.Registro.Rs 1b. EX/MEM.Registro.Rd = ID/EX.Registro.Rt 2a. MEM/WB.Registro.Rd = ID/EX.Registro.Rs 2b. MEM/WB.Registro.Rd = ID/EX.Registro.Rt Por ejemplo con: Add r1, r2, r3 Sub r5, r1, r6 And r6, r5, r1 Add r4, r1, r3 Regis ters M u x M u x M u x ALU Data memory M u x Forwarding unit EX/MEM.RegisterRd MEM/WB .RegisterRd IF/IDRegisterRs Rt Rd Rs Rt IF/IDRegisterRt IF/IDRegisterRt IF/IDRegisterRd ID/EX EX/MEM MEM/WB AnticiparA AnticiparB Segmentación Tema 2 /Universidad Autónoma de Madrid 69 Control de dependencias para adelantamiento de datos Unidad de Adelantamiento de Datos (Forwarding) Pseudo-código del funcionamiento: (Análisis de Riesgos en EX) if (EX/MEM.EscrReg and EX/MEM.RegistroRd ≠ 0 and EX/MEM.Registro.Rd = ID/EX.Registro.Rs) then AnticiparA = 10 else AnticiparA = 00 if (EX/MEM.EscrReg and EX/MEM.RegistroRd ≠ 0 and EX/MEM.Registro.Rd = ID/EX.Registro.Rt) Then AnticiparB = 10 else AnticiparB = 00 M u x M u x M u x ALU Datamemory M u x Forwarding unit EX/MEM.RegisterRd MEM/WB.RegisterRd Rt Rd Rs Rt ID/EX EX/MEM MEM/WB AnticiparA AnticiparB Segmentación Tema 2 /Universidad Autónoma de Madrid 70 Control de dependencias para adelantamiento de datos Unidad de Adelantamiento de Datos (Forwarding) Pseudo-código del funcionamiento: M u x M u x M u x ALU Datamemory M u x Forwarding unit EX/MEM.RegisterRd MEM/WB.RegisterRd Rt Rd Rs Rt ID/EX EX/MEM MEM/WB AnticiparA AnticiparB (Análisis de Riesgos en MEM) if (MEM/WB.EscrReg and MEM/WB.RegistroRd ≠ 0 and EX/MEM.Registro.Rd ≠ ID/EX.RegistroRs and MEM/WB.Registro.Rd = ID/EX.RegistroRs) then AnticiparA = 01 else AnticiparA = 00 if (MEM/WB.EscrReg and MEM/WB.RegistroRd ≠ 0 and EX/MEM.Registro.Rd ≠ ID/EX.RegistroRt and MEM/WB.Registro.Rd = ID/EX.Registro.Rt) then AnticiparB = 01 else AnticiparB = 00 Segmentación Tema 2 /Universidad Autónoma de Madrid 71 Detección de riesgos Unidad de Detección de Riesgos (Hazard detection unit) Necesario cuando el adelantamiento no resuelve los riesgos (caso de load y uso del registro destino en la siguiente instrucción) Pseudocódigo del funcionamiento: If (ID/EX.LeerMem and ((ID/EX.Registro.Rt = IF/ID.Registro.Rs) or (ID/EX.Registro.Rt = IF/ID.Registro.Rt))) then Bloquear el pipeline Bloquear el pipeline: PCWrite = 0 IF/IDWrite = 0 MuxNOP = 1 Segmentación Tema 2 /Universidad Autónoma de Madrid 72 Dependencia de control Flujo de ejecución de instrucciones: representa las posibles trayectorias. BB 1 BB 2 BB 3 BB 4 BB 5 main: addi r2, r0, A addi r3, r0, B addi r4, r0, C BB 1 addi r5, r0, N add r10,r0, r0 bge r10,r5, end loop: lw r20, 0(r2) lw r21, 0(r3) BB 2 bge r20,r21,T1 sw r21, 0(r4) BB 3 b T2 T1: sw r20, 0(r4) BB 4 T2: addi r10,r10,1 addi r2, r2, 4 addi r3, r3, 4 BB 5 addi r4, r4, 4 blt r10,r5, loop end: Dependencia de Control: El nodo X es dependiente del nodo Y si la ejecución de X depende de los cálculos en el nodo Y. Segmentación Tema 2 /Universidad Autónoma de Madrid 73 Las instrucciones de salto pueden suponer una alteración del orden secuencial de ejecución. No se sabe si el salto es efectivo hasta la etapa de ejecución y no se dispone de la dirección destino caso de que sea efectivo hasta el final de la cuarta etapa => Perdida de 3 ciclos Mejora: Adelantar el cálculo de PC+ Inmediato a la 2ª etapa. Riesgos de Control (Instrucciones de salto) Etapa IF Etapa ID Etapa EX Etapa MEM Etapa WB Obtener instrucción. Acceso a la memoria de instrucciones Decodificar instrucción. Lectura de operandos, carga de registros. Ejecutar instrucción. Calcular la condición Calcular la dirección efectiva salto (PC+Inm.) Acceso a Memoria. o bien Escribir en PC la dirección de salto. Escribir en un registro el resultado de la operación. Segmentación Tema 2 /Universidad Autónoma de Madrid 74 Cuando se decide saltar a una instrucción distinta de la siguiente, ya se están ejecutando otras instrucciones en el cauce segmentado. => Se necesita incluir hardware para vaciar (Flushing) el pipeline Riesgos de Control ( Instrucciones de Salto) Para descartar una instrucción cambia a 0 el valor de control mux ⇒ NOP Para descartar una instrucción cambia a 0 el campo de instrucción del registro de segmentación IF/ID ⇒ NOP PC Instructionmemory 4 Registers M u x M u x M u x ALU EX M WB M WB WB ID/EX 0 EX/MEM MEM/WB Data memory M u x Hazard detection unit Forwarding unit IF.Flush IF/ID Sign extend Control M u x = Shift left2 M u x Segmentación Tema 2 /Universidad Autónoma de Madrid 75 Se necesita tomar una decisión sobre la siguiente instrucción a ejecutar antes que las condiciones de la instrucción de salto sean evaluadas. ¿Cómo realizar la ejecución de los SALTOS CONDICIONALES? 1. Esperar hasta que la dirección y condición del salto estén definidas. Conviene conocer la dirección de salto y la condición tan pronto como se a posible. 2. Retardar la ejecución hasta conocer los parámetros del salto. El compilador rellena con instrucciones los huecos de retardo. 3. Predecir el sentido del salto. Se ejecuta especulativamente una rama, en caso de error se debe “vaciar” el procesador. 4. Especular anticipando la predicción de salto antes de su decodificación. Riesgos de Control (Instrucciones de salto) Segmentación Tema 2 /Universidad Autónoma de Madrid 76 Riesgos de Control: Retardar la ejecución add r1, r2, r3 bnz r2, L1 hueco sub r6,r7,r6 mul r2, r3, r8 ................. L1: and r2, r3, r2 andi r5,r6,inm 2.- Técnicas de compilación: tres estrategias para buscar instrucciones de relleno ........... bnz r2, L1 add r1, r2, r3 sub r6,r7,r6 mul r2, r3, r8 ................. L1: and r2, r3, r2 andi r5,r6,inm add r1, r2, r3 bnz r2, L1 and r2, r3, r2 sub r6,r7,r6 mul r2, r3, r8 ................. L1: andi r5,r6,inm ............ add r1, r2, r3 bnz r2, L1 sub r6,r7,r6 ................. mul r2, r3, r8 ................. L1: and r2, r3, r2 andi r5,r6,inm DEL BLOQUE BASICO. SI SALTO PROBABLE DEL BLOQUE DESTINO SI SALTO NO PROBABLE DEL BLOQUE SECUENCIAL Operación siempre válida. Siempre se realiza trabajo útil. Operación siempre correcta mientras que r2 no sea fuente en el otro bloque antes de ser usado como registro destino. El ejemplo es CORRECTO Operación válida siempre que r6 no se utilice como fuente en el bloque destino, antes de ser usado como registro destino. El ejemplo es INCORRECTO Segmentación Tema 2 /Universidad Autónoma de Madrid 77 Riesgos de Control: Predecir el salto 3- Ejecución especulativa de instrucciones: Hasta conocer si el salto se realiza (la condición se evalúa en la 3ª ó 4ª etapa) En caso de error se deben eliminar los resultados especulativos Predicción estática: siempre predice el mismo sentido del salto. Predicción efectiva (E), el salto se realiza. Predicción no efectiva (NE), el salto no se realiza. Predicción NE si el salto es adelante y E si es hacia atrás. Predicción dinámica: cambia la predicción en función de la historia del salto. Utiliza una pequeña memoria asociada a cada dirección de salto (BHT) F PC Dirección Instr. Salto LSB BHT E NE A A F F PREDICCIÓN DE 1 BIT PREDICCIÓN DE 2 BITS Ef EdA F A NEd NEf AA FF ( Branch History Table) Segmentación Tema 2 /Universidad Autónoma de Madrid 78 4.- Especular anticipando la predicción (antes de decodificar el salto) Utiliza una tabla asociativa que incorpora, para cada instrucción de salto, la dirección de la instrucción de la predicción anterior. A la tabla se la conoce como Buffer de destino de saltos o BTB. Dirección. Instrucción Dirección. Destino Bits de historia Tabla de Look-up Completamente Asociativa Contador de Programa FetchFetch DecodDecod.. Cargar Direc. Destino Dirección Instrucción SEGMENTACION de INSTRUCCIONES Direc. Destino Encontrada Riesgos de Control. Anticipar la dirección más probable Segmentación Tema 2 /Universidad Autónoma de Madrid 79 Ejemplos de segmentación en procesadores Segmentación Tema 2 /Universidad Autónoma de Madrid 80 “CISC” Pipeline de 5-etapas en Intel i486 Escritura en el banco de registros5. Escritura de registros. (Register Write-back) Ejecución de operaciones en ALU y op. de acceso a memoria4. Ejecución (Execute) Acceso a la memoria de microcódigo Envía las microinstrucciones a la unidad de ejecución 3. Decodificación de Instrucciones- 2 (Instruction Decode-2) Traduce instrucciones en señales de control o microcódigo. Inicia la generación de direcciones y el acceso a memoria. 2. Decodificación de Instrucciones- 1 (Instruction Decode-1) Captura de instrucciones desde la cola de precaptura de 32 bytes. (Una unidad de precaptura se encarga de llenar y vaciar esta cola) 1. Captura de Instrucciones (Instruction Fetch) Funciones realizadasEtapas Segmentación Tema 2 /Universidad Autónoma de Madrid 81 ---φ2 Escritura en el banco de registrosφ15. WB Devuelve el dato de D-cache, comprueba tags & paridadφ2 Acceso a D-cacheφ14. MEM Termina op en ALU; en load/store, traduce la dir. virtualφ2 Inicio op en ALU; en saltos comprueba la condiciónφ13. ALU Lectura del banco de reg.; en saltos genera direcc. destinoφ2 Retorno de instr. de I-cache, comprueba tags & paridadφ12. RD Acceso a I-cache usando la dirección realφ2 Traducción de dirección virtual a real en el TLBφ11. IF Función realizadaFaseEtapas Ejemplos de procesadores : MIPS R2000
Compartir