Введение
Автоматическое обнаружение компонентов без ручной настройки.
В вычислительной технике устройство или компьютерная шина Plug and Play (PnP) – это устройство, спецификация которого упрощает распознавание аппаратного компонента в системе без необходимости физической настройки устройства или вмешательства пользователя в разрешение конфликтов ресурсов. Термин "Plug and Play" (в переводе – "подключи и работай") с тех пор распространился на широкий спектр приложений, где также требуется отсутствие ручной настройки. Устройства расширения управляются и обмениваются данными с хост-системой через определенные адреса памяти или порты ввода-вывода, каналы прямого доступа к памяти, линии запроса прерываний и другие механизмы, которые должны быть уникально связаны с конкретным устройством для его работы. Некоторые компьютеры предоставляли уникальные комбинации этих ресурсов для каждого слота материнской платы или бэкплейна. Другие конструкции предоставляли все ресурсы для всех слотов, и каждое периферийное устройство имело собственное адресное декодирование для регистров или блоков памяти, необходимых для связи с хост-системой. Поскольку фиксированное назначение ресурсов затрудняло расширение системы, устройства использовали различные ручные методы для назначения адресов и других ресурсов, такие как перемычки, контакты, которые можно было соединять проводами или съемными перемычками, или переключатели, которые можно было установить для определенных адресов. С появлением микропроцессоров и доступностью компьютеров для массового рынка, программная конфигурация устройств ввода-вывода стала преимуществом, позволяя устанавливать устройства пользователям без специальной подготовки. Ранние системы программной конфигурации устройств включали стандарты MSX, NuBus, Amiga Autoconfig и IBM Microchannel. Изначально все карты расширения для IBM PC требовали физического выбора конфигурации ввода-вывода на плате с помощью перемычек или DIP-переключателей, но все чаще устройства шины ISA были организованы для программной конфигурации. К 1995 году Microsoft Windows включила в себя комплексный метод перечисления оборудования при загрузке и распределения ресурсов, который получил название стандарта "Plug and Play". Устройства Plug and Play могут получать ресурсы только при загрузке, либо быть системами горячего подключения, такими как USB и IEEE 1394 (FireWire).
История конфигурации устройства
Некоторые ранние периферийные устройства микрокомпьютеров требовали от конечного пользователя физически перерезать некоторые провода и спаивать другие для изменения конфигурации; эти изменения предполагалось делать долгосрочными на весь срок службы оборудования. По мере того, как компьютеры становились более доступными для широкой публики, возникла потребность в более частых изменениях, которые должны были вносить пользователи, не умеющие пользоваться паяльником. Вместо перерезания и спайки соединений, конфигурация осуществлялась с помощью перемычек или DIP-переключателей. Позже этот процесс настройки был автоматизирован: Plug and Play. был спроектирован с учетом принципа "подключил и работай" и достиг этого благодаря системе слотов и подслотов, каждый из которых имел собственное виртуальное адресное пространство, что позволило исключить конфликты адресов устройств на самом начальном этапе. Перемычки или ручная настройка не требовались, а независимое адресное пространство для каждого слота позволяло использовать очень дешевые и распространенные микросхемы вместе с недорогой логикой. Что касается программного обеспечения, драйверы и расширения поставлялись во встроенной ПЗУ карты, что исключало необходимость в дисках или каком-либо вмешательстве пользователя для настройки программного обеспечения. Расширения ПЗУ абстрагировали любые различия в аппаратном обеспечении и предоставляли стандартные API, как это определено корпорацией ASCII.
Нубус
В 1984 году архитектура NuBus была разработана Массачусетским технологическим институтом (MIT) как платформенно-независимый периферийный интерфейс, полностью автоматизирующий настройку устройств. Спецификация была достаточно продвинутой, чтобы работать как с компьютерами с прямой, так и с обратной порядком байтов, которые ранее были взаимно несовместимы. Однако такой платформенно-независимый подход усложнял взаимодействие и требовал наличия специальных микросхем поддержки на каждом устройстве, что было дорогостоящим в 1980-х годах. Помимо использования в компьютерах Apple Macintosh и NeXT, эта технология не получила широкого распространения.
Автоконфигурация Amiga и Zorro bus
В 1984 году компания Commodore разработала протокол Autoconfig и шину расширения Zorro для своей линейки расширяемых компьютеров Amiga. Первое публичное представление состоялось на компьютерной выставке CES в Лас-Вегасе в 1985 году с прототипом под названием "Lorraine". Как и NuBus, устройства Zorro не имели перемычек или DIP-переключателей. Информация о конфигурации хранилась на устройстве, предназначенном только для чтения, на каждом периферийном устройстве, а при загрузке хост-система выделяла запрошенные ресурсы установленной карте. Архитектура Zorro не получила распространения за пределами линейки продуктов Amiga, но впоследствии была модернизирована до Zorro II и Zorro III для более поздних моделей компьютеров Amiga.
Архитектура микроканалов
В 1987 году IBM выпустила обновление для IBM PC, известное как линейка компьютеров Personal System/2, использующая архитектуру Micro Channel. PS/2 был способен к полностью автоматической самоконфигурации. Каждое устройство расширения поставлялось с дискетой, содержащей специальный файл для автоматической настройки оборудования для работы с компьютером. Пользователь устанавливал устройство, включал компьютер, загружал конфигурационную информацию с диска, и аппаратное обеспечение автоматически назначало прерывания, каналы DMA и другие необходимые параметры. Однако дискеты создавали проблему, если они повреждались или терялись, поскольку в то время единственными способами получить замену были почтовые отправления или служба BBS IBM. Без дискет любое новое оборудование становилось совершенно бесполезным, а компьютер иногда вообще не загружался, пока не было удалено неконфигурированное устройство. Архитектура Micro Channel не получила широкого распространения, поскольку IBM стремилась исключить производителей клонов из этой вычислительной платформы нового поколения. Любой разработчик для MCA должен был подписывать соглашения о неразглашении и выплачивать IBM роялти за каждое проданное устройство, что приводило к увеличению стоимости устройств MCA. Конечные пользователи и производители клонов выступили против IBM и разработали собственную шину открытых стандартов, известную как EISA. В результате использование MCA осталось ограниченным, за исключением мэйнфреймов IBM.
Самоконфигурация ISA и PCI
Со временем многие карты с архитектурой Industry Standard Architecture (ISA) включали в себя, с помощью запатентованных и разнообразных методов, аппаратное обеспечение для самоконфигурации или для обеспечения программной конфигурации; часто карта поставлялась с программой конфигурации на диске, которая могла автоматически настраивать аппаратное обеспечение, конфигурируемое программным обеспечением (но не самоконфигурирующееся). Некоторые карты имели как перемычки, так и программную конфигурацию, при этом некоторые настройки контролировались каждым из этих способов; такой компромисс уменьшал количество перемычек, которые необходимо было устанавливать, избегая при этом значительных затрат на определенные настройки, например, энергонезависимые регистры для установки базового адреса. Проблемы, связанные с необходимостью установки перемычек, сохранялись, но постепенно уменьшались, поскольку все больше и больше устройств, как ISA, так и других типов, включали дополнительное оборудование для самоконфигурации. Однако эти усилия все еще не решали проблему обеспечения конечного пользователя соответствующим программным драйвером для оборудования. ISA PnP или (устаревшая) Plug & Play ISA была системой Plug & Play, которая использовала комбинацию модификаций аппаратного обеспечения, системного BIOS и программного обеспечения операционной системы для автоматического управления распределением ресурсов. Она была вытеснена шиной PCI в середине 1990-х годов. Автоконфигурация PCI Plug & Play основана на спецификации PCI BIOS в 1990-х годах, которая, в свою очередь, была заменена ACPI в 2000-х годах.