El documento proporciona una introducción al bus ISA utilizado en las computadoras PC compatibles. Explica que el bus ISA permite la comunicación entre el procesador y las tarjetas de expansión, y ha permanecido similar desde la década de 1980 a pesar de los procesadores más rápidos, para mantener la compatibilidad. También describe las características clave del bus ISA original de 8 bits y su expansión posterior de 16 bits, incluidas las líneas de datos, direcciones, interrupciones y canales DMA.
0 calificaciones0% encontró este documento útil (0 votos)
126 vistas14 páginas
El documento proporciona una introducción al bus ISA utilizado en las computadoras PC compatibles. Explica que el bus ISA permite la comunicación entre el procesador y las tarjetas de expansión, y ha permanecido similar desde la década de 1980 a pesar de los procesadores más rápidos, para mantener la compatibilidad. También describe las características clave del bus ISA original de 8 bits y su expansión posterior de 16 bits, incluidas las líneas de datos, direcciones, interrupciones y canales DMA.
El documento proporciona una introducción al bus ISA utilizado en las computadoras PC compatibles. Explica que el bus ISA permite la comunicación entre el procesador y las tarjetas de expansión, y ha permanecido similar desde la década de 1980 a pesar de los procesadores más rápidos, para mantener la compatibilidad. También describe las características clave del bus ISA original de 8 bits y su expansión posterior de 16 bits, incluidas las líneas de datos, direcciones, interrupciones y canales DMA.
El documento proporciona una introducción al bus ISA utilizado en las computadoras PC compatibles. Explica que el bus ISA permite la comunicación entre el procesador y las tarjetas de expansión, y ha permanecido similar desde la década de 1980 a pesar de los procesadores más rápidos, para mantener la compatibilidad. También describe las características clave del bus ISA original de 8 bits y su expansión posterior de 16 bits, incluidas las líneas de datos, direcciones, interrupciones y canales DMA.
Descargue como PDF, TXT o lea en línea desde Scribd
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,