Organización del
Computador
Memorias
Jerarquía de las memorias
Jerarquía de memorias en un
Pentium
Métricas de las memorias
Capacidad de almacenamiento: en
bytes o múltiplos (kB, MB, TB)
 Tiempo de acceso: en segundos o
submúltiplos (ns, ms)
 Velocidad de tranferencia de datos: en
bytes/seg o múltiplos
 Comsumo de energía: en Watts
 Tamaño físico: en cm3
 Costo total y costo por MB: en $ y $/MB

Tipos y tecnología de memorias

Memorias ROM (Read Only Memory)
Programable ROM
 Erasable Programable ROM
 Electronically Erasable Programable ROM


Memorias RAM (Random Access
Memory)
RAM estáticas vs dinámicas
 RAM volátiles vs no volátiles


Memorias FLASH
Ejemplo memoria OTP EPROM
Características físicas de la EPROM
Ejemplo memoria OTP EPROM
Diagrama de tiempos de la
EPROM
Ejemplo EEPROM
Ejemplo EEPROM
Ejemplo memoria FLASH
Ejemplo memoria SRAM
Ejemplo memoria SRAM
Ejemplo memoria SRAM
Ejemplo memoria SRAM
Tecnología de Integración
Actual
65 nm
nanotechnology
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.
Tecnología de memorias: RAM
Dinámica
CAS
RAS
Cd
Buffer
Bit de datos de salida al bus
Transistor
Diagrama de un bit elemental de DRAM (Dynamic RAM).
 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.
Tecnología de memorias: RAM
Estática
Línea de Bit
Línea de Bit
Selección
1
3
4
2
5
6
Diagrama del biestable de un bit básico de SRAM (Static RAM).
 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
Estructura de Bus clásica

Bus de
Control
ADDRESS
DATOS
CONTROL
Procesador
Bus Local del
Procesador
Memoria del
Sistema

En este escenario, el
procesador necesita generar
wait states para esperar que
la memoria esté lista
(“READY”) para el acceso.

¿Tiene sentido lograr altos
clocks en los procesadores si
no puede aprovecharlos por
tener que esperar (wait) a la
memoria?
Buffer de Buffer de
Datos
Address
BUS DEL SISTEMA
E/S del
Sistema
Desde fines de los años 80,
los procesadores
desarrollaban velocidades
muy superiores a los tiempos
de acceso a memoria.
Crecimiento de la velocidad de
clock de las CPU versus memoria
1100
1000
Pentium III
1GHz
900
800
700
600
Pentium II
400 MHz.
500
400
486 DX4
100 MHz.
300
Memoria
s
200
386 DX
33 MHz
100
89
90
91
92
93
94
95
96
97
98
99
00
El problema

RAM dinámica (DRAM)






Consumo mínimo.
Capacidad de almacenamiento comparativamente alta.
Costo por bit bajo.
Tiempo de acceso alto (lento), debido al circuito de regeneración de
carga.
Si construimos el banco de memoria utilizando RAM dinámica, no
aprovechamos la velocidad del procesador.
RAM estática (SRAM)





Alto consumo relativo.
Capacidad de almacenamiento comparativamente baja.
Costo por bit alto.
Tiempo de acceso bajo (es mas rápida).
Si construimos el banco de memoria utilizando RAM estática, el
costo y el consumo de la computadora son altos.
La solución: Memoria cache

Se trata de un banco de SRAM de muy alta velocidad,
que contiene una copia de los datos e instrucciones que
están en memoria principal

El arte consiste en que esta copia esté disponible justo
cuando el procesador la necesita permitiéndole acceder
a esos ítems sin recurrir a wait states.

Combinada con una gran cantidad de memoria DRAM,
para almacenar el resto de códigos y datos, resuelve el
problema mediante una solución de compromiso típica.

Requiere de hardware adicional que asegure que este
pequeño banco de memoria cache contenga los datos e
instrucciones mas frecuentemente utilizados por el
procesador.
Referencias




El tamaño del banco de memoria cache debe ser:

Suficientemente grande para que el procesador resuelva la
mayor cantidad posible de búsquedas de código y datos en esta
memoria asegurando una alta performance

Suficientemente pequeña para no afectar el consumo ni el costo
del sistema.
Se dice que se logra un hit cuando se accede a un ítem
(dato o código) y éste se encuentra en la memoria
cache.
En caso contrario, se dice que el resultado del acceso
es un miss.
Se espera un hit rate lo mas alto posible
hit rate =
Cantidad de accesos con presencia en Memoria Cache
Cantidad total de accesos a memoria
Operación de Lectura de
memoria
Inicio
CPU envía señal
de lectura
Hit!!
Busca ítem
en cache
Busca ítem en
cache y envía a
la CPU
Miss
Busca ítem en
memoria del
sistema
Escribe ítem en
el cache
Actualiza
directorio cache
Fin
Envía ítem a la
CPU
Estructura de Bus del sistema con
cache
ADDRESS
DATOS
CONTROL
Procesador
Bus Local del
procesador
Memoria
Controlador de
cache CONTROLMemoria caché
Bus de
Control
Buffer
de
Datos
Buffer
de
Bus Local del
Address controlador
cache
Bus de
Datos
Bus de
Dir.
BUS DEL SISTEMA
Como trabaja el controlador
cache

El controlador cache trabaja mediante dos principios que surgen de analizar
el comportamiento de los algoritmos de software que se emplean
habitualmente.

Principio de vecindad temporal: Si un ítem es referenciado, la probabilidad de
ser referenciado en el futuro inmediato es alta.

Principio de vecindad espacial: Si un ítem es referenciado, es altamente
probable que se referencie a los ítems vecinos a éste.

Ejemplo: Algoritmo de convolución
for (i = 0 ; i < 256 ; i++ ){
suma = 0.0f;
for (j = 0 ; (j <= i && j < 256) ; j++)
suma += v0[i-j] * v1[j];
fAux[i] = suma;
}

i, j, suma, 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.
Estructura de memoria cache
Tag
Línea
Dirección
0
1
2
3
4
5
6
7
8
9
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)
Línea
Ancho de palabra
Organización del caché: Mapeo
Directo
Bit de validez del Tag
1 Línea = 4 bytes
Línea
Tag
17 bits
Set 0
Línea
Bits de validez
de las líneas
Set 1
32 Kbytes
(igual tamaño
que el de
la cache)
Pag.217 -1
Set 1023
Directorio de Caché Interno Memoria Caché
Pag.0
4 Gbytes de Memoria Principal
Organización del caché de mapeo
directo
Caché Address (1 de 8 KLíneas)
A 15 A 14
A 31
Tag de 17 bits (1 de las 217 páginas)
A5A4 A 2
Set Address (1 de 1024 sets) Selector de
Línea
(1 de 8 líneas)
Bit de validez del Tag
0
Nro de Set
Bits de validez de la línea
1
1023
Directorio de
Caché Interno
Organizacion del cache: Asociativo
de dos vías
Bit de validez del Tag
Línea
Tag
Set 0
18 bits
Bits de Bits
validez LRU
de las
líneas
Bits
LRU
Línea
Línea
18 bits
18 bits
Set 1
18 bits
Bits
LRU
16 Kbytes
(igual tamaño Que el de
cada banco del cache)
18 bits
1 Línea = 4 bytes
Pag.218 -1
18 bits
Set 512
Directorio de Caché Interno
Memoria Caché
Pag.0
4 Gbytes de Memoria Principal
Organización del caché asociativo
de dos vías
Caché Address (1 de 4 KLíneas)
A31
Tag de 18 bits (1 de las 218 páginas)
A14 A13
A5 A4
Set Address (1 de 512 sets)
Selector de
Línea
(1 de 8 líneas)
Bit de validez del Tag
0
Nro de Set
Bits de validez de la línea
1
512
Directorio de
Caché Interno
A2
Manejo del contenido

Algoritmos de reemplazo del contenido de
la memoria cache

LRU: Least Recently Used.
 Se
corresponde con el principio de vecindad
temporal.
LFU: Least Frecuently Used
 Random
 FIFO

Coherencia de un cache



Una variable que está en el caché también está alojada en alguna dirección
de la DRAM.
Ambos valores deben ser iguales
Cuando el procesador la modifica hay varios modos de actuar




Write through: el procesador escribe en la DRAM y el controlador cache refresca
el cache con el dato actualizado
Write through buffered: el procesador actualiza la SRAM cache, y el controlador
cache luego actualiza la copia en memoria DRAM mientras el procesador
continúa ejecutando instrucciones y usando datos de la memoria cache
Copy back: Se marcan las líneas de la memoria cache cuando el procesador
escribe en ellas. Luego en el momento de eliminar esa línea del caché el
controlador cache deberá actualizar la copia de DRAM.
Si el procesador realiza un miss mientras el controlador cache está
accediendo a la DRAM para actualizar el valor, deberá esperar hasta que
controlador cache termine la actualización para recibir desde este la
habilitación de las líneas de control para acceder a la DRAM.
Multilevel cache
Cache
Level1
On chip
Cache
Level 2
CPU
Cache
controller
Tamaño Cache L2 > Tamaño Cache L1
Velocidad Cache L1 > Velocidad Cache L2
System
Memory
(DRAM)
Implementaciones prácticas de
memoria cache (1)

Intel 80486




Pentium





8 Kbytes de cache L1 on chip
Tamaño de línea: 16 bytes
Organización asociativa de 4-vías
dos caches on-chip, uno para datos y otro para
instrucciones.
Tamaño de cada cahe: 8 Kbytes
Tamaño de línea: 32 bytes
Organización asociativa de 4-vías
PowerPC 601



cache on-chip de 32 Kbytes
Tamaño de línea: 32 bytes
Organización asociativa de 8-vías
Implementaciones prácticas de
memoria cache (2)

PowerPC 603





PowerPC 604





Dos caches on-chip, una para datos y otra para instrucciones
Tamaño de cada cache: 8 Kbytes
Tamaño de línea: 32 bytes
Organización asociativa de 2-vías (organización del cache más
simple que en el 601 pero un procesador mas fuerte)
Dos caches on-chip, una para datos y otra para instrucciones
Tamaño de cada cache: 16 Kbytes
Tamaño de línea: 32 bytes
Organización asociativa de 4-vías
PowerPC 620




Dos caches on-chip, una para datos y otra para instrucciones
Tamaño de cada cache: 32 Kbytes
Tamaño de línea: 64 bytes
Organización asociativa de 8-vías