Organización del Computador Memorias. Jerarquía de las memorias.

37
Organización del Organización del Computador Computador Memorias Memorias

Transcript of Organización del Computador Memorias. Jerarquía de las memorias.

Page 1: Organización del Computador Memorias. Jerarquía de las memorias.

Organización del Organización del ComputadorComputador

MemoriasMemorias

Page 2: Organización del Computador Memorias. Jerarquía de las memorias.

Jerarquía de las memoriasJerarquía de las memorias

Page 3: Organización del Computador Memorias. Jerarquía de las memorias.

Jerarquía de memorias en un Jerarquía de memorias en un PentiumPentium

Page 4: Organización del Computador Memorias. Jerarquía de las memorias.

Métricas de las memoriasMétricas de las memorias

Capacidad de almacenamiento:Capacidad de almacenamiento: en en bytes o múltiplos (kB, MB, TB)bytes o múltiplos (kB, MB, TB)

Tiempo de acceso:Tiempo de acceso: en segundos o en segundos o submúltiplos (ns, ms)submúltiplos (ns, ms)

Velocidad de tranferencia de datos:Velocidad de tranferencia de datos: en en bytes/seg o múltiplosbytes/seg o múltiplos

Comsumo de energía:Comsumo de energía: en Watts en WattsTamaño físico:Tamaño físico: en cm3 en cm3Costo total y costo por MB:Costo total y costo por MB: en $ y $/MB en $ y $/MB

Page 5: Organización del Computador Memorias. Jerarquía de las memorias.

Tipos y tecnología de memoriasTipos y tecnología de memorias

Memorias ROM (Read Only Memory)Memorias ROM (Read Only Memory)Programable ROMProgramable ROMErasable Programable ROMErasable Programable ROMElectronically Erasable Programable ROMElectronically Erasable Programable ROM

Memorias RAM (Random Access Memorias RAM (Random Access Memory)Memory)RAM estáticas vs dinámicasRAM estáticas vs dinámicasRAM volátiles vs no volátilesRAM volátiles vs no volátiles

Memorias FLASHMemorias FLASH

Page 6: Organización del Computador Memorias. Jerarquía de las memorias.

Ejemplo memoria OTP EPROMEjemplo memoria OTP EPROM

Page 7: Organización del Computador Memorias. Jerarquía de las memorias.

Características físicas de la EPROMCaracterísticas físicas de la EPROM

Page 8: Organización del Computador Memorias. Jerarquía de las memorias.

Ejemplo memoria OTP EPROMEjemplo memoria OTP EPROM

Page 9: Organización del Computador Memorias. Jerarquía de las memorias.

Diagrama de tiempos de la Diagrama de tiempos de la EPROMEPROM

Page 10: Organización del Computador Memorias. Jerarquía de las memorias.

Ejemplo EEPROMEjemplo EEPROM

Page 11: Organización del Computador Memorias. Jerarquía de las memorias.

Ejemplo EEPROMEjemplo EEPROM

Page 12: Organización del Computador Memorias. Jerarquía de las memorias.

Ejemplo memoria FLASHEjemplo memoria FLASH

Page 13: Organización del Computador Memorias. Jerarquía de las memorias.

Ejemplo memoria SRAMEjemplo memoria SRAM

Page 14: Organización del Computador Memorias. Jerarquía de las memorias.

Ejemplo memoria SRAMEjemplo memoria SRAM

Page 15: Organización del Computador Memorias. Jerarquía de las memorias.

Ejemplo memoria SRAMEjemplo memoria SRAM

Page 16: Organización del Computador Memorias. Jerarquía de las memorias.

Ejemplo memoria SRAMEjemplo memoria SRAM

Page 17: Organización del Computador Memorias. Jerarquía de las memorias.

Tecnología de Integración Tecnología de Integración ActualActual

Imágenes obtenidas con TEM (Transmission Electron Microscope) de una cepa del virus de la gripe, y de un transistor construido con la tecnología de 65 nm utilizada desde el año 2005 en el Procesador Pentium IV y posteriores.

65 nm nanotechnology

Page 18: Organización del Computador Memorias. Jerarquía de las memorias.

Tecnología de memorias: Tecnología de memorias: RAM RAM DinámicaDinámica

Almacena la información como una carga en una capacidad espuria de un transistor.

Una celda (un bit) se implementa con un solo transistor máxima capacidad de almacenamiento por chip.

Ese transistor consume mínima energía Muy bajo consumo. Al leer el bit, se descarga la capacidad necesita regenerar la

carga aumenta entonces el tiempo de acceso de la celda.

CASRAS

Cd

Bit de datos de salida al bus

Buffer

Diagrama de un bit elemental de DRAM (Dynamic RAM).

Transistor

Page 19: Organización del Computador Memorias. Jerarquía de las memorias.

Tecnología de memorias: RAM Tecnología de memorias: RAM EstáticaEstática

Almacena la información en un biestable. Una celda (un bit) se compone de seis transistores menor

capacidad de almacenamiento por chip. 3 transistores consumen energía máxima en forma permanente y

los otros 3 consumen mínima energía Mayor consumo La lectura es directa y no destructiva tiempo de acceso muy

bajo

Diagrama del biestable de un bit básico de SRAM (Static RAM).

Línea de BitLínea de Bit

Selección

61

2

3 4

5

Page 20: Organización del Computador Memorias. Jerarquía de las memorias.

Estructura de Bus clásicaEstructura de Bus clásica Desde fines de los años 80, Desde fines de los años 80,

los procesadores los procesadores desarrollaban velocidades desarrollaban velocidades muy superiores a los tiempos muy superiores a los tiempos de acceso a memoria.de acceso a memoria.

En este escenario, el En este escenario, el procesador necesita generar procesador necesita generar waitwait statesstates para esperar que para esperar que la memoria esté lista la memoria esté lista (“READY”) para el acceso.(“READY”) para el acceso.

¿Tiene sentido lograr altos ¿Tiene sentido lograr altos clocksclocks en los procesadores si en los procesadores si no puede aprovecharlos por no puede aprovecharlos por tener que esperar (tener que esperar (waitwait) a la ) a la memoria?memoria?

Buffer de

Address

Buffer de

Address

Buffer de

Datos

Buffer de

Datos

Bus deControl

Bus deControl

BUS DEL SISTEMA

Bus Local delBus Local delProcesadorProcesador

Memoria del Sistema

Memoria del Sistema

ProcesadorProcesador

E/S del Sistema

E/S del Sistema

DATOS

ADDRESS

CONTROL

Page 21: Organización del Computador Memorias. Jerarquía de las memorias.

1100

1000

900

800

700

600

500

400

300

200

100

89 90 91 92 93 94 95 96 97 98 99 00

486 DX4100 MHz.

386 DX33 MHz

Pentium II400 MHz.

Pentium III1GHz

Memorias

Crecimiento de la velocidad de Crecimiento de la velocidad de clock de las CPU versus memoriaclock de las CPU versus memoria

Page 22: Organización del Computador Memorias. Jerarquía de las memorias.

El problemaEl problema RAM dinámica (DRAM)RAM dinámica (DRAM)

Consumo mínimo.Consumo mínimo. Capacidad de almacenamiento comparativamente alta.Capacidad de almacenamiento comparativamente alta. Costo por Costo por bitbit bajo. bajo. Tiempo de acceso alto (lento), debido al circuito de regeneración de Tiempo de acceso alto (lento), debido al circuito de regeneración de

carga.carga. Si construimos el banco de memoria utilizando RAM dinámica, no Si construimos el banco de memoria utilizando RAM dinámica, no

aprovechamos la velocidad del procesador.aprovechamos la velocidad del procesador.

RAM estática (SRAM)RAM estática (SRAM) Alto consumo relativo.Alto consumo relativo. Capacidad de almacenamiento comparativamente baja.Capacidad de almacenamiento comparativamente baja. Costo por Costo por bitbit alto. alto. Tiempo de acceso bajo (es mas rápida).Tiempo de acceso bajo (es mas rápida). Si construimos el banco de memoria utilizando RAM estática, el Si construimos el banco de memoria utilizando RAM estática, el

costo y el consumo de la computadora son altos. costo y el consumo de la computadora son altos.

Page 23: Organización del Computador Memorias. Jerarquía de las memorias.

La solución: Memoria cacheLa solución: Memoria cache Se trata de un banco de SRAM de muy alta velocidad, que Se trata de un banco de SRAM de muy alta velocidad, que

contiene una copia de los datos e instrucciones que están en contiene una copia de los datos e instrucciones que están en memoria principalmemoria principal

El arte consiste en que esta copia esté disponible justo cuando El arte consiste en que esta copia esté disponible justo cuando el procesador la necesita permitiéndole acceder a esos ítems el procesador la necesita permitiéndole acceder a esos ítems sin recurrir a sin recurrir a wait states.wait states.

Combinada con una gran cantidad de memoria DRAM, para Combinada con una gran cantidad de memoria DRAM, para almacenar el resto de códigos y datos, resuelve el problema almacenar el resto de códigos y datos, resuelve el problema mediante una solución de compromiso típica.mediante una solución de compromiso típica.

Requiere de hardware adicional que asegure que este Requiere de hardware adicional que asegure que este pequeño banco de memoria cache contenga los datos e pequeño banco de memoria cache contenga los datos e instrucciones mas frecuentemente utilizados por el procesador.instrucciones mas frecuentemente utilizados por el procesador.

Page 24: Organización del Computador Memorias. Jerarquía de las memorias.

ReferenciasReferencias El tamaño del banco de memoria cache debe ser:El tamaño del banco de memoria cache debe ser:

Suficientemente grande para que el procesador resuelva la mayor Suficientemente grande para que el procesador resuelva la mayor cantidad posible de búsquedas de código y datos en esta memoria cantidad posible de búsquedas de código y datos en esta memoria asegurando una alta asegurando una alta performanceperformance

Suficientemente pequeña para no afectar el consumo ni el costo del Suficientemente pequeña para no afectar el consumo ni el costo del sistema.sistema.

Se dice que se logra un Se dice que se logra un hithit cuando se accede a un ítem (dato o cuando se accede a un ítem (dato o código) y éste se encuentra en la memoria cache.código) y éste se encuentra en la memoria cache.

En caso contrario, se dice que el resultado del acceso es un En caso contrario, se dice que el resultado del acceso es un missmiss..

Se espera un Se espera un hit ratehit rate lo mas alto posible lo mas alto posible

Cantidad total de accesos a memoriaCantidad de accesos con presencia en Memoria Cache

hit rate =

Page 25: Organización del Computador Memorias. Jerarquía de las memorias.

Operación de Lectura de Operación de Lectura de memoriamemoria

Inicio

Busca ítem en cache

CPU envía señal de lectura

Busca ítem en cache y envía a

la CPU

Busca ítem en memoria del

sistema

Escribe ítem en el cache

Actualiza directorio cache

Envía ítem a la CPU

Fin

MissHit!!

Page 26: Organización del Computador Memorias. Jerarquía de las memorias.

Estructura de Bus del sistema con Estructura de Bus del sistema con cachecache

Memoria

cache

Memoria

cache

Controlador de Memoria

caché

Controlador de Memoria

caché

Buffer de

Address

Buffer de

Address

Buffer de

Datos

Buffer de

Datos

BUS DEL SISTEMA

Bus Local del Bus Local del procesadorprocesador

ProcesadorProcesador

Bus deControl

Bus deControl

CONTROL

DATOS

ADDRESS

CONTROL

Bus Local Bus Local del del

controlador controlador cachecache

Bus deDatos

Bus deDatos

Bus deDir.

Bus deDir.

Page 27: Organización del Computador Memorias. Jerarquía de las memorias.

Como trabaja el controlador Como trabaja el controlador cachecache

El controlador cache trabaja mediante dos principios que surgen de analizar el El controlador cache trabaja mediante dos principios que surgen de analizar el

comportamiento de los algoritmos de software que se emplean habitualmente. comportamiento de los algoritmos de software que se emplean habitualmente. Principio de vecindad temporalPrincipio de vecindad temporal: Si un ítem es referenciado, la probabilidad de ser : Si un ítem es referenciado, la probabilidad de ser

referenciado en el futuro inmediato es alta.referenciado en el futuro inmediato es alta.

Principio de vecindad espacialPrincipio de vecindad espacial: Si un ítem es referenciado, es altamente probable que : Si un ítem es referenciado, es altamente probable que

se referencie a los ítems vecinos a éste.se referencie a los ítems vecinos a éste.

Ejemplo: Algoritmo de convoluciónEjemplo: Algoritmo de convoluciónfor (i = 0 ; i < 256 ; i++ ){for (i = 0 ; i < 256 ; i++ ){

suma = 0.0f;suma = 0.0f;for (j = 0 ; (j <= i && j < 256) ; j++)for (j = 0 ; (j <= i && j < 256) ; j++)

suma += v0[i-j] * v1[j];suma += v0[i-j] * v1[j];fAux[i] = suma;fAux[i] = suma;

}}

ii, , jj, , sumasuma, se utilizan a menudo. Por lo tanto si se mantienen en el cache, el tiempo de , se utilizan a menudo. Por lo tanto si se mantienen en el cache, el tiempo de

acceso a estas variables por parte del procesador es óptimo.acceso a estas variables por parte del procesador es óptimo.

Page 28: Organización del Computador Memorias. Jerarquía de las memorias.

Estructura de memoria cacheEstructura de memoria cacheTag Línea

Línea

0123456789

Dirección

Ancho de palabra

Línea: Elemento mínimo de palabra de datos dentro del cache.Corresponde a un múltiplo del tamaño de la palabra de datos de memoria.Razón: Cuando se direcciona un ítem en memoria generalmente se requerirá de los ítem que lo rodean (Principio de vecindad espacial)

Page 29: Organización del Computador Memorias. Jerarquía de las memorias.

Organización del caché: Mapeo Organización del caché: Mapeo DirectoDirecto

Directorio de Caché Interno4 Gbytes de Memoria Principal

Tag

17 bits

Bit de validez del Tag

Bits de validez de las líneas

32 Kbytes(igual tamaño

que el de la cache)

Set 0

Set 1

Set 1023

Memoria CachéPag.0

Pag.217 -1

Línea

Línea

1 Línea = 4 bytes

Page 30: Organización del Computador Memorias. Jerarquía de las memorias.

Selector deLínea

(1 de 8 líneas)

Bit de validez del Tag

Bits de validez de la línea0

1

1023

Directorio deCaché Interno

Nro de Set

A15 A14 A5 A4A31A2

Tag de 17 bits (1 de las 217 páginas) Set Address (1 de 1024 sets)

Caché Address (1 de 8 KLíneas)

Organización del caché de mapeo Organización del caché de mapeo directodirecto

Page 31: Organización del Computador Memorias. Jerarquía de las memorias.

Organizacion del cache: Asociativo Organizacion del cache: Asociativo de dos víasde dos vías

Directorio de Caché Interno4 Gbytes de Memoria Principal

Tag

18 bits

Bit de validez del Tag

Bits de validez de las líneas 1

6 K

byte

s(ig

ual ta

mañ

o Q

ue e

l de

cad

a b

an

co d

el c

ach

e)

Set 0

Set 1

Set 512

Memoria CachéPag.0

Pag.218 -1

Línea

Línea

1 Línea = 4 bytes Línea

Bits LRU

Bits LRU

Bits LRU

18 bits

18 bits 18 bits

18 bits

18 bits

Page 32: Organización del Computador Memorias. Jerarquía de las memorias.

A13A14 A5 A4A31 A2

Tag de 18 bits (1 de las 218 páginas) Set Address (1 de 512 sets)Selector deLínea

(1 de 8 líneas)

Caché Address (1 de 4 KLíneas)

Bit de validez del Tag

Bits de validez de la línea0

1

512

Directorio deCaché Interno

Nro de Set

Organización del caché asociativo Organización del caché asociativo de dos víasde dos vías

Page 33: Organización del Computador Memorias. Jerarquía de las memorias.

Manejo del contenidoManejo del contenido

Algoritmos de reemplazo del contenido de Algoritmos de reemplazo del contenido de la memoria cachela memoria cacheLRU: Least Recently Used.LRU: Least Recently Used.

Se corresponde con el principio de vecindad Se corresponde con el principio de vecindad temporal.temporal.

LFU: Least Frecuently UsedLFU: Least Frecuently UsedRandomRandomFIFOFIFO

Page 34: Organización del Computador Memorias. Jerarquía de las memorias.

Coherencia de un Coherencia de un cachecache Una variable que está en el caché también está alojada en alguna dirección de la Una variable que está en el caché también está alojada en alguna dirección de la

DRAM.DRAM. Ambos valores deben ser igualesAmbos valores deben ser iguales Cuando el procesador la modifica hay varios modos de actuarCuando el procesador la modifica hay varios modos de actuar

Write throughWrite through: el procesador escribe en la DRAM y el controlador : el procesador escribe en la DRAM y el controlador cachecache refresca el refresca el cachecache con el dato actualizado con el dato actualizado

WriteWrite throughthrough bufferedbuffered: el procesador actualiza la SRAM : el procesador actualiza la SRAM cachecache, y el controlador , y el controlador cachecache luego actualiza la copia en memoria DRAM mientras el procesador continúa ejecutando luego actualiza la copia en memoria DRAM mientras el procesador continúa ejecutando instrucciones y usando datos de la memoria instrucciones y usando datos de la memoria cachecache

CopyCopy back: Se marcan las líneas de la memoria back: Se marcan las líneas de la memoria cachecache cuando el procesador escribe en cuando el procesador escribe en ellas. Luego en el momento de eliminar esa línea del caché el controlador ellas. Luego en el momento de eliminar esa línea del caché el controlador cachecache deberá deberá actualizar la copia de DRAM.actualizar la copia de DRAM.

Si el procesador realiza un miss mientras el controlador Si el procesador realiza un miss mientras el controlador cachecache está accediendo a la está accediendo a la DRAM para actualizar el valor, deberá esperar hasta que controlador DRAM para actualizar el valor, deberá esperar hasta que controlador cachecache termine la actualización para recibir desde este la habilitación de las líneas de termine la actualización para recibir desde este la habilitación de las líneas de control para acceder a la DRAM.control para acceder a la DRAM.

Page 35: Organización del Computador Memorias. Jerarquía de las memorias.

Multilevel cacheMultilevel cache

CPUCache Level1

Cache Level 2

Cache controller

System Memory (DRAM)

On chip

Tamaño Cache L2 > Tamaño Cache L1Velocidad Cache L1 > Velocidad Cache L2

Page 36: Organización del Computador Memorias. Jerarquía de las memorias.

Implementaciones prácticas de Implementaciones prácticas de memoria cache (1)memoria cache (1)

Intel 80486Intel 80486 8 Kbytes de cache L1 on chip8 Kbytes de cache L1 on chip Tamaño de línea: 16 bytesTamaño de línea: 16 bytes Organización asociativa de 4-vías Organización asociativa de 4-vías

PentiumPentium dos caches on-chip, uno para datos y otro para dos caches on-chip, uno para datos y otro para

instrucciones.instrucciones. Tamaño de cada cahe: 8 KbytesTamaño de cada cahe: 8 Kbytes Tamaño de línea: 32 bytesTamaño de línea: 32 bytes Organización asociativa de 4-vías Organización asociativa de 4-vías

PowerPC 601PowerPC 601 cache on-chip de 32 Kbytescache on-chip de 32 Kbytes Tamaño de línea: 32 bytesTamaño de línea: 32 bytes Organización asociativa de 8-vías Organización asociativa de 8-vías

Page 37: Organización del Computador Memorias. Jerarquía de las memorias.

PowerPC 603PowerPC 603 Dos caches on-chip, una para datos y otra para instruccionesDos caches on-chip, una para datos y otra para instrucciones Tamaño de cada cache: 8 KbytesTamaño de cada cache: 8 Kbytes Tamaño de línea: 32 bytesTamaño de línea: 32 bytes Organización asociativa de 2-vías (organización del cache más simple Organización asociativa de 2-vías (organización del cache más simple

que en el 601 pero un procesador mas fuerte)que en el 601 pero un procesador mas fuerte) PowerPC 604PowerPC 604

Dos caches on-chip, una para datos y otra para instruccionesDos caches on-chip, una para datos y otra para instrucciones Tamaño de cada cache: 16 KbytesTamaño de cada cache: 16 Kbytes Tamaño de línea: 32 bytesTamaño de línea: 32 bytes Organización asociativa de 4-víasOrganización asociativa de 4-vías

PowerPC 620PowerPC 620 Dos caches on-chip, una para datos y otra para instruccionesDos caches on-chip, una para datos y otra para instrucciones Tamaño de cada cache: 32 KbytesTamaño de cada cache: 32 Kbytes Tamaño de línea: 64 bytesTamaño de línea: 64 bytes Organización asociativa de 8-víasOrganización asociativa de 8-vías

Implementaciones prácticas de Implementaciones prácticas de memoria cache (memoria cache (22))