Diagrama
de tiempos de acceso a memoria o e/s de 16 bits
Se muestra 1 ciclo de espera:
__ __ __ __ __ __
CLK ___| |___| |___| |__| |___| |___| |_
AEN [2] __________________________________________
_____________
A17-A23 -------<_____________>-[1]-----------------
__
ALE ______________| |________________________
________________ _______
SBHE |__________________|
__________________
A0-A19 ---------------<__________________>-------
_________________ ____________________
MEM CS16 |____|
* * [4]
_________________ ___________
I/O CS16 [3] |_____________|
*
_________________ ___________
Linea de comando |____________|
(IOR,IOW,
MEMR, o MEMW)
____
D0-D7 ---------------------------<____>---------
(Lectura)
______________
D0-D7 -----------------<______________>---------
(Escritura)
Un asterisco (*) indica el punto donde la señal
es tomada.
[1] La porción de direccionamiento del bus de extensión
de 16 bits para el siguiente ciclo puede ser puesto ahora en el bus. Esto
se emplea para que las tarjetas puedan comenzar a decidificar la dirección
más rápidamente. Para ello el este tipo de acceso debe estar activado
(pipeline).
[2] AEN se mantiene bajo durante todo el ciclo
de transferencia, indicando que un ciclo normal (no DMA) está produciéndose.
[3] Algunos controladores de bus presentan esta
señal durante el mismo ciclo de reloj que MEM CS16, en vez de durante
el primer ciclo de espera, como se muestra en el diagrama. En este caso,
I/O CS16 necesita ser puesto a nivel bajo tan pronto como la dirección
ha sido decodificada, lo sual sucede antes que la activación de las líneas
de comando.
[4] MEM CS16 es tomada una segunda vez, en caso
que el adaptador no active la señal a tiempo durante la primera vez (normalmente
debido a que el dispositivo no está monitorizando el bus de 16 bits para
tomar el direccionamieto rápido, o está esperando al flanco de bajada
de la señal ALE).
Las transferencias de 16 bits siguen los mismos
tiempos básicos que las transferencias de 8 bits. Un direccionamiento
válido debe aparecer en el bus de extensión de 16 bits antes del comienzo
del ciclo de transferencia, De lo contrario el bus extendido de 16 bits
no es direccionado, y no es válido para el resto del ciclo de transferencia
(en la mayoría de los ordenadores). El bus extendido de 16 bits debería
ser direccionado en el flanco de bajada de ALE. Hay que mencionar que
en algunos sistemas, el bus extendido de 16 bits sigue los mismos tiempos
que el bus de 8 bits. En ambos sistemas, una dirección válida debe estar
presente en el bus en el flanco de bajada de ALE.
Las tarjetas de expansión de e/s no necesitan monitorizar
el bus extendido de 16 bits o ALE, ya que el espacio de direccionamiento
de e/s siempre está dentro del rango del bus de 8 bits.
SBHE será puesta a nivel bajo por la placa base,
y la tarjeta de expansión debe responder con I/O CS16 o MEM CS16 en el
momento apropiado, o realizar dos transferencias separadas de 8 bits.
Muchos sistemas esperan a I/O CS16 o MEM CS16 antes que las líneas de
comandos sean válidas. Esto requiere que I/O CS16 o MEM CS16 sean puestas
a nivel bajo tan pronto como la dirección sea decodificada (antes que
se sepa si el ciclo es de e/s o memoria). Si el sistema comienza un ciclo
de memoria, ignorará I/O CS16 (y viceversa para ciclos de e/s con MEM
CS16).
Para operaciones de lectura, los datos son tomados
en el flanco de subida del último ciclo de reloj. Para operaciones de
escritura, los datos válidos aparecen en el bus antes del final del ciclo,
como es mostrado en el diagrama de tiempos. Mientras que el diagrama indica
que los datos necesitan ser tomados en el flanco de subida, en la mayoría
de los sistemas permanecen válidos durante todo el ciclo de reloj.
Para transferencias de 16 bits se toma por defecto
un tiempo de espera de 1 ciclo de reloj. Esto puede ser acortado o alargado
de la misma forma que las transferencias de 8 bits, mediante las señales
CARD SLCTD y I/O CHRDY. Mucho sistemas solo permiten dispositivos de memoria
de 16 bits (y no dispositivos de e/s) para transferir empleando 0 ciclos
de espera (CARD SLCTD no tiene efecto en los ciclos de e/s de 16 bits).
Las señales MEMR/MEMW presentes en el bus de 16
bits siguen los mismos tiempos que las presentes en el bus de 8 bits cuando
el direccionamiento está dentro del primer megabyte de memoria. Si el
direccionamiento es mayor (por encima del primer megabyte), las señales
MEMR/MEMW del bus de 8 bits permanecen a nivel alto durante el resto del
ciclo.