Escolar Documentos
Profissional Documentos
Cultura Documentos
Memorias
2.1 Introducción
2.1.1 Definición
Las memorias en sí no son más que dispositivos de almacenamiento que encajan en el sistema. Se puede ver un
esquema de la memoria en la figura 2.1.
Bu s d e d ire c c io ne s
M e m o ria
Bu s d e d a t o s
C e n tra l
R/ W
M e m o ria
Pe rifé ric a
A0
En t ra d a d e d ire c c io ne s
Ent ra d a / Sa lid a d e d a to s
D0
A1 D1
Esq ue m a g e ne ra l d e la m e m oria
An−1 Dn−1
El microprocesador trata la memoria periférica de la misma forma que la memoria central (mediante el mapeado en
memoria).
La memoria central se puede dividir en dos tipos principales:
12
2. Memorias 2.2. Arquitectura de la Unidad Central de Memoria 13
Memoria de datos: donde se almacenan los resultados, operandos, datos de entrada al programa, etc.
Físicamente, no hay diferencia entre ambas, pero es importante hacer la separación a la hora de la programación, para
que los datos no pisen al programa.
2.1.2 Características
Capacidad: es el número de posiciones o palabras multiplicado por el número de bits que tiene cada palabra.
significa que es una memoria de de tamaño y 8 bits por palabra.
Modo de acceso: puede ser de 4 tipos:
- Aleatorio: se accede a cualquier posición de memoria en cualquier momento.
- Secuencial: para llegar a una posición determinada hay que pasar por todas las anteriores. Son más baratas,
pero tienen un tiempo de acceso superior.
- Directo: divide la memoria en bloques, de forma que entre bloques el acceso es aleatorio y dentro de un mismo
bloque, secuencial.
- Asociativo: en lugar de direcciones de memoria, se tienen etiquetas. Al acceder a memoria se compara la
etiqueta que tenemos con las que hay almacenadas. Por ejemplo, la memoria caché.
Tiempo de acceso: es el tiempo que pasa desde que se tiene una dirección válida en los terminales de dirección
hasta que aparece un dato válido en los terminales de datos (o hasta que los datos se escriben en la memoria, si
estamos en una operación de escritura).
Coste por bit:
precio de la memoria
capacidad de la memoria
cuanto más rápida sea la memoria, más cara.
La Unidad Central de Memoria tiene diferentes partes, que vamos a ver cada una por separado:
http://www.telecos-malaga.com
2. Memorias 2.2. Arquitectura de la Unidad Central de Memoria 14
Definición: Se entiende como memoria a cualquier dispositivo capaz de almacenar estados lógicos, ceros o unos.
La unidad de memoria es la célula (o celda), que permite almacenar un único estado lógico.
Las celdas pueden implementarse bien con flip-flops (memorias estáticas) o con condensadores (memorias dinámicas).
La diferencia entre ambas es que las dinámicas necesitan ciclos de refresco para que no se vayan los datos, debido a
la descarga de los condensadores con el tiempo. El ciclo de refresco consiste en que cada cierto tiempo se miran los
datos que contiene la memoria y bien se carga al máximo los condensadores o se dejan que se descarguen, según si el
nivel que observamos está por encima o por debajo de un umbral, respectivamente.
Esto para las memorias dinámicas tiene el inconveniente de requerir de una circuitería adicional, pero tiene la ventaja
de necesitar menos espacio que las estáticas (por tanto, son más baratas).
El ciclo de refresco debe ser menor que el tiempo que tarda en alcanzar la carga el umbral, para que no perdamos los
datos.
Las celdas se organizan de forma matricial, de forma que ocupan poco espacio y son rápidas de acceder.
Antes veíamos que es la capacidad total de la memoria. Esto es el número de celdas que dispone la estructura
matricial.
El bloque de decodificación define cómo una dirección en memoria se traduce en una posición de la matriz.
El bloque de control tiene tres funciones de control:
- Control de acceso: determina cuándo una pastilla de memoria se encuentra activa y cuándo en reposo. El
http://www.telecos-malaga.com
2. Memorias 2.2. Arquitectura de la Unidad Central de Memoria 15
D EC O D IFIC A D O RES
N/ 2 N/ 2
N
Dire c c ió n
reposo significa que los terminales de entrada/salida de datos están en alta impedancia, de forma que el resto de
las funciones de control no les hacen efecto y además el consumo es mínimo. Por tanto, lo que hace es activar o
desactivar el ChipSelect ( )de cada pastilla
- Control de lectura/escritura: es el bloque que determina el modo de acceso y temporización. Ofrece una interfaz
para que las memorias no vayan más rápido que el microprocesador ni al revés.
- Control de salida: determinan si los terminales de datos están en alta impedancia o si funcionan como entrada
o salida. Determina, por tanto, si los buffers triestado están activos o no.
Vamos a ver de qué forma se conecta el microprocesador a las memorias. Podemos ver un esquema en la figura 2.4.
Las memorias pueden disponer de varias pastillas de memoria que contendrán sus matrices con direcciones propias.
En el mapeado que tenemos de memoria corresponderán a una dirección que no tiene porqué ver con las direcciones
internas propias de cada pastilla, así que necesitamos una forma de direccionar cada pastilla. Si disponemos de un bus
de direcciones mayor que el tamaño de direccionamiento de cada pastilla (que es lo normal), podemos usar los bits de
menor peso para direccionar las direcciones dentro de cada pastilla y los bits superiores para direccionar cada pastilla
en la memoria total. Si no usásemos los bits de menor peso para direccionar dentro de una misma pastilla, tendríamos
las direcciones de esa pastilla esparcidas por todo el mapa de memoria.
Por ejemplo, si el microprocesador tiene un bus de direcciones de 10 bits y tenemos una memoria de 1K pero dividida
en 4 pastillas de 256 bytes, al solicitar la dirección 257, el chip tendrá que traducir el 257 a la posición 2 de la segunda
pastilla de memoria.
Una pastilla de necesita terminales de dirección para acceder a sus datos y disponemos de un bus de direcciones
de bits ( ), de forma que con los primeros terminales del bus de direcciones direccionamos la memoria y
con los restantes realizamos el control de acceso (habilitamos una u otras pastillas de memoria).
http://www.telecos-malaga.com
2. Memorias 2.3. Expansión de memorias 16
Bu s d e d ire c c io ne s
0 0
Bu s d e d a t o s
n −1 m −1
CS
0:n −1
N
n :N−n −1
Figura 2.4: Esquema de los interfaces de memoria con los buses del sistema
Es la operación que nos permite aumentar la capacidad de la memoria, ya sea en número de palabras o en número de
bits por palabra.
El númeo de pastillas, si tenemos en cuenta lo que tenemos y lo que queremos en los dos casos anteriores, es .
Como ejemplo podríamos proponer obtener una memoria de 6 posiciones y 2 bits por palabra a partir de una pastilla "!
de 4 posiciones y 1 bit por palabra y otra de 2 posiciones y 1 bit por palabra.
http://www.telecos-malaga.com
2. Memorias 2.4. Mapa de memoria 17
CS
= CS
CS
CS CS
Figura 2.5: Ampliación del número de bits por palabra de una memoria
CS
= CS
CS
CS
Definición: Es un diagrama que indica la distribución de memoria (tanto central como periférica), desde el punto
de vista del microprocesador.
http://www.telecos-malaga.com
2. Memorias 2.5. Ciclos de lectura y escritura en memoria 18
Funcional: especifica para qué se usa cada bloque de memoria (zona de vectores de excepción, programa, etc.).
En Motorola los dispositivos de entrada/salida se mapean en memoria, mientras que en Intel se mapean como entra-
da/salida.
Un ejemplo de mapeado está en la tabla 2.1.
Tenemos un tamaño de bus de direcciones de 12 bits. Para direccionar los primeros 512 bytes, hay que forzar los bits
de dirección #%$&$'
'
'"#)( a * . El bit de dirección #)+ selecciona de los 256 primeros a últimos bits.
A
thold
toe
tacc
CS
tdesh
OE
R/ W
Definición: llamamos cronogramas a diagramas temporales de la disposición de los eventos necesarios para
completar una determinada acción.
http://www.telecos-malaga.com
2. Memorias 2.6. Dispositivos de entrada-salida 19
A
ta w twr
CS
OE
tw thold
R/ W
tdw
D
Se pueden observar los cronogramas de los ciclos de lectura y escritura en las figuras 2.7 y 2.8, respectivamente.
-,&./&01 es el tiempo que hay que mantener el dato después del pulso de escritura.
-,3254 es el tiempo de recuperación de escritura, es decir, el tiempo que tiene que pasar desde que se produce la
escritura hasta que se desactiva .
-,&1&2 es el tiempo mínimo que tiene que permanecer el dato estable en los terminales de entrada de la memoria
antes de que se produzca el pulso de escritura.
-,32 es el ancho de pulso de la señal 687 9 para que se produzca la escritura.
-,&:"2 es tiempo mínimo desde que activamos la pastilla de memoria hasta que se le dice que la operación es de
escritura.
Volvemos a insistir que la entrada y salida en microprocesadores de Motorola se realiza mapeada en memoria, es decir,
que se gestiona como si se trabajase con pastillas de memoria. Por tanto, los cronogramas de tiempos son similares.
Definición: llamamos interfaces genéricos de entrada y salida para un microprocesador a los dispositivos que
median entre el microprocesador y el mundo exterior.
A los interfaces de entrada y salida se les llama también puertos. Los puertos se definen como pastillas que van en
posiciones de memoria determinadas. Hay puertos de salida y puertos de entrada. Vemos ejemplos de puertos de
entrada y salida en las figuras 2.9 y 2.10, respectivamente.
http://www.telecos-malaga.com
2. Memorias 2.6. Dispositivos de entrada-salida 20
In te rru p to re s
Bu s d e d a to s En tra d a s e xte rn a s
C on tro l (En a b le )
Bu s d e d a to s Exte rio r
C on tro l (En a b le )
El puerto de salida más sencillo es un registro tipo latch con un terminal de control que maneja el microproce-
sador. Cuando se activa dicho terminal, se guardan los datos en los latches y están disponibles para el exterior,
cuando venga el dispositivo a buscarlo. Otra línea de control (otro puerto, llamado de protocolo) avisa al exterior
de que tiene datos para él.
El puerto de entrada es todavía más sencillo, ya que son unos interruptores que controla el microprocesador. Para
http://www.telecos-malaga.com
2. Memorias 2.6. Dispositivos de entrada-salida 21
que el exterior avise al microprocesador de que tiene datos para él, se pueden usar dos mecanismos: el sondeo
(polling), que consiste en que cada cierto tiempo el microprocesador mira si tiene datos, lo cual hace perder
tiempo al micro; y las interrupciones, que nos permiten trabajar en tiempo real, al ser el exterior el que avisa al
microprocesador que tiene datos y éste deja de hacer lo que estuviera haciendo para atender a esos datos.
Un puerto puede contener más de un registro. Si tenemos registros, necesitamos terminales de dirección.
Podemos ver en la figura 2.11 un esquema de direccionamiento de un puerto, con la lógica de selección incluida.
Pue rt o
Ext e rio r
A
Bu s d e d ire cc ione s
CS
Lóg ic a d e
se le c c ión
http://www.telecos-malaga.com