6. Componentes básicos de memorización

Anuncio
6. Componentes básicos de
memorización
Fundamentos de los Computadores
Grado en Ingeniería Informática
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
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
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
Aparte de la señal de reloj, un registro de n biestables dispondrá
también de n entradas y n salidas
Componentes básicos de memorización
5
Registros


Se pueden añadir al registro señales asíncronas de puesta a uno
(preset) y puesta a cero (clear)
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
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
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
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
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
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
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
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
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
Componentes básicos de memorización
21
Contadores de doble sentido

Este diagrama muestra un contador de doble sentido
Ojo con esta
implementación
Componentes básicos de memorización
22
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
necesitamos:
 Añadir un multiplexor a cada bit para permitirle incrementarse o tomar el
valor de la entrada
 Añadir una señal de control (Load) 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
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
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
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
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
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
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
Q+= TQ’+T’Q = T xor Q
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
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
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
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
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
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

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
42
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
43
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
 La forma más simple de implementarlo es hacer que cada biestable cambie
a la mitad de la frecuencia que el biestable anterior (doble período)
 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
44
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 la salida
complementada de n-1 cambie de 0 a 1, o sea, cuando el
biestable de la posición n cambie de 1 a 0
Componentes básicos de memorización
45
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
46
Contadores asíncronos

Este cronograma muestra el funcionamiento del contador,
pudiendo verse que cada biestable tiene un período que es el
doble que el anterior
Componentes básicos de memorización
47
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
48
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íncrono sería más rápido que uno asíncrono
Componentes básicos de memorización
49
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
50
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
51
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
52
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
53
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 seleccionan una fila
concreta para permitir que en ella se realice una operación de
lectura o escritura
Componentes básicos de memorización
54
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
55
Bancos de registros

En general, un banco de registros de 2n 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
56
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
57
Bancos de registros con 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
58
Bancos de registros con múltiples puertos

El problema de usar múltiples puertos es que el coste de cada
registro aumenta proporcionalmente al número de puertos que
tenga

Un caso habitual 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
59
Bancos de registros con 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
60
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
61
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 no es 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
62
Memorias de sólo lectura

Las memorias de sólo lectura (ROM – read only memory) 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
63
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
64
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
65
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
66
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
67
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
68
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
69
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
70
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
71
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
72
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
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
73
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) ó escritura(1)
Componentes básicos de memorización
74
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
75
Memorias de acceso aleatorio

El diseño de las celdas de memoria se optimiza para reducir el
número de transistores

Las memorias RAM estáticas (SRAM – static RAM) necesitan entre 4
y 6 transistores, siendo capaces de retener los datos mientras no
se sobrescriban y la SRAM permanezca conectada a la corriente
 Bancos de registros, memorias cache

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 (ciclos de refresco)
 SDRAM  DDR
 Memoria principal
Componentes básicos de memorización
76
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
77
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
78
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
79
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
80
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
81
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
82
Combinación de memorias RAM

Este diagrama muestra la conexión de varias memorias RAM en
paralelo para aumentar el tamaño de palabra almacenada: RAM
de 214x32 bits utilizando módulos RAM de 214x8 bits
Componentes básicos de memorización
83
Combinación de memorias RAM

Este diagrama muestra la
conexión de varias memorias
RAM en serie para aumentar el
número de posiciones de
memoria: RAM de 216x8 bits
utilizando módulos RAM de
214x8 bits

NOTA: Es posible combinar
ambas técnicas para aumentar
tanto el número de posiciones
de la memoria como el tamaño
de la palabra almacenada
Componentes básicos de memorización
84
Ejercicio 1

Construye un sistema de memoria de tamaño 512K palabras, con
tamaño de palabra de 16 bits. Las primeras 64K palabras son de sólo
lectura y se encuentran en las direcciones más bajas. El resto del
espacio direccionable será de lectura/escritura. Para ello se dispone de
los siguiente módulos:






RAM de 64kx8bits
RAM de 128Kx16bits
ROM de 16Kx16bits
decodificadores varios
Cada uno de los módulos de memoria y los decodificadores disponen de
una señal de habilitación (o selección) activa a nivel alto.
¿En qué módulo de memoria se encuentra almacenada la palabra con
dirección 0x186A0?
Componentes básicos de memorización
85
Ejercicio 2

Diseñar una memoria de tamaño total 1M palabras con un ancho de
palabra 32 bits en la que las primeras 256K palabras sean de memoria
ROM y el resto de memoria RAM. Para ello se dispone de tres tipos de
módulos:
 Memorias ROM de 64 KB con un ancho de palabra de 8 bits.
 Memorias RAM de 256 KB con un ancho de palabra de 32 bits.
 Memorias RAM de 512 KB con un ancho de palabra de 16 bits.

Cada módulo posee entradas de direcciones, entradas de datos, salidas
de datos y una señal de selección (CS) activa a nivel alto. Para el diseño
se pueden utilizar tantos módulos como creas necesarios pero debe
usarse al menos uno de cada tipo. Asume que dispones de los
decodificadores que estimes oportunos.
Componentes básicos de memorización
86
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
87
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
88
Bibliografía
Principios de Diseño Digital
Capítulo 7
Daniel D. Gajski
Prentice Hall, 1997
Componentes básicos de memorización
89
Descargar