Está en la página 1de 72

Arquitectura de

Computadores

Clase N°6: Memoria


1er Semestre 2024
Agenda de la Presentación
I. Introducción
II. Circuitos que memorizan
III. Flip-flop
IV. Registros
V. Memoria
VI. ¿Preguntas?
I. Introducción
Arquitectura y Organización

Buses
Dispositivos de
Almacenamiento
Entrada y Salida

Procesador
Definición
La Unidad Lógica Aritmética, de
aquí en adelante ALU, es la pieza
de hardware encargada de
realizar las operaciones lógicas
y aritméticas. Este componente
contiene una serie de entradas y
salidas que iremos viendo a
continuación.
Operandos y Resultado
Los operandos son los números
que están entrando a la ALU
para ser operados de alguna
forma. El resultado es el valor
de salida de la operación. n es la
cantidad de bits de la
arquitectura bajo la cual trabaja
esta ALU.
OPCODE
Código que indica la operación que
debe realizar la ALU en un
momento dado. La cantidad de bits
para esta entrada está dado por la
cantidad de operaciones que una
ALU en específico puede realizar.
Por ejemplo: si la ALU puede
realizar 4 operaciones, sólo se
necesitan 2 bits para representar a
cada una de ella.
Status
Los bits de Status(Estado) o también llamadas
Flags(Banderas), son un conjunto de bits que
dan información adicional sobre el estado de
un resultado de la ALU. Por ahora
mencionaremos tres:
● el bit Z (Zero): se activa (1) si cualquier
resultado de la ALU es cero.
● el bit N (Negative): se activa (1) si
cualquier resultado de la ALU es
negativo.
● el bit O (Overflow): se activa (1) si
cualquier resultado de la ALU tiene un
desbordamiento.
II. Circuitos que memorizan
Supongamos que tenemos una compuerta OR donde su salida está realimentando a
una de sus entradas.
Ingresamos un 1 por una de sus entradas, entonces se obtendrá un …
Ingresamos un 1 por una de sus entradas, entonces se obtendrá un 1 a la salida dado
el comportamiento de una compuerta OR.
Al instante siguiente, la salida de la compuerta realimenta a la entrada a la que se
conecta:
Entonces, si nuevamente modificamos la entrada, ahora por un 0, la salida no se verá
afectada. Por lo tanto, hemos conseguido un circuito que memoriza unos.
Hagamos el mismo ejercicio con la compuerta AND:
Si modificamos la entrada por un 0, entonces obtendremos un …
Si modificamos la entrada por un 0, entonces obtendremos un 0 a la salida dado el
comportamiento de la compuerta AND.
Al instante siguiente, la salida realimenta a la entrada correspondiente.
Entonces, si nuevamente modificamos la entrada, ahora por un 1, la salida no se verá
afectada. Por lo tanto, hemos conseguido un circuito que memoriza ceros.
Biestable(Latch | Flip-flop)
Si unimos las ideas propuestas por los dos circuitos previamente analizados,
podremos obtener un Biestable. Este circuito es capaz de recordar cuando se
ingresa un cero o un uno según los valores de sus dos entradas:
Biestable(Latch | Flip-flop)
En general posee dos entradas, una denominada set para indicar un valor en la salida
y reset para volver 0 el valor de la salida.
Los biestables pueden contener más o menos compuertas lógicas
en su circuitería, esto dependiendo de la forma en que logran la
memoria o bien, por su funcionamiento.
Lo importante, hemos logrado un circuito que es capaz de
memorizar 1 bit de información. Ahora veremos los distintos
componentes que memorizan y cómo los podemos usar para
memorizar datos de 2 bits o más.
III. Flip-flop
Definición
Un flip-flop es un circuito secuencial digital
que se utiliza para almacenar un bit de
información.
Los flip-flop se utilizan para una amplia
variedad de aplicaciones en la electrónica
digital, incluyendo la implementación de
contadores, registros, osciladores,
memorias de computadoras, entre otros.
Tipos de Control
Los sistemas digitales compuestos por flip-flops necesitan de una
señal de control, también llamada línea de habilitación, para
decidir cuándo cambiar su estado, el cual puede ser asíncrono o
síncrono.
Las salidas de un sistema asíncrono pueden cambiar en cualquier
momento, por el contrario, los sistemas síncronos utilizan un señal
llamada reloj para decidir cuándo cambiar el estado de las salidas.
Señal de Reloj (CLK)

Un reloj es un circuito capaz de producir señales eléctricas


oscilantes, con una frecuencia uniforme.
Flip-Flops Sincronizados por Reloj
Por lo tanto, un flip-flop sincrónico, sólo cambiará de estado
cuando se produzca un tick de reloj, es decir, cuando cambie de 0 a
1 (transición positiva), o bien, de 1 a 0 (transición negativa), según
sea el caso.
Transición Negativa

Si la entrada de CLK está negada,


entonces el flip-flop bascula en los
instantes que la señal de reloj
realiza una transición negativa.
Transición Positiva

Si la entrada de CLK está sin negar,


entonces el flip-flop bascula en los
instantes que la señal de reloj
realiza una transición positiva.
Instantes (Q)

Cuando un flip-flop bascula tiene en cuenta dos instantes. El


primero, el estado que se generará ahora (Qt) y el estado que ya
existía (Qt-1).
Tipos de Flip-Flop
Existen varios tipos de Flip-Flop (de ahora en más FF) sincronizados por
reloj. Los más conocidos son los siguientes:
● FF S-R (Set - Reset)
● FF J-K (Jack - Kilby)
● FF tipo D
● FF tipo T
Cabe destacar que todos estos tipos también se pueden diseñar como
circuitos asíncronos.
Flip-Flop S-R (Set-Reset)
Un FF S-R es un tipo de flip-flop que utiliza dos entradas, la entrada
S (Set) y la entrada R (Reset), que se utilizan para establecer o
restablecer el estado del flip-flop.
Flip-Flop S-R (Set-Reset)
Flip-Flop J-K (Jack-Kilby)
Un FF J-K es una extensión del FF S-R, permitiendo un mayor
control sobre el estado del flip-flop. Este FF soluciona el estado
indeterminado del FF S-R.
Flip-Flop J-K (Jack-Kilby)
Flip-Flop D (Data)
Un FF D se basa en una entrada de datos D que establece el estado
de salida del flip-flop. Este FF funciona como un interruptor que se
puede encender o apagar mediante la señal de reloj.
Flip-Flop D (Data)
Flip-Flop T (Toggle)
Un FF T es utilizado para generar una salida que se alterna entre
dos estados complementarios (0 y 1).
Flip-Flop con Entradas Asíncronas
Existen FF con reloj que poseen una o más entradas asíncronas.
Estas entradas asíncronas fijan las salidas del FF en el estado 1 ó 0
en cualquier instante, sin importar las condiciones presentes en las
otras entradas. Dado esto, estas entradas se denominan
dominantes. Normalmente solo se consideran dos entradas
asíncronas: PRESET y CLEAR.
Flip-Flop con Entradas Asíncronas
Flip-Flop con Entradas Asíncronas
Los FF con entradas asíncronas son útiles en aplicaciones donde se
requiera un control inmediato del estado de salida, sin esperar a
que llegue una señal de reloj. Sin embargo, es importante tener en
cuenta que el uso excesivo de estas entradas puede afectar
negativamente la estabilidad y la fiabilidad del circuito.
IV. Registros
Definición
Un registro es un conjunto de flip-flops en secuencia que se utilizan para
almacenar una cantidad de datos. Los registros comúnmente se utilizan
en los circuitos digitales para almacenar datos, con un contexto definido,
antes de que se procesen o se transfieran a otro dispositivo.
D0 D1 D2 D3

Q0 Q1 Q2 Q3
Ancho del Registro
La cantidad de flip-flops utilizados en el registro va a determinar la
cantidad de bits que es capaz de almacenar, a esto se le denomina ancho
del registro.

D0 D1 D2 D3

Q0 Q1 Q2 Q3
Registros de Carga
Son una clase de registros que permiten la carga de datos en paralelo a
través de un conjunto de entradas. Este tipo de registro también es
llamado Parallel In Parallel Out (PIPO).

0 0 1 1

0 0 1 1

0 0 1 1
Registros de Desplazamiento
Son una clase de registros que se utilizan para desplazar datos a través de
una cadena flip-flops. Este tipo de registro también es llamado Serial In
Parallel Out (SIPO).
1

1 0 0 0

1 0 0 0
Registros de Desplazamiento
Son una clase de registros que se utilizan para desplazar datos a través de
una cadena flip-flops. Este tipo de registro también es llamado Serial In
Parallel Out (SIPO).
0

0 1 0 0

0 1 0 0
V. Memoria
Definición
Sabemos que si tenemos n flip-flops conectados en secuencia tendremos
una capacidad de n bits para recordar. Ahora, si tenemos varios registros
juntos le denominamos módulo de memoria.
Una memoria es un componente esencial para los computadores, ya que
les permite almacenar datos y programas, ya sea de forma temporal o
permanente.
Capacidad
La de una memoria está determinada por 0 0 0 1 1 0 1 0
la cantidad de registros en la memoria y la
1 0 1 1 0 1 0 0
cantidad de bits en cada registro.
1 1 1 0 0 0 0 0
En el ejemplo aquí propuesto se tiene una
memoria de 8 registros, donde cada uno 1 0 1 0 1 0 0 0
de ellos es de 8 bits. Por lo tanto tiene una
capacidad de: 1 1 0 1 0 1 0 1

0 0 1 1 0 1 0 0
Capacidad = 8 * 8bits = 64bits = 8Bytes
1 1 1 1 1 0 0 1
Recordar que 8 bits es igual a 1 Byte.
1 1 0 1 1 1 0 0
Acceso a Memoria
Cada uno de los registros tiene 000 0 0 0 1 1 0 1 0
asociada una dirección para su
001 1 0 1 1 0 1 0 0
acceso, a esta la definiremos como
dirección de memoria. 010 1 1 1 0 0 0 0 0

Para el acceso a la memoria y 011 1 0 1 0 1 0 0 0


verificar su contenido, es necesario
indicarle al ordenador a cual 100 1 1 0 1 0 1 0 1
dirección queremos acceder, para 101 0 0 1 1 0 1 0 0
ello lo haremos mediante un bus de
direcciones. 110 1 1 1 1 1 0 0 1

111 1 1 0 1 1 1 0 0

BUS DE DIRECCIONES
Acceso a Memoria
La cantidad de cables que 000 0 0 0 1 1 0 1 0

deberá tener el bus de 001 1 0 1 1 0 1 0 0

direcciones depende de la 010 1 1 1 0 0 0 0 0


cantidad de bits necesarios 011 1 0 1 0 1 0 0 0
para formar todas las 100 1 1 0 1 0 1 0 1
direcciones posibles en la
101 0 0 1 1 0 1 0 0
memoria.
110 1 1 1 1 1 0 0 1

111 1 1 0 1 1 1 0 0

BUS DE DIRECCIONES 3
Lectura y Escritura de la Memoria
Una vez se acceda a una 000 0 0 0 1 1 0 1 0

dirección de memoria, gracias 001 1 0 1 1 0 1 0 0

al bus de direcciones, su 010 1 1 1 0 0 0 0 0


contenido será leído o 011 1 0 1 0 1 0 0 0
modificado. Para esto vamos a 100 1 1 0 1 0 1 0 1
necesitar un bus de datos.
101 0 0 1 1 0 1 0 0

110 1 1 1 1 1 0 0 1

111 1 1 0 1 1 1 0 0

BUS DE DIRECCIONES 3
BUS DE DATOS
Lectura y Escritura de la Memoria
La cantidad de cables para el 000 0 0 0 1 1 0 1 0

bus de datos dependerá de la 001 1 0 1 1 0 1 0 0

cantidad de bits en los 010 1 1 1 0 0 0 0 0


registros de memoria. 011 1 0 1 0 1 0 0 0

100 1 1 0 1 0 1 0 1

101 0 0 1 1 0 1 0 0

110 1 1 1 1 1 0 0 1

111 1 1 0 1 1 1 0 0

BUS DE DIRECCIONES 3 8
BUS DE DATOS
Lectura y Escritura de la Memoria
Si mediante el acceso por el 000 0 0 0 1 1 0 1 0
bus de direcciones llego a la 001 1 0 1 1 0 1 0 0
dirección 100, se puede
010 1 1 1 0 0 0 0 0
obtener la información que
posee (lectura) o bien 011 1 0 1 0 1 0 0 0
modificar su contenido 100 1 1 0 1 0 1 0 1
(escritura), para realizar
101 0 0 1 1 0 1 0 0
cualquiera de estas acciones
se requieren cables para 110 1 1 1 1 1 0 0 1
dichas habilitaciones. 111 1 1 0 1 1 1 0 0

BUS DE DATOS
8
Lectura y Escritura de la Memoria
En el caso de la lectura, la 000 0 0 0 1 1 0 1 0

información en la dirección de 001 1 0 1 1 0 1 0 0

memoria también es asignada 010 1 1 1 0 0 0 0 0


al bus de datos. 011 1 0 1 0 1 0 0 0

100 1 1 0 1 0 1 0 1

101 0 0 1 1 0 1 0 0

110 1 1 1 1 1 0 0 1

111 1 1 0 1 1 1 0 0

BUS DE DATOS
8
11010101
Lectura y Escritura de la Memoria
En el caso de la escritura, la 000 0 0 0 1 1 0 1 0

información que se encuentra 001 1 0 1 1 0 1 0 0

en el bus de datos es asignada 010 1 1 1 0 0 0 0 0


en la dirección de memoria 011 1 0 1 0 1 0 0 0
especificada en el bus de 100 1 1 0 1 0 1 0 1
direcciones.
101 0 0 1 1 0 1 0 0

110 1 1 1 1 1 0 0 1

111 1 1 0 1 1 1 0 0

BUS DE DATOS
8
00101010
Lectura y Escritura de la Memoria
Recordar que el contenido de una 000 0 0 0 1 1 0 1 0
dirección de memoria solo se
001 1 0 1 1 0 1 0 0
sobreescribe nunca se borra. Por lo
tanto, si un espacio de memoria 010 1 1 1 0 0 0 0 0
deja de utilizarse para la ejecución
de un programa, esta estará 011 1 0 1 0 1 0 0 0
disponible para la ejecución de 100 0 0 1 0 1 0 1 0
otros programas, por lo que
sobreescribirá la información para 101 0 0 1 1 0 1 0 0
sus usos particulares. 110 1 1 1 1 1 0 0 1

111 1 1 0 1 1 1 0 0

BUS DE DATOS
8
00101010
En resumen
Para la construcción/uso de un módulo de
memoria, se requiere considerar lo siguiente:
● N cantidad de cables para los datos,
donde N es el ancho de los registros.
● M cantidad de cables para las
direcciones, donde M es la cantidad de
bits necesarios para representar todas
las direcciones existentes.
● Un cable para habilitar la lectura de
datos.
● Un cable para habilitar la escritura de
datos.
Tipos de Memoria
● RAM (Random Access Memory)
● ROM (Read Only Memory)
● Caché
● Flash
● Almacenamiento
VI. ¿Preguntas?

También podría gustarte