Está en la página 1de 9

Programa: Ingeniería de Sistemas

Trimestre: 2
Docente: José Palacio
Asignatura: Arquitectura del Computador
Tema: La Memoria

LA MEMORIA

MEMORIA RAM
Las memorias RAM permiten la lectura y escritura, su principal inconveniente consiste en la volatilidad de los datos. Sus
altas velocidades en los procesos de lectura y escritura les dan la capacidad de interactuar con un microprocesador sin
causar mucho retardo en su operación; por esta razón estas memorias son usadas en el computador como unidades de
almacenamiento temporal.

ESRUCTURA Entrada de datos


E3 E2 E1 E0
Como ya se ha hecho anteriormente,
conviene pensar que las memorias 0 = escritura
Buffer de Entrada E R/W
están organizadas en grupos de 1 = lectura

registros, cada uno con una


dirección fija y un número de bits 0
Registro 0
igual a la longitud de la palabra. Los
1
ciclos de lectura ya son ampliamente Registro 1
Entradas de Direcciones

conocidos; cuando se realiza la A 5


2
A4 Registro 2
lectura, primero ubicamos una .
A3 Decodificador
dirección en el bus, con estos datos . . Selección de
A2 6 a 64
el decodificador se encargará de A1 . . circuito (CS)
A0 . .
activar una línea y habilitar el CS = 1 habilita
62
registro correspondiente a esa Registro 62 todo el circuito
posición. Las entradas R/W y CS se 63 para lectura o
Registro 63
escritura
ponen ambas en uno; hecho esto se
permite la operación de lectura y se Seleccionar
habilita la memoria (en la figura un registro
Buffer de Salida E
podemos observar que con estos
valores de entrada R/W y CS se S3 S2 S1 S0
Salida de datos
deshabilita el buffer de entrada y se
habilita el buffer de salida que es lo requerido en las operaciones de lectura). Después del tiempo de acceso, los datos se
encuentran disponibles en la salida de la memoria.

Aunque muchas memorias tienen una sola entrada habilitadora, existen muchas que tienen dos entradas; ambas
deben estar habilitadas para seleccionar esta memoria. Cuando las memorias no se seleccionan tienen un modo de
trabajo en el que consume una potencia muy baja. Para ahorrar terminales en un circuito integrado de memoria los
buses de entrada y salida de datos son el mismo y se selecciona una u otra operación con la línea R/W.

1
CLASES DE RAM
RAM ESTÁTICA
Conocidas como SRAM (Static RAM) son memorias que almacenan información en flip-flops de tecnología bipolar o MOS;
estos almacenan un bit siempre y cuando no les falte la electricidad. Las SRAM bipolares son más rápidas, pero las SRAM
de tecnología MOS consumen menos potencia. Este tipo de memorias se utilizan como memoria interna del computador
porque su gran velocidad les permite interactuar con el microprocesador.

LECTURA
El comienzo del ciclo de lectura se da en t 0; en este momento se ubica la dirección a leer en el bus de direcciones; la
entrada R/W está en nivel alto que indica operación de lectura. La entrada CS está en 1, luego la salida en alta impedancia,
esto evita que la memoria responda a entradas de dirección no válidas como ocurre antes de t 0.

Cierto tiempo después de t0, conocido como tiempo de establecimiento de direcciones, la entrada CS pasa a nivel bajo, la
memoria se activa y transcurrido un tiempo t C0 los datos aparecen en el bus de salida. El tiempo de acceso se extiende
desde que se ubica la dirección en el bus hasta que se encuentran disponibles los datos en la salida

En t2 CS pasa a nivel alto; así, después de todo, la salida vuelve a su estado de alta impedancia. El ciclo de lectura
comprende los tiempos desde t0 hasta t4.

tRC
1
Entradas de Dirección Nueva Dirección Válida
Direcciones Anterior
Del
0
CPU
tAcc
R/W 1

CS 1

tOD
tC0
Alta – Z
Salidas de Salidas de Datos
Datos Válidas

t0 t1 t2 t3 t4

El tiempo de establecimiento es el tiempo necesario para que los decodificadores de dirección apunten a la nueva
ubicación. Este tiempo de espera se otorga para tener la seguridad de que todas las entradas de direcciones han
alcanzado niveles válidos.

ESCRITURA
El proceso de escritura comienza cuando en t0 ubicamos la dirección donde deseamos grabar datos. Después del tiempo
de establecimiento TAS las entradas CS y R/W pasan a nivel bajo, activando la memoria y la operación de lectura
respectivamente.

2
tWC
1
Entradas de Dirección Nueva Dirección Válida
Direcciones Anterior
Del
0
CPU
tAS tAH
R/W 1

CS 1
tW

Datos de Alta – Z
Entrada Salidas de Datos
Previamente Válidas
en el Canal
tDS tDH
t0 t1 t2 t3 t4

En t1 se ubica en el bus de datos la información a grabar; estos datos deben mantenerse, como mínimo, el tiempo TDS que
se extiende desde t1 hasta t2 (tiempo de establecimiento de datos). En definitiva el tiempo de permanencia de los datos
debe ampliarse hasta t3 es decir el tiempo tDH después de que CS y R/W vuelvan a nivel alto. Para que el ciclo de escritura
se desarrolle de una manera fiable se debe mantener las direcciones desde t 1 hasta t4.

RAM DINAMICA
Las memorias DRAM (Dynamic RAM) a diferencia de las estáticas que guardan la información en flip-flop, lo hacen en
pequeños capacitores de algunos picofaradios que le otorgan alta velocidad, gran capacidad (unas cuatro veces más que
las estáticas) y bajo consumo de potencia.

Si por un lado el uso de capacitores dota de excelentes características a estas memorias, por otra parte, el proceso de
descarga que ellos sufren, hace necesario el refresco de la información que almacenan cada cierto tiempo (típicamente 2 a
10 milisegundos). Esta operación de refresco implica el uso de circuitería adicional que aumenta la complejidad del
dispositivo.

ESTRUCTURAS
Como todas las memorias, las DRAM, una vez más, las podemos imaginas como una matriz de celdas en cada una de las
cuales se guarda un bit; cada celda corresponde a un capacitor. Las direcciones de entrada se organizan en dos grupos,
uno que escoge la fila y otro que determina la columna. Por eso una memoria como la de la figura de 16K x 1 que tiene 14
entradas de dirección, se organiza en una matriz de 128 filas x 128 columnas, ya que 7 líneas se usan para direccionar las
7
filas y las restantes 7 para las columnas (2 = 128).

En realidad esas 14 líneas se encuentran multiplexadas y se consiguen con únicamente 7 líneas para direcciones, este
conceptos será explicado más adelante en la sección de Multiplexado de Direcciones.

3
Entrada de direcciones
en columna
A7 A8 A9 A10 A11 A12 A13

Decodificador de 1 a 128 Selecciona 1 de 128 columnas

Decodificador de 1 a 128
Entrada de direcciones

Celda de memoria
A0 A1 A2 A3 A4 A5 A6
en renglones

128 renglones

128 columnas
Selecciona 1 de 128
renglones

El circuito básico de almacenaje se muestra en la siguiente figura. Cuando se va a escribir un dato, los switches S 1 y S2 se
cierran y el capacitor se carga con el dato a grabar (1) o (0) que corresponden a un voltaje alto o bajo. En el ciclo de lectura
se cierran los interruptores S2, S3 y S4 y el nivel de voltaje del capacitor aparece a la salida. Como el nivel de salida se
realimenta por la trayectoria que incluye a S2 y S4, entonces cada vez que se lee un dato, el capacitor se recarga o
mantiene el voltaje bajo dependiendo si tenía un 1 o un 0. Este proceso de reafirmación del dato almacenado se conoce
como refresco.

S4

DATO DE ENTRADA
S1 S2 S3 DATO
C Amplificador
VREF de detección

El amplificador operacional compara el voltaje del capacitor con una referencia y sí, en su salida, ubica un nivel bajo
(0) o un voltaje alto regenerado; esto es al nivel que representa un 1, ya que por descarga del condensador este nivel
se reduce.

Los switches S1 y S4 son, en realidad, transistores MOSFET. Idealmente el capacitor debería mantener su voltaje, pero se
descarga a través de los MOSFET, por ello necesita del refresco que se realiza cada vez que se lee la celda.

MULTIPLEXADO DE DIRECCIONES
Para evitar el uso de un gran número de líneas de dirección, en las memorias DRAM a fin de disminuir el tamaño y el costo
asociado se multiplexan estás entradas. El multiplexaje permite, con la ayuda de dos entradas adicionales RAS y CAS, que

4
por ejemplo una memoria que requeriría 16 líneas de direcciones ahora sólo necesite la mitad.

Registro de 7 bits para las


CAS
direcciones de columna

A7 A8 A9 A10 A11 A12 A13

RAS Decodificador de direcciones


EN
en columna

A0/A7 A0 EN
A1 R/W
A1/A8 Registro de
A2/A9 A2
7 bits para Decodificador Arreglo
las A3 de
ENTRADA
A3/A10 De celdas
direcciones A4 direcciones DE DATO
A4/A11 128 x 128
de en columna
A5/A12 columna A5 SALIDA
A6/A13 A6 DE DATO

Cuando la entrada RAS se activa, ésta habilita el registro de direcciones de fila; de la misma manera, cuando CAS se activa,
el registro de direcciones de columna queda habilitado. Así para una memoria con la de la figura, 16K x 1, que necesitaría
14
14 entradas de dirección (2 = 16K direcciones) ahora con el multiplexaje sólo requiere 7 entradas de dirección
adicionadas a las dos entradas de selección RAS y CAS.

Temporalmente el direccionamiento de la memoria se desarrolla de la siguiente manera:


1
Entradas de
Direcciones de Fila Direcciones de Columna
Direcciones
0

RAS 1

tRS
CAS 1

tCS

t0 t1 t2 t3

5
 En t0 se ubica en la entrada de direcciones las direcciones de fila.
 Después del tiempo de establecimiento tRS en t1 se activa la señal RAS; esta entrada activa el registro de
direcciones de fila y el decodificador de direcciones que activa la fila correspondiente.
 En t2 en el bus de direcciones se ubica la dirección de columna.
 Se espera un tiempo de establecimiento tCS y después en t3 se activa CAS.
 CAS activa el registro y el decodificador para habilitar una determinada columna.

LECTURA
El primer paso para leer la memoria es aplicar una dirección, esto se ejecuta tal y como se explicó en el apartado anterior.
Una vez activada una determinada celda, después del tiempo de acceso tenemos el dato a disposición en la salida.

ESCRITURA
El ciclo de escritura ejecuta los siguientes pasos:

 Se direcciona la memoria.
 El dato a grabar se ubica en la línea de entrada de datos.
 Después de un tiempo se lleva la línea R/W a nivel bajo para escribir.
 Se retira el dato de la entrada.

REFRESCO
Ya se dijo que la gran desventaja de las memorias RAM es su necesidad de contante refresco. Se debe refrescar (leer) una
celda, aproximadamente, cada 2 milisegundos.

El proceso de refresco se hace por filas porque de hacerse por celda necesitaríamos dispositivos demasiado rápidos.
Ejemplo: para una memoria de 64K x 1 en caso de refrescar celda por celda con un periodo no superior a 2 milisegundos
entre un refresco y el siguiente, se necesitaría una velocidad de refresco de celda igual a 2 mseg / 64K celdas = 30 nseg.
Cuando se realiza el refresco por filas este tiempo para la misma memoria que se organiza como una matriz de 256 filas x
256 columnas se reduce a: 2 mseg / 256 filas = 8 microsegundos.

El circuito utilizado para el refresco se conoce como controlador de DRAM y compagina las operaciones de refresco con
los requerimientos de utilización de memoria que le hace la CPU del computador. En el refresco hay un contador que, con
cada incremento, selecciona una fila diferente y lee todas las celdas conectadas a esta fila. Cuando la CPU hace un
requerimiento de memoria ya sea para leer o escribir, el circuito controlador multiplexa las direcciones, es decir, ubica en
el bus de direcciones de memoria, primero, las direcciones de fila y, luego las direcciones de columna.

Bus de
direcciones de la DRAM
Direcciones
CPU 16K x 1
A13 multiplexadas
A0…A13 A6/A13 Salida de
Controlador Datos
[7]
[14] de DRAM
3242
A0 Entrada A0/A7
Habilitación del Refresco de Datos
Habilitación de Reglón 4116
Conteo Contador
de 7 bits
RAS
CAS
R/W

6
HABILITACION HABILITACION
SALIDA DEL CONTROLADOR
DEL REFRESCO DE REGLON
ALTO X Regeneración de la dirección (Proveniente del contador interno)
BAJO ALTO Direcciones de reglón (A0…A6) proveniente de la CPU
BAJO BAJO Direcciones de columna (A7…A13) proveniente de la CPU

MEMORIA CACHE
El término cache se aplica a un conjunto de datos duplicados de otros originales, con la propiedad de que los datos
originales son costosos de acceder, normalmente en tiempo, con respecto a la copia en el cache. Cuando se accede por
primera vez a un dato, se hace una copia en el cache; los accesos siguientes se realizan a dicha copia, haciendo que el
tiempo de acceso medio al dato sea menor.

El término cache puede utilizarse también para una zona de memoria de disco denominado cache de disco (Disk cache o
Cache buffer en inglés).

Un cache es un sistema especial de almacenamiento de alta velocidad. Puede ser tanto un área reservada de la memoria
principal como un dispositivo de almacenamiento de alta velocidad independiente. Hay dos tipos de cache
frecuentemente usados en las computadoras personales: memoria cache y cache de disco. Una memoria cache, llamada
también a veces almacenamiento cache o RAM cache, es una parte de memoria RAM estática de alta velocidad (SRAM)
más que la lenta y barata RAM dinámica (DRAM) usada como memoria principal. La memoria cache es efectiva dado que
los programas acceden una y otra vez a los mismos datos o instrucciones. Guardando esta información en SRAM, la
computadora evita acceder a la lenta DRAM.

Transferencia
Transferencia
de bloques
de palabras

CPU Caché Memoria Principal

Cuando un dato es encontrado en la cache, se dice que se ha producido un impacto (hit), siendo un cache juzgado por su
tasa de impactos (hit rate). Los sistemas de memoria cache usan una tecnología conocida por cache inteligente en el cual
el sistema puede reconocer cierto tipo de datos usados frecuentemente. Las estrategias para determinar qué información
debe de ser puesta en el cache constituyen uno de los problemas más interesantes en la ciencia de las computadoras.
Algunas memorias cache están construidas en la arquitectura de los microprocesadores. Por ejemplo, el procesador
Pentium II tiene una cache L2 de 512 Kbytes.

El cache de disco trabaja sobre los mismos principios que la memoria cache, pero en lugar de usar SRAM de alta velocidad,
usa la convencional memoria principal. Los datos más recientes del disco duro a los que se ha accedido (así como los
sectores adyacentes) se almacenan en un buffer de memoria. Cuando el programa necesita acceder a datos del disco, lo
primero que comprueba es la cache del disco para ver si los datos ya están ahí. La cache de disco puede mejorar
drásticamente el rendimiento de las aplicaciones, dado que acceder a un byte de datos en RAM puede ser miles de veces
más rápido que acceder a un byte del disco duro.

COMPOSICIÓN INTERNA
La memoria cache está estructurada por celdas, donde cada celda almacena un byte. La entidad básica de
almacenamiento la conforman las filas, llamados también líneas de cache. Por ejemplo, una cache L2 de 512 KB se
distribuye en 16.384 filas y 63 columnas

7
Cuando se copia o se escribe información de la RAM por cada movimiento siempre cubre una línea de cache.

La memoria cache tiene incorporado un espacio de almacenamiento llamado Tag RAM, que indica a qué porción de la
RAM se halla asociada cada línea de cache, es decir, traduce una dirección de RAM en una línea de cache concreta.

DISEÑO
En el diseño de la memoria cache se deben considerar varios factores que influyen directamente en el rendimiento de la
memoria y por lo tanto en su objetivo de aumentar la velocidad de respuesta de la jerarquía de memoria. Estos factores
son las políticas de ubicación, extracción, reemplazo, escritura y el tamaño de la cache y de sus bloques.

POLÍTICA DE UBICACIÓN
Decide dónde debe colocarse un bloque de memoria principal que entra en la memoria cache. Las más utilizadas son:

 Directa: Al bloque n-ésimo de memoria principal le corresponde la posición n módulo k donde k es el número de
bloques de la memoria cache.
 Asociativa: Cualquier bloque de memoria principal puede ir en cualquier lado del bloque de memoria cache.
 Asociativa por conjuntos: La memoria cache se divide en n conjuntos de bloques, así al bloque i-ésimo de
memoria principal le corresponde el conjunto i módulo (k/n) donde k es el número de bloques de memoria
cache. Dicho bloque de memoria podrá ubicarse en cualquier posición dentro del conjunto asociado de la
memoria cache.

POLÍTICA DE EXTRACCIÓN
La política de extracción determina cuándo y qué bloque de memoria principal hay que traer a memoria cache. Existen dos
políticas muy extendidas:

 Por demanda: Un bloque sólo se trae a memoria cache cuando ha sido referenciado y se produzca un fallo.
 Con prebúsqueda: Cuando se referencia el bloque i-ésimo de memoria principal, se trae además el bloque
(i+1)-esimo. Esta política se basa en la propiedad de localidad espacial de los programas.

POLÍTICA DE REEMPLAZO
Determina qué bloque de memoria cache debe abandonarla cuando no existe espacio disponible para un bloque entrante.
Básicamente hay cuatro políticas que son:

 Aleatoria: El bloque es reemplazado de forma aleatoria.


 FIFO: Se usa un algoritmo First In First Out FIFO (PEPS, primero entrado primero salido en español) para
determinar qué bloque debe abandonar la cache. Este algoritmo generalmente es poco eficiente.
 Menos recientemente usado (LRU): Se sustituye el bloque que hace más tiempo que no se ha utilizado.
 Menos frecuentemente usado (LFU): Se reemplaza el bloque que se ha usado con menos frecuencia.

Siendo la Aleatoria y la LRU las de mejor rendimiento.

POLÍTICA DE ESCRITURA
Determina cuándo se actualiza la información en memoria principal cuando se ha escrito en memoria cache. Existen dos
políticas principales:

 Escritura inmediata o escritura directa: En inglés Write Through. Cuando se escribe en un bloque que se
encuentra en memoria cache, la información se modifica también simultáneamente en memoria principal,
manteniendo así la coherencia en todo momento. Suele combinarse con la técnica de "No carga en escritura" (No
Write Allocation) que significa que, cuando haya que escribir en un bloque que no se encuentra en la cache, la
modificación se realizará únicamente en memoria principal, sin traer dicho bloque a cache, y además sólo se
8
actualizará la palabra concreta que haya cambiado.
 Escritura aplazada o post-escritura: En inglés Write Back. Cuando se escribe en un bloque que se encuentra en
memoria cache, queda marcado como basura usando un bit especial llamado normalmente dirty bit o bit de
basura. Cuando el bloque sea desalojado de memoria cache (mediante la correspondiente política de reemplazo),
se comprueba el bit de basura, y si está activado se escribe la información de dicho bloque en memoria principal.
Esta política suele combinarse con la técnica de "Carga en escritura" (Write Allocation), que significa que, cuando
haya que escribir en un bloque que no se encuentra en la cache, traeremos a cache el bloque en cuestión y lo
modificaremos ahí.

BIBLIOGRAFIA
 Fundación Universitaria San Martín; Microprocesadores
 Organización y Arquitectura de Computadores; Stallings, William
 Curso Práctico sobre Mantenimiento y Reparación de Computadores, Cekit.
 http://html.rincondelvago.com/arquitectura-de-la-memoria-rom.html
 Algunas definiciones fueron tomadas de Wikipedia

También podría gustarte