17. Componentes básicos de memorización

Anuncio
17. Componentes básicos de
memorización
Oliverio J. Santana Jaria
Sistemas Digitales
Ingeniería Técnica en Informática de Sistemas
Curso 2006 – 2007
Introducción
La necesidad de memorizar información obliga al
uso de circuitos secuenciales en el diseño de sistemas
digitales complejos
Existe un conjunto de componentes de memorización
básicos que se usan con frecuencia en estos diseños
Los objetivos de este tema son:
Describir los tipos de registros utilizados con mayor
frecuencia en el diseño de sistemas digitales
Describir los bancos de registros y los distintos tipos de
memoria que se emplean en sistemas digitales avanzados
Componentes básicos de memorización
2
1
Estructura del tema
Introducción
Registros
Registros con carga en paralelo
Registros de desplazamiento
Contadores
▫ Análisis y diseño de circuitos contadores
▫ Contadores asíncronos
Bancos de registros
Memorias
ROM – Memorias de sólo lectura
RAM – Memorias de acceso aleatorio
Resumen y bibliografía
Componentes básicos de memorización
3
Registros
Conceptualmente, un registro puede considerarse
como un biestable ampliado a múltiples bits
La implementación de un registro consta de un
conjunto de biestables conectados en paralelo a
una señal de reloj común
Componentes básicos de memorización
4
2
Registros
Un registro con
n biestables almacena un dato de n
bits en el flanco de la señal de reloj, encargándose
cada biestable de almacenar uno de los bits del dato
A parte de la señal de reloj, un registro de
dispondrá también de
n biestables
n entradas y n salidas
Componentes básicos de memorización
5
Registros
Se pueden añadir al registro señales asíncronas de
preset) y puesta a cero (clear)
puesta a uno (
Las señales asíncronas son independientes de la señal
de reloj y tienen prioridad sobre las señales síncronas
que dependen del reloj
Componentes básicos de memorización
6
3
Estructura del tema
Introducción
Registros
Registros con carga en paralelo
Registros de desplazamiento
Contadores
▫ Análisis y diseño de circuitos contadores
▫ Contadores asíncronos
Bancos de registros
Memorias
ROM – Memorias de sólo lectura
RAM – Memorias de acceso aleatorio
Resumen y bibliografía
Componentes básicos de memorización
7
Registros con carga en paralelo
En la mayoría de los sistemas digitales es necesario
almacenar un dato durante varios ciclos de reloj antes
de modificarlo
Por este motivo es útil añadir a un registro la
posibilidad de decidir cuándo debe almacenarse
un dato y cuándo no debe almacenarse
Para esto se añade una señal de control que
normalmente se denomina señal de habilitación
enable) o de carga (load)
(
Componentes básicos de memorización
8
4
Registros con carga en paralelo
El registro resultante se denomina registro con carga en
paralelo y puede implementarse añadiendo por cada
biestable un multiplexor controlado por la señal de carga
Si la señal de carga está a 0 durante el flanco de reloj los
multiplexores harán que el registro almacene el mismo
dato que ya contenía
Si la señal de carga está a 1 durante el flanco de reloj,
los multiplexores harán que el registro almacene un dato
nuevo proveniente de las entradas
Componentes básicos de memorización
9
Registros con carga en paralelo
Este diagrama muestra un registro con carga en paralelo
Componentes básicos de memorización
10
5
Estructura del tema
Introducción
Registros
Registros con carga en paralelo
Registros de desplazamiento
Contadores
▫ Análisis y diseño de circuitos contadores
▫ Contadores asíncronos
Bancos de registros
Memorias
ROM – Memorias de sólo lectura
RAM – Memorias de acceso aleatorio
Resumen y bibliografía
Componentes básicos de memorización
11
Registros de desplazamiento
Un registro de desplazamiento es capaz de desplazar
su contenido una posición en una dirección específica
cuando lo indica una señal de control
Mientras que los registros con carga en paralelo tienen
una entrada de datos para cada bit, los registros de
desplazamiento tiene una única entrada de datos
Esta entrada de datos se utiliza para introducir un valor
en la posición que queda libre tras el desplazamiento, lo
que significa que este tipo de registros son de entrada
en serie y salida en paralelo
Componentes básicos de memorización
12
6
Registros de desplazamiento
Este diagrama muestra un registro de desplazamiento
Componentes básicos de memorización
13
Registros de desplazamiento
Para aumentar la versatilidad del registro podemos
utilizar multiplexores con un número mayor de entradas
Esto nos permitiría combinar las funciones de carga en
paralelo y desplazamiento ( con más entradas también hubiera sido posible rotar…)
Además puede añadirse la posibilidad de elegir entre
un desplazamiento a la izquierda o a la derecha, lo que
requerirá una segunda entrada serial de datos
Finalmente, será necesario añadir entradas de control
para determinar el modo de operación del registro
Componentes básicos de memorización
14
7
Registros de desplazamiento
Este diagrama muestra un registro de desplazamiento
con carga en paralelo
Componentes básicos de memorización
15
Registros de desplazamiento
Los registros de desplazamiento con carga en
paralelo suelen utilizarse para implementar circuitos
que controlen transmisiones de datos en serie
Uno de estos registros puede utilizarse para
Convertir una secuencia de datos en paralelo en una
secuencia de datos serie para transmitirla
Convertir una secuencia de datos serie recibida en una
secuencia de datos en paralelo que pueda ser procesada
Además se presenta la opción de obtener primero el bit
menos significativo o el más significativo
Componentes básicos de memorización
16
8
Estructura del tema
Introducción
Registros
Registros con carga en paralelo
Registros de desplazamiento
Contadores
▫ Análisis y diseño de circuitos contadores
▫ Contadores asíncronos
Bancos de registros
Memorias
ROM – Memorias de sólo lectura
RAM – Memorias de acceso aleatorio
Resumen y bibliografía
Componentes básicos de memorización
17
Contadores
Un contador es un tipo especial de registro que
incorpora lógica que le permite incrementar o
decrementar su valor y, por tanto, contar de forma
ascendente o descendente
En el diseño de un contador resulta útil tener dos
señales de control:
Una señal de habilitación (enable) que habilite
la cuenta
cuando esté activa
Una señal asíncrona de puesta a cero (clear) que permita
reiniciar el contador cuando sea conveniente
Componentes básicos de memorización
18
9
Contadores
Este diagrama muestra un contador binario ascendente
de cuatro bits, por lo que la cuenta es módulo 16
Componentes básicos de memorización
19
Contadores
La lógica de incremento de este contador consta de una
serie de circuitos semisumador
Las entradas del primer semisumador se conectan al bit
menos significativo y a la entrada de habilitación
Cuando la entrada de habilitación está desactivada no se
hace nada (sumamos 0)
Cuando la entrada de habilitación está a activa se incrementa
el bit menos significativo (sumamos 1)
Las entradas de los demás semisumadores se conectan
al bit correspondiente y al acarreo que pueda provenir
del incremento del bit anterior
Componentes básicos de memorización
20
10
Contadores de doble sentido
Este contador puede ampliarse como contador
ascendente/descendente modificando los circuitos
semisumador para que sean capaces de restar
Para esto será necesaria una nueva entrada de control D
que determine el sentido de la cuenta
Cuando D valga 0 la cuenta será ascendente
Cuando D valga 1 la cuenta será descendente
Bajo estas condiciones resulta sencillo modificar el
circuito semisumador usando las técnicas habituales
Componentes básicos de memorización
21
Contadores de doble sentido
Este diagrama muestra un contador de doble sentido
Componentes básicos de memorización
22
11
Contadores con inicialización
Hasta aquí hemos supuesto que los contadores
empiezan a contar desde cero, pero resulta conveniente
que el contador pueda ser inicializado a un valor
Para permitir la inicialización en paralelo de un
contador hay que añadir un multiplexor a cada bit para
permitirle incrementarse o tomar el valor de la entrada
A parte de las entradas de datos necesarias para
determinar el valor de inicialización, también hará falta
una señal de control que determine cuándo inicializar
Componentes básicos de memorización
23
Contadores con inicialización
Este diagrama muestra un contador con carga en paralelo
Componentes básicos de memorización
24
12
Contadores BCD
La capacidad de inicialización puede utilizarse para
construir otros contadores, como por ejemplo circuitos
que cuenten en BCD
Dado que contar en código BCD implica realizar una
cuenta módulo 10 debemos usar 4 biestables
Para evitar que el contador de 4 biestables realice una
cuenta módulo 16 debemos detectar cuando se alcanza
el valor 9 y, en el siguiente ciclo, inicializar el contador
a 0 en lugar de permitir que alcance el valor 10
Componentes básicos de memorización
25
Contadores BCD
Este diagrama muestra el diseño de un contador
BCD ascendente partiendo de un contador binario
ascendente/descendente módulo 16
Componentes básicos de memorización
26
13
Contadores BCD
Siguiendo este mismo esquema podemos diseñar un
contador ascendente/descendente BCD a partir de un
contador binario ascendente/descendente módulo 16
En función del sentido de la cuenta habrá que cargar un
valor distinto en el contador, por lo que será necesario
utilizar un multiplexor para decidir el valor correcto
Para la dirección de cuenta ascendente debemos detectar el
valor 9 y cargar un 0 en el siguiente ciclo
Para la dirección de cuenta descendente debemos detectar el
valor 0 y cargar un 9 en el siguiente ciclo
Componentes básicos de memorización
27
Contadores BCD
Este diagrama muestra el diseño de un contador
BCD ascendente/descendente partiendo de un contador
binario ascendente/descendente módulo 16
Componentes básicos de memorización
28
14
Estructura del tema
Introducción
Registros
Registros con carga en paralelo
Registros de desplazamiento
Contadores
Bancos de registros
Memorias
▫ Análisis y diseño de circuitos contadores
▫ Contadores asíncronos
ROM – Memorias de sólo lectura
RAM – Memorias de acceso aleatorio
Resumen y bibliografía
Componentes básicos de memorización
29
Análisis de un contador
Dado que un contador es un circuito secuencial
podemos aplicarle un proceso de análisis para
determinar su funcionamiento
Como ejemplo tomaremos el circuito del diagrama
para intentar determinar su secuencia de cuenta
Componentes básicos de memorización
30
15
Análisis de un contador
En primer lugar podemos decir que este contador es un
circuito de tipo Moore, ya que las salidas dependen
únicamente del estado del circuito y no de las entradas
Dado que hay cuatro biestables el contador tiene un
total de dieciséis estados posibles
Componentes básicos de memorización
31
Análisis de un contador
A partir del circuito podemos obtener las ecuaciones
correspondientes a las entradas de los cuatro biestables
Componentes básicos de memorización
32
16
Análisis de un contador
Conociendo el funcionamiento de un biestable T es
posible, partiendo de las ecuaciones de las entradas,
generar la tabla de excitación y de estado siguiente
Componentes básicos de memorización
33
Análisis de un contador
El análisis de las salidas es trivial, ya que se
corresponden exactamente con el estado de los
biestables correspondientes
La tabla de estado siguiente nos da toda la información
que necesitamos para determinar la secuencia de cuenta
del contador
El único dato que necesitamos en este caso es el valor
inicial del contador
Componentes básicos de memorización
34
17
Análisis de un contador
Supongamos que queremos determinar la secuencia del
contador partiendo del valor 0000
0000
1111
1110
1101
1010
0101
Componentes básicos de memorización
35
Análisis de un contador
Supongamos ahora que queremos determinar la
secuencia del contador partiendo del valor 0011
0011
1100
1011
0100
Componentes básicos de memorización
36
18
Estructura del tema
Introducción
Registros
Registros con carga en paralelo
Registros de desplazamiento
Contadores
Bancos de registros
Memorias
▫ Análisis y diseño de circuitos contadores
▫ Contadores asíncronos
ROM – Memorias de sólo lectura
RAM – Memorias de acceso aleatorio
Resumen y bibliografía
Componentes básicos de memorización
37
Diseño de un contador
El diseño de un contador también puede realizarse
de la misma manera que el de cualquier otro tipo de
circuito secuencial
Como ejemplo diseñaremos un contador binario
ascendente/descendente módulo 8
El circuito será de tipo Moore, ya que las salidas no
dependerán directamente del valor de las entradas
Dado que el contador es módulo 8 necesitaremos 3 biestables
Para la realización del diseño usaremos biestables de tipo T
El contador dispondrá de una señal de control C que
determinará si la cuenta es ascendente (C = 1) o bien
si es descendente (C = 0)
Componentes básicos de memorización
38
19
Diseño de un contador
Una vez conocido el comportamiento que debe tener
el contador podemos plantear la tabla de transición o
de estado siguiente
Componentes básicos de memorización
39
Diseño de un contador
A partir de la tabla de estado siguiente, y sabiendo que
utilizaremos biestables de tipo T, podemos generar la
tabla de excitación de los biestables
Componentes básicos de memorización
40
20
Diseño de un contador
La lógica de entrada a
los biestables puede
obtenerse simplificando
las funciones
correspondientes
Componentes básicos de memorización
41
Diseño de un contador
La lógica de entrada a
los biestables puede
obtenerse simplificando
las funciones
correspondientes
Componentes básicos de memorización
42
21
Diseño de un contador
La lógica de entrada a
los biestables puede
obtenerse simplificando
las funciones
correspondientes
Componentes básicos de memorización
43
Diseño de un contador
No es necesario generar ninguna lógica de salida, ya
que la salida del contador coincide con su estado, por lo
que ya sólo queda dibujar el diagrama del circuito
Componentes básicos de memorización
44
22
Estructura del tema
Introducción
Registros
Registros con carga en paralelo
Registros de desplazamiento
Contadores
Bancos de registros
Memorias
▫ Análisis y diseño de circuitos contadores
▫ Contadores asíncronos
ROM – Memorias de sólo lectura
RAM – Memorias de acceso aleatorio
Resumen y bibliografía
Componentes básicos de memorización
45
Contadores asíncronos
Una posible manera de reducir el coste de un circuito
contador es eliminar la lógica utilizada para calcular
los incrementos y/o decrementos
Para conseguir esto se usan contadores asíncronos, es
decir, contadores cuyos biestables no están conectados
a la misma señal de reloj
Cada biestable debe cambiar a la mitad de la frecuencia que el
biestable anterior (doble periodo)
El biestable de la posición n cambiará cuando el biestable de
la posición n-1 cambie de 1 a 0, pero no cuando el biestable de
la posición n-1 cambie de 0 a 1
Componentes básicos de memorización
46
23
Contadores asíncronos
El biestable más apropiado para construir un contador
asíncrono es el biestable T
Las entradas del biestable deben establecerse de forma que su
estado cambie en cada ciclo, es decir, siempre a 1
La señal de reloj del biestable de la posición n se conecta
con la salida complementada del biestable de la posición n-1
Dado que el biestable de la posición n sólo cambia en
el flanco de subida de su reloj, solo cambiará cuando
n-1 cambie de 0 a 1, o sea,
cuando el biestable de la posición n cambie de 1 a 0
la salida complementada de
Componentes básicos de memorización
47
Contadores asíncronos
Este diagrama muestra un contador asíncrono con una
señal de habilitación (E) y una señal de puesta a 0 (clear),
así como una señal de reloj que se conecta sólo al
biestable correspondiente al bit menos significativo
Componentes básicos de memorización
48
24
Contadores asíncronos
Este cronograma muestra el funcionamiento del
contador, pudiendo verse que cada biestable tiene
un periodo que es el doble que el anterior
Componentes básicos de memorización
49
Contadores asíncronos
Si suponemos que el retardo de cada biestable es ∆, la
señal Q0 cambiará con un retardo ∆, ya que pasa por un
biestable, la señal Q1 cambiará con un retardo 2∆, ya
que pasa por dos biestables, y así sucesivamente
Componentes básicos de memorización
50
25
Contadores asíncronos
Podemos decir que un contador asíncrono de n
bits tendrá un retardo máximo de n∆, y por tanto
la frecuencia de operación del circuito será 1/n∆
Por su parte, el retardo máximo de un contador
síncrono vendrá dado únicamente por la propagación
del acarreo en la lógica de incremento/decremento
Esto significa que, con un mismo número de biestables,
un contador sícrono sería más rápido que uno asíncrono
Componentes básicos de memorización
51
Contadores en modo mixto
Para acelerar un contador asíncrono podemos dividirlo
en varias secciones y hacerlo parcialmente síncrono
Una posibilidad sería realizar un contador síncrono
con secciones asíncronas, de forma que la sección
más significativa esté habilitada sólo cuando la
menos significativa tenga su máximo valor
Componentes básicos de memorización
52
26
Contadores en modo mixto
Otra posibilidad consiste en realizar un contador
asíncrono con secciones síncronas
La señal de reloj de la sección más significativa se
conecta de tal forma que sólo haya un flanco de subida
cuando la sección menos significativa pase del valor
máximo al valor cero
Componentes básicos de memorización
53
Estructura del tema
Introducción
Registros
Registros con carga en paralelo
Registros de desplazamiento
Contadores
▫ Análisis y diseño de circuitos contadores
▫ Contadores asíncronos
Bancos de registros
Memorias
ROM – Memorias de sólo lectura
RAM – Memorias de acceso aleatorio
Resumen y bibliografía
Componentes básicos de memorización
54
27
Bancos de registros
Además de conectar los biestables en fila, es posible
conectarlos formando una estructura bidimensional
En una estructura de este tipo podemos considerar
que cada fila es un registro, por lo que se le suele dar
el nombre de banco de registros
La principal ventaja de un banco de registros es que,
dada su regularidad, el diseño final resulta menos
complejo de lo que sería necesario si implementamos
los registros por separado
Componentes básicos de memorización
55
Bancos de registros
Un banco de registros consiste en:
Una red bidimensional de celdas (RFC – Register-file Cells)
Decodificadores de lectura y escritura
Cada RFC consiste en un biestable con una circuitería
lógica asociada que permite almacenar un bit
Los decodificadores de lectura y escritura se encargan
de seleccionar una fila concreta para permitir que en
ella se realice, respectivamente, una operación de
lectura o una operación de escritura
Componentes básicos de memorización
56
28
Bancos de registros
Una RFC puede implementarse usando un biestable D
y algunas puertas lógicas para controlar:
Una señal de entrada para datos
Una señal de selección de escritura que hace que el dato de
entrada se almacene en el biestable
Una señal de selección de lectura que hace que el dato
almacenado en el biestable pase a la salida a través de un
buffer triestado
Componentes básicos de memorización
57
Bancos de registros
n
En general, un banco de registros de 2
registros de
m
bits necesita:
2n filas de biestables
m entradas de datos
m salidas de datos
El decodificador de escritura necesita
n líneas de dirección
1 línea de habilitación de escritura
El decodificador de lectura necesita
n líneas de dirección
1 línea de habilitación de lectura
Componentes básicos de memorización
58
29
Bancos de registros
Este diagrama muestra un banco de cuatro registros
de cuatro bits en el que, por claridad, se ha suprimido
la señal de reloj
Componentes básicos de memorización
59
Bancos de registros con mú
múltiples puertos
La principal limitación de un banco de registros como
éste es que, en un momento dado, sólo puede leerse un
dato y escribirse un dato al mismo tiempo
Decimos que un banco de registros de estas
características tiene un puerto de lectura y un
puerto de escritura
La solución a este problema es aumentar el número
de puertos de lectura y escritura según convenga, de
acuerdo con el uso que vaya a darse al banco
Componentes básicos de memorización
60
30
Bancos de registros con mú
múltiples puertos
El problema de usar múltiples puertos es que el costo
de cada registro aumenta proporcionalmente al número
de puertos que tiene
Un posible punto de equilibrio es usar dos puertos de
lectura y uno de escritura
Por ejemplo, suponiendo que un circuito digital realice
una operación aritmética o lógica en cada ciclo:
Los puertos de lectura proporcionarán los dos operandos
El puerto de escritura permitirá almacenar el resultado
Componentes básicos de memorización
61
Bancos de registros con mú
múltiples puertos
Este diagrama muestra un banco de registros con las
modificaciones necesarias para tener dos puertos de
lectura, incluyendo un segundo decodificador de lectura
Componentes básicos de memorización
62
31
Estructura del tema
Introducción
Registros
Registros con carga en paralelo
Registros de desplazamiento
Contadores
▫ Análisis y diseño de circuitos contadores
▫ Contadores asíncronos
Bancos de registros
Memorias
ROM – Memorias de sólo lectura
RAM – Memorias de acceso aleatorio
Resumen y bibliografía
Componentes básicos de memorización
63
Memorias
Los bancos de registros en un sistema digital
son rápidos, pero las características de su diseño
implican que también deben ser pequeños
Un banco de registros es ideal para almacenar datos
temporales durante operaciones de cálculo
Su tamaño puede no ser suficiente para almacenar todos
los datos producidos durante el funcionamiento del sistema
Las memorias son estructuras de almacenamiento de
datos más lentas pero también más grandes, y por tanto
son más apropiadas para memorizar grandes cantidades
de datos a largo plazo
Componentes básicos de memorización
64
32
Estructura del tema
Introducción
Registros
Registros con carga en paralelo
Registros de desplazamiento
Contadores
▫ Análisis y diseño de circuitos contadores
▫ Contadores asíncronos
Bancos de registros
Memorias
ROM – Memorias de sólo lectura
RAM – Memorias de acceso aleatorio
Resumen y bibliografía
Componentes básicos de memorización
65
Memorias de sólo lectura
ROM – read only memory
Las memorias de sólo lectura (
)
se construyen para que almacenen determinada
información que será accesible a un circuito digital
Una ROM contiene 2n líneas de m bits cada una,
y necesitará n líneas de dirección para permitir la
selección de cada una de las líneas
Un decodificador con n líneas de control es el
encargado de seleccionar las líneas y permitir la lectura
de los datos, pero la escritura de datos es imposible
Componentes básicos de memorización
66
33
Memorias de sólo lectura
Las memorias ROM son programadas de forma
permanente durante el proceso de fabricación, por lo
que se construyen con una determinada funcionalidad
En general, las ROM son excelentes para almacenar
datos fijos dado que no son volátiles, es decir, su
contenido no se pierde al desconectar la corriente
Debido a esto, las ROM se utilizan muy frecuentemente
en sistemas digitales, como por ejemplo para almacenar
programas que permitan inicializar un procesador
Componentes básicos de memorización
67
Memorias de sólo lectura
Al igual que los bancos de registros, podemos imaginar
una ROM como una red bidimensional de celdas de
memoria (MC – memory cell)
En general, se interpreta como un 1 ó un 0 la presencia
o ausencia de una conexión con una celda
Componentes básicos de memorización
68
34
Ejemplo de aplicación de una ROM
Como ejemplo diseñaremos un circuito que implemente
el funcionamiento descrito por este diagrama de estados
usando biestables tipo T
La parte combinacional del sistema la vamos a
implementar usando una memoria ROM
Componentes básicos de memorización
69
Ejemplo de aplicación de una ROM
Se trata de un diagrama de tipo Moore con cuatro
estados, una entrada y dos salidas, de lo que podemos
deducir la tabla de estado siguiente
Componentes básicos de memorización
70
35
Ejemplo de aplicación de una ROM
Conociendo el comportamiento de los biestables T
podemos extender la tabla de estado siguiente y formar
la tabla de excitación
Componentes básicos de memorización
71
Ejemplo de aplicación de una ROM
A partir del diagrama de estados también podemos
deducir la tabla y las ecuaciones de salida, teniendo
en cuenta que se trata de un sistema de tipo Moore
Componentes básicos de memorización
72
36
Ejemplo de aplicación de una ROM
Con esta información podemos dibujar el diagrama
La memoria ROM será accedida usando como dirección los
valores de las variables X, Q1 y Q0
Cada fila de la ROM se corresponderá con los valores que
deben aparecer en las entradas de los biestables de acuerdo
con los valores de X, Q1 y Q0 correspondientes a esa fila
Componentes básicos de memorización
73
Memorias ROM programables
Otro tipo de ROM muy popular son las memorias
ROM programables (PROM), ya que se fabrican de
tal forma que el usuario final puede programarlas
según su conveniencia
En este tipo de memorias, cada celda está conectada a
la línea correspondiente por medio de un transistor
La ausencia de un fusible representa un 0
La presencia de un fusible representa un 1
El usuario puede programar una PROM fundiendo fusibles,
pero sólo podrá hacerlo una única vez
Componentes básicos de memorización
74
37
Estructura del tema
Introducción
Registros
Registros con carga en paralelo
Registros de desplazamiento
Contadores
▫ Análisis y diseño de circuitos contadores
▫ Contadores asíncronos
Bancos de registros
Memorias
ROM – Memorias de sólo lectura
RAM – Memorias de acceso aleatorio
Resumen y bibliografía
Componentes básicos de memorización
75
Memorias de acceso aleatorio
Las memorias de acceso aleatorio (RAM – random access memory)
son memorias volátiles, es decir, su contenido se pierde
cuando se desconectan de la corriente
Al igual que los bancos de registros, las memorias
de acceso aleatorio (RAM – random access memory
) están
organizadas como conjuntos de filas
2n filas
n líneas de dirección para
identificar cada fila
m bits almacenados en
cada fila
Componentes básicos de memorización
76
38
Memorias de acceso aleatorio
Además de las líneas de dirección hace falta
una señal de selección de chip (CS) que habilite
o deshabilite la RAM
La señal CS permite construir una memoria grande
con varias RAM de forma que sólo una de ellas sea
accedida en un momento dado
También existe una señal de selección de lectura o
escritura (RWS) que selecciona el modo de operación
de la RAM: lectura (0) o escritura (1)
Componentes básicos de memorización
77
Memorias de acceso aleatorio
De forma similar a los bancos de registros, una RAM se
organiza como un conjunto de celdas de memoria ( MC)
Podemos representar el funcionamiento de cada celda
como un biestable D con una lógica asociada
Componentes básicos de memorización
78
39
Memorias de acceso aleatorio
En realidad, el diseño de las celdas de memoria se
optimiza para reducir el número de transistores
) necesitan
entre 4 y 6 transistores, siendo capaces de retener los
datos indefinidamente mientras no se sobrescriban y
la SRAM permanezca conectada a la corriente
Las memorias RAM estáticas (SRAM
– static RAM
Las memorias RAM dinámicas (DRAM – dynamic RAM) sólo
necesitan un transistor por celda, por lo que ocupan
menos y son más baratas, pero su contenido se pierde
con cada lectura, así que hay que reescribirlo
Componentes básicos de memorización
79
Memorias de acceso aleatorio
Otra desventaja de las DRAM es que tienden a perder
el dato almacenado al cabo de un tiempo debido a
imperfecciones de fabricación
Para solucionar esto es necesario acceder a todas las celdas o
reescribir todos los datos con cierta frecuencia
Durante esta operación de refresco, todas las operaciones de
lectura y escritura deben suspenderse
A pesar de los problemas, las memorias DRAM son
muy populares debido a su mayor densidad y su menor
coste, mientras que las SRAM son usadas cuando la
rapidez de acceso es el factor principal
Componentes básicos de memorización
80
40
Memorias de acceso aleatorio
Este diagrama muestra la estructura de una RAM,
incluyendo el decodificador de direcciones que
selecciona la línea que debe ser accedida
Componentes básicos de memorización
81
Temporización de las RAM
La organización de las RAM impone restricciones de
temporización en la forma en la que se realizan los
accesos de lectura y escritura
La dirección debe permanecer en las líneas desde
antes de que comience el acceso hasta después de
que termine para asegurar un buen funcionamiento
Las líneas de dirección deben tener los valores adecuados
desde el principio del acceso, ya que el camino crítico pasa
por el decodificador
En caso de una escritura, no hace falta que el dato esté
disponible desde el principio, pero debe estarlo antes de
que sea necesario y hasta después de terminada la escritura
Componentes básicos de memorización
82
41
Temporización de las RAM
Este cronograma muestra la temporización de un
acceso de lectura a una RAM
Componentes básicos de memorización
83
Temporización de las RAM
Este cronograma muestra la temporización de un
acceso de escritura a una RAM
Componentes básicos de memorización
84
42
Combinación de memorias RAM
En general, las RAM se fabrican con una cantidad
determinada de líneas (2n) y de bits por línea (m)
Si en un momento dado hay que fabricar una memoria
más grande que las que tenemos disponibles, tendremos
que combinar varias de ellas
Para obtener memorias con una mayor cantidad de bits por
línea podemos conectar varias RAM en paralelo, todas ellas
conectadas a las mismas líneas de direcciones
Para obtener memorias con un mayor cantidad de líneas
podemos conectar varias RAM en serie, usando una parte de
la dirección para seleccionar una RAM con un decodificador
y otra parte de la dirección para acceder a la RAM
Componentes básicos de memorización
85
Combinación de memorias RAM
Este diagrama muestra la conexión de varias memorias
RAM en paralelo para aumentar el tamaño de línea
Componentes básicos de memorización
86
43
Combinación de memorias RAM
Este diagrama muestra
la conexión de varias
memorias RAM en
serie para aumentar el
número de líneas
Componentes básicos de memorización
87
Estructura del tema
Introducción
Registros
Registros con carga en paralelo
Registros de desplazamiento
Contadores
▫ Análisis y diseño de circuitos contadores
▫ Contadores asíncronos
Bancos de registros
Memorias
ROM – Memorias de sólo lectura
RAM – Memorias de acceso aleatorio
Resumen y bibliografía
Componentes básicos de memorización
88
44
Resumen
El almacenamiento de datos es una característica
primordial de los sistemas digitales
Los registros permiten almacenar información y
acceder a ella de forma rápida, por lo que son útiles
para trabajar con datos concretos, pero la cantidad de
registros que un sistema puede tener es reducida
Las memorias son más lentas que los registros pero
tienen una capacidad mucho mayor, por lo que resultan
útiles para almacenar grandes cantidades de
información que pueda transferirse a los registros
cuando sea necesario
Componentes básicos de memorización
89
Bibliografía
Principios de Diseño Digital
Capítulo 7
Daniel D. Gajski
Prentice Hall, 1997
Componentes básicos de memorización
90
45
Descargar