Top Banner
Programa Programa del Curso del Curso Fundamentos del Diseño de Computador. Fundamentos del Diseño de Computador. Arquitectura del Conjunto de Instrucciones Arquitectura del Conjunto de Instrucciones (Revisión). (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 Sistema de Entrada y Salida (Almacenamiento). (Almacenamiento).
34

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

Feb 02, 2016

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Programa del Curso Fundamentos del Diseño de Computador. Fundamentos del Diseño de Computador. Arquitectura del Conjunto de Instrucciones (Revisión). Arquitectura.

ProgramaPrograma del Curso del Curso

Fundamentos del Diseño de Computador.Fundamentos del Diseño de Computador. Arquitectura del Conjunto de Instrucciones Arquitectura del Conjunto de Instrucciones

(Revisión).(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 Sistema de Entrada y Salida

(Almacenamiento).(Almacenamiento).

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

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

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

Diseño de Jerarquía de Memoria Componente del Computador

Núcleo ElectrónicoE/S

Mem 2

Memoria

UCP

Redes

C OMPUTADOR =

CPU

MEMORIA

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

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

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

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

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

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%

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

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

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

Capacidad Velocidad (latencia)

Lógica: 2x in 3 años 2x in 3 añosDRAM: 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

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

Diseño de Jerarquía de Memoria Tendencia Tecnológica en DRAM (cont.)

Año Tamaño Tiempo de Ciclo

1980 64 Kb 250 ns

1983 256 Kb 220 ns

1986 1 Mb 190 ns

1989 4 Mb 165 ns

1992 16 Mb 145 ns

1995 64 Mb 120 ns

1998 256 Mb 100 ns

2001 1 Gb 80 ns

1000:1! 2:1!4:1!

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

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)

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

Diseño de Jerarquía de Memoria La Fuerza Tecnológica : Rendimiento

DRAM9%/año(2X/10 año)

µProc60%/año(2X/1.5año)

Margen de RendimientoUCP-Memoria: crece 50% / año

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

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 or 136 instrucciones

2nd Alpha (8400): 266 ns/3.3 ns =  80 clks x 4 or 320 instrucciones

3rd Alpha (t.b.d.): 180 ns/1.7 ns =108 clks x 6 or 648 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

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

Diseño de Jerarquía de Memoria La Fuerza Tecnológica : Memoria

Dinámica

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

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

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

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 LevelMemoryUpper Level

MemoryTo Processor

From ProcessorBlk X

Blk Y

Diseño de Jerarquía de Memoria

Principio de Funcionamiento

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

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 LevelMemoryUpper Level

MemoryTo Processor

From ProcessorBlk X

Blk Y

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

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

Datap

ath

AlmacenSecundario

(Disk)

Procesador

Registros

MemoriaPrincipal(DRAM)

L3Cache

(SRAM)

On

-Ch

ipL

2 Cach

e

1s 10,000,000s (10s ms)

Velocidad (ns): 2s 100s

100s GsTamaño (bytes): Ks Ms

AlmacenTerciario

(Tape)

10,000,000,000s (10s sec)

TsO

n-C

hip

L1 C

ache

10s

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

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

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

Acceso Aleatorio:“Aleatorio” es bueno: Tiempo de Acceso idéntico para cualquier datoDRAM: 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

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

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

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

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

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

Registros (D Flip-Flops)

L1, L2 Cache (SRAM)

Cache L3 (SRAM)

Memoria Principal (DRAM)

Discos (Magnetico)

Almacenamiento Secundario

Jerarquíade

Memoria

Procesador

Nivel Inferior

Nivel Superior

Diseño de Jerarquía de Memoria Jerarquía de Memoria

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

Diseño de Jerarquía de Memoria Diferencias en Niveles de Memoria

Nivel Tecnología Tamaño típico Tiempo de AccesoTípico

Costo perMbyte

Registros D Flip-Flops

64 32-bit 2 -3 ns N/A

L1 Cache(on chip)

SRAM 16 Kbytes 5 - 25 ns $100 - $250

L3Cache(off chip)

SRAM 256 Kbytes 5 - 25 ns $100 - $250

MemoriaPrincipal

DRAM 256 Mbytes 60 - 120 ns $5 - $10

AlmacénSecundario

DiscoMagnético

8 Gbytes 10 - 20 ms $0.10-$0.20

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

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

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

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?

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

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-formasNú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

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

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?

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

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-formasTamaño MRU Aleatoria MRU Aleatoria MRU Aleatoria16 KB 5.18% 5.69% 4.67% 5.29% 4.39% 4.96%64 KB 1.88% 2.01% 1.54% 1.66% 1.39% 1.53%256 KB 1.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 MemoriaP3: ¿ Cuál Bloque debe ser reemplazado en un miss ?

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

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 MemoriaP4: ¿ Qué pasa en una Escritura ?

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

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 MemoriaP4: ¿ Qué pasa en una Escritura ? (cont.)

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

Ejemplo: Alpha 21064 Data Cache

Organización:8 KB de Datos32 bytes el bloque Mapeo DirectoWrite 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

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

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”.

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

2-Way Set Associative Cache

Features of an 8 KB 2-way set associative cache

5 bit block offset7 bit index22 bit tag

The set associative cache hasextra hardware for

2 tag comparisonsmux to select data

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

ResumenEl Boquete de Rendimiento CPU-Memory

Principal problema de RendimientoJerarquí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.