Organización del Organización del
Computador Computador
Memorias
Memorias
Jerarquía de las memorias
Jerarquía de las memorias
Jerarquía de memorias en un Jerarquía de memorias en un
Pentium
Pentium
Métricas de las memorias Métricas de las memorias
Capacidad de almacenamiento: Capacidad de almacenamiento: en bytes en bytes o múltiplos (kB, MB, TB)
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últiplos
bytes/seg o múltiplos
Comsumo de energía: Comsumo de energía: en Watts en Watts
Tamaño físico: Tamaño físico: en cm3 en cm3
Costo total y costo por MB: Costo total y costo por MB: en $ y $/MB en $ y $/MB
Tipos y tecnología de memorias Tipos y tecnología de memorias
Memorias ROM (Read Only Memory) Memorias ROM (Read Only Memory)
Programable ROM Programable ROM
Erasable Programable ROM Erasable Programable ROM
Electronically Erasable Programable ROM Electronically Erasable Programable ROM
Memorias RAM (Random Access Memory) Memorias RAM (Random Access Memory)
RAM estáticas vs dinámicas RAM estáticas vs dinámicas
RAM volátiles vs no volátiles RAM volátiles vs no volátiles
Memorias FLASH Memorias FLASH
Ejemplo memoria OTP EPROM
Ejemplo memoria OTP EPROM
Características físicas de la EPROM
Características físicas de la EPROM
Ejemplo memoria OTP EPROM
Ejemplo memoria OTP EPROM
Diagrama de tiempos de la Diagrama de tiempos de la
EPROM
EPROM
Ejemplo EEPROM
Ejemplo EEPROM
Ejemplo EEPROM
Ejemplo EEPROM
Ejemplo memoria FLASH
Ejemplo memoria FLASH
Ejemplo memoria SRAM
Ejemplo memoria SRAM
Ejemplo memoria SRAM
Ejemplo memoria SRAM
Ejemplo memoria SRAM
Ejemplo memoria SRAM
Ejemplo memoria SRAM
Ejemplo memoria SRAM
Tecnología de Integración Tecnología de Integración
Actual Actual
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
Tecnología de memorias:
Tecnología de memorias: RAM RAM Dinámica
Diná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.
RASCAS
Cd
Bit de datos de salida al bus Buffer
Diagrama de un bit elemental de DRAM (Dynamic RAM).
Transistor
Tecnología de memorias: RAM Tecnología de memorias: RAM
Estática Está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 Bit Línea de Bit
Selección
1 6
2
3 4
5
Estructura de Bus clásica Estructura 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 clocks
clocks 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 de
Control Bus de Control
BUS DEL SISTEMA
Bus Local del Bus Local del Procesador Procesador
Memoria del Sistema Memoria del
Sistema
Procesador Procesador
E/S del Sistema E/S del Sistema
DATOS ADDRESS
CONTROL
1100
1000
900
800
700
600
500
400
300
200
100
89 90 91 92 93 94 95 96 97 98 99 00
486 DX4 100 MHz.
386 DX 33 MHz
Pentium II 400 MHz.
Pentium III 1GHz
Memorias
Crecimiento de la velocidad de
Crecimiento de la velocidad de
clock de las CPU versus memoria
clock de las CPU versus memoria
El problema El 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 bitCosto por bit 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 bitCosto por bit 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.
La solución: Memoria cache La 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 principal memoria 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 sin el procesador la necesita permitiéndole acceder a esos ítems sin
recurrir a
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 pequeño Requiere de hardware adicional que asegure que este pequeño banco de memoria cache contenga los datos e instrucciones banco de memoria cache contenga los datos e instrucciones
mas frecuentemente utilizados por el procesador.
mas frecuentemente utilizados por el procesador.
Referencias Referencias
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 cantidad Suficientemente grande para que el procesador resuelva la mayor cantidad posible de búsquedas de código y datos en esta memoria asegurando una posible de búsquedas de código y datos en esta memoria asegurando una alta
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 miss.miss.
Se espera un Se espera un hit ratehit rate lo mas alto posible lo mas alto posible
Cantidad total de accesos a memoria
Cantidad de accesos con presencia en Memoria Cache hit rate =
Operación de Lectura de Operación de Lectura de
memoria memoria
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 Hit!! Miss
Estructura de Bus del sistema con Estructura de Bus del sistema con
cache cache
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 procesador procesador
Procesador Procesador
Bus de Control Bus de Control
CONTROL DATOS ADDRESS
CONTROL
Bus Local del Bus Local del controlador controlador
cache cache
Bus de Datos Bus de
Datos Bus de Dir.
Bus de Dir.
Como trabaja el controlador Como trabaja el controlador
cache cache
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 temporal: Si un ítem es referenciado, la probabilidad de ser Principio de vecindad temporal: 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 espacial: Si un ítem es referenciado, es altamente probable que Principio de vecindad espacial: 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ón
for (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;
}}
i, i, 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.
Estructura de memoria cache Estructura de memoria cache
Tag Línea
Línea
01 23 45 67 89
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)
Organización del caché: Mapeo Organización del caché: Mapeo
Directo Directo
Directorio de Caché Interno
4 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
Selector de Línea (1 de 8 líneas)
Bit de validez del Tag Bits de validez de la línea 0
1
1023
Directorio de Caché Interno
Nro de Set
A15 A14 A5A4
A31 A2
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
directo
directo
Organizacion del cache: Asociativo Organizacion del cache: Asociativo
de dos vías de dos vías
Directorio de Caché Interno
4 Gbytes de Memoria Principal Tag
18 bits
Bit de validez del Tag
Bits de validez de las
líneas cada banco del cache) (igual tamaño Que el de 16 Kbytes 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
A13
A14 A5 A4
A31 A2
Tag de 18 bits (1 de las 218 páginas) Set Address (1 de 512 sets) Selector de Línea (1 de 8 líneas)
Caché Address (1 de 4 KLíneas)
Bit de validez del Tag Bits de validez de la línea 0
1
512
Directorio de Caché Interno
Nro de Set
Organización del caché asociativo Organización del caché asociativo
de dos vías
de dos vías
Manejo del contenido Manejo del contenido
Algoritmos de reemplazo del contenido de Algoritmos de reemplazo del contenido de la memoria cache
la memoria cache
LRU: 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 Used LFU: Least Frecuently Used
Random Random
FIFO FIFO
Coherencia de un
Coherencia de un cache cache
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 through: el procesador escribe en la DRAM y el controlador Write through: el procesador escribe en la DRAM y el controlador cache refresca el cache refresca el cachecache con el dato actualizado
con el dato actualizado
Write Write throughthrough bufferedbuffered: el procesador actualiza la SRAM : el procesador actualiza la SRAM cache, y el controlador cache, y el controlador cachecache luego luego actualiza la copia en memoria DRAM mientras el procesador continúa ejecutando
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
Copy back: Se marcan las líneas de la memoria Copy back: Se marcan las líneas de la memoria cache cuando el procesador escribe en cache 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 cache deberá cache 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 cache está accediendo a la cache 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 termine la actualización para recibir desde este la habilitación de las líneas de control para
actualización para recibir desde este la habilitación de las líneas de control para acceder a la DRAM.
acceder a la DRAM.
Multilevel cache Multilevel cache
CPU
Cache Level1
Cache Level 2
Cache controller
System Memory
(DRAM)
On chip
Tamaño Cache L2 > Tamaño Cache L1
Velocidad Cache L1 > Velocidad Cache L2
Implementaciones prácticas de Implementaciones prácticas de
memoria cache (1) memoria cache (1)
Intel 80486 Intel 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
Pentium Pentium
dos caches on-chip, uno para datos y otro para instrucciones.dos caches on-chip, uno para datos y otro para 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 601 PowerPC 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
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