6. componentes básicos de...
TRANSCRIPT
6. Componentes básicos de memorización
Fundamentos de los ComputadoresGrado en Ingeniería Informática
Componentes básicos de memorización 2
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 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 4
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 5
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 6
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 7
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 8
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 9
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 10
Registros con carga en paralelo
Este diagrama muestra un registro con carga en paralelo
Componentes básicos de memorización 11
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 12
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 13
Registros de desplazamiento
Este diagrama muestra un registro de desplazamiento
Componentes básicos de memorización 14
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 15
Registros de desplazamiento
Este diagrama muestra un registro de desplazamiento con carga en paralelo
Componentes básicos de memorización 16
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 17
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 18
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 19
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 20
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 21
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 22
Contadores de doble sentido
Este diagrama muestra un contador de doble sentido
Ojo con esta implementación
Componentes básicos de memorización 23
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 24
Contadores con inicialización
Este diagrama muestra un contador con carga en paralelo
Componentes básicos de memorización 25
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 26
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 27
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 28
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 29
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 30
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 31
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 32
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 33
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 34
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 35
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 36
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 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 38
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 39
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 40
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 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
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 43
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 44
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 45
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 46
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 47
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 48
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 49
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 50
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 51
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 52
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 53
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 54
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 55
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 56
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 57
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 58
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 59
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 60
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 61
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 62
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 63
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á nlí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 64
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 65
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 66
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 67
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 68
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 69
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 70
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 Q0correspondientes a esa fila
Componentes básicos de memorización 71
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 72
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 73
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 74
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 75
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 76
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 77
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 78
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 79
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 80
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 81
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 82
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 83
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 84
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 85
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 86
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 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
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íaPrincipios de Diseño Digital
Capítulo 7Daniel D. GajskiPrentice Hall, 1997