Introduccion Al Bus ISA PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 14

1

INTRODUCCIN AL BUS ISA


Gustavo Mercado
1999
Ctedra Tcnicas Digitales II
Facultad Regional Mendoza - Universidad Tecnolgica Nacional
El ISA es el bus usado en las computadoras PC de IBM y tambin en las computadoras
compatibles (clones). Su funcin principal es realizar comunicacin entre el procesador, ubicado
en la placa madre (motherboard) y las tarjetas de expansin de perifricos (add-in board).
Inicialmente haba problemas de compatibilidad, puesto que IBM no public las especificaciones
de timing del bus. Esto fue resuelto en 1987, cuando el IEEE produjo una especificacin completa
del bus (incluyendo timing).
La PC original tambin tena un bus de datos de 8-bits (llamado bus PC/XT), debido a que el
procesador Intel 8088 CPU (usados en las primeras PCs de 4.77-MHz de 1982) tena un bus de
datos de 8-bit. Este bus, de 62 pines, tenia las siguientes caractersticas:
v Ocho lneas de datos (que permite la transferencia simultnea de datos de 8 bits)
v Veinte lneas de direcciones (Permite direccionar 1 Mbyte, aunque para el adaptador video se
asign 128 KBytes, comenzando en la direccin 640 KB, esto cre la famosa limitacin de
memoria del DOS)
v Seis lneas de interrupciones, identificadas como IRQ2 a IRQ7.
v Los canales de DMA 1, 2, y 3 (con dos seales para cada canal, demanda y reconocimiento).
El motherboard original de las PC usaba de canal 0 de DMA para refresco de memoria y
debido a que el controlador de DMA y la memoria estaban en el motherboard, estas seales
no se pusieron en el bus.
v Los otros pines se usaban para voltajes y seales de control.
El procesador Intel 80286, que fue usado en la computadora IBM PC/AT (Advanced Technology -
Tecnologa Avanzada, 1984), tena un bus de datos de 16 bits, tal que IBM, que en ese momento
era el nico fabricante normalizador de las PCs, agreg un conector de 36 pines que
proporcionaba las siguientes caractersticas:
v Ocho lneas ms de datos (permitiendo transferencias de datos de 16 bits).
v Cuatro lneas ms de direcciones (permitiendo direccionar 16 Mbytes de memoria)
v Las interrupciones 10, 11, 12, 14, y 15 (interrupcin 13 es reservada para el coprocesador
matemtico que estara en el motherboard de manera que la interrupcin 13 no est disponible
en el bus).
v Los canales de DMA 0, 5, 6, y 7 (el canal 4 de DMA se usa para enlazar el nuevo controlador
de DMA con el original). Al contrario de la PC original, la PC/AT usa un circuito dedicado para
el refresco de memoria, tal que el canal 0 est ahora disponible para su uso en el bus.
ste es el bus PC/AT de 16 bits, o ms comnmente (y simplemente), el denominado bus ISA,
el cual est presente en la mayora de las PCs (las PCs ms antiguas slo tenan bus ISA y las
PCs ms nuevas tpicamente tienen los buses ISA y PCI). En aos recientes, se ha creado una
norma ms formal llamada bus ISA (Arquitectura Industrial Normalizada - Industry Standard
Architecture),
El bus ISA tiene una velocidad de transferencia mxima terica de 16 Mbytes/s (aunque en
realidad es solo de 8 Mbytes/s, debido a que normalmente se requiere de un ciclo para el
direccionamiento y otro ciclo para los datos). La velocidad tpica mximo es 1 a 2.5 Mbytes/s (8 a
20 Mbits/s). Esta velocidad es variable debido a la contencin del bus con otros dispositivos
(principalmente la memoria) y el retardo de los buffers debido a la naturaleza asncrona del bus
(la velocidad del procesador es diferente de la velocidad del bus).
Con el correr del tiempo los procesadores de las computadoras AT (y sucesivas) se volvieron ms
rpidos y eventualmente sus buses se hicieron ms anchos, pero el deseo de mantener la
2
compatibilidad con los dispositivos existentes llev a los fabricantes para resistirse a un cambio de
norma y por lo tanto el bus ISA ha permanecido semejante desde ese tiempo. El bus ISA
proporciona una velocidad razonable para dispositivos bajo ancho de banda y virtualmente
asegura compatibilidad con casi cada PC en el mercado.
No se debe pensar que este artculo es una completa descripcin de la norma. Slo sirve para
propsitos informativos y est dedicada para que los diseadores y estudiantes obtengan
informacin suficiente con que disear sus propias tarjetas compatibles XT y AT.
Al final del artculo se enumera una amplia bibliografa donde obtener ms informacin.
Conector ISA
En la Figura 1 se muestra un dibujo con la distribucin de pines del conector ISA. El bus est
compuesto por un conector hembra para placa de circuito impreso de 62 pines, correspondiente al
original XT y un conector hembra para placa de circuito impreso de 36 pines, que corresponde a la
ampliacin AT.
Figura 1. Conector ISA
A continuacin se presenta la descripcin de los pines del bus ISA.
Pin Nombre Dir Descripcin Pin Nombre Dir Descripcin
A1 -I/O CH CK I/O Channel check
Active low =parity error
B1 GND - Ground
A2 SD7

Data bit 7 B2 RESET Active high to reset or
initialize system logic
A3 SD6 Data bit 6 B3 +5VDC - +5VDC
A4 SD5 Data bit 5 B4 IRQ2 Interrupt Request 2
A5 SD4 Data bit 4 B5 -5VDC - +5VDC
A6 SD3

Data bit 3 B6 DRQ2 DMA Request 2
A7 SD2

Data bit 2 B7 -12VDC - -12VDC
A8 SD1

Data bit 1 B8 -NOWS No wait state
A9 SD0

Data bit 0 B9 +12VDC - +12VDC
A10 -I/O CH
RDY
I/O Channel Ready,
pulled low to lengthen
memory cycles
B10 GND - Ground
A1
A10
A20
A31
B1
B10
B20
B31
C1
C10
C18
D1
D10
D18
Lado del Componente
Panel Trasero
3
A11 AEN Address enable; active
high when DMA controls
bus
B11 -SMENW System Memory Write
A12 SA19 Address bit 19 B12 -SMENR System Memory Read
A13 SA18 Address bit 18 B13 -IOW I/O Write
A14 SA17 Address bit 17 B14 -IOR I/O Read
A15 SA16 Address bit 16 B15 -DACK3 DMA Acknowledge 3
A16 SA15 Address bit 15 B16 DRQ3 DMA Request 3
A17 SA14 Address bit 14 B17 -DACK1 DMA Acknowledge 1
A18 SA13 Address bit 13 B18 DRQ1 DMA Request 1
A19 SA12 Address bit 12 B19 -REFRESH

Refresh
A20 SA11 Address bit 11 B20 CLK System Clock (67ns, 8.33
MHz, 50%d-c)
A21 SA10 Address bit 10 B21 IRQ7 Interrupt Request 7
A22 SA9 Address bit 9 B22 IRQ6 Interrupt Request 6
A23 SA8 Address bit 8 B23 IRQ5 Interrupt Request 5
A24 SA7 Address bit 7 B24 IRQ4 Interrupt Request 4
A25 SA6 Address bit 6 B25 IRQ3 Interrupt Request 3
A26 SA5 Address bit 5 B26 -DACK2 DMA Acknowledge 2
A27 SA4 Address bit 4 B27 T/C Terminal Count, DMA
A28 SA3 Address bit 3 B28 BALE Address Latch Enable
A29 SA2 Address bit 2 B29 +5VDC - +5VDC
A30 SA1 Address bit 1 B30 OSC High Speed Clock (70ns,
14.3118 MHz, 50% d-c)
A31 SA0 Address bit 0 B31 GND - Ground
Tabla 1: Descripcin de las Seales del bus ISA (conector de 62 pines)
Pin Nombre Dir Descripcin Pin Nombre Dir Descripcin
C1 SBHE

System bus high enable
(data available on SD8-
15)
D1 -MEMCS16 Memory 16-bit chip select
(1wait, 16-bit memory
cycle
C2 LA23 Address bit 23 D2 -IOCS16 I/O 16-bit chip select
(1wait, 16-bit I/O cycle
C3 LA22 Address bit 22 D3 IRQ10 Interrupt Request 10
C4 LA21 Address bit 21 D4 IRQ11 Interrupt Request 11
C5 LA20

Address bit 20 D5 IRQ12 Interrupt Request 12
C6 LA19

Address bit 18 D6 IRQ15 Interrupt Request 15
C7 LA18

Address bit 17 D7 IRQ14 Interrupt Request 14
C8 LA17

Address bit 16 D8 -DACK0 DMA Acknowlegde 0
C9 -MEMR

Memory Read (Active on
all memory read cycles)
D9 DRQ0 DMA Request 0
C10 -MEMW

Memory Write (Active on
all memory write cycles)
D10 -DACK5 DMA Acknowlegde 5
C11 SD08 Data bit 8 D11 DRQ5 DMA Request 5
C12 SD09 Data bit 9 D12 -DACK6 DMA Acknowlegde 6
C13 SD10 Data bit 10 D13 DRQ6 DMA Request 5
C14 SD11 Data bit 11 D14 -DACK7 DMA Acknowlegde 7
C15 SD12 Data bit 12 D15 DRQ7 DMA Request 7
C16 SD13 Data bit 13 D16 +5V -
C17 SD14

Data bit 14 D17 -MASTER Used with DRQ to gain
control od system
C18 SD15

Data bit 15 D18 GND - Ground
Tabla 2: Descripcin de las Seales del bus ISA (conector de 32 pines)
Caractersticas Elctricas:
Las capacidades de manejo de potencia de las motherboards ISA puede variar
considerablemente. La especificacin IEEE P996 ofrece las siguientes sugerencias:
4
+12VDC at 1.5A
-12VDC at 0.3A
+5VDC at 4.5A
-5VDC at 0.2A
Descripcin de las seales del bus
+5, -5, +12, -12 Suministros de potencia. -5 no est a menudo
implementada.
GND Ground Tierra (0 volts)
OSC Oscillator El Oscilador, 14.31818 MHz, 50% Duty Cycle. Esto era
originalmente dividido por 3 para proporcionar la frecuencia
de 4.77 MHz como reloj de CPU para las primeras PCs, y
dividido por 12 para producir el reloj de sistema de 1.19
MHz. La mayora de los sistemas moderno usan 14.318
MHz. Muchos motherboards modernos permiten que esta
proporcin sea cambiada, lo cual libera a algunos ciclos del
bus para el uso por software, pero tambin puede causar
errores de memoria si el sistema RAM no puede manejar
velocidades de refresco ms lentas.
CLK Bus Clock 33% Duty Cycle. La frecuencia vara de 4.77 a 8 MHz. 8.3
MHz se especifica como el mximo, pero muchos sistemas
permiten poner este reloj a 12 MHz y ms alto an.
-AEN Address Enable Esta seal se acierta cuando el DMAC (Acceso directo a
memoria) tiene el control del bus. De esta manera se
previene a los dispositivos de E/S de responder a las lneas
de control de E/S durante un transferencia de DMA.
-BALE Bus Address
Latch Enable
El bus de direcciones est disponible (latched) en el flanco
creciente de esta seal. La direccin en el bus SA es vlida
desde flanco decreciente de BALE hasta el fin del ciclo del
bus. Los dispositivos de memoria deben capturar el bus LA
en el flanco decreciente de BALE. Algunas referencias se
refieren a este seal como Buffered Address Latch Enable, o
simplemente Address Latch Enable (ALE).
-I/O CH CHK Channel Check Indica que se ha producido un error severo en algn
dispositivo del bus. Esta seal en bajo genera un NMI
(Interrupcin no enmascarable). La seal de NMI puede
enmascararse en una PC, externamente al procesador. Para
que un NMI pueda alcanzar el CPU se deben poner a cero
el bit 7 del puerto 70(hex) (habilitacin de la interrupcin
NMI) y el bit 3 de puerto 61(hex) (reconocimiento del
channel check).
-I/O CH RDY Channel Ready Esta seal se pone a bajo por un dispositivo del bus para
alargar los ciclos del bus (tanto memoria como E/S, tanto
lectura como escritura). El dispositivo esclavo puede ponerlo
entonces de nuevo a alto cuando est listo acabar el ciclo de
bus. Manteniendo esta lnea en bajo por demasiado tiempo
(tpicamente 15 microsegundos) puede inhabilitar, en
algunos sistemas, los ciclos de refresco de RAM. No deben
usarse CHRDY y NOWS simultneamente. Esto puede
5
causar problemas con algunos controladores de bus
-IOCS16 IO Chip Select
16 Bits
Generado por un dispositivo de E/S que puede realizar
transferencias en 16 bits. Se activa en concordancia con un
direccionamiento al referido dispositivo.
-IOR I/O Read Lnea de control de lectura de un dispositivo de E/S.
-IOWC I/O Write Lnea de control de escritura de un dispositivo de E/S.
-MEMCS16 Memory Access Acceso a memoria de 16 bits con 1 wait state.
-MEMR Memory Read. Lnea de control de Lectura de memoria activa en todos los
ciclos de memoria.
-SMEMR Memory Read Lnea de control de Lectura de memoria activa cuando se
direcciona debajo de 1Mbyte.
-MEMW Memory Write. Lnea de control de Escritura de memoria activa en todos los
ciclos de memoria.
-SMEMW Memory Write Lnea de control de Escritura de memoria activa cuando se
direcciona debajo de 1Mbyte.
SBHE System Bus High
Enable
Indica la existencia de una transferencia de datos de 16 bits.
Esto tambin puede indicar una transferencia de 8 bits que
usa la mitad superior del bus de los datos (si hay una
direccin impar presente).
SDxx System Data
lines
Lneas de los datos normales. Ellos son bi-direccionales y
de lgica de tres-estados.
SAxx System Address
Lines
Lneas de direccionamiento del sistema. Estas lineas se
activan cuando la seal BALE va a alto y se latchean en el
flanco de bajada de BALE.
LAxx Latchable
Address lines
Combinadas con las lneas de direccin ms bajas permite
formar un espacio de direccin 24 bits (16 MB). Son vlidas
cuando BALE est en alto. Como el procesador no latchea
estas lneas, el dispositivo de E/S lo deber hacer en el
flanco de bajada de BALE.
-MASTER 16 bit bus master Generado por un bus master ISA al comenzar un ciclo de
bus y permite ganar el control del bus. La mother-board
emite esta seal cuando hay un ciclo de DMA.
-NOWS Zero wait state Indica que se puede completar el ciclo de bus sin insertar
ciclos de espera adicionales. Esto causa que el ciclo del bus
acabe ms rpidamente, debido a que no se insertarn
estados de la espera.
-REFRESH Refresh cycle Seal de Refresco usada por memorias RAM dinmicas.
Generado cuando la lgica de refresco es master del bus.
Un dispositivo ISA que acta como master del bus tambin
puede usar este seal para comenzar un ciclo de refresco
-RESET Reset Drive Este seal se usa para resetear o inicializar el sistema
cuando la mquina es encendida. Poniendo esta seal a
bajo se forzar a un reset del sistema.
IRQx Interrupt Request Requerimiento de Interrupcin. IRQ2 tiene la prioridad ms
6
alta. IRQ 10-15 estn slo disponibles mquinas AT y son
de prioridad ms alta que IRQ 3-7.
DRQx DMA Request Las seales de requerimiento de DMA son solicitudes
asincrnicas emitidas por los dispositivos del bus para
obtener servicios de DMA.
-DAKx DMA
Acknowledge
Las seales reconocimiento de DMA se usan para
conceder los servicios de DMA al solicitante.
TC Terminal Count Notifica a la CPU que la ultima operacin de transferencia
de datos de un ciclo de DMA est completo
Ciclos de bus de 8 bits
En la Figura 2 se muestra el diagrama de tiempos del ciclo de bus de 8 bits con 4 wait states. La
seal BALE se pone en alto y la direccin es latchada en el bus SA. El dispositivo de E/S o la
memoria puede muestrear con seguridad la direccin durante el flanco de bajada de BALE y la
direccin en el bus SA permanece vlida hasta el fin del ciclo del transferencia. Note que la seal
AEN permanece bajo durante todo el ciclo de transferencia. Las marcas W1 a W4 indican los
ciclos de espera
Figura 2. Transferencia de Memoria o E/S de 8 bits
Luego la lnea del comando va abajo (IOR o IOW para transferencias de E/S, MEMR o MEMW
para transferencias de memoria, lectura y escritura respectivamente). Para operaciones de
escritura, los datos se mantienen constantes en el bus SD durante todo el ciclo de escritura. Para
operaciones de lectura, los datos deben ser vlidos en el flanco de bajada del ltimo ciclo de reloj.
La seal NOWS se prueba en el punto medio de cada ciclo de la espera. Si es bajo, el ciclo del
transferencia termina sin ms estados de espera. CHRDY se prueba durante la primera mitad del
ciclo del reloj. Si est en bajo, se insertarn ms ciclos de espera.
El valor por defecto para transferencias de 8 bits es de 4 ciclos de espera. Algunas computadoras
permiten que el nmero de ciclos de espera pueda ser cambiado.
Ciclos de bus de 16 bits
Command Line
IOR,IOW,
MEMR or MEMW
SA0-SA19
CLK
BALE
AEN
SD0-SD7
Read
SD0-SD7
Write
W1 W2 W3 W4
7
En la Figura 3 se muestra el diagrama de tiempos del ciclo de bus de 16 bits con 1 wait states.
Una flecha () indica el punto donde se muestrea cada seal. Las seales de direccionamiento LA
se activan antes que las dems [1]. Esto se usa para que las tarjetas puedan empezar a descifrar
la direccin lo antes posible. La caracterstica Address pipelining debe estar activa. La seal AEN
[2] permanece en bajo a lo largo del ciclo completo de transferencia, indicando que esta
ocurriendo una transferencia normal (no-DMA). Algunos controladores de bus prueban la seal
IOCS16 [3] durante el mismo ciclo de reloj que MEMCS16, en lugar de durante el primer estado
de espera, como es mostrado en la figura. En este caso, IOCS16 necesita ser tirado abajo tan
pronto que la direccin se descodifique, lo cual es antes que las lneas E/S estn activas. La seal
MEMCS16 se prueba [4] por segunda vez, en caso de que la tarjeta del adaptador no activ la
seal a tiempo para la primera muestra (normalmente porque el dispositivo de memoria no est
supervisando el bus LA para la informacin de las primeras direcciones o est esperando por el
flanco de cada de BALE).
Figura 3. Transferencia de Memoria o E/S de 16 bits
Las transferencias de 16 bits siguen el mismo timing bsico que las transferencias de 8 bits.
Una direccin vlida puede aparecer en el bus LA antes del principio del ciclo de trasferencia. Al
contrario del bus SA, el bus LA no es latchado y no es vlido durante el ciclo del transferencia
completo (en la mayora de las computadoras). El bus LA debe ser latchado en el flanco de cada
de BALE. Notese que en algunos sistemas, las seales del bus LA seguirn el mismo timing que
el bus SA. En cualquier tipo de sistema, una direccin vlida est presente en el flanco de cada
de BALE.
Las tarjetas adaptadoras de E/S no necesitan supervisar el bus LA o la seal BALE, debido a que
las direcciones de E/S siempre estn dentro del espacio de direcciones del bus SA.
La seal SBHE ser tirada abajo por el sistema principal y en el momento apropiado la tarjeta
adaptadora debe responder con IOCS16 o MEMCS16, si no la transferencia ser realizado en
dos accesos de 8 bits cada uno. Muchos sistemas esperan IOCS16 o MEMCS16 antes que las
lneas del comando sean vlidas. Esto requiere que IOCS16 o MEMCS16 sean tiradas abajo tan
pronto que las direcciones sean decodificadas (antes de que sea conocido si el ciclo es E/S o de
Memoria). Si el sistema est empezando un ciclo de memoria, ignorar IOCS16 (y viceversa para
ciclos de E/S y MEMCS16).
Para operaciones de lectura, el datos se muestrean en el flanco de subida del ltimo ciclo del reloj.
Para operaciones de escritura, los datos vlidos aparecen en el bus antes del fin del ciclo, como
se muestra en el diagrama de tiempos. Mientras el diagrama de tiempos indica que los datos
necesitan ser muestreados en el flanco creciente del reloj, en la mayora de los sistemas
permanece vlido durante el ciclo del reloj entero.
Command Line
IOR,IOW,
MEMR or MEMW
CLK
AEN
BALE
LA17-LA23
SD0-SD7
Read
SD0-SD7
Write
SBHE
SA0-SA19
MEMCS16
I0CS16
Nota 1
Nota 2
Nota 3
Nota 4
8
El valor por defecto para transferencias de 16 bits es de un estado de espera. Esto puede
acortarse o alargarse de la misma manera como para las transferencias de 8 bits, va NOWS y
CHRDY. Muchos sistemas slo permiten que los dispositivos de memoria de 16 bits (y no los
dispositivos de E/S) transfieran datos usando 0 estados de espera (NOWS no tiene efecto en
ciclos de 16 bits de E/S).
Las seales SMMERD/SMEMEWR siguen el mismo ritmo que MEMERD/MEMEWR
respectivamente cuando la direccin est dentro del 1 MByte ms bajo. Si la direccin no est
dentro del 1 lmite de MByte, SMEMRD/SMEMWR permanecern en alto durante el ciclo entero.
Tambin es posible usar la porcin superior del bus durante un ciclo de bus de 8 bits. En este
caso, el timing ser similar al de un ciclo 16 bits, pero una direccin impar estar presente en el
bus. Esto significa que el bus est transfiriendo 8 bits usando los bits de datos superiores (SD8-
SD15).
Ejemplos de Ciclos de bus
En la Figura 4 se muestra el diagrama de tiempos de tres diferentes ciclos del transferencias. El
primero es una lectura de E/S estndar de 16 bits. Esto es seguido por una operacin de E/S de
16 bits casi idntica, con un ciclo de espera insertado. El dispositivo de E/S tira CHRDY abajo
para indicar que no est listo completar la transferencia (vea [1]). Esto inserta un ciclo de espera y
CHRDY se prueba de nuevo. En esta segunda muestra, el dispositivo de E/S ha completado su
operacin y ha liberado la seal CHRDY y el ciclo del bs termina. El tercer ciclo es una
transferencia de 8 bits que se acorta a 1 ciclo de espera (el valor por defecto es 4) por el uso de
la seal NOWS.
Figura 4. Ejemplos de Ciclos de Bus
Puertos de E/S
Slo las primeras 10 lneas de direcciones son decodificadas para las operaciones de E/S. Esto
limita el espacio de direcciones de E/S al rango de 0 a 3FF (hex). Algunos sistemas permiten un
espacio de direcciones de 16 bits, pero debe limitarse debido a algunas tarjetas de E/S slo
decodifican 10 de esos 16 bits.
Direccin
Puerto
Descripcin Direccin
Puerto
Descripcin
000-00F DMA Controller 1 2A2-2A3 Clock
010-01F DMA Controller (PS/2) 2B0-2DF EGA/Video
020-02F Master Programmable Interrupt Controller 2E2-2E3 Data Acquisition Adapter (AT)
BALE
SBHE
SA0-SA19
I0CS16
CLK
Transfer 1 Transfer 2 Transfer 3
CHRDY
NOWS
IORC
SD0-SD15
w
Nota 1
w w w
Nota 2
9
(PIC)
030-03F Slave PIC 2E8-2EF Serial Port COM4
040-05F Programmable Interval Timer (PIT) 2F0-2F7 Reserved
060-06F Keyboard Controller 2F8-2FF Serial Port COM2
070-071 Real Time Clock 300-31F Prototype Adapter
080-083 DMA Page Registers 320-32F AVAILABLE
090-097 Programmable Option Select (PS/2) 330-33F Reserved for XT/370
0A0-0AF PIC #2 340-35F AVAILABLE
0C0-0CF DMAC #2 360-36F Network
0E0-0EF Reserved 370-377 Floppy Disk Controller
0F0-0FF Math coprocessor 378-37F Parallel Port 2
100-10F Programmable Option Select (PS/2) 380-38F SDLC Adapter
110-16F AVAILABLE 390-39F Cluster Adapter
170-17F Hard Drive 1 (AT) 3A0-3AF reserved
180-1EF AVAILABLE 3B0-3BB Monochome Adapter
1F0-1FF Hard Drive 0 (AT) 3BC-3BF Parallel Port 1
200-20F Game Adapter 3C0-3CF EGA/VGA
210-217 Expansion Card Ports 3D0-3DF Color Graphics Adapter
220-26F AVAILABLE 3E0-3EF Serial Port COM3
270-27F Parallel Port 3 3F0-3F7 Floppy Disk Controller
280-2A1 AVAILABLE 3F8-3FF Serial Port COM1
Tabla 3: Asignacin de las direcciones de los puertos de E/S .
Acceso Directo a Memoria
El bus ISA usa a dos controladores de DMA (DMAC) juntos en cascada.
El DMAC slave se conecta al DMAC master va el canal 4 (canal 0 en el DMAC master). El slave,
por consiguiente, toma el mando del bus a travs del DMAC master. En el bus ISA, el DMAC se
programa para usar prioridad fija, (canal 0 siempre tiene la prioridad ms alta) esto significa que
los canales 0-4 del slave tienen la prioridad ms alta (debido que ellos conectan al canal 0 del
master), seguido por canales 5-7 (los cuales son los canales 1-3 en el master).
El DMAC puede programarse para transferencias de lectura (el datos se lee de la memoria y se
escribe al dispositivo de E/S), transferencias de escritura (el datos se lee del dispositivo de E/S y
se escribe a la memoria), o transferencias de verificacin (no hay lectura ni escritura - esto fue
usado por DMA CH0 para refresco de DRAM, esto fue usado en las primeras PC).
Antes de que un ciclo de DMA pueda tener lugar, debe programarse el controlador de DMA
(DMAC). Esto es hecho escribiendo la direccin de comienzo y el nmero de bytes para transferir
(llamado la cuenta de transferencia) y la direccin del transferencia del DMAC. Despus de que el
DMAC se ha programado, el dispositivo puede activar la lnea de requerimiento de DMA apropiado
(DRQx).
En la Tabla 4 se muestran los registros de programacin para el DMAC slave y en la Tabla 5 para
el master.
Puerta de E/S Controlador de DMA (Slave)
0000 DMA CH0 Registro de Direcciones de Memoria
Contiene los 16 bits ms bajos de la direccin de memoria, escrito como dos bytes
consecutivos.
0001 DMA CH0 Contador de Transferencia
Contiene los 16 bits ms bajos del contador de transferencia, escrito como dos bytes
consecutivos.
0002 DMA CH1 Registro de Direcciones de Memoria
0003 DMA CH1 Contador de Transferencia
0004 DMA CH2 Registro de Direcciones de Memoria
0005 DMA CH2 Contador de Transferencia
0006 DMA CH3 Registro de Direcciones de Memoria
0007 DMA CH3 Contador de Transferencia
0008 Registro de Estado/Control del DMAC
10
Estado (lec. E/S) Bits 0-3: Terminal count, CH 0-3
Bits 0-3: Requerimiento, CH 0-3
Control (esc.) Bit 0: Habilitacin de transferencias de memora a memoria (1=habilitado)
Bit 1: Habilitacin de fijacin de la direccin del CH0 (1=habilitado)
Bit 2: Deshabilitacin del controlador (1=deshabilitado)
Bit 3: Timing (0=normal, 1=comprimido)
Bit 4: Prioridad (0=fija, 1=rotativa)
Bit 5: Seleccin de escritura (0=tarda, 1=extendida)
Bit 6: Sentido de prueba de DRQx (0=alto, 1=bajo)
Bit 7: Sentido de prueba de DAQn (0=alto, 1=bajo)
0009 Requerimiento de DRQx por software
Bits 0-1: Seleccin de canal (CH0-3)
Bit 2: Bit de Requerimiento (0=reset, 1=set)
000A Registro de Mscara del DMA
Bits 0-1: Seleccin de canal (CH0-3)
Bit 2: Bit de Mscara (0=reset, 1=set)
000B Registro de Modo de DMA
Bits 0-1: Seleccin de canal (CH0-3)
Bit 2-3: 00=verificacin, 01=escritura, 10=lectura, 11=reservado
Bit 4: Iniciacin automtica (0=deshabilitado, 1=habilitado)
Bit 5: Direccionamiento (0=incremento, 1=decremento)
Bit 6-7: 00= Modo de transferencia por demanda, 01=Modo de transferencia sencilla,
10=Modo transferencia por bloque, 11=Modo cascada
000C Reset del FlipFLop del puntero de byte.
000D Reset general del DMA (reset de hardware)
000E Reset del registro de mscara (limpia el registro de mscara)
000F Registro de mscara
Bits 0-3: bits de mscara para los CH0-3 (0=sin mscara, 1=enmascarado)
0081 Registro de pgina del canal CH2 (direcciones de A16 a A23)
0082 Registro de pgina del canal CH3 (direcciones de A16 a A23)
0083 Registro de pgina del canal CH1 (direcciones de A16 a A23)
0087 Registro de pgina del canal CH0 (direcciones de A16 a A23)
0089 Registro de pgina del canal CH6 (direcciones de A16 a A23)
008A Registro de pgina del canal CH7 (direcciones de A16 a A23)
008B Registro de pgina del canal CH5 (direcciones de A16 a A23)
Tabla 4: Descripcin de los registros de programacin del DMAC slave
Puerta de E/S Controlador de DMA (Master)
00C0 DMA CH4 Registro de Direcciones de Memoria
Contiene los 16 bits ms bajos de la direccin de memoria, escrito como dos bytes
consecutivos.
00C2 DMA CH4 Contador de Transferencia
Contiene los 16 bits ms bajos del contador de transferencia, escrito como dos bytes
consecutivos.
00C4 DMA CH5 Registro de Direcciones de Memoria
00C6 DMA CH5 Contador de Transferencia
00C8 DMA CH6 Registro de Direcciones de Memoria
00CA DMA CH6 Contador de Transferencia
00CC DMA CH7 Registro de Direcciones de Memoria
00CE DMA CH7 Contador de Transferencia
00D0 Registro de Estado/Control del DMAC
Estado (lec. E/S) Bits 0-3: Terminal count, CH 4-7
Bits 0-3: Requerimiento, CH 4-7
Control (esc.) Bit 0: Habilitacin de transferencias de memora a memoria (1=habilitado)
Bit 1: Habilitacin de fijacin de la direccin del CH0 (1=habilitado)
Bit 2: Deshabilitacin del controlador (1=deshabilitado)
Bit 3: Timing (0=normal, 1=comprimido)
Bit 4: Prioridad (0=fija, 1=rotativa)
11
Bit 5: Seleccin de escritura (0=tarda, 1=extendida)
Bit 6: Sentido de prueba de DRQx (0=alto, 1=bajo)
Bit 7: Sentido de prueba de DAQn (0=alto, 1=bajo)
00D2 Requerimiento de DRQx por software
Bits 0-1: Seleccin de canal (CH4-7)
Bit 2: Bit de Requerimiento (0=reset, 1=set)
00D4 Registro de Mscara del DMA
Bits 0-1: Seleccin de canal (CH4-7)
Bit 2: Bit de Mscara (0=reset, 1=set)
00D6 Registro de Modo de DMA
Bits 0-1: Seleccin de canal (CH4-7)
Bit 2-3: 00=verificacin, 01=escritura, 10=lectura, 11=reservado
Bit 4: Iniciacin automtica (0=deshabilitado, 1=habilitado)
Bit 5: Direccionamiento (0=incremento, 1=decremento)
Bit 6-7: 00= Modo de transferencia por demanda, 01=Modo de transferencia sencilla,
10=Modo transferencia por bloque, 11=Modo cascada
00D8 Reset del FlipFLop del puntero de byte.
00DA Reset general del DMA (reset de hardware)
00DC Reset del registro de mscara (limpia el registro de mscara)
00DE Registro de mscara
Bits 0-3: bits de mscara para los CH4-7 (0=sin mscara, 1=enmascarado)
Tabla 5: Descripcin de los registros de programacin del DMAC master
En la Tabla 6 se muestra la asignacin de los canales de DMA.
DMA Channels Assignement
Controller 1
CH0 Reserved
CH1 SDLC
CH2 Diskette
CH3 Reserved
Controller 2
CH4 Cascade for Ctlr1
CH5 Reserved
CH6 Reserved
CH7 Reserved
Tabla 6: Asignacin de los canales de DMA
DMA: Modo del Transferencia Sencillo:
En al Figura 6 se muestra el diagrama de tiempos para una transferencia sencilla de DMA. A
continuacin se relata las actividades que el DMA realiza.
El DMAC se programa para la transferencia. El dispositivo de DMA pide un traslado acertando la
lnea DRQ apropiada. El DMAC responde afirmando AEN y reconoce el requerimiento de DMA
acertando la lnea DAK apropiada. Tambin se aciertan las lneas de comando de memoria y de
E/S. Cuando el dispositivo de DMA ve la seal DAK, baja la lnea DRQ. El DMAC pone la
direccin de memoria en el bus SA (al mismo tiempo que las lneas de comando son acertadas) y
el dispositivo lee o escribe a la memoria, dependiendo del tipo de transferencia. La cuenta del
transferencia es incrementado y la direccin es incrementada/decrementada. Se desacierta la
seal DAK. La CPU gana el control del bus una vez ms y contina la ejecucin hasta que el
dispositivo de E/S est una vez ms listo para una transferencia. El dispositivo DMA repite el
procedimiento, acertando DRQ y esperando por un DAK, luego transfiriendo el dato. Esto contina
durante varios ciclos iguales a la cuenta del transferencia. Cuando esto se ha completado, el
DMAC seala al CPU que la transferencia de DMA est completo por va de la seal TC (cuenta
terminal).
12
Figura 5. Ciclo de Acceso de DMA
DMA: Modo de Transferencia de Bloque
El DMAC se programa para la transferencia. El dispositivo de DMA pide una transfereencia
acertando la lnea DRQ apropiada. La placa madre responde poniendo AEN a alto y a DAK en
bajo. Esto indica que el dispositivo de DMA es ahora el amo del bus. En respuesta a la seal DAK,
el dispositivo de DMA deja caer a DRQ. El DMAC pone la direccin en el bus de direcciones.
Tanto las lneas de comandos de memoria y de E/S son acertadas (debido a que el ciclo de DMA
involucra tanto a dispositivos de E/S como de memoria). La seal AEN impide a los dems
dispositivos de E/S a responder a las lneas de comandos de E/S, lo que resultara en un mal
funcionamiento debido a que las lneas de E/S son activas, pero una direccin de memoria est en
el bus de direccin. Entonces se realiza el traslado del dato (lectura o escritura de memoria) y el
DMAC incrementa/decrementa la direccin y empieza otro ciclo. Esto contina durante varios
ciclos iguales en cantidad a la cuenta de transferencia del DMAC. Cuando esto se ha completado,
se genera la seal cuenta terminal (TC) para informar a la CPU que la transferencia de DMA se ha
completado.
La transferencia por Bloque debe usarse cuidadosamente. El bus no puede usarse para otras
cosas (tales como refresco de RAM) mientras estn hacindose transferencias de modo de
bloque.
DMA: Modo de Transferencia por Demanda:
El DMAC se programa para la transferencia. El dispositivo que intenta la transferencia de DMA
pone en alto la lnea DRQ apropiada. La placa madre responde poniendo a AEN en alto y DAK en
bajo. Esto indica que el dispositivo de DMA es ahora el amo del bus. Al contrario que en las
transferencias sencilla y de bloque, el dispositivo de DMA no pone en bajo a DRQ en respuesta al
DAK. El dispositivo de DMA transfiere datos de la misma manera que en la transferencia de
bloque. El DMAC continuar generando ciclos de DMA mientras que el dispositivo de E/S afirme
DRQ. Cuando el dispositivo de E/S es incapaz de continuar la transferencia (si ya no tuviera datos
preparados para transferir, por ejemplo), pone DRQ en bajo y la CPU toma el control del bus una
vez ms. El control es devuelto al DMAC cuando aparece un nuevo DRQ. Esto contina hasta que
se alcanza la cuenta terminal y la seal TC informa a la CPU que la transferencia se ha
completado.
CLK
AEN
SD0-SD7
Read
SD0-SD7
Write
SA0-SA19
IORC, MEMR
DRQx
13
INTERRUPCIONES
Las Interrupciones IRQ 0, 1, 2, 8 y 13 no estn disponibles en el bus ISA.
El IBM PC y XT tenan slo un solo controlador de interrupciones 8259. La computadora AT y las
mquinas siguientes tienen un segundo controlador de interrupciones y los dos se usan en una
combinacin del master/slave. IRQ2 y IRQ9 son el mismo pin en la mayora de los sistemas de
ISA.
Las interrupciones en la mayora de los sistemas pueden ser activado por flanco o activado por
nivel. El valor por defecto normalmente es activado por flanco y activo en alto (transicin de
subida).
El nivel de la interrupcin debe sostenerse en alto hasta el primer ciclo de reconocimiento de
interrupciones (en contestacin a una demanda de interrupcin se generan dos ciclos de
reconocimiento).
En este documento se omiten intencionalmente los aspectos del software de interrupciones y de
los manejadores de interrupciones, debido a las numerosas diferencias sintcticas en las
herramientas del software y el hecho que una documentacin adecuada de este tema se
proporciona normalmente software del desarrollo.
En la tabla 7 se muestra la asignacin de las interrupciones.
Interrupt Assignement
NMI Parity Error Mem Refresh
IRQ0 8253 Channel 0 (System Timer)
IRQ1 Keyboard
IRQ2 Cascade from slave PIC
IRQ3 COM2
IRQ4 COM1
IRQ5 LPT2
IRQ6 Floppy Drive Controller
IRQ7 LPT1
IRQ8 Real Time Clock
IRQ9 Redirection to IRQ2
IRQ10 Reserved
IRQ11 Reserved
IRQ12 Mouse Interface
IRQ13 Coprocessor
IRQ14 Hard Drive Controller
IRQ15 Reserved
Tabla 7: Asignacin de los canales de DMA
Bus Mastering
Un dispositivo ISA puede tomar el mando del bus, pero esto debe hacerse con cautela. No existe
ningn mecanismo de seguridad involucrado, de manera que es fcilmente posible colapsar el
sistema completamente si se toma el control del bus incorrectamente. Por ejemplo, la mayora de
los sistemas requiere de ciclos de refresco de memoria DRAM. Si el bus ISA maestro no
abandona el mando del bus o genera sus propios ciclos de refresco de la DRAM cada 15 micro
segundos, la RAM del sistema puede adulterarse. Una tarjeta adaptadora ISA puede generar
ciclos de refresco sin abandonar mando del bus acertando las seal REFRESH. La seal
MEMRD debe luego supervisarse para determinar cuando termina el ciclo de refresco.
Para tomar el control del bus, el dispositivo primero debe acertar la lnea DRQ. El DMAC enva
una requerimiento de sostenimiento al CPU y cuando el DMAC recibe un reconocimiento de
sostenimiento, afirma la lnea DAK correspondiente a la lnea de DRQ. El dispositivo es ahora el
maestro del bus. Luego AEN es acertada, tal que si el dispositivo desea acceder dispositivos de
14
E/S debe acertar MASTER16 para deshabilitar a AEN. El mando del bus es devuelto al sistema
desacertando DRQ.
REFERENCIAS
PC AT Technical Reference, IBM 1985
"ISA System Architecture, 3rd Edition" by Tom Shanley and Don Anderson
ISBN 0-201-40996-8
"Microcomputer Busses" by R.M. Cram ISBN 0-12-196155-9
El norma P996 del IEEE puede obtenerse:
Oficina de Normas del IEEE (IEEE Standards Office)
445 Hoes Lane
Piscataway, NJ 08854,

También podría gustarte