La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Programa del Curso Fundamentos del Diseño de Computador. Fundamentos del Diseño de Computador. Arquitectura del Conjunto de Instrucciones (Revisión). Arquitectura.

Presentaciones similares


Presentación del tema: "Programa del Curso Fundamentos del Diseño de Computador. Fundamentos del Diseño de Computador. Arquitectura del Conjunto de Instrucciones (Revisión). Arquitectura."— Transcripción de la presentación:

1 Programa del Curso Fundamentos del Diseño de Computador. Fundamentos del Diseño de Computador. Arquitectura del Conjunto de Instrucciones (Revisión). Arquitectura del Conjunto de Instrucciones (Revisión). Encauzamiento. Encauzamiento. Paralelismo a Nivel de Instrucciones. Paralelismo a Nivel de Instrucciones. Diseño de Jerarquía de Memoria. Diseño de Jerarquía de Memoria. Paralelismo a Nivel de Multiprocesador. Paralelismo a Nivel de Multiprocesador. Sistema de Entrada y Salida (Almacenamiento). Sistema de Entrada y Salida (Almacenamiento).

2  CPU Crecimiento del Campo de Arquitecturas  Del CISC al RISC (Electrónicos vs Programadores) Rendimiento  Límite del Boquete CPU-Memoria  Límite del Paralelismo a Nivel de Instrucciones Ventana de Instrucciones (BrPredictor, hw, compilador) El Factor de Disipación de Potencia Paralelismo a Nivel de Programas  Multithreadring, etc  Multiprogramación Arquitecturas de Computadoras Avanzadas RESUMEN TECNOLOGICO del CPU

3 Diseño de Jerarquía de Memoria Componente del Computador Núcleo Electrónico E/S Mem 2 Memoria UCP Redes C OMPUTADOR = CPU MEMORIA

4  Memoria Virtual Magnético, Semiconductor  Memoria Principal Dynamic Random Access Memory (DRAM)  Memoria Cache Static Random Access Memory (SRAM)  Memoria de Registros Lógica de Diseño Diseño de Jerarquía de Memoria Tecnología de Implementación

5 Diseño de Jerarquía de Memoria Límites del Arquitecto de Computadores  Disipación de Potencia (Número. de Transistores)  Boquete de Latencia CPU-Memoria Predictor de Salto Localidad de Referencia  Costo  Compatibilidad  Validez  Exigencias del Mercado

6 Diseño de Jerarquía de Memoria Costos en el Computador  DRAM: 50% to 55%  Monitor de color: 15% to 20%  Tarjeta CPU : 10% to 15%  Disco Duro: 8% to 10%  Cabinet del CPU: 3% to 5%  Video & otros E/S: 3% to 7%  Teclado y Ratón e-: 1% to 2%

7 Diseño de Jerarquía de Memoria Límites del Arquitecto de Computadores  Disipación de Potencia (Número. de Transistores)  Boquete de Latencia CPU-Memoria Predictor de Salto Localidad de Referencia  Costo  Compatibilidad  Validez  Exigencias del Mercado

8 Capacidad Velocidad (latencia) Lógica:2x in 3 años 2x in 3 años DRAM:4x in 3 años 2x in 10 años Disk:4x in 3 años 2x in 10 años Diseño de Jerarquía de Memoria Tendencia Tecnológica en DRAM

9 Diseño de Jerarquía de Memoria Tendencia Tecnológica en DRAM (cont.) AñoTamañoTiempo de Ciclo 198064 Kb250 ns 1983256 Kb220 ns 19861 Mb190 ns 19894 Mb165 ns 199216 Mb145 ns 199564 Mb120 ns 1998256 Mb100 ns 20011 Gb80 ns 1000:1!2:1! 4:1!

10 Diseño de Jerarquía de Memoria La Fuerza Tecnológica : Memoria Dinámica  Capacidad de Almacenamiento (40% por año)  Rendimiento de Latencia (9% por año)

11 Diseño de Jerarquía de Memoria La Fuerza Tecnológica : Rendimiento DRAM 9%/año (2X/10 año) µProc 60%/año (2X/1.5año) Margen de RendimientoUCP-Memoria: crece 50% / año

12  Apoyo en las Caches para aliviar el Boquete de Memoria  Cache es memoria muy rápida entre el Mp y Memoria Principal.  Boquete de Rendimiento entre el Microprocesador-DRAM Tiempo de un miss completo en la cache en número de instrucciones. 1st Alpha (7000): 340 ns/5.0 ns = 68 clks x 2 or136 instrucciones 2nd Alpha (8400):266 ns/3.3 ns = 80 clks x 4 or320 instrucciones 3rd Alpha (t.b.d.):180 ns/1.7 ns =108 clks x 6 or648 instrucciones 1/2X latencia x 3X tasa del reloj x 3X Instr/clock ~ 5X  1980: no cache en µproc; 1997 Nivel 2 de cache, 60% trans. on Alpha 21164 µproc 2002 Nivel 3 de cahe (Itanium) 2008 Coherencia de cache (multi CPUs) Diseño de Jerarquía de Memoria La Fuerza Tecnológica : Situación Actual

13 Diseño de Jerarquía de Memoria La Fuerza Tecnológica : Memoria Dinámica

14 Diseño de Jerarquía de Memoria Fuerzas de Atracción en la Implementación Más cerca de la UCP: Más Veloz Menos Capacidad de Almacenaje Menos Hacia el Usuario Núcleo Electrónico Atracción de Procesamiento E/S Mem 2 Memoria UCP Redes Atracción de Almacenamiento Atracción del Diseño

15  Localidad Temporal (Localidad en el Tiempo)  Mantener la información recientemente solicitada cerca del procesador  Localidad Espacial (Localidad en el Espacio)  Mover hacia Niveles Superiores de Información Contigua en bloque Lower Level Memory Upper Level Memory To Processor From Processor Blk X Blk Y Diseño de Jerarquía de Memoria Principio de Funcionamiento

16 Diseño de Jerarquía de Memoria Terminología  Hit: dato aparece en algún bloque de nivel superior (i.e. bloque X) Rata de Hit: Fracción de Solicitudes de Memoria en nivel superior Tiempo de Hit: Tiempo para solicitar el nivel superior  RAM tiempo de solicitud + Tiempo para determinar hit/miss  Miss: dato es solicitado de un bloque en un nivel inferior (i.e. bloque Y) Rata de Miss = 1 - (Rata de Hit) Penalización de Miss: Tiempo para reemplazar un bloque de un bloque en nivel superior + Tiempo para entregar el bloque al procesador  Tiempo Hit << Penalización Miss Lower Level Memory Upper Level Memory To Processor From Processor Blk X Blk Y

17  Aprovechando el Principio de Localidad: Ofrecer tanta Memoria posible en la tecnología más económica. Ofrecer acceso a Memoria en la Tecnología más veloz Diseño de Jerarquía de Memoria La Fuerza Tecnológica : Memoria Dinámica Control Datapath Almacen Secundario (Disk) Procesador Registros Memoria Principal (DRAM) L3 Cache (SRAM) On-Chip L2 Cache 1s10,000,000s (10s ms) Velocidad (ns): 2s 100s Gs Tamaño (bytes):Ks Ms Almacen Terciario (Tape) 10,000,000,000s (10s sec) Ts On-Chip L1 Cache 10s

18  Registros  Memoria El Compilador (¿el programador?)  Cache  Memoria El Hardware  Memoria  Discos El Hardware y el S.O. (memoria virtual) El Programador (archivos) Diseño de Jerarquía de Memoria Cómo Manejar la Jerarquía

19  Acceso Aleatorio: “Aleatorio” es bueno: Tiempo de Acceso idéntico para cualquier dato DRAM: Dynamic Random Access Memory  Alta densidad, bajo en potencia, barato, lento  Dinámica: requiere de ser “refrescada” regularmente SRAM: Static Random Access Memory  Baja densidad, alto en potencia, cara, rápida  Estática: contenido para siempre (hasta que se pierde la corriente)  Acceso “No-tan-aleatoria”: Tiempo de acceso varía de localidad en localidad y de vez en cuando. Ejemplos: Discos, CDROMs  Acceso Secuencial: tiempo de acceso lineal según la posición (Tapes) Diseño de Jerarquía de Memoria Las Tecnologías en la Jerarquía de Memoria

20 Superior: memoria más cerca al procesador Bloque: unidad mínima de bytes Dirección de Bloque: posición del bloque en memoria Hit: Dato es encontrado en la posición deseada Tiempo de Hit: tiempo de acceso del nivel superior Miss: Dato NO es encontrado en la posición deseada Rata de Miss: porcentaje de fallas en nivel superior Diseño de Jerarquía de Memoria Organización de Memoria: Definiciones

21  Localidad Temporal: memoria referenciada es probable ser referenciada de nuevo prontamente (ej.: código en un lazo) Espacial: memoria cerca a la memoria referenciada es probable a ser pronto referenciada (ej.: datos en un arreglo solicitado secuencialmente) Localidad + HW = jerarquía de memoria Niveles: Más Pequeña pero Más Rápido su Acceso y Más Caro Inclusive: datos en nivel superior también en nivel inferior. Diseño de Jerarquía de Memoria Principios Organizacionales de Memoria

22 Registros (D Flip-Flops) L1, L2 Cache (SRAM) Cache L3 (SRAM) Memoria Principal (DRAM) Discos (Magnetico) Almacenamiento Secundario Jerarquía de Memoria Procesador Nivel Inferior Nivel Superior Diseño de Jerarquía de Memoria Jerarquía de Memoria

23 Diseño de Jerarquía de Memoria Diferencias en Niveles de Memoria NivelTecnologíaTamaño típico Tiempo de Acceso Típico Costo per Mbyte RegistrosDFlip- Flops 64 32-bit2 -3nsN/A L1 Cache (on chip) SRAM16 Kbytes5 - 25ns$100 - $250 L3Cache (off chip) SRAM256 Kbytes5 - 25ns$100 - $250 Memoria Principal DRAM256 Mbytes60 - 120ns$5 - $10 Almacén Secundario Disco Magnético 8Gbytes10 - 20 ms$0.10-$0.20

24  P1: ¿Dónde puede ser colocado un Bloque en el nivel superior? (Colocación de Bloque)  P2: ¿ Cómo se encuentra un Bloque si está en el nivel superior? (Identificación de Bloque)  P3: ¿ Cuál Bloque debe ser reemplazado en un miss ? (Reemplazo de Bloque)  P4: ¿ Qué pasa en una Escritura ? (Estrategia de Escritura) Diseño de Jerarquía de Memoria Preguntas a La Jerarquía de Memoria

25  Mapeo Directo Cada Bloque en Único lugar en Cache  Mapeo Asociativo Cada Bloque en Cualquier lugar en Cache  Mapeo Conjunto Asociativo Cada Bloque en un Conjunto de lugares en Cache Si hay “n” bloques en el conjunto, la Colocación se le denomina conjunto asociativo de n formas. ¿Cuál es la asociatividad del Mapeo Directo ? Diseño de Jerarquía de Memoria P1: ¿Dónde puede ser colocado un Bloque en el nivel superior?

26 Tamaño de Cache: 8 bloques Donde va la Palabra 12 de Memoria? Mapeo Asociativo: Bloque 12 va en cualquier lugar Mapeo Directo: Número de Bloque = (dir bloque) mod (Nro de bloques en cache) (12 mod 8 = 4) Bloque 12 solamente en bloque 4 => Acceso de bloque usa los 3 bits m.s. Mapeo Conjunto Asociativo de 2-formas Número de Conjunto = (dir Bloque) mod (Nro de conjuntos en cache) (12 mod 4 = 0) Bloque 12 en cualquier lugar en conjunto 0 => Acceso de conjunto usa los 2 bits m.s. Diseño de Jerarquía de Memoria Ejemplos de Asociatividad

27  La dirección puede ser dividida en dos partes principales Desplazamiento de Bloque: Selecciona el dato del bloque Tamaño del Desplazamiento = log2(tamaño del bloque) Dir de Bloque: Etiqueta Block + índice  Índice : selecciona el conjunto en cache tamaño índice = log2(#bloques/asociatividad)  etiqueta: comparada con etiqueta en cache para determinar “hit”. tamaño etiqueta = tamaño dir – tamaño índice – tamaño desplazamiento  Cada bloque tiene un bit de validez (bloque en cache si Etiqueta combina y si el bit de validez está colocado) Diseño de Jerarquía de Memoria P2: ¿ Cómo se encuentra un Bloque si está en el nivel superior?

28  Fácil para el Mapeo Directo Solamente una selección  Mapeo Asociativo ó Conjunto-Asociativo Aleatoria : Más fácil para Implementar Menos Recientemente Usado (MRU): Más dificil  Ratas de Fallas en caches con: Asociatividad: 2-formas 4-formas 8-formas TamañoMRU Aleatoria MRU Aleatoria MRU Aleatoria 16 KB5.18%5.69% 4.67% 5.29% 4.39% 4.96% 64 KB1.88%2.01% 1.54% 1.66% 1.39% 1.53% 256 KB1.15%1.17% 1.13% 1.13% 1.12% 1.12% Para Caches con baja rata de fallas, la técnica aleatoria es tan eficiente como MRU Diseño de Jerarquía de Memoria P3: ¿ Cuál Bloque debe ser reemplazado en un miss ?

29  Write through: La información se escribe en ambos: En bloque del Nivel Superior y en el bloque de Nivel Inferior.  Write back: La información se escribe solamente en bloque del Nivel Superior. El bloque de cache modificado es escrito a memoria principal solamente cuando es reemplazado. ¿ Está el bloque limpio ó sucio ? (agregar un bit de sucio para c/bloque)  Pros y Contras de cada Técnica: Write through  Fallas en Lecturas no pueden resultar en Escrituras a Memoria  Más fácil para implementar  Siempre se combina con Buffers de Escritura para evitar la latencia de memoria Write back  Menos Tránsito de Memoria  Realiza las Escrituras a la velocidad de la cache Diseño de Jerarquía de Memoria P4: ¿ Qué pasa en una Escritura ?

30  No Es Necesario Traer el Dato a un Nivel Superior en una Falla de Escritura, hay dos opciones: Write allocate  El bloque es traído a la cache.  Usada con caches write-back  Esperanza de escrituras subsecuentes al bloque No-write allocate  El bloque es modificado en memoria, pero no es traído a la cache  Usada con caches write-through  Escrituras tienen que ir a Memoria de todas formas, entonces para que traer el bloque a la cache Diseño de Jerarquía de Memoria P4: ¿ Qué pasa en una Escritura ? (cont.)

31 Ejemplo: Alpha 21064 Data Cache  Organización: 8 KB de Datos 32 bytes el bloque Mapeo Directo Write through (no-write allocate, write buffer con bloque de 4 bytes) Dirección Física de 34 bits:  5 bits de Desplazamiento  8 bits de Indice  21 bits de Etiqueta

32 Ejemplo: Alpha 21064 Data Cache Un “cache read” tiene 4pasos (1)La Dirección de la cahe Es divida en Etiqueta, Indice y Desplazamiento. (2)El Indice selecciona el Bloque (3) La Etiqueta es comparada con la Etiqueta en cache, el bit Válido es chequeado y el Dato buscado es seleccionado (4) Si el bit Válido es uno, el Dato es cargado en el procesador. Si es un “cache write”, el Dato es también enviado al “write buffer”.

33 2-Way Set Associative Cache Features of an 8 KB 2-way set associative cache 5 bit block offset 7 bit index 22 bit tag The set associative cache has extra hardware for 2 tag comparisons mux to select data

34 Resumen  El Boquete de Rendimiento CPU-Memory Principal problema de Rendimiento  Jerarquía de Memoria Tomar ventaja de “Localidad de Referencia” Relación con el Procesador  Cercana: Más pequeño, rápido, caro.  Lejana: todolocontrario  Cuatro Preguntas en la Jerarquía de Memorias Colocación, Identificación, Reemplazo, Estrategia de Escritura.  Organización: Tamaño, Bloque, Mapeo.


Descargar ppt "Programa del Curso Fundamentos del Diseño de Computador. Fundamentos del Diseño de Computador. Arquitectura del Conjunto de Instrucciones (Revisión). Arquitectura."

Presentaciones similares


Anuncios Google