Arquitectura de Sistemas. 4. Circuitos, sistemas combinacionales, sistemas secuenciales, registros y memorias.







----------------------------------------------------------------

LINK AL CUADERNO CON TODA LA INFORMACIÓN DEL CAPITULO:


https://notebooklm.google.com/notebook/55df4cd4-14e9-4cf1-baa5-dc5e9de72446


----------------------------------------------------------------


Videos de clase


1) Video de la construcción de un sumador completo:

https://youtu.be/CG-yqbIlHk4?si=M_QkLyaDW2hlraZa


2) Video de la construcción de un sumador de 8 bits:


https://youtu.be/nY7-ADOkVfo?si=Fjv1v352w7TV5gmQ


3) Video de la construcción de la memoria 4x3:

https://youtu.be/FK4UOiiGb70?si=FoT1nSvtyJPHNiOc



----------------------------------------------------------------


Circuitos, sistemas combinacionales, sistemas secuenciales, registros y memorias.


Circuitos

Los circuitos son una representación implementable del Algebra de Boole. Las entradas de las funciones serán sensores o botones, etc que indiquen 0 o 1 y las salidas serán luces, etc

que también lo indiquen. Para el procesamiento de datos tendremos las compuertas lógicas. Todo esto nos aproxima un poco más al concepto de entrada-proceso-salida que es la definición de computadora…

Usaremos la herramienta logic.ly  https://logic.ly/

 Para la representación de circuitos.

Hay símbolos para cada uno de los elementos del álgebra.

Ejercicio

Mostrar sobre el circuito las dos propiedades distributivas

a.(b+c)=ab+ac

a+b.c=(a+b).(a+c)

Ejercicio

Sumador individual de dos bits.

Consideremos las siguientes funciones.

Queremos hacer un chip que sume 2 bits. Sumar no en el sentido del AB sino en el sentido matemático, es decir: 0 + 0=0 0+1=1 1+0=1 y 1+1=0 y me llevo 1.

Entonces aparece el concepto de carry, que es una salida extra que me indica que la suma acarreó.

Entonces, como primera parte, nos preguntamos cómo queda la tabla de verdad de la función s y de la función c, es decir s(a,b) y c(a,b).

Levantamos las expresiones para las funciones, por medio de las formas canónicas…

s(a,b)=/a.b+a./b

c(a,b)=a.b

Y ya con ellas puedo ir a hacer un circuito que sume!

Esto puede implementarse en la realidad! (foto de internet)

Las compuesrtas vienen implementadas en los chips, y son específicas y fijas.

Un ejemplo de chip de ORs

Ejemplo del chip 7432. Lo alimentamos con 5V por el Vcc y tierra en el GND y luego por ejemplo en A3 y B3 van las entradas y por C3 sale A3+B3.

Vamos a complicar un poco más nuestro sumador individual…

Porque nos damos cuenta de que no es solamente “lo que nos llevamos” sino lo que “me llevo en ese momento de la suma”… o sea

Entonces el sumador completo, suma una entrada a, con una entrada b, con un carry de entrada cin y produce una suma s y un carry de salida cout.

Vamos a hacer Karnaugh para s y otro para c_out

Presentamos el XOR

a XOR b vale 1 si a o b es 1 pero no ambos.

Y se puede generalizar a un XOR que se prende con cualquier cantidad impar de entradas en 1, o si no, con exactamente 1 cualquiera en 1.

El XOR se identifica por esa “horrible alternancia” en el Karnaugh que no nos permite armar más que rectángulos individuales.

Podemos hacer el circuito integrado

Sistemas Combinacionales

Los sistemas combinacionales son sistemas donde las salidas son función EXCLUSIVAMENTE de las entradas.

Es decir, no hay estados, no hay memoria.

En la computadora, el combinacional típico será la ALU, unidad aritmético-lógica, que es la parte de la CPU que realiza las operaciones.

 Los circuitos combinacionales, implementan los sistemas combinacionales.

El sumador que vimos la clase pasada es un ejemplo de sistema combinacional.

Codificador

Un codificador tiene 2**n entradas y n salidas, haciendo corresponder una salida “codificada” a cada una de las activaciones individuales de las entradas.

Esto lo encontramos, por ejemplo, en un teclado, que tiene del orden de 120 entradas (que son los botones, las teclas) y manda la señal por unos pocos cables, que claramente no son 120.

Va a haber una correspondencia implícita en el codificador, que le llamaremos código.

Ejemplo concreto.

Con n=2

Y con el siguiente código:

Paso 1:

Hacemos la tabla de verdad.

Las X son llamadas don’t cares. Son posiciones que no importa su valor, pueden valer 0 o 1, en forma indistinta incluso. Corresponden a entradas que no ocurrirán.

Las fijaremos de forma que la expresión quede lo más simple posible.

Entonces s1=e2+e3

Entonces s0=e3+e1

El código, que da la base para la tabla, se da arbitrariamente. Podría ser otro.

Existe la función inversa, que es el decodificador.

Ejercicio:

Hacer el decodificador del codificador anterior. Es decir, que tiene el mismo código implícito.

Son n entradas y 2**n salidas.

La composición de codificador y decodificador, obviamente, da la Identidad.

Otro circuito combinacional:

Multiplexador

Tenemos 2**n entradas y n entradas de control, y una sola salida s.

En la salida, se pondrá la entrada a la cual las líneas de control refieren.

Para este caso concreto, si c0=0 entonces s=e0 y si c0=1 entonces s=e1.

Los KVM funcionan así… son los multiplexadores de teclados, mouse y monitor que hay en las salas de servidores. En ellos tenemos por ejemplo 16 máquinas raqueadas, y un solo teclado mouse y monitor para las 16 (total es muy difícil que se acceda en ellas si no es en forma remota). El KVM es un aparato que permite que las 16 máquinas compartan el mouse teclado y video, y paso de otra apretando un botón o una combinación de teclas. Este botón sería la línea de control.

El demultiplexador es la inversa.

Tenemos una entrada, n líneas de control y 2**n salidas.

Entonces en las líneas de salidas va todo 0, salvo en la que indique la línea de control,

y en ella va la entrada.

Ejemplo con n=2

s1=e.c

s0=e./c

Obviamente si componemos multiplexador con demultiplexador (en un solo sentido)

 da la identidad.

Existen muchos otros sistemas combinacionales: restadores, potencias, traductores de códigos, comparadores, etc.

Algunos ejemplos de sistemas combinacionales.

  1. Sumador completo

Se adjunta archivo en Logic.ly

Sumador completo de 1 bit

Combinación de 3 sumadores de 1 bit para construir un sumador de números de 3 bits:

2)

Codificador

Decodificador

Composición de codificador y decodificador que da la identidad:

3…………

Multiplexador

Demultiplexador

Sistemas Secuenciales

Los sistemas secuenciales son sistemas en los cuales la salida es función de la entrada y del estado actual. Aparece entonces el concepto de estado.

Los circuitos secuenciales implementan los sistemas secuenciales.

Vamos a ver hoy una metodología para modelar los sistemas secuenciales, “digitalizar” su comportamiento, traducirlo en términos de tablas, a estás en fórmulas del Algebra de Boole, y a estas fórmulas en circuitos en base a biestables; con lo cual hallaremos, al igual que con los circuitos combinacionales, impementaciones electrónicas de los mismos.

Los sistemas secuenciales se caracterizan por tener algún tipo de memoria, y llevar estados.

Introduciremos entonces las máquinas de estados, como elemento de modelado.

Las máquinas de estados se usan para describir sistemas que evolucionan entre múltiples estados.

Tienen estados, entradas, salidas y transiciones.

Las máquinas de estados tienen múltiples aplicaciones dentro de la informática y la ciencia en genetral.

Veamos un ejemplo.

Supongamos un ascensor deliberadamente simple, el cual se mueve entre tres pisos, 0 , 1 y 2, con dos botones, para subir y bajar un piso respectivamente. Y la salida que se despliega siempre es el número de piso de llegada.

ESTO se puede MODELAR con una máquina de estados como la que sigue:

Vamos a trabajar con máquinas de estados muy simples al comienzo.

Ejemplo

Letra: Contador asincrónico de 0 a 2, circular, ascendente, de uno en uno, la salida será el estado de llegada.

Explicación: asincrónico significa que va a contar, avanzando en el conteo, cada vez que se apreta un botón, que será la entrada.

Circular, ascendente, de uno en uno, significa, que cuenta, 0 1 2 0 1 2 0 1 2…. Indefinidamente.

En todos los estados, debo considerar todas las posibles entradas. Estamos describiendo completamente el comportamiento de este sistema, lo que implica para todo estado resolver el comportamiento del sistema para todas las entradas posibles.

Un ejemplo de este tipo de contador es el número de la carnicería del supermercado.  El estado, es el número por el que va. La entrada, es el botón. Y la salida es el display.

 Ejemplo

Letra: Contador sincrónico de 0 a 2, circular, ascendente, de uno en uno, la salida será el estado de salida (esto es completamente arbitrario).

Explicación: sincrónico significa que va a contar, avanzando en el conteo, cada vez que transcurre un instante de tiempo, no hay entrada.

Circular, ascendente, de uno en uno, significa, que cuenta, 0 1 2 0 1 2 0 1 2…. Indefinidamente.

Digitalización de las máquinas de estados.

Para que la máquina sea asimilable al AB, vamos a tener que digitalizarla, es decir, expresarla en términos de 0s y 1s.

Digitalización del contador asincrónico anterior:

Digitalización del contador sincrónico:

(podríamos discutir si la entrada temporal va, pero veremos que se trata aparte).

El paso siguiente es transformar una máquina de estados digitalizada en una TABLA.

Vamos a llevar todo esto a una  función (tabla) del AB, con lo cual precisamos identificar variables.

Llevado a tabla del ejemplo 1:

Llevado a tabla del ejemplo 2:

Hallamos las ecuaciones del ejemplo 1

Entonces las ecuaciones totales del ejemplo 1 son:

Hallamos las ecuaciones del ejemplo 2:

s1=q1_n
s0=q0_n
q1_n+1=q_0n
q0_n+1=/q1_n/q0_n

Hasta acá venimos avanzando en paralelo dos ejemplos, contador asincrónico y contador sincrónico, y logramos llevarlos a un conjunto de ecuaciones del AB.

Vamos a construir los circuitos.

Para ello utilizaremos un BIESTABLE D

Este componente tiene una forma muy particular de guardar 1 bit.

El biestable D, va conectado a una línea de CLOCK, de reloj, que lo que hace es generar impulsos de 0 y 1 alternados, cada cierto tiempo predeterminado y constante.

Por la entrada D, le pasamos el que será el valor en el instante N+1.

Por la salida Q, nos indica cuál es el valor que tienen en el instante N.

Esta es una forma de dar un circuito que almacena 1 bit.

Esto servirá para el sincrónico y el asincrónico.

Los implementamos ambos en logic.ly

Para marcar los tiempos usamos un CLOCK

Esta es una aplicación inicial del biestable D para aprender su comportamiento:

El clock va marcando la evolución temporal del sistema.

El biestable tiene dos partes: la D que es el paso futuro, el nivel próximo y la Q que es el paso presente, lo que tiene en este momento dentro. Esto va evolucionando todo el tiempo.

Contador asincrónico

Vamos con el contador sincrónico:

s1=q1_n
s0=q0_n
q1_n+1=q_0n
q0_n+1=/q1_n/q0_n



METODOLOGIA PARA SISTEMAS SECUENCIALES

  1. Modelado en base a máquina de estados.
  2. Digitalización de la ME,
  3. Tabla de verdad.
  4. Ecuaciones vía Karnaugh.
  5. Circuito en base a biestables D.

Ejercicio

Implementar en logic un contador decreciente, de uno en uno, circular, sin salidas, sincrónico, de 4 a 0.

Etapa 1 Máquina de estados.

Etapa 2 Digitalización

Etapa 3 Tabla de Verdad

Etapa 4 Fórmuas


Etapa 5 Circuitos

q0_n+1=q2_n+q1_n/q0_n

q1_n+1=q2_n+q1_nq0_n

q2_n+1=/q2_n/q1_n/q0_n

OTRO Ejemplo

Vamos a realizar en logic el circuito secuencial que implementa la siguiente máquina de estados.

Digitalizamos la máquina de estados:

Estamos listos para el circuito.

Otra versión con el XOR hecho en función de producto y suma:

Ejercicio

Implementar

Biestables

El biestable RS tiene la propiedad de guardar UN BIT.

Si ponemos en 1 la línea R, lo resetea, guarda un 0.

Si ponemos en 1 la línea S, lo setea, guarda un 1.

Si ponemos ambas líneas a 0, informa su valor.

SI ponemos ambas líneas a 1, cambia “loco” constantemente de estado.

Esto nos muestra que mediante circuitos retroalimentados podemos guardar ceros o unos, es decir, almacenar un bit.

Los biestables JK tienen un comportamiento análogo.

Y los biestables D, tienen un comportamiento similar, pero este bit cambia de un instante a otro, como ya se explicó.

El más usado es el biestable D, que se adapta perfectamente a los sistemas que van evolucionando de un estado N (lo informa por Q) a un estado N+1 (se lo cargamos por D).

En base a 1 biestable D guardaremos 1 bit. Ya lo hacíamos así en los sistemas secuenciales que vinimos analizando.

Un registro es una tira de bits, que se comportan como un todo.

El siguiente ejemplo muestra un registro de 3 bits, que en este momento tiene guardado un 5d.

Ahora agregamos otro registro, y sustituimos el clock por una llave, con lo cual el clock funcionará manualmente, cuando nosotros queramos.

Ahí podemos ver como vamos manipulando dos registros de 3 bits cada uno, el primero recibe una entrada desde botones y el segundo recibe, en el ciclo siguiente, una copia del contenido del primero y la muestra en las lámparas que observan su estado.

Con esta idea de registro nos quedaremos para trabajar: tira de bits que se comportan como una unidad. Podemos leer o escribir su contenido.

Continuamos con la memoria RAM de 4x3

Una memoria básica RAM

Vamos a precisar 4 x 3 biestables, es decir 12.

Una primera representación en Logic de la memoria:

La primer operación a analizar será la escritura.

Escribimos el contenido de I2 I1 I0, bus de entrada, cuando CS está en 1, OE en 0 y RD en 0, indicando escritura. Lo escribiremos donde a1a0 indique como dirección.

Esta operación no produce ninguna salida.

Habilitación de la escritura:

Resolución de las direcciones:

Unión de las direcciones con la lógica de escritura:

Conexión general de los 12 biestables con la lógica de escritura:

Para la lectura debemos usar la misma decodificación de direcciones, y debemos tener CS en 1, RD en 1 y OE en 1.

La autorización de salida la haremos usando tri-states. Estos copian la entrada en la salida, sólo cuando el autorizador está en 1.

Esto sirve porque normalmente los bits de entrada y salida, O2 O1 O0 e I2 I1 I0 están ligados, juntos, entonces la salida realimentaría la entrada, perturbando todo el circuito.

Si el circuito se realimentara de sus salidas, se llena de basura.

Detalle de la lógica de salida:

Detalle del uso de tri-state:

Detalle de combinar las lecturas:

Más detalle de la lógica de lectura:

La memoria completa:

Escribimos un 3 en la dirección 1:

Leemos la dirección 3:

Una memoria básica ROM

No tiene la lógica de escritura, y se usa el botón “Cargar valores de fábrica” para ponerle los valores iniciales.

Aquí con el circuito integrado…

Dimensionamiento de memorias

Vamos a analizar cómo, dadas las dimensiones de la memoria, armamos el esquema de patas de su chip.

Ejemplo

Diseñar una memoria RAM de 16Kbytes.

16Kbytes será 16K direcciones de 8 bits.

La memoria se comporta como una array de 16K casillas que contienen 8 bits cada una.

16K = 2**4 * 2**10 = 2**14

Es una memoria RAM de 2**14 x 8

Líneas de dirección: 14, que codifican 2**14 direcciones.

Líneas de datos: 8

Líneas de control: CS RD y OE.

Ejemplo

Diseñar una memoria ROM de 8Mbytes.

8Mbytes será 8M direcciones de 8 bits.

La memoria se comporta como una array de 8M casillas que contienen 8 bits cada una.

1M=2**10 K=2**10 * 2**10 = 2**20

8M = 2**3 * 2**20 = 2**23

Es una memoria ROM de 2**23 x 8

Líneas de dirección: 23, que codifican 2**23 direcciones.

Líneas de datos: 8

Líneas de control: CS y OE.


Vamos a realizar en logic el circuito secuencial que implementa la siguiente máquina de estados.

Digitalizamos la máquina de estados:

Estamos listos para el circuito.

Otra versión con el XOR hecho en función de producto y suma:

Ejercicio

Implementar

Especificación de memorias

Memoria ROM: Read only memory. Sólo de lectura. Guarda datos que no se pueden modificar. Contiene las BIOS. Estos son los programas que al encender el equipo se copian en RAM y se ejecuta el inicio. Como parte de ese inicio seguramente se testee el hardware y se vaya a disco a buscar el SO.

Son necesarias porque la RAM arranca vacía.

Memoria RAM: Random Access Memory. Memoria de lecto escritura. Almacena el programa en ejecución y los datos que el mismo procesa.

Las n líneas de dirección codifican las 2**n direcciones.

Las m líneas de datos intercambian datos.

La memoria se comporta como un array de 2**n direcciones . En cada dirección hay una palabra de largo m.

Las líneas de control se llaman CS RD OE

Chip Select: es el ON/OFF de la memoria.

RD: en 1 es el read, en 0 es write.

OE: es un autorizador de salida al estar en 1. OUTPUT ENABLED.

Este es el esquema típico de una ROM. Con n líneas codificando 2**n direcciones, m líneas de datos y CS on-off y OE es autorizador de salida.

Memoria RAM básica de 4x3 es decir, 4 direcciones de 3 bits cada una. (Otro dibujo)

ROM de 4 palabras de 3 bits cada una…

Indicar las patas fundamentales de una RAM de 64 K x 16

Y luego de una ROM de 64K x 16

Interconexión de memorias

Dimensionamiento de memorias

Vamos a analizar cómo, dadas las dimensiones de la memoria, armamos el esquema de patas de su chip.

Ejemplo

Diseñar una memoria RAM de 16Kbytes.

16Kbytes será 16K direcciones de 8 bits.

La memoria se comporta como una array de 16K casillas que contienen 8 bits cada una.

16K = 2**4 * 2**10 = 2**14

Es una memoria RAM de 2**14 x 8

Líneas de dirección: 14, que codifican 2**14 direcciones.

Líneas de datos: 8

Líneas de control: CS RD y OE.

Ejemplo

Diseñar una memoria ROM de 8Mbytes.

8Mbytes será 8M direcciones de 8 bits.

La memoria se comporta como una array de 8M casillas que contienen 8 bits cada una.

1M=2**10 K=2**10 * 2**10 = 2**20

8M = 2**3 * 2**20 = 2**23

Es una memoria ROM de 2**23 x 8

Líneas de dirección: 23, que codifican 2**23 direcciones.

Líneas de datos: 8

Líneas de control: CS y OE.


Combinación de memorias.

Vamos a ir analizando diferentes casos para que, a partir de componentes simples podamos armar componentes más complejos.

En todos los casos analizaremos un ejemplo.

  1. Integración Horizontal

Construir una memoria RAM de 16K x 16 a partir de RAMs de 16K x 8.

Cuántas preciso?

16K x 16 / 16K x 8 = 2

Preciso 2 memorias.

16K = 16 . 2**10 = 2**4 . 2**10 = 2**14

Entonces la memoria de 16K tendrá 14 líneas de dirección.

  • Integración Vertical

Construir una RAM de 16M x 8 a partir de RAMs de 8M x 8.

Cuántas preciso ?

16 M x 8 / 8 M x 8 = 2, precisamos 2 memorias.

16 M tiene 16 . 2**20 direcciones o sea 2**24 direcciones, que se codifican con 24 líneas de dirección.

8M tiene 23 líneas de dirección.

Las líneas de datos son 8.

  • Integración Mixta

Construir una RAM de 16Gbytes en función de RAMs de 8G x 4.

(cuando es bytes, está implícito el x8)

Cuántas necesito:

16G x 8 / 8G x 4 = 4

Necesitamos 4 memorias.

Tomamos 2 memorias de 8G x 4 y aplicando el paso 1, integración horizontal, las combinamos formando una memoria de 8G x 8.

Luego tomamos 2 memorias de 8G x 8 como la que acabamos de lograr, y por integración Vertical, las combinamos formando una memoria de 16G x 8, es decir 16Gbytes.

También podíamos hacer primero la integración vertical y luego la horizontal.

Ya que estamos, analicemos las patas… 8G=2**3 . 2**10.2**10.2**10=2**33.

Con 33 líneas de dirección, direccionamos esos 8G.

Y son 8 líneas de datos, en los 8G x 8.

  • Integración horizontal múltiple.

Hacer una memoria RAM de 16K x 32 a partir de memorias RAM de 16K x 8.

Cuántas preciso ?   16K x 32 / 16K x 8 = 4, precisamos 4 memorias.

Tomo 2 de 16K x 8 y aplico la regla 1, y construyo de 16K x 16.

Tomo 2 de 16K x 16 recién construidas, y construyo de 16K x 32. Y queda lo pedido.

  • Integración Vertical múltiple

Hacer una memoria RAM de 64M x 8 a partir de memorias RAM de 16M x 8.

Cuántas preciso ? 64Mx8/16Mx8=4, precisamos 4 memorias.

Tomo 2 de 16Mx8 y construimos, por la regla 2, una de 32Mx8.

Tomo 2 de 32Mx8 recién contruidas y contruyo de 64Mx8. Y queda lo pedido.

  • Integración Mixta múltiple

Por ejemplo tomando memorias de 16Mx8 podemos construir una memoria de 64Mx32. Aplicamos las reglas 4 y 5 alternadamente.

Utilizo 64Mx32/16Mx8=4.4=16 memorias.

  • ROM a partir de RAM

Podemos hacer la salvedad de que la volatilidad de esta ROM está influída por la volatilidad de la RAM…

  • RAM a partir de ROM.

No se puede!!!!!! La ROM es read only!

  • Reducción horizontal.

Hacer una RAM de 16K x 4 a partir de una RAM de 16K x 8.

  1. Reducción Vertical.

Hacer una RAM de 16K x 8 a partir de una RAM de 32K x 8.

  1. Reducción mixta.

Es posible hacer una memoria RAM de 16k x 8 a partir de una RAM, por ejemplo, de 32K x 32. Para ello aplicamos alternadamente las reglas 9 y 10.

Ejercicio

Construir una ROM de 64Kx16 a partir de RAMs de 32Kbytes.

Hay varios caminos válidos. Presentamos uno.

La ROM de 64 K x 16 la construyo a partir de una RAM de 64 x 16 aplicando ROM a partir de RAM.

[Insertar aquí el de ROM a partir de RAM con las dimensiones 64K x 16, es decir 16 líneas de dirección y 16 de datos]

La RAM de 64Kx16 la logro por integración mixta de RAMs de 32Kx8.

La integración mixta consta de una integración vertical [poner esquema] y una horizontal [poner esquema].

ATENCION PARA LOS PARCIALES: describen como lo descomponen y sólo detallan casos básicos. NO HACER esquemas con más de 2 memorias por vez, se complican la vida con los cables.

OBSERVACION: Podemos plantearlos TopDown, que es la forma anterior, o BottomUp que es así: dada la RAM de 32Kx8 vamos combinándolas hasta llegar.

OBSERVACION: La ROM puedo lograrla al final, a partir de RAM de 64 K x 16 o al comienzo, a partir de RAMs de 32Kx8.

El proceso de pasarse a ROMs cuanto antes, es más simple (1 cable menos, el RD) y eso disminuye la posibilidad de error, y es más barato…


ANEXO: EJERCICIOS DE MEMORIAS

Indicar las patas fundamentales de una RAM de 64 K x 16

Y luego de una ROM de 64K x 16

Práctico con ejercicios de memorias

2)

  1. Leer en una ROM OK

32K, entonces las direcciones son de 15 bits, yendo desde 0 a 7FFF.

Entonces 7FF3 < 7FFF , entonces OK.

  • Escribir en RAM ok.

16K x 8 entonces son 14 bits, yendo de 0 a 3FFF.

Por tanto EFFF > 3FFF entonces fuera de rango, entonces NO ES POSIBLE.

Otra forma

EFFF es 1110111111111111 preciso 16 bits, entonces no es posible.

  • Escribir en RAM ok

32K son 15 bits, de 0 a 7FFF y como 2F1A < 7FFF entonces es posible.

Práctico

Ejercicio 2

a)

b)

3)

Paso previo:

RAM de 16k x 8 a partir de RAMs de 8k x 8

Tomamos 2 RAMs como la anterior y construimos lo pedido:

Ejercicios de dimensionamiento y diseño de memorias

Diseñar una memoria ROM de 256 M x 64 a partir de memorias RAM de 64Mx32.

  1. Cuántas preciso?
  2. Cómo son los pasos en los que voy integrando las memorias de 64Mx32 para lograr lo pedido ?
    1. Integración horizontal….. 32----64
    1. Integración vertical ……64M a 256M
    1. ROM a partir de RAM.

Cuántas preciso ?

Siempre para saber esto hacemos la división.

256 M x 64 / 64 M x 32 = 8

Por lo tanto precisamos 8 memorias.

  1. Vamos a tomar 2 memorias de 64 M x 32 para producir una memoria de 64 M x 64.

  • Vamos a tomar 2 memorias RAM de 64 M x 64 y a producir una RAM de 128M x 64

Por un mecanismo SIMILAR tomamos 2 memorias RAM de 128M x 64 y producimos una memoria RAM de 256 M x 64.

  • Transformar la RAM en ROM.

Ejercicio de sistemas secuenciales:

Dada la siguiente máquina de estados, implementarla en base a biestables D.

Metodología:

  • Digitalizo DON’T Cares!
  • Tabla
  • Ecuaciones
  • Circuito

Una ROM completa de 4 x 3

Luego creamos el circuito integrado correspondiente y aplicamos integración vertical:

A las memorias construidas las integramos horizontalmente:

Una RAM detallada

Combinación horizontal de RAMs

Combinación vertical de RAMs

No hay comentarios:

Publicar un comentario

Arquitectura de Sistemas (Microprocesadores I)

  Arquitectura de Sistemas (Microprocesadores I) Ing. Angel Caffa, MSc. MBA angelcaffa@gmail.com Teoría de Arquitectura de Sistemas  © 2026 ...