Você está na página 1de 10

TEMA 2

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

De ta lle d e l b loq ue d e m e m oria

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

Figura 2.1: Esquema general y bloque detallado de una memoria

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:

Memoria de programa: es donde reside el programa que se está ejecutando.

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.


Tenemos una notación especial para esto:






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.

2.2 Arquitectura de la Unidad Central de Memoria

La Unidad Central de Memoria tiene diferentes partes, que vamos a ver cada una por separado:

Bloque físico de memoria

Bloque de decodificación y control


Interfaz con los buses del sistema

http://www.telecos-malaga.com
2. Memorias 2.2. Arquitectura de la Unidad Central de Memoria 14

Figura 2.2: Matriz de memoria

2.2.1 Bloque físico de memoria

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.

2.2.2 Bloque de decodificación y control

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

Figura 2.3: Esquema del bloque de decodificación y control

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.

2.2.3 Interfaz con los buses del sistema

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

2.3 Expansión de memorias

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.

2.3.1 Ampliación del número de bits por palabra



Si tenemos una memoria de  bits por palabra y queremos una de bits por palabra, necesitamos   memorias,
redondeando el número hacia arriba. En la figura 2.5 tenemos un ejemplo de ampliación , de 4 posiciones y 1 bit por
palabra a 4 posiciones y 2 bits por palabra.

2.3.2 Ampliación del número de posiciones


  
Si tenemos posiciones de memoria y queremos , necesitamos  pastillas. Vemos un ejemplo en la figura 2.6,
"!
donde queremos obtener una memoria de 8 posiciones y 1 bit por palabra a partir de pastillas de 4 posiciones y 1 bit
por palabra.

2.3.3 Ampliación mixta

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

Figura 2.6: Ampliación del número de posiciones de una memoria

2.4 Mapa de memoria

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

Hay dos tipos:

Funcional: especifica para qué se usa cada bloque de memoria (zona de vectores de excepción, programa, etc.).

Físico: especifica cómo se implementa el mapa funcional.

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.

Posiciones Funcional Físico


0:511 Vectores de excepción del sistema ROM: 2 pastillas de 256 bytes
1K:2K-1 Programa RAM: 2 pastillas de 512
Hasta 5K E/S VIA 32 registros

Tabla 2.1: Ejemplo de mapeado en memoria

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

Figura 2.7: Cronograma del ciclo de lectura de memoria

2.5 Ciclos de lectura y escritura en memoria

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

Figura 2.8: Cronograma del ciclo de escritura en memoria

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.

2.6 Dispositivos de entrada-salida

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 )

Figura 2.9: Esquema de un puerto de entrada

Bu s d e d a to s Exte rio r

C on tro l (En a b le )

Figura 2.10: Esquema de un puerto de salida

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.

La lógica de selección activa el terminal  .


Si el puerto tiene un número de bits menor que el bus de datos, tenemos que quedarnos con la parte superior o la
inferior, y no tendremos posiciones de memoria consecutivas.

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

Figura 2.11: Esquema del direccionamiento de un puerto

http://www.telecos-malaga.com

Você também pode gostar