Industria estandar de arquitectura
Arquitectura estándar de la industria (ISA) es el bus interno de 16 bits de IBM PC/AT y computadoras similares basadas en Intel 80286 y sus sucesores inmediatos durante la década de 1980. El bus era (en gran parte) compatible con versiones anteriores con el bus de 8 bits de la PC IBM basada en 8088, incluida la PC / XT de IBM y las PC compatibles de IBM.
Originalmente denominado bus de PC (8 bits) o bus AT (16 bits), también se denominaba canal de E/S por IBM. El término ISA fue acuñado como un retroónimo por los fabricantes de clones de PC de la competencia a fines de la década de 1980 o principios de la de 1990 como reacción a los intentos de IBM de reemplazar el bus AT con su arquitectura Micro Channel nueva e incompatible.
El bus ISA de 16 bits también se usó con procesadores de 32 bits durante varios años. Sin embargo, un intento de extenderlo a 32 bits, llamado Arquitectura Estándar de la Industria Extendida (EISA), no tuvo mucho éxito. En su lugar, se utilizaron buses posteriores como VESA Local Bus y PCI, a menudo junto con ranuras ISA en la misma placa base. Los derivados de la estructura del bus AT se utilizaron y aún se utilizan en ATA/IDE, el estándar PCMCIA, Compact Flash, el bus PC/104 e internamente dentro de los chips Super I/O.
Aunque ISA desapareció de las computadoras de escritorio de los consumidores hace muchos años, todavía se usa en las PC industriales, donde se usan ciertas tarjetas de expansión especializadas que nunca hicieron la transición a PCI y PCI Express.
Historia
El bus de PC original fue desarrollado por un equipo dirigido por Mark Dean en IBM como parte del proyecto IBM PC en 1981. Era un bus de 8 bits basado en el bus de E/S del sistema IBM System/23 Datamaster. - utilizaba el mismo conector físico y un protocolo de señal y distribución de pines similares. Una versión de 16 bits, el bus AT de IBM, se introdujo con el lanzamiento de IBM PC/AT en 1984. El bus AT era una extensión del bus de PC compatible en su mayoría con versiones anteriores; el conector de bus AT era un superconjunto del bus de PC. conector En 1988, la "Gang of Nine" propuso el estándar EISA de 32 bits. grupo de fabricantes compatibles con PC que incluía a Compaq. Compaq creó el término "Arquitectura estándar de la industria" (ISA) para reemplazar "PC compatible". En el proceso, cambiaron retroactivamente el nombre del autobús AT a "ISA" para evitar infringir la marca registrada de IBM en sus sistemas PC y PC/AT (y para evitar dar publicidad gratuita a su principal competidor, IBM).
IBM diseñó la versión de 8 bits como una interfaz con búfer para los buses de la placa base de la CPU Intel 8088 (16/8 bits) en IBM PC y PC/XT, aumentada con interrupciones priorizadas y canales DMA. La versión de 16 bits fue una actualización para los buses de la placa base de la CPU Intel 80286 (y las funciones ampliadas de interrupción y DMA) utilizadas en IBM AT, con soporte mejorado para el control de bus. Por lo tanto, el bus ISA estaba sincronizado con el reloj de la CPU, hasta que los conjuntos de chips implementaron sofisticados métodos de almacenamiento en búfer para conectar ISA a CPU mucho más rápidas.
ISA fue diseñado para conectar tarjetas periféricas a la placa base y permite el control de bus. Solo los primeros 16 MB de la memoria principal son direccionables. El bus original de 8 bits funcionaba desde el reloj de 4,77 MHz de la CPU 8088 en IBM PC y PC/XT. El bus original de 16 bits partía del reloj de la CPU del 80286 en las computadoras IBM PC/AT, que era de 6 MHz en los primeros modelos y de 8 MHz en los modelos posteriores. La IBM RT PC también usó el bus de 16 bits. ISA también se usó en algunas máquinas no compatibles con IBM, como las estaciones de trabajo Apollo (68020) y Amiga 3000 (68030) basadas en Motorola 68k, el AT&T Hobbit de corta duración y el posterior BeBox basado en PowerPC.
Empresas como Dell mejoraron el rendimiento del bus AT, pero en 1987, IBM reemplazó el bus AT con su Micro Channel Architecture (MCA) patentada. MCA superó muchas de las limitaciones entonces evidentes en ISA, pero también fue un esfuerzo de IBM para recuperar el control de la arquitectura de PC y el mercado de PC. MCA era mucho más avanzado que ISA y tenía muchas características que luego aparecerían en PCI. Sin embargo, MCA también era un estándar cerrado, mientras que IBM había publicado especificaciones completas y esquemas de circuitos para ISA. Los fabricantes de computadoras respondieron a MCA desarrollando la Arquitectura Estándar de la Industria Extendida (EISA) y el posterior Bus Local VESA (VLB). VLB usó algunas piezas electrónicas originalmente destinadas a MCA porque los fabricantes de componentes ya estaban equipados para fabricarlas. Tanto EISA como VLB eran expansiones compatibles con versiones anteriores del bus AT (ISA).
Los usuarios de máquinas basadas en ISA debían conocer información especial sobre el hardware que estaban agregando al sistema. Si bien un puñado de dispositivos eran esencialmente 'plug-n-play', esto era raro. Con frecuencia, los usuarios tenían que configurar parámetros al agregar un nuevo dispositivo, como la línea IRQ, la dirección de E/S o el canal DMA. MCA había eliminado esta complicación y PCI en realidad incorporó muchas de las ideas exploradas por primera vez con MCA, aunque descendía más directamente de EISA.
Este problema con la configuración eventualmente condujo a la creación de ISA PnP, un sistema plug-n-play que usaba una combinación de modificaciones al hardware, el BIOS del sistema y el software del sistema operativo para administrar automáticamente asignaciones de recursos. En realidad, ISA PnP podría ser problemático y no recibió un buen soporte hasta que la arquitectura estuvo en sus últimos días.
Las ranuras PCI fueron los primeros puertos de expansión físicamente incompatibles en extraer directamente ISA de la placa base. Al principio, las placas base eran en gran parte ISA, incluidas algunas ranuras PCI. A mediados de la década de 1990, los dos tipos de tragamonedas estaban más o menos equilibrados, y las tragamonedas ISA pronto se convirtieron en la minoría de los sistemas de consumo. La especificación PC 99 de Microsoft recomendaba que las ranuras ISA se eliminaran por completo, aunque la arquitectura del sistema aún requería que ISA estuviera presente internamente de alguna manera residual para manejar la unidad de disquete, los puertos serie, etc., razón por la cual el software LPC compatible se creó el autobús. Las ranuras ISA se mantuvieron durante algunos años más, y hacia el cambio de siglo era común ver sistemas con un puerto de gráficos acelerado (AGP) ubicado cerca de la unidad de procesamiento central, una serie de ranuras PCI y una o dos ranuras ISA cerca. el fin. A fines de 2008, incluso las unidades de disquete y los puertos serie estaban desapareciendo, y la extinción de los vestigios ISA (para entonces el bus LPC) de los conjuntos de chips estaba en el horizonte.
Las ranuras PCI están "rotadas" en comparación con sus contrapartes ISA, las tarjetas PCI se insertaron esencialmente 'al revés', 'al revés'. permitiendo que los conectores ISA y PCI se aprieten juntos en la placa base. Solo se puede usar uno de los dos conectores en cada ranura a la vez, pero esto permitió una mayor flexibilidad.
La interfaz del disco duro AT Attachment (ATA) desciende directamente de la ISA de 16 bits de la PC/AT. ATA tiene su origen en el adaptador de disquete y disco fijo de computadora personal de IBM, el controlador de disquete de doble función estándar y la tarjeta controladora de disco duro para IBM PC AT; el controlador de disco fijo de esta tarjeta implementó el conjunto de registros y el conjunto de comandos básicos que se convirtió en la base de la interfaz ATA (y que difería mucho de la interfaz de la tarjeta controladora de disco fijo de IBM para PC XT). Los precursores directos de ATA fueron las tarjetas duras ISA de terceros que integraban una unidad de disco duro (HDD) y un controlador de disco duro (HDC) en una tarjeta. Esto era, en el mejor de los casos, incómodo y, en el peor, dañino para la placa base, ya que las ranuras ISA no estaban diseñadas para admitir dispositivos tan pesados como los discos duros. La próxima generación de unidades Integrated Drive Electronics trasladó tanto la unidad como el controlador a un compartimiento para unidades y utilizó un cable plano y una placa de interfaz muy simple para conectarlo a una ranura ISA. ATA es básicamente una estandarización de este arreglo más una estructura de comando uniforme para que el software interactúe con el HDC dentro de la unidad. Desde entonces, ATA se separó del bus ISA y se conectó directamente al bus local, generalmente mediante la integración en el conjunto de chips, para velocidades de reloj y rendimiento de datos mucho más altos de lo que ISA podría admitir. ATA tiene características claras de ISA de 16 bits, como un tamaño de transferencia de 16 bits, sincronización de señal en los modos PIO y mecanismos de interrupción y DMA.
Arquitectura de bus ISA
El bus PC/XT es un bus ISA de ocho bits utilizado por los sistemas Intel 8086 e Intel 8088 en IBM PC e IBM PC XT en la década de 1980. Entre sus 62 pines se encontraban versiones demultiplexadas y almacenadas eléctricamente de las 8 líneas de datos y 20 de direcciones del procesador 8088, junto con líneas eléctricas, relojes, luces estroboscópicas de lectura/escritura, líneas de interrupción, etc. Las líneas eléctricas incluían −5 V y ±12 V para admitir directamente pMOS y circuitos nMOS en modo de mejora, como RAM dinámicas, entre otras cosas. La arquitectura de bus XT utiliza un solo PIC Intel 8259, lo que brinda ocho líneas de interrupción vectorizadas y priorizadas. Tiene cuatro canales DMA provistos originalmente por Intel 8237. Tres de los canales DMA se llevan a las ranuras de expansión del bus XT; de estos, 2 normalmente ya están asignados a funciones de máquina (unidad de disquete y controlador de disco duro):
DMA channel | Ampliación | Función estándar |
---|---|---|
0 | No | Actualización de memoria de acceso aleatorio dinámico |
1 | Sí. | Tarjetas adicionales |
2 | Sí. | Controlador de disco flotador |
3 | Sí. | Controlador de disco duro |
El PC/AT-bus, una versión de 16 bits (o 80286-) del bus PC/XT, se introdujo con IBM PC/AT. Este bus fue denominado oficialmente I/O Channel por IBM. Extiende el bus XT agregando un segundo conector de borde más corto en línea con el conector de bus XT de ocho bits, que no ha cambiado, conservando la compatibilidad con la mayoría de las tarjetas de 8 bits. El segundo conector agrega cuatro líneas de dirección adicionales para un total de 24 y 8 líneas de datos adicionales para un total de 16. También agrega nuevas líneas de interrupción conectadas a un segundo 8259 PIC (conectado a una de las líneas del primero) y 4 × Canales DMA de 16 bits, así como líneas de control para seleccionar transferencias de 8 o 16 bits.
La ranura de bus AT de 16 bits usaba originalmente dos zócalos de conector de borde estándar en las primeras máquinas IBM PC/AT. Sin embargo, con la popularidad de la arquitectura AT y el bus ISA de 16 bits, los fabricantes introdujeron conectores especializados de 98 pines que integraban los dos zócalos en una sola unidad. Estos se pueden encontrar en casi todas las PC de clase AT fabricadas después de mediados de la década de 1980. El conector de la ranura ISA suele ser negro (que lo distingue de los conectores EISA marrones y los conectores PCI blancos).
Número de dispositivos
Los dispositivos de placa base tienen IRQ dedicados (no presentes en las ranuras). Los dispositivos de 16 bits pueden utilizar IRQ PC-bus o PC/AT-bus. Por tanto, es posible conectar hasta 6 dispositivos que utilicen una IRQ de 8 bits cada uno y hasta 5 dispositivos que utilicen una IRQ de 16 bits cada uno. Al mismo tiempo, hasta 4 dispositivos pueden usar un canal DMA de 8 bits cada uno, mientras que hasta 3 dispositivos pueden usar un canal DMA de 16 bits cada uno.
Diferentes velocidades de autobús
Originalmente, el reloj del bus estaba sincronizado con el reloj de la CPU, lo que resultaba en frecuencias de reloj de bus variables entre los muchos "clones" en el mercado (a veces tan alto como 16 o 20 MHz), lo que genera problemas de temporización eléctrica o de software para ciertas tarjetas ISA a velocidades de bus para las que no fueron diseñadas. Las placas base posteriores o los conjuntos de chips integrados usaban un generador de reloj separado o un divisor de reloj que fijaba la frecuencia del bus ISA en 4, 6 u 8 MHz o permitía al usuario ajustar la frecuencia a través de la configuración del BIOS. Cuando se usan a una frecuencia de bus más alta, algunas tarjetas ISA (por ejemplo, ciertas tarjetas de video compatibles con Hercules) pueden mostrar mejoras significativas en el rendimiento.
Incompatibilidades de 8/16 bits
La decodificación de direcciones de memoria para la selección del modo de transferencia de 8 o 16 bits se limitaba a secciones de 128 KiB, lo que generaba problemas al mezclar tarjetas de 8 y 16 bits, ya que no podían coexistir en la misma área de 128 KiB. Esto se debe a que se requiere configurar la línea MEMCS16 en función del valor de LA17-23 únicamente.
Uso pasado y actual
ISA todavía se utiliza hoy en día para fines industriales especializados. En 2008, IEI Technologies lanzó una placa base moderna para procesadores Intel Core 2 Duo que, además de otras características especiales de E/S, está equipada con dos ranuras ISA. Se comercializa para usuarios industriales y militares que han invertido en costosos adaptadores de bus ISA especializados, que no están disponibles en versiones de bus PCI.
Del mismo modo, ADEK Industrial Computers lanzará una placa base a principios de 2013 para los procesadores Intel Core i3/i5/i7, que contiene una ranura ISA (no DMA).
El bus PC/104, utilizado en aplicaciones industriales e integradas, es un derivado del bus ISA y utiliza las mismas líneas de señal con diferentes conectores. El bus LPC ha reemplazado al bus ISA como conexión a los dispositivos de E/S heredados en las placas base recientes; Aunque físicamente es bastante diferente, LPC se parece a ISA para el software, por lo que es probable que las peculiaridades de ISA, como el límite DMA de 16 MiB (que corresponde al espacio de direcciones completo de la CPU Intel 80286 utilizada en el IBM AT original) se mantengan. alrededor por un tiempo.
ATA
Como se explica en la sección Historia, ISA fue la base para el desarrollo de la interfaz ATA, utilizada para discos duros ATA (también conocido como IDE). Físicamente, ATA es esencialmente un subconjunto simple de ISA, con 16 bits de datos, soporte para exactamente un IRQ y un canal DMA, y 3 bits de dirección. A este subconjunto ISA, ATA agrega dos líneas de selección de dirección IDE ("selección de chip") (es decir, decodificación de dirección, equivalente efectivo a bits de dirección) y algunas líneas de señal únicas específicas para discos duros ATA/IDE (como la línea Cable Select/Spindle Sync.) Además del canal de interfaz física, ATA va más allá y mucho más allá del alcance de ISA al especificar también un conjunto de registros de dispositivos físicos que se implementarán en cada unidad ATA (IDE) y un conjunto de protocolos y comandos de dispositivos para controlar unidades de disco fijo utilizando estos registros. Se accede a los registros del dispositivo ATA utilizando los bits de dirección y las señales de selección de dirección en el canal de interfaz física ATA, y todas las operaciones de los discos duros ATA se realizan utilizando los protocolos especificados por ATA a través del conjunto de comandos ATA. Las primeras versiones del estándar ATA presentaban algunos protocolos simples y un conjunto de comandos básico comparable a los conjuntos de comandos de los controladores MFM y RLL (que precedieron a los controladores ATA), pero los estándares ATA más recientes tienen protocolos y conjuntos de instrucciones mucho más complejos que incluyen instrucciones opcionales. Comandos y protocolos que brindan funciones avanzadas de uso opcional como áreas de almacenamiento ocultas considerables del sistema, bloqueo de seguridad con contraseña y traducción de geometría programable.
Otra desviación entre ISA y ATA es que, mientras que el bus ISA permanecía bloqueado en una frecuencia de reloj estándar única (para compatibilidad con hardware anterior), la interfaz ATA ofrecía muchos modos de velocidad diferentes, podía seleccionar entre ellos para igualar la velocidad máxima admitida por las unidades adjuntas, y siguió agregando velocidades más rápidas con versiones posteriores del estándar ATA (hasta 133 MB/s para ATA-6, la última). En la mayoría de las formas, ATA funcionó mucho más rápido que ISA, siempre que estuviera conectado directamente a un bus local (por ejemplo, interfaces IDE integradas en Southbridge) más rápido que el bus ISA.
XT-IDE
Antes de la interfaz ATA/IDE de 16 bits, existía una interfaz XT-IDE (también conocida como XTA) de 8 bits para discos duros. No era tan popular como se ha vuelto ATA, y el hardware XT-IDE ahora es bastante difícil de encontrar. Algunos adaptadores XT-IDE estaban disponibles como tarjetas ISA de 8 bits, y los zócalos XTA también estaban presentes en las placas base de los clones XT posteriores de Amstrad, así como en una línea de unidades Philips de corta duración. El pinout XTA era muy similar a ATA, pero solo se usaban ocho líneas de datos y dos líneas de dirección, y los registros del dispositivo físico tenían significados completamente diferentes. Algunos discos duros (como el Seagate ST351A/X) pueden admitir cualquier tipo de interfaz, seleccionado con un puente.
Muchas placas base AT posteriores (y las sucesoras de AT) no tenían una interfaz de disco duro integrada, sino que dependían de una interfaz de disco duro separada conectada a una ranura ISA/EISA/VLB. Incluso hubo algunas unidades basadas en 80486 enviadas con interfaces y unidades MFM/RLL en lugar del AT-IDE cada vez más común.
Commodore construyó la unidad de expansión de memoria/disco duro periférico basada en XT-IDE A590 para sus computadoras Amiga 500 y 500+ que también admitían una unidad SCSI. Los modelos posteriores (las series A600, A1200 y Amiga 4000) utilizan unidades AT-IDE.
PCMCIA
La especificación PCMCIA puede verse como un superconjunto de ATA. El estándar para interfaces de disco duro PCMCIA, que incluía unidades flash PCMCIA, permite la configuración mutua del puerto y la unidad en modo ATA. Como una extensión de facto, la mayoría de las unidades flash PCMCIA también permiten un modo ATA simple que se habilita bajando un solo pin, de modo que el hardware y el firmware PCMCIA no son necesarios para usarlos como una unidad ATA conectada a un puerto ATA. Los adaptadores de unidad flash PCMCIA a ATA son simples y económicos, pero no se garantiza que funcionen con todas y cada una de las unidades flash PCMCIA estándar. Además, dichos adaptadores no se pueden utilizar como puertos PCMCIA genéricos, ya que la interfaz PCMCIA es mucho más compleja que ATA.
Emulación por chips integrados
Aunque la mayoría de las computadoras modernas no tienen buses ISA físicos, casi todas las PC (x86-32 y x86-64) tienen buses ISA asignados en el espacio de direcciones físicas. algunos Southbridge y algunas CPU brindan servicios como monitoreo de temperatura y lecturas de voltaje a través de buses ISA como dispositivos ISA.
Estandarización
IEEE inició una estandarización del bus ISA en 1985, denominada especificación P996. Sin embargo, a pesar de que incluso se han publicado libros sobre la especificación P996, nunca pasó oficialmente del estado de borrador.
Tarjetas ISA modernas
Todavía existe una base de usuarios con computadoras antiguas, por lo que todavía se fabrican algunas tarjetas ISA, p. con puertos USB o computadoras completas de placa única basadas en procesadores modernos, USB 3.0 y SATA.
Contenido relacionado
Controlador lógico programable
GTE
Linux con seguridad mejorada