6.Componentes básicos de memorización Fundamentos de los Computadores Grado en Ingeniería Informática.

Slides:



Advertisements
Presentaciones similares
DISEÑO DE TRANSFERENCIA ENTRE REGISTROS
Advertisements

Tema 7: Análisis y diseño con registros
Unidad aritmético-lógica
SISTEMAS DIGITALES SECUENCIALES
Memorias RAM Características: Son de lectura escritura
Unidad aritmético-lógica
Memorias.
REPUBLICA BOLIVARIANA DE VENEZUELA UNIVERSIDAD ALONSO DE OJEDA FACULTAD DE INGENIERÍA ESCUELA DE COMPUTACIÓN ING. PROF. LEONEL SEQUERA MEMORIAS.
Arquitectura de Computadores IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia.
Arquitectura de Computadores Clase 17 Tecnologías de Memorias IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de.
UNIDAD 3: SISTEMAS COMBINACIONALES Y SECUENCIALES UNIDAD 3: SISTEMAS COMBINACIONALES Y SECUENCIALES ING. GERARDO A. LEAL, MSC Unidad 3: Sistemas Combinacionales.
Componentes físicos de un ordenador MSc. Lic. David Escalera.
1 MEMORIAS Fundamentos de Informática Ingeniería Técnica Diseño Industrial.
Tema II Unidad de memoria. 2.1 Definiciones y conceptos básicos. 2.2 Jerarquía de memorias. 2.3 Memorias de semiconductor. 2.4 Memorias asociativas. 2.5.
MEMORIA RAM MEMORIA ROM  Definición: es el acrónimo de Random Acess Memory, es decir, memoria de acceso aleatorio. Esto quiere decir que se trata de.
Memoria Principal Arquitectura de la Memoria Principal.
INTRODUCCION A LOS SISTEMAS DE COMPUTO ARQUITECTURA VON NEUMAN Ing. David Gonzalez.
BOARD O TARJETA MADRE. EXPOSICION DE INFORMATICA TEMA 1: BOARD TIPOS DE PROCESADOR BUS PUERTOS MEMORIA NUEVAS TECNOLOGIAS.
ARQUITECTURA BÁSICA DE UN ORDENADOR
Microprocesador Estructura interna.
U.T. 11: Introducción A Las Bases De Datos
IDENTIFICACIÓN Y CARACTERÍSTICAS DE MEMORIA RAM Y ROM
5. Análisis y diseño de sistemas secuenciales (I)
EL CPU.
Módulo 9 Automatización industrial Unidad 1 Introducción a los autómatas programables. Clase 03: Software de un Relé programable.. Nivel: IV medio Especialidad:
Arquitectura de Computadoras Decodificadores
Titulación: Grado en Ingeniería de Computadores
COMPUTADORA Una computadora es una colección de circuitos integrados  y otros componentes relacionados que puede ejecutar con exactitud, rapidez y de.
La Memoria Memoria de la computadora es el espacio de almacenamiento en la computadora donde datos va a ser procesada y se almacenan las instrucciones.
HARDWARE POR: JOEL CASTAÑEDA 1ºA.
ARQUITECTURA DE HARD WARE COMPONENTES EN BLOQUES DEL PROCESADOR
Tema 6. Conceptos básicos de programación (Clase 2)
5. Análisis y diseño de sistemas secuenciales (II)
INTRODUCCION DE SISTEMAS INFORMATICOS
Registros y Contadores
Direccionamiento de puerto E/S mapeado en memoria
Organización del Computador
Tema 2. Sistemas Secuenciales básicos
Conceptos Relacionados Unidad I. Parte A.
TECNOLOGÍA DE EQUIPOS INFORMÁTICOS
CONTROLADORES DE MEMORIA DE COMPUTADORAS
Partes del Motherboard. Sistema Operativo El conjunto de programas informáticos que permite la administración eficaz de los recursos de una computadora.
HERRAMIENTAS DE PROGRAMACIÓN
PROCESADOR DIGITAL ESPECIALIZADO
 La cuestión de la cantidad es simple, cuanto más memoria haya disponible, más podrá utilizarse. La velocidad óptima para la memoria es la velocidad.
Ing. Diego Barragán Guerrero Máquinas de estado con VHDL.
Presentación Nombres: José Rafael Apellidos: Aquino Balbuena
8. Diseño del Procesador Fundamentos de los Computadores
ARQUITECTURA DEL COMPUTADOR Ing. Diana E. López.
SISTEMAS SECUENCIALES DIGITALES
Empecemos por el principio
Memoria RAM La memoria RAM es la memoria principal de un dispositivo donde se almacena programas y datos informativos. Las siglas RAM significan “Random.
Sistemas Secuenciales Electrónica Digital Electrónica Básica José Ramón Sendra Sendra Dpto. de Ingeniería Electrónica y Automática ULPGC.
Introducción a las bases de datos (I)
1 TEMA 2: Organización de computadores Procesadores Memorias Dispositivos de E/S.
Operaciones con Acumuladores
Tema 6. Conceptos básicos de programación (Clase 2)
Memoria Principal. Memoria primaria (MP), memoria principal, memoria central o memoria interna es la memoria de la computadora donde se almacenan temporalmente.
5.Análisis y diseño desistemas secuenciales (III) Fundamentos de los Computadores Grado en Ingeniería Informática.
INTRODUCCIÓN A LA INFORMÁTICA
MEMORIA  Es un conjunto de celdas de almacenamiento junto a circuitos asociados que tienen como fin leer y/o almacenar información digital  La memoria.
Concepto:La memoria RAM (Random Access Memory) o memoria de acceso aleatorio es un componente físico de nuestro ordenador, generalmente instalado sobre.
 SON FUNCIONES LÓGICAS  REPRESENTADAS POR TABLAS DE VERDAD  SIMPLIFICABLES POR LÓGICA BOOLEANA  SIMPLIFICABLES POR KARNAUGH  APLICACIONES: funciones.
¿Qué es la celda de manufactura? La celda de manufactura es un conjunto de componentes electromecánicos, que trabajan de manera coordinada para el logro.
Memoria  Memoria real: Chips de memoria  Memoria virtual: Archivos creados en el disco duro a modo de memoria adicional. Tipos de memorias  -Memoria.
CIRCUITOS COMBINACIONALES Y SECUENCIALES. COMBINACIONALES SON FUNCIONES LÓGICAS REPRESENTADAS POR TABLAS DE VERDAD SIMPLIFICABLES POR LÓGICA BOOLEANA.
Sistemas Secuenciales Electrónica Digital. Combinacional: las salidas dependen de las entradas Secuencial: las salidas dependen de las entradas y de valores.
1 MEMORIAS Fundamentos de Informática Ingeniería Técnica Diseño Industrial.
ARQUITECTURA DE UN MICROPROCESADOR. ESTRUCTURA BÁSICA DE UN SISTEMA MICROPROGRAMABLE A. Hardware CPU (chip microprocesador): es un circuito integrado.
Transcripción de la presentación:

6.Componentes básicos de memorización Fundamentos de los Computadores Grado en Ingeniería Informática

Componentes básicos de memorización2 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ón3 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ón4 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ón5 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ón6 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ón7 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ón8 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ón9 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ón10 Registros con carga en paralelo  Este diagrama muestra un registro con carga en paralelo

Componentes básicos de memorización11 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ón12 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ón13 Registros de desplazamiento  Este diagrama muestra un registro de desplazamiento

Componentes básicos de memorización14 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ón15 Registros de desplazamiento  Este diagrama muestra un registro de desplazamiento con carga en paralelo

Componentes básicos de memorización16 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ón17 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ón18 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ón19 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ón20 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ón21 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ón22 Contadores de doble sentido  Este diagrama muestra un contador de doble sentido Ojo con esta implementación

Componentes básicos de memorización23 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ón24 Contadores con inicialización  Este diagrama muestra un contador con carga en paralelo

Componentes básicos de memorización25 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ón26 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ón27 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ón28 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ón29 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ón30 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ón31 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ón32 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ón33 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ón34 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ón35 Análisis de un contador  Supongamos que queremos determinar la secuencia del contador partiendo del valor

Componentes básicos de memorización36 Análisis de un contador  Supongamos ahora que queremos determinar la secuencia del contador partiendo del valor

Componentes básicos de memorización37 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ón38 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ón39 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ón40 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ón41 Diseño de un contador  La lógica de entrada a los biestables puede obtenerse simplificando las funciones correspondientes

Componentes básicos de memorización42 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ón43 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ón44 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ón45 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ón46 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ón47 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ón48 Contadores asíncronos  Si suponemos que el retardo de cada biestable es , la señal Q 0 cambiará con un retardo , ya que pasa por un biestable, la señal Q 1 cambiará con un retardo 2 , ya que pasa por dos biestables, y así sucesivamente

Componentes básicos de memorización49 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ón50 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ón51 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ón52 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ón53 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ón54 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ón55 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ón56 Bancos de registros  En general, un banco de registros de 2 n registros de m bits necesita:  2 n 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ón57 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ón58 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ón59 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ón60 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ón61 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ón62 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ón63 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 2 n 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ón64 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ón65 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ón66 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ón67 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ón68 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ón69 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ón70 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, Q 1 y Q 0  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, Q 1 y Q 0 correspondientes a esa fila

Componentes básicos de memorización71 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ón72 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ón73 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  2 n filas  n líneas de dirección para identificar cada fila  m bits almacenados en cada fila

Componentes básicos de memorización74 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ón75 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ón76 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ón77 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ón78 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ón79 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ón80 Temporización de las RAM  Este cronograma muestra la temporización de un acceso de lectura a una RAM

Componentes básicos de memorización81 Temporización de las RAM  Este cronograma muestra la temporización de un acceso de escritura a una RAM

Componentes básicos de memorización82 Combinación de memorias RAM  En general, las RAM se fabrican con una cantidad determinada de líneas (2 n ) 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ón83 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 2 14 x32 bits utilizando módulos RAM de 2 14 x8 bits

Componentes básicos de memorización84 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 2 16 x8 bits utilizando módulos RAM de 2 14 x8 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ón85 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ón86 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ón87 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ón88 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ón89 Bibliografía Principios de Diseño Digital Capítulo 7 Daniel D. Gajski Prentice Hall, 1997