Стандартная архитектура промышленности ( ISA ) — это 16-битная внутренняя шина IBM PC/AT и подобных компьютеров на базе Intel 80286 и его непосредственных последователей в 1980-х годах. Шина была (в значительной степени) обратно совместима с 8-битной шиной IBM PC на базе 8088 , включая IBM PC/XT , а также IBM PC-совместимые .
Первоначально называвшаяся шиной ПК (8-бит) или шиной AT (16-бит), она также называлась I/O Channel компанией IBM. Термин ISA был придуман в качестве ретронима производителями клонов IBM PC в конце 1980-х или начале 1990-х годов в ответ на попытки IBM заменить шину AT своей новой и несовместимой архитектурой Micro Channel .
16-битная шина ISA также использовалась с 32-битными процессорами в течение нескольких лет. Попытка расширить ее до 32 бит, названная Extended Industry Standard Architecture (EISA), однако, не имела большого успеха. Более поздние шины, такие как VESA Local Bus и PCI, использовались вместо нее, часто вместе со слотами ISA на той же материнской плате . Производные структуры шины AT использовались и до сих пор используются в ATA/IDE , стандарте PCMCIA , CompactFlash , шине PC/104 и внутри микросхем Super I/O .
Несмотря на то, что ISA исчез из потребительских настольных компьютеров много лет назад, он по-прежнему используется в промышленных ПК , где применяются определенные специализированные платы расширения, которые так и не перешли на PCI и PCI Express.
Первоначальная шина ПК была разработана командой под руководством Марка Дина в IBM в рамках проекта IBM PC в 1981 году. [2] Это была 8-битная шина, основанная на шине ввода-вывода системы IBM System/23 Datamaster — она использовала тот же физический разъем, а также похожий протокол сигналов и схему расположения выводов. [3] 16-битная версия, шина IBM AT , была представлена с выпуском IBM PC/AT в 1984 году. Шина AT была в основном обратно совместимым расширением шины ПК — разъем шины AT был надмножеством разъема шины ПК. В 1988 году 32-битный стандарт EISA был предложен группой «Банда девяти» производителей ПК, в которую входила Compaq. Compaq создала термин «Industry Standard Architecture» (ISA) вместо « PC compatible ». [4] В ходе этого процесса они задним числом переименовали шину AT в «ISA», чтобы избежать нарушения товарного знака IBM на ее системах PC и PC/AT (и чтобы не давать своему главному конкуренту IBM бесплатную рекламу).
IBM разработала 8-битную версию как буферизованный интерфейс для шин материнской платы процессора Intel 8088 (16/8 бит) в IBM PC и PC/XT, дополненный приоритетными прерываниями и каналами DMA. 16-битная версия была обновлением для шин материнской платы процессора Intel 80286 (и расширенных возможностей прерываний и DMA), используемых в IBM AT, с улучшенной поддержкой управления шиной. Таким образом, шина ISA была синхронизирована с часами процессора, пока наборы микросхем не реализовали сложные методы буферизации для интерфейса ISA с гораздо более быстрыми процессорами.
ISA была разработана для подключения периферийных карт к материнской плате и позволяет управлять шиной . Только первые 16 МБ основной памяти адресуемы. Первоначальная 8-битная шина работала от тактовой частоты 4,77 МГц процессора 8088 в IBM PC и PC/XT. Первоначальная 16-битная шина работала от тактовой частоты процессора 80286 в компьютерах IBM PC/AT, которая составляла 6 МГц в первых моделях и 8 МГц в более поздних моделях. IBM RT PC также использовал 16-битную шину. ISA также использовалась в некоторых не-IBM-совместимых машинах, таких как рабочие станции Apollo (68020) и Amiga 3000 (68030) на базе Motorola 68k , недолговечный AT&T Hobbit и более поздний BeBox на базе PowerPC .
Такие компании, как Dell, улучшили производительность шины AT [5] , но в 1987 году IBM заменила шину AT своей собственной архитектурой Micro Channel Architecture (MCA). MCA преодолела многие ограничения, которые тогда были очевидны в ISA, но также была попыткой IBM вернуть себе контроль над архитектурой ПК и рынком ПК. MCA была намного более продвинутой, чем ISA, и имела много функций, которые позже появятся в PCI. Однако MCA также была закрытым стандартом, тогда как IBM выпустила полные спецификации и принципиальные схемы для ISA. Производители компьютеров отреагировали на MCA разработкой архитектуры Extended Industry Standard Architecture (EISA) и позднее локальной шины VESA (VLB). VLB использовала некоторые электронные детали, изначально предназначенные для MCA, поскольку производители компонентов уже были оснащены для их производства. И EISA, и VLB были обратно совместимыми расширениями шины AT (ISA).
Пользователи машин на базе ISA должны были знать специальную информацию об оборудовании, которое они добавляли в систему. Хотя несколько устройств были по сути « plug-n-play », это было редкостью. Пользователям часто приходилось настраивать параметры при добавлении нового устройства, такие как линия IRQ , адрес ввода-вывода или канал DMA . MCA покончила с этим усложнением, и PCI фактически включила в себя многие из идей, впервые исследованных с помощью MCA, хотя она была более непосредственно потомком EISA.
Эта проблема с конфигурацией в конечном итоге привела к созданию ISA PnP , системы plug-n-play, которая использовала комбинацию модификаций оборудования, системного BIOS и программного обеспечения операционной системы для автоматического управления распределением ресурсов. В действительности ISA PnP могла быть проблемной и не получила хорошей поддержки, пока архитектура не достигла своих последних дней.
Устройство PnP ISA, EISA или VLB может иметь 5-байтовый идентификатор EISA (3-байтовый идентификатор производителя + 2-байтовый шестнадцатеричный номер) для идентификации устройства. Например, CTL0044 соответствует Creative Sound Blaster 16 / 32 PnP .
Слоты PCI были первыми физически несовместимыми портами расширения, которые напрямую выдавливали ISA из материнской платы. Сначала материнские платы были в основном ISA, включая несколько слотов PCI. К середине 1990-х годов два типа слотов были примерно сбалансированы, и слоты ISA вскоре оказались в меньшинстве потребительских систем. Спецификация PC-99 от Microsoft рекомендовала полностью удалить слоты ISA, хотя архитектура системы все еще требовала, чтобы ISA присутствовала в некотором рудиментарном виде внутри для управления дисководом , последовательными портами и т. д., поэтому была создана программно-совместимая шина LPC . Слоты ISA оставались еще несколько лет, и к рубежу веков стало обычным явлением видеть системы с портом ускоренной графики (AGP), расположенным рядом с центральным процессором , массивом слотов PCI и одним или двумя слотами ISA ближе к концу. В конце 2008 года даже дисководы и последовательные порты начали исчезать, а исчезновение рудиментарной шины ISA (к тому времени шины LPC) из чипсетов уже было на горизонте.
Слоты PCI «повернуты» по сравнению с их аналогами ISA — карты PCI по сути вставлялись «вверх ногами», что позволяло разъемам ISA и PCI сжиматься вместе на материнской плате. В каждом слоте можно использовать только один из двух разъемов одновременно, но это обеспечивало большую гибкость.
Интерфейс жесткого диска AT Attachment ( ATA) напрямую произошел от 16-битного ISA PC/AT. ATA берет свое начало в IBM Personal Computer Fixed Disk and Diskette Adapter, стандартном двухфункциональном контроллере гибких дисков и контроллере жесткого диска для IBM PC AT; контроллер жесткого диска на этой карте реализовал набор регистров и базовый набор команд, которые стали основой интерфейса ATA (и которые сильно отличались от интерфейса карты контроллера жесткого диска IBM для PC XT). Прямыми предшественниками ATA были сторонние жесткие карты ISA , которые интегрировали жесткий диск (HDD) и контроллер жесткого диска (HDC) на одной карте. Это было в лучшем случае неудобно, а в худшем — вредно для материнской платы, поскольку слоты ISA не были предназначены для поддержки таких тяжелых устройств, как HDD. Следующее поколение приводов Integrated Drive Electronics переместило и диск, и контроллер в отсек для дисков и использовало ленточный кабель и очень простую интерфейсную плату для подключения к слоту ISA. ATA по сути является стандартизацией этой компоновки плюс унифицированная структура команд для программного обеспечения для взаимодействия с HDC в приводе. С тех пор ATA был отделен от шины ISA и подключен напрямую к локальной шине, обычно путем интеграции в чипсет, для гораздо более высоких тактовых частот и пропускной способности данных, чем могла бы поддерживать ISA. ATA имеет четкие характеристики 16-битной ISA, такие как 16-битный размер передачи, синхронизация сигнала в режимах PIO и механизмы прерывания и DMA.
Шина PC/XT — это восьмибитная шина ISA, используемая системами Intel 8086 и Intel 8088 в IBM PC и IBM PC XT в 1980-х годах. Среди ее 62 контактов были демультиплексированные и электрически буферизированные версии 8 линий данных и 20 адресных линий процессора 8088, а также линии питания, тактовые сигналы, стробоскопы чтения/записи, линии прерываний и т. д. Линии питания включали −5 В и ±12 В для непосредственной поддержки pMOS и схем nMOS режима расширения, таких как динамическая RAM и т. д. Архитектура шины XT использует один Intel 8259 PIC , что дает восемь векторизованных и приоритетных линий прерываний. Она имеет четыре канала DMA , изначально предоставленных Intel 8237. Три канала DMA выведены в слоты расширения шины XT; из них 2 обычно уже выделены для функций машины (дисковод и контроллер жесткого диска):
Шина PC /AT , 16- разрядная (или 80286-) версия шины PC/XT, была представлена вместе с IBM PC/AT . Эта шина была официально названа IBM I/O Channel . [ требуется ссылка ] Она расширяет шину XT, добавляя второй более короткий краевой разъем в линию с восьмиразрядным разъемом шины XT, который не изменился, сохранив совместимость с большинством 8-разрядных карт. Второй разъем добавляет четыре дополнительных адресных линии, в общей сложности 24, и 8 дополнительных линий данных, в общей сложности 16. Он также добавляет новые линии прерываний, подключенные ко второму 8259 PIC (подключенному к одной из линий первого) и 4 × 16-разрядных канала DMA, а также линии управления для выбора 8- или 16-разрядных передач.
16-битный слот шины AT изначально использовал два стандартных разъема граничного разъема в ранних машинах IBM PC/AT. Однако с ростом популярности архитектуры AT и 16-битной шины ISA производители представили специализированные 98-контактные разъемы, которые объединяли два разъема в один блок. Их можно найти почти в каждом ПК класса AT, выпущенном после середины 1980-х годов. Разъем слота ISA обычно черный (что отличает его от коричневых разъемов EISA и белых разъемов PCI).
Устройства материнской платы имеют выделенные IRQ (не присутствуют в слотах). 16-битные устройства могут использовать IRQ как PC-bus, так и PC/AT-bus. Таким образом, можно подключить до 6 устройств, каждое из которых использует один 8-битный IRQ, и до 5 устройств, каждое из которых использует один 16-битный IRQ. В то же время до 4 устройств могут использовать один 8-битный канал DMA каждое, в то время как до 3 устройств могут использовать один 16-битный канал DMA каждое.
Первоначально тактовая частота шины была синхронизирована с тактовой частотой ЦП, что приводило к различным тактовым частотам шины среди множества различных «клонов» IBM на рынке (иногда достигавшим 16 или 20 МГц), что приводило к проблемам с программным обеспечением или электрической синхронизацией для некоторых карт ISA на скоростях шины, на которые они не были рассчитаны. Более поздние материнские платы или интегрированные чипсеты использовали отдельный генератор тактовой частоты или делитель тактовой частоты, который либо фиксировал частоту шины ISA на уровне 4, 6 или 8 МГц [6], либо позволял пользователю регулировать частоту через настройку BIOS . При использовании на более высокой частоте шины некоторые карты ISA ( например, некоторые видеокарты, совместимые с Hercules ) могли показывать значительное улучшение производительности.
Декодирование адреса памяти для выбора 8- или 16-битного режима передачи было ограничено секциями 128 КиБ, что приводило к проблемам при смешивании 8- и 16-битных карт, поскольку они не могли сосуществовать в одной и той же области 128 КиБ. Это связано с тем, что линия MEMCS16 должна быть установлена только на основе значения LA17-23.
ISA до сих пор используется в специализированных промышленных целях. В 2008 году IEI Technologies выпустила современную материнскую плату для процессоров Intel Core 2 Duo, которая, в дополнение к другим специальным функциям ввода-вывода, оснащена двумя слотами ISA. Она была продана промышленным и военным пользователям, которые вложились в дорогие специализированные адаптеры шины ISA, которые не были доступны в версиях шины PCI . [7]
Аналогичным образом, в начале 2013 года компания ADEK Industrial Computers выпустила современную материнскую плату для процессоров Intel Core i3/i5/i7, которая содержит один слот ISA (без DMA). [8] Кроме того, в 2020 году компания MSI выпустила современную материнскую плату с одним слотом ISA. [9]
Шина PC/104 , используемая в промышленных и встроенных приложениях, является производной от шины ISA, использующей те же сигнальные линии с другими разъемами. Шина LPC заменила шину ISA в качестве соединения с устаревшими устройствами ввода-вывода на современных материнских платах; хотя физически она довольно сильно отличается, с точки зрения программного обеспечения LPC выглядит так же, как ISA, так что особенности ISA, такие как ограничение DMA в 16 МБ (что соответствует полному адресному пространству процессора Intel 80286, используемого в оригинальном IBM AT), вероятно, сохранятся еще некоторое время.
Как объяснялось в разделе «История» , ISA был основой для разработки интерфейса ATA , используемого для жестких дисков ATA (он же IDE). Физически ATA по сути является простым подмножеством ISA с 16 битами данных, поддержкой ровно одного IRQ и одного канала DMA, а также 3 адресными битами. К этому подмножеству ISA ATA добавляет две линии выбора адреса IDE («выбора чипа») (т. е. декодирования адреса, фактически эквивалентные адресным битам) и несколько уникальных сигнальных линий, специфичных для жестких дисков ATA/IDE (например, линия выбора кабеля/синхронизации шпинделя). В дополнение к физическому каналу интерфейса ATA выходит далеко за рамки ISA, также определяя набор регистров физических устройств, которые должны быть реализованы на каждом диске ATA (IDE), и полный набор протоколов и команд устройств для управления фиксированными дисками с использованием этих регистров. Доступ к регистрам устройств ATA осуществляется с помощью адресных битов и сигналов выбора адреса в физическом интерфейсном канале ATA, а все операции с жесткими дисками ATA выполняются с использованием протоколов, указанных в ATA, через набор команд ATA. Самые ранние версии стандарта ATA включали несколько простых протоколов и базовый набор команд, сопоставимый с наборами команд контроллеров MFM и RLL (которые предшествовали контроллерам ATA), но последние стандарты ATA имеют гораздо более сложные протоколы и наборы инструкций, которые включают дополнительные команды и протоколы, предоставляющие такие расширенные функции дополнительного использования, как скрытые системные области хранения большого размера, блокировка паролем и программируемая геометрическая трансляция.
В середине 1990-х годов хост-контроллер ATA (обычно интегрированный в чипсет) был перенесен в формат PCI . [10] Еще одним отличием между ISA и ATA является то, что в то время как шина ISA оставалась заблокированной на одной стандартной тактовой частоте (для обратной аппаратной совместимости), интерфейс ATA предлагал множество различных скоростных режимов, мог выбирать среди них для соответствия максимальной скорости, поддерживаемой подключенными дисками, и продолжал добавлять более высокие скорости с более поздними версиями стандарта ATA (до 133 МБ/с для ATA-6, последней). В большинстве форм ATA работал намного быстрее, чем ISA, при условии, что он был подключен напрямую к локальной шине (например, интегрированные в южный мост интерфейсы IDE) быстрее, чем шина ISA.
До 16-битного интерфейса ATA/IDE существовал 8-битный интерфейс XT-IDE (также известный как XTA) для жестких дисков. Он не был так популярен, как ATA, и оборудование XT-IDE сейчас довольно трудно найти. Некоторые адаптеры XT-IDE были доступны в виде 8-битных карт ISA, а разъемы XTA также присутствовали на материнских платах более поздних клонов XT от Amstrad , а также недолговечной линейки устройств Philips . Распиновка XTA была очень похожа на ATA, но использовались только восемь линий данных и две линии адреса, а регистры физических устройств имели совершенно разные значения. Несколько жестких дисков (например, Seagate ST351A/X) могли поддерживать любой тип интерфейса, выбираемый с помощью перемычки.
Многие более поздние материнские платы AT (и преемники AT) не имели встроенного интерфейса жесткого диска, а полагались на отдельный интерфейс жесткого диска, подключенный к слоту ISA/EISA/VLB. Было даже несколько основанных на 80486 устройств, поставляемых с интерфейсами и дисками MFM/RLL вместо все более распространенного AT-IDE.
Commodore построила периферийный жесткий диск / модуль расширения памяти A590 на базе XT-IDE для своих компьютеров Amiga 500 и 500+, которые также поддерживали диск SCSI . Более поздние модели — серии A600 , A1200 и Amiga 4000 — используют диски AT-IDE.
Спецификацию PCMCIA можно рассматривать как надмножество ATA. Стандарт для интерфейсов жестких дисков PCMCIA , который включал флэш-накопители PCMCIA, допускает взаимную настройку порта и накопителя в режиме ATA. Как фактическое расширение, большинство флэш-накопителей PCMCIA дополнительно допускают простой режим ATA, который включается путем понижения уровня одного контакта, так что для их использования в качестве накопителя ATA, подключенного к порту ATA, не требуется аппаратное обеспечение и прошивка PCMCIA. Адаптеры флэш-накопителя PCMCIA в ATA, таким образом, просты и недороги, но не гарантируют работу с любым стандартным флэш-накопителем PCMCIA. Кроме того, такие адаптеры не могут использоваться в качестве универсальных портов PCMCIA, поскольку интерфейс PCMCIA намного сложнее ATA.
Хотя большинство современных компьютеров не имеют физических шин ISA, почти все ПК — IA-32 и x86-64 — имеют шины ISA, выделенные в физическом адресном пространстве. Некоторые южные мосты и некоторые процессоры сами предоставляют такие услуги, как мониторинг температуры и показания напряжения через шины ISA как устройства ISA. [ необходима цитата ]
IEEE начал стандартизацию шины ISA в 1985 году, назвав ее спецификацией P996. Однако, несмотря на публикацию книг по спецификации P996, она официально так и не вышла за рамки чернового варианта. [11]
Все еще существует база пользователей со старыми компьютерами, поэтому некоторые карты ISA все еще производятся, например, с портами USB [12] или полные одноплатные компьютеры на базе современных процессоров, USB 3.0 и SATA . [13]