You are on page 1of 33

Memoria Principal

Departamento de Arquitectura de
Computadores
ndice

 Introduccin. Conceptos bsicos


 Caractersticas de los sistemas de memoria
 Jerarquas de memoria

 Memoria Principal
 Caractersticas fsicas
 Organizacin

 Memoria Cach
 Organizacin
 Polticas de ubicacin
 Polticas de sustitucin
 Polticas de escritura
 Polticas de bsqueda

 Memoria Virtual
Conceptos generales

 La memoria principal es el siguiente nivel de la jerarqua de memorias, a


continuacin de la/s cache/s, y por tanto satisface las demandas de ese
nivel.
 Est construida con DRAMs, las cuales estn pensadas para aumentar la
densidad (menor nmero de transistores por bit de memoria) en lugar de
disminuir el tiempo de acceso.
 Al ser el siguiente nivel de la jerarqua, y por el hecho de ser un nivel ms lento
que la cach, su organizacin influye en la penalizacin de fallo y por tanto
influye en el rendimiento.
Memoria principal: caractersticas fsicas

 Tipos de memoria semiconductora de acceso aleatorio:


Memoria RAM

 RAM (Random-Access Memory):


 Memoria de acceso aleatorio.
 Es posible tanto leer como escribir mediante seales elctricas.
 Memoria voltil. Debe estar conectada continuamente a la alimentacin lo que
implica que sirva como almacenamiento temporal nicamente.
 Las tecnologas de RAM se dividen en:
 Dinmicas DRAM: tienen celdas que almacenan lo datos como cargas de
condensadores. La presencia o ausencia de carga se interpreta como un 1 un 0
binarios. La tendencia a descargarse de los condensadores hace que sea
necesario un refresco constante.
 Estticas SRAM: los valores binarios se almacenan utilizando configuraciones de
puertas que forman biestables (flip-flops). Una RAM de este tipo mantendr los
datos mientras se mantenga la alimentacin.
 DRAM vs SRAM:
 Dinmicas son mas densas (celdas mas pequeas = mayor nmero de
celdas).
 Para memorias grandes suelen utilizarse memorias dinmicas.
 Las memorias estticas son ms rpidas y por tanto mas propicias para
memoria cach (tamao pequeo).
Memoria ROM

 ROM (Read-Only Memory):


 Memoria de acceso aleatorio
 Memoria de slo lectura.
 Contienen un patrn permanente de datos que no puede alterarse. No pueden
escribirse datos nuevos.
 Memoria permanente o no-voltil
 Sirven para almacenar el programa de arranque de los computadores: la BIOS
del sistema (rutinas que sirven para poner en funcionamiento el computador y
revisar la fiabilidad del sistema) y los FIRMWARE (informacin, configuracin y
rutinas de diagnstico) de los dispositivos instalados en el sistema.
 Una ROM se construye como cualquier otro chip de circuito integrado, con los
datos cableados en el chip durante el proceso de fabricacin. Estos presenta dos
problemas:
 La etapa de insercin de datos implica unos costes fijos relativamente grandes
tanto si se va a fabricar una o miles de copias de una misma ROM.
 No se permiten fallos. Si uno de los bits es errneo, debe desecharses ka tirada
completa de memorias ROM.
Tipos de ROM

 ROM de mscara. Grabada por fabricante. No se puede borrar.


 PROM (programable ROM). Grabada por el usuario. No se puede grabar ni
introducir nueva informacin tras su grabado.
 EPROM (erasable PROM). Puede borrarse completamente con luz
ultravioleta y permite que se almacene un nuevo programa mltiples veces.
 EEPROM (electrical EPROM). Permite borrar su contenido anterior a nivel
de byte elctricamente. Combina la ventaja de ser no voltil con la
flexibilidad de ser actualizable in situ.
 FLASH pueden borrarse enteras en unos cuantos segundos, de forma ms
rpida que las EEPROM. Adems se puede llevar el proceso de borrado a
nivel de bloque.
Conexin de mdulos de memoria (ROM o
RAM) al bus del sistema
 Los mdulos tpicos de memoria ROM (PROM, EPROM, etc.) y RAM
(SRAM, DRAM) son asncronos
 La operaciones de lectura y escritura no se rigen por una seal de reloj
 Para iniciar una transferencia se utilizan las seales de
 Direccin
 Chip select (CS*)
 Tipo de operacin: OE* = Output Enabled (lectura) y WE* = Write Enabled (escritura)
 Los ciclos de lectura/escritura tienen una duracin determinada y conocida para
un mdulo de memoria especfico
 El mdulo de memoria debe conectarse al bus del sistema a travs de un
controlador o adaptador de memoria
 Convierte las seales de control que genera la CPU a las seales que utiliza el
mdulo de memoria
 Genera las seales de control necesarias sobre la CPU para que las
transferencias se realicen correctamente, conocido el tiempo de ciclo de la
memoria
 WAIT o READY en bus semisncrono
 SSYNC o DTACK* en bus asncrono
Conexin de mdulos de memoria (ROM o
RAM) al bus del sistema
Organizacin

 El elemento bsico de una memoria semiconductora es la celda de memoria. Todas


comparten las siguientes propiedades:
 Presentan dos estados estables que representan el 1 y el 0 lgicos.
 Puede escribirse en ellas al menos una vez.
 Pueden leerse para detectar su estado.

 Organizacin bsica del chip de memoria:

 Transductores de escritura/lectura: dispositivos que suministran la suficiente energa al medio para


grabar el estado deseado y por otro lado son capaces de detectar las magnitudes fsicas para
reconocer el estado en que se encuentra el medio respectivamente.
 Cada fila constituye una palabra
 En una operacin de escritura lectura se escriben o leen todas las celdas de una palabra.
Comunicacin memoria principal -CPU
 La transferencia de datos entre la MP y la CPU se realiza gracias a dos
registros:
 MAR (Memory Address Register): delimita el tamao de la memoria.
 MDR (Memory Data Register): delimita el tamao de los datos.

Bus de direcciones

MAR
de k bits Mem. Ppal.

2k palabras
direccionables
Bus de datos
de n bits

MDR
Longitud de
palabra = n bits

Lneas de control
(Leer, escribir, MFC,..)
Organizacin de la informacin en la
memoria
 Organizacin por palabras:
 La memoria se organiza en grupos de k bits llamados palabras
 Para especificar una palabra se necesitan n bits
 Cada palabra tiene asignada una direccin comprendida entre 0 y 2n-1
 Organizacin por bytes:
 A bytes individuales se le asignan direcciones independientes.
 Una palabra compuesta por varios bytes puede ser accedida de manera
individual a cada uno de ellos.
 Para un mismo tamao de memoria se necesita un mayor nmero de bits a la
hora de poder direccionar.
 Problemas:
 Cmo relacionar las direcciones de las palabras con las direcciones de las
unidades direccionables (bytes).
 Cmo ordenar el contenido de una palabra en un conjunto consecutivo de
unidades direccionables.
Relacin de direcciones: palabras-bytes
 Se obliga a que los datos empiecen en determinadas direcciones de memoria principal.
 Se dice que un dato de n bytes ubicado en la direccin D est alineado si: D mod n = 0.
 Datos de 1 byte pueden ubicarse en cualquier posicin de memoria.
 Datos de 2 bytes pueden ubicarse en direcciones pares.
 Datos de 4 bytes pueden ubicarse en direcciones mltiplos de 4.
 Ventaja: para acceder a una palabra donde los datos estn alineados, nicamente se requiere un
acceso a memoria.
 Desventaja: quedan espacios de memoria sin utilizar. Si se tiene un dato de 8 bits almacenado en
la direccin 0 seguido de uno de 32 bits, se hace necesario dejar un espacio no til de 24 bits.
4 Bytes 4 Bytes
Espacio
0
0 sin utilizar 4
4 Dos accesos a
8 8
memoria 12
12
16
20

2n-4
2n-4
Memoria Memoria

Palabras alineadas Palabras no alineadas


Ordenacin del contenido de una
palabra
 Existen dos posibilidades a la hora de repartir el contenido de una palabra en un
conjunto sucesivo de bytes:
 Big-Endian: la direccin del dato corresponde al octeto ms significativo.
 Little-Endian: la direccin del dato corresponde al octeto menos significativo.

Dato FC1854A3 almacenado en la direccin de memoria 8

8 11111100 8 10100011
9 00011000 9 01010100
10 01010100 10 00011000
11 10100011 11 11111100
Big-Endian Little-Endian
Rendimiento de la memoria principal
 Los parmetros para evaluar el rendimiento de la memoria principal
son:
 Latencia : tiempo en obtener el primer acceso
 Ancho de banda : nmero de bytes ledos o escritos por unidad de tiempo

 Para lograr un buen rendimiento, hay que conseguir el mejor ancho de


banda posible entre la cache y la memoria principal, ya que as se
disminuye el tiempo de transferencia. El tiempo de acceso o latencia es
difcil de reducir.
 Las posibles organizaciones para mejorar el rendimiento de la memoria principal
son:
 Aumentar el ancho de la memoria
 Utilizar memoria entrelazada
 Utilizar bancos de memoria independientes
Organizacin con ancho de una palabra
 La conexin de la CPU con la cache es de 1
palabra de ancho, al igual que la conexin entre la
cache y la memoria principal.
 Si suponemos:
 1 ciclo para enviar la direccin.
 15 ciclos para cada acceso a una posicin de la
DRAM.
 1 ciclo para enviar una palabra de datos.
 Bloque de cache de 4 palabras (16 bytes) => Bus
Datos de 32 bits.

Penalizacin de fallo = 1 + 4 x 15 + 4 x 1 = 65 ciclos

 Medida del ancho de banda entre la cache y la


memoria principal

N bytes transferidos /ciclo = 16 / 65 = 0,25


Organizacin con ancho de varias
palabras
 Se aumenta el ancho de banda haciendo la
memoria y el bus de varias palabras de ancho.
 Aumentar el ancho de la memoria y del bus
disminuye el tiempo de acceso y el tiempo de
transferencia => disminuye la penalizacin de fallo
 Se necesita un multiplexor que seleccione la
palabra del bloque de cache que se va a
suministrar a la CPU
 Todas estas medidas aumentan el coste, y
aumentan tambin el tiempo de acceso a la cache.

 Si ancho de memoria es de 2 palabras


Penalizacin de fallo = 1 + 2x15 + 2x1 = 33 ciclos
N bytes transferidos/ciclo = 16/33 = 0,48

 Si ancho de memoria = 4 palabras


Penalizacin de fallo = 1 + 1x15 + 1x1 = 17 ciclos
N bytes transferidos/ciclo = 16/17 = 0,94
Organizacin de memoria entrelazada
 Cuando la memoria principal est estructurada como un conjunto de
mdulos fsicamente separados, ser posible acceder simultneamente a
todos ellos. De este modo la velocidad de transmisin hacia o desde el
sistema a la MP aumenta.
 Tipos:
 Entrelazado de orden superior: consiste en distribuir las direcciones de
memoria entre los mdulos de modo que cada uno contenga direcciones
consecutivas; si la CPU requiere posiciones consecutivas de tal forma que es un
nico mdulo el que est permanece ocupado, los dispositivos con capacidad de
acceso directo a memoria (DMA) pueden operar sobre los restantes mdulos.
 Si por ejemplo empleamos mdulos de 2n posiciones, se asignan las 2n primeras
posiciones al primer mdulo, las posiciones de 2n a las 22n -1 al segundo mdulo y as
sucesivamente.
 Entrelazado de orden inferior: consiste en distribuir a mdulos consecutivos
direcciones consecutivas del mapa de memoria; si las referencias sucesivas son
consecutivas, aunque se sigue pagando el coste de transferir cada palabra
secuencialmente, se reducen los conflictos de acceso y por tanto el ancho de
banda aumenta considerablemente.
 Si por ejemplo la memoria tiene 4 mdulos, el primero de ellos contendra las palabras 0,
4, 8, 12,, mientras que el segundo ocupara las posiciones 1, 5, 9, 13,, etc.
Entrelazado de orden superior

Ejemplo: tendramos una distribucin de


direcciones de manera que las
consecutivas irn en el mismo mdulo:
Entrelazado de orden inferior

el entrelazado de orden inferior


producira una distribucin de
direcciones de manera que las
consecutivas irn en mdulos
diferentes:
Entrelazado de orden inferior
 Se incrementa el ancho de banda ensanchando
la memoria pero no el bus de conexin.
 Memoria organizada en bancos de 1 palabra de
ancho. Se leen/escriben simultneamente varias
palabras (tantas como bancos) con un solo tiempo
de acceso.
 Hay una parte comn en la direccin que se enva a
todos los bancos
 Todos los bancos acceden simultneamente al dato
ubicado en esa direccin
 Se lee el dato disponible en cada banco se
obtiene un bloque de datos
 Los bits menos significativos de la direccin
seleccionan el banco de memoria. Direcciones
consecutivas de memoria (Dn) se ubican en bancos
consecutivos.

Ejemplo con 4 bancos:


D0 -> Banco0; D1 -> Banco1; D2 -> Banco2; D3 -> Banco3;
Dn -> Banco(Dn MODULO N Bancos)
Entrelazado de orden inferior
 Se sigue pagando el coste de transmitir cada palabra
secuencialmente, pero se evita pagar ms de una vez la latencia de
acceso.

 Con 4 bancos de memoria:

Penalizacin de fallo = 1 + 1x15 + 4x1 = 20 ciclos


N bytes transferidos/ciclo = 16/20 = 0,80

EL SISTEMA ENTRELAZADO ES 3,2 VECES MS RPIDO

 Se hacen ms rpidas las escrituras => importante en write through.


 Funcionan al mismo tiempo todos los mdulos => ms consumo
 Dificultad para expandir la memoria
Chips de memoria SRAM 2nxk
 Celda bsica (1 bit) constituida por un biestable
 Mantiene la informacin mientras exista suministro
elctrico
 La implementacin puede ser bipolar o MOS
 Ventajas
 Tiempo de acceso y de ciclo reducido
 Alta velocidad de transferencia
 Desventajas
 Disipan mucha energa
 Baja densidad de integracin
 Coste elevado
 Aplicacin
 Diseo de memorias cache
 Alta velocidad y pequeo tamao
 Chips de memoria SRAM comerciales
 Tamao 2nxk
 2n palabras de k bits, siendo k = 1, 2, 4 u 8
 Ejemplo: chips de memoria 51C86 de Intel
 Tamao 4Kx4
 Organizacin 2-D
 Un chip de 2n palabras de k bits se organiza como un
array de 2n filas por k columnas
 Para construir placas de memoria de mayor tamao se
deben combinar varios chips de memoria con la lgica
de descodificacin adicional adecuada
Chips de memoria DRAM 2nx1
 Celda bsica (1 bit) constituida por un condensador y un nico transistor MOS
 La informacin binaria se mantiene en forma de carga del condensador
 1 lgico: presencia de carga en el condensador; 0 lgico: ausencia de carga en el condensador
 El control de la carga/descarga del condensador se realiza mediante un conmutador
 Implementado mediante un transistor MOS
 Los condensadores pierden la carga al cabo de unos pocos milisegundos
 Necesidad de un refresco peridico de la informacin contenida en la RAM
 El refresco consiste en la lectura del condensador y posterior escritura con idntico valor (amplificado)
 Ventajas
 Bajo consumo de energa
 Alta densidad de integracin
 Coste reducido
 Desventajas
 Tiempo de ciclo elevado
 Necesidad de refresco
 Aplicacin
 Diseo de memoria principal
 Gran tamao y velocidad baja
 Chips de memoria DRAM
 Tamao 2nx1 2nx4
 Organizacin 2-1/2-D
 Un array 2n/2x 2n/2 por bit
Aspectos de diseo de la memoria
principal
 Las DRAMs evolucionan hacia mayor densidad, no menor tiempo de acceso.
 Una DRAM es una matriz de d x w elementos, siendo d el nmero de filas distintas y w
el nmero de bits de salida para cada fila (1 w 16, comn 4 y 8)
 Si aumenta la densidad, el tamao total de la DRAM crece, pero como w se mantiene
constante (coste de verificacin y encapsulado menor) => d crece.
 Aumentar el tamao total conduce a que la configuracin mnima de memoria
crezca, y esto puede no interesarnos por razones de coste, etc... => Cada vez es
menos atractivo construir la memoria con mltiples bloques de memoria porque
la configuracin mnima de memoria crece.

 Ejemplo Construir una memoria de 64 MB con chips de 4Mbit x 1 , y palabras


de 32 bits.
4 bancos con 32 DRAMs de 4Mbit x 1 => 128 DRAMS de 4Mbit x 1

 Si usamos chips de 16Mbit x 1 => 1 solo banco con 32 chips de 16M x1, y si
quisiramos tener 4 bancos (por hacer la memoria entrelazada), estaramos obligados
a poner 32x4 chips de 16M x 1, haciendo un total de 256MB de memoria.
Diseo modular de memorias
 Si las dimensiones de la memoria exceden a las de un chip, para alcanzar
la capacidad exigida, ser necesario realizar una configuracin modular
(usar varios mdulos hasta cumplir las restricciones de tamao):
 Lo habitual es que la memoria requerida no coincida con ningn chip de
memoria disponible:
 Longitud de palabra mltiplo de la del chip
 N de palabras direccionables mayor que las del chip.

 Incremento del tamao de las palabras


 Incremento del nmero de palabras
Incremento del tamao de las palabras
 Ejemplo: memoria de 2nx32bits a partir de chips de 2nx8bits
Incremento del nmero de palabras
 Ejemplo: memoria de 4Kx8bits a partir de chips de 1Kx8bits
Ejemplo
 Se dispone de un sistema microprocesador con bus de datos de 16 bits y
bus de direcciones de 20 bits. En este sistema se quiere implementar una
memoria RAM de 256 kpalabras situadas en las posiciones mas bajas de
memoria y una memoria ROM de 128 Kpalabras situada en la parte
superior de la memoria. Para ello se dispone del nmero suficiente de
circuitos de memorias de los tipos siguientes: RAM de 64Kx4 y ROM de
32Kx8, as como la circuitera auxiliar necesaria. Hacer un esquema del
diseo resultante.
 RAM: Como los chips son de 64Kx4 necesitamos 16 circuitos. ( 4x64 = 256K
asociados de 4 en 4 para tener la longitud de palabra apropiada)
 ROM: En este caso los chips son de 32Kx8 luego necesitamos 8 circuitos ( 4x32
= 128K asociados de 2 en dos para tener la longitud de palabra adecuada)
Mapa de memoria
Decodificador
Diseo
Principales recursos para mejorar las
prestaciones de la memoria principal
 La memoria principal debe ser capaz de cubrir dos requisitos
indispensables:

 Un tiempo de acceso a las posiciones de memoria en consonancia con el tiempo


de procesamiento por parte de la unidad de control. La realizacin de una
instruccin se compone de una fase de bsqueda del cdigo mquina
dependiente de la memoria principal y mas tarde una fase de ejecucin donde
se interpreta el cdigo mquina obtenido anteriormente y se disponen las
operaciones necesarias. Un comportamiento equilibrado del sistema presupone
que la fase de bsqueda dependiente de las caractersticas de la memoria no
debe suponer un cuello de botella de manera tal que ambas fases duren un
tiempo simular (fase bsqueda fase ejecucin).
 Suficiente capacidad para contener los programas y datos en fase de ejecucin.

 Para cubrir ambos requisitos se emplean dos tcnicas:

 Memoria cach: incrementa la velocidad de acceso.


 Memoria virtual: aumenta la capacidad real de la memoria principal.