Redeya.com
Hardware interno del PC (IV)

Autor: Miguel Angel Montejo Ráez

Indice


Toda la información aquí incluida está recopilada de diversas fuentes. El autor no se responsabiliza del uso que se le de a este documento y no limita su distribución dentro de cualquier soporte siempre que sea gratuitamente. Se autoriza la copia parcial o total, con la única condición de mencionar al autor en el documento destino.


Asignación de puertos de e/s en el PC

NOTA: sólo las primeras 10 líneas de dirección son empleadas para operaciones de e/s. Esto nos limita el espacio direccionable para e/s desde la dirección 000 (hexadecimal) hasta la 3FF. Algunos sistemas permiten emplear 16 bits para direccionar e/s, pero están limitados debido a que algunas tarjetas sólo decodifican 10 de esos 16 bits.

Puerto (hex) Asignación
000-00F Controlador DMA
010-01F Controlador DMA (PS/2)
020-02F Controlador maestro programable de interrupciones (PIC)
030-03F PIC esclavo
040-05F Temporizador programable de intervalos (PIT)
060-06F Controlador del teclado
070-071 Reloj en tiempo real
080-083 Registro de página DMA
090-097 Seleccionador programable de opciones (PS/2)
0A0-0AF PIC #2
0C0-0CF DMAC #2
0E0-0EF reservado
0F0-0FF Coprocesador matemático, controlador de disco PCJr
100-10F Seleccionador programable de opciones (PS/2)
110-16F LIBRE
170-17F Disco duro 1 (AT)
180-1EF LIBRE
1F0-1FF Disco duro 0 (AT)
200-20F Adaptador de juegos (Joystick)
210-217 Puertos de trajetas de expansión
220-26F LIBRE
278-27F Puerto paralelo 3
280-2A1 LIBRE
2A2-2A3 Reloj
2B0-2DF EGA/Video
2E2-2E3 Adaptador de adquisición de datos (AT)
2E8-2EF Puerto serie COM4
2F0-2F7 Reservado
2F8-2FF Puerto serie COM2
300-31F Adaptador de prototipos, periscopio para depurar hardware (Debugger)
320-32F LIBRE
330-33F Reservado para XT/370
340-35F LIBRE
360-36F Red (network)
370-377 Controlador de disco flexible
378-37F Puerto paralelo 2
380-38F Adaptador SDLC
390-39F Adaptador de Cluster
3A0-3AF reservado
3B0-3BF Adaptador monocromo
3BC-3BF Puerto paralelo 1
3C0-3CF EGA/VGA
3D0-3DF Adaptador Gráfico en Color (CGA)
3E0-3EF Puerto serie COM3
3F0-3F7 Controlador de disco flexible
3F8-3FF Puerto serie COM1

Las tarjetas Soundblaster suelen emplear los puertos de e/s 220-22F.
Las tarjetas de adquisición de datos emplean frecuentemente las direcciones 300-31F.

Diagrama de tiempos de acceso a memoria o e/s de 8 bits

Se muestran 4 ciclos de espera (W1 a W4):

                  __     __     __    __     __     __     __
CLK           ___|  |___|  |___|  |__|  |___|  |___|  |___|  |__
                               W1    W2     W3     W4
                      __
ALE           _______|  |_______________________________________



AEN           __________________________________________________

                        ______________________________________
A0-A19        ---------<______________________________________>-


              _____________                                _____
Línea de comando           |______________________________|
(IOR,IOW,
MEMR, o MEMW)
                                                      _____
D0-D7         ---------------------------------------<_____>----
(Lectura)

                        ___________________________________
D0-D7         ---------<___________________________________>----
(Escritura)

ALE se pone a nivel lógico alto (1) y la dirección aparece en A0 a A19. El dispositivo esclavo debe leer la dirección durante el flanco de bajada de ALE, y la dirección en A0 a A19 permanece válida hasta el final del ciclo de transferencia. Notar que AEN permanece a nivel bajo durante todo el ciclo de transferencia.

La línea de comando es puesta a nivel bajo (IOR o IOW para e/s, MEMR p MEMW para memoria, lectura y escritura respectivamente). Para operaciones de escritura, los datos permanecen en D0 a D7 hasta el resto del ciclo de transferencia. Para operaciones de lectura, los datos deben ser válidos en el flanco de bajada del último ciclo.

CARD SLCTD se emplea en la mitad de cada ciclo de espera. Si está a nivel bajo, el ciclo de transferencia termina sin más ciclos de espera. I/O CHRDY se emplea en la primera mitad de cada ciclo de espera. Si está a nivel bajo, más ciclos de espera serán introducidos.

Por defecto el ciclo de transferencia de 8 bits posee 4 ciclos de espera. La mayoría de las BIOS del ordenador pueden cambiar el número de ciclos de espera.

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.

 


Página original de Http://www.redeya.com, prohibida su reproducción sin consentimiento del autor