Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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
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
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?