Está en la página 1de 11

AVISO IMPORTANTE

• ESTE CONJUNTO DE SLIDE DE NINGUNA MANERA PRETENDE SER UN


APUNTE DE CLASE, O DE LECTURA VALIDA PARA APROBAR UN EXAMEN
PARCIAL EN SU PARTE TEORICA.

• ESTE CONJUNTO DE SLIDE SIMPLEMENTE PRETENDE SER UNA GUIA DE


AQUELLOS TEMAS VISTOS EN CLASE, DESTINADO A AQUELLOS QUE
BAJO ALGUNA RAZON NO ASISTEN A LA CLASE TEORICA Y PUEDAN VER
LOS TEMAS QUE SE DAN.

• ACLARADO EL TEMA, PUEDEN CONTINUAR.


Organización de Universidad Nacional de Luján
Prof. José Luis Caero

Computadoras Clase 5
Captura de un dato en memoria RAM
La tarea de tomar un dato (puro o instrucción) desde la
memoria de trabajo (RAM) por parte del microprocesador
deberá ser realizado en forma autónoma y confiable, por
lo tanto lo hará utilizando varias líneas de control, de
acuerdo a la secuencia que establezca la Unidad de Control

Fetch Cycle ¿Con qué líneas de mínima deberemos contar?

•VMA (Valid Memory Address)


•R/⌐W (Read / Write)
•OE (Output Enable)
•CS (Chip Select)
¿Con qué líneas de mínima deberemos contar?

• VMA (Valid Memory Address): línea de Validación de la dirección de la


memoria debido a que el Bus de Direcciones es un canal compartido por
lo tanto no necesariamente existe sólo aquello que el microprocesador
principal envía como dirección sino que puede existir basura electrónica
pre existente que da lugar a un falso direccionamiento

Ciclo de • R/⌐W (Read/Write): indicador del tipo de operación a realizar dado


que se trata de una memoria que puede ser leída o escrita
Captura • Una línea de activación de la entrada o salida de datos, que le permita al
microprocesador controlar el flujo hacia o desde el Bus de Datos,
también por tratarse de un canal compartido iguales consideraciones
que el Bus de Direcciones. En este caso será el OE (Output Enable) por
tratarse de una lectura que permitirá el volcado del buffer al medio.
• Si se tratara de varios bancos de memoria debería existir control sobre
el banco activo, por ejemplo la entrada CS (Chip Select), cuyo valor será
obtenido del direccionamiento por medio de un decodificador.
Entonces

¿De qué forma se utiliza todo esto?


¿Cómo es la secuencia de uso para la lectura?

Para realizar una operación de diálogo entre el microprocesador y cualquier cosa que lo
rodea, éste deberá identificarlo de una forma unívoca, es decir sin ambigüedad.
Esto se logra al etiquetar todo los elementos periféricos al microprocesador con un número
único: “DIRECCIÓN”, por lo tanto lo primero que hace es “Direccionar” (es decir pone en el
bus de dirección, un número que proviene del registro interno de direcciones).
La Dirección se presentará de forma simultánea en la entrada de todos aquellos elementos
que estén conectado al mismo canal, es así que para discriminar entre un valor válido y uno
que corresponde a otros, mal llamado basura electrónica, se utilizará a continuación la
señal validación.
Dicha señal “VMA (Valid Memory Address)” indicará que la dirección presente en la
entrada del chip es válida, y a continuación se producirá la activación de la celda de
memoria deseada.
¿Y ahora cómo sigue esta secuencia de lectura?
Luego de las tareas enunciadas deberá indicársele que tipo de operación tendrá lugar, en nuestro
caso será la lectura, y lo hace a través de la señal “R/⌐W (Read / Write)”, la activación de cada
operación por uno o cero dependerá de cómo funcione la línea de control, en este caso la “R”
está sin negación por lo tanto en una lógica positiva indica que se activará con un “1” mientras
que “⌐W” está negada por lo cual se activa con un “0”
Si le indica que es lectura, el dato direccionado que está en la celda activa, no pasará directamente
al canal sino que se transfiere a un buffer interno (lugar temporal de almacenamiento). Este tipo
de operación se debe a que el canal de datos no es dedicado sólo al microprocesador y a la RAM,
sino que se comparte con varios elementos entre ellos algunos inteligentes como puede ser el
DMA (Direct Memory Address), provocando que cuando el microprocesador intente leer descubra
que el canal se encuentra bloqueado porque otro elemento tiene el control, o encuentre basura
electrónica pre existente, produciendo una lectura errónea.
Es por esto que necesita del OE para habilitar el volcado del buffer sobre el canal luego de que
transcurra la espera (esto depende del uso del canal compartido por otros elementos conectados)
hasta que este en condiciones de ser leído, entonces se envía la señal y el dato pasará a un
registro interno del microprocesador a través del bus de datos.
Repasando lo enunciado
Valid Memory R/w
Chip Select
Entonces si queremos leer un dato de Memoria Address

Principal que hacemos:


 
1. Direccionar
2. Validar => envío VMA

Address Bus

Decodificador
3. Indicar si se lee o escribe => envío R/⌐W
4. Esperar disponibilidad del canal en el buffer
5. Habilitar salida de la memoria => envío OE

Si se tratara de más de un banco de memoria


(en general es así) lo primero que se hace es
activarlo porque se encuentra en alta Output
impedancia => envío CS Enable Buffer

Data Bus
Analicemos que sucede con todo esto
Si yo midiera el tiempo que involucra el ciclo de captura, podría hacer una aproximación
grosera pero si representativa para justificar las conclusiones. Pensando que cada acción
ocurre en un intervalo de tiempo de “1 ciclo”, sin tener en cuenta la frecuencia de reloj.
Es así que: “direccionar, validar, indicar lectura, habilitar salida, leer” llevarían 5 ciclos,
mientras que la espera depende de otros dispositivos o tareas ajenas a la relación Micro y
RAM, es así que el tiempo total para capturar un dato = 5 ciclos + ? ciclos (espera),
tomando un valor cualquier de espera por ejemplo 3 ciclos => gastaré unos 8 ciclos para
leer un dato. De aquí se puede ver que tomar un dato de memoria lleva tiempo y si bien
esos tiempos son chicos, no son cero.  
De esta forma deberá quedar claro que aún empleando un ciclo de reloj por cada señal u
operación que interviene, lejos esta de coincidir la frecuencia de reloj con la potencia de
calculo del micro, aunque relacionadas (a mayor frecuencia el ciclo de la señal será de una
duración menor, por lo tanto la respuesta en el tiempo para el computo disminuirá) no son
coincidentes.
¿Cómo continuamos con este tema?
La idea principal fue mostrar lo importante de la cadencia de señales que se pueden llegar a
usar en la lectura de un dato, pero también se puede observar que lleva tiempo, entonces
que se hace para mejorar dichos tiempos que de por sí son propios al “Fetch Cycle”.
Una forma puede ser pensar que por cada acceso en lugar de traer un dato de 8 bits se
pueda descargar 4 datos de 8 bits para aprovechar el canal de 32 bits, de esta forma debería
cambiar la estructura interna de la RAM permitiendo el volcado al buffer de varios datos a la
vez, entonces lo direccionado sería el comienzo del bloque y la cantidad de datos leídos
desde memoria serían más que uno. Si esto se aplica quiere decir que los tiempos que
continúan siendo lo mismos por cada operación unitaria vista anteriormente, me quedarían
los 8 ciclos de reloj usados en la lectura de un dato ahora repartido en 4 datos, por lo tanto
el sistema hace como que emplean en promedio para la lectura de un dato sólo 2 ciclos de
reloj, esto supone que siempre lo que encuentra a continuación en la memoria de trabajo
pertenece a la misma secuencia de ejecución (en general será así, pero no quiero decir que
siempre ocurre).
Fin de la presentación
Ya continuaremos contando más de
la memoria RAM

¿Preguntas?

También podría gustarte