Plug and Play

Plug and Play (сокр. PnP), дословно переводится как «Подключи и играй (работай)» — технология, предназначенная для быстрого определения и конфигурирования устройств в компьютере и других технических устройствах. В зависимости от аппаратного интерфейса и программной платформы (ОС, BIOS), процедура Plug and Play может производиться на этапе начальной загрузки системы или в режиме горячей замены — так это делается, например, для интерфейсов USB и IEEE 1394[1].

История технологии

Плата последовательного интерфейса Apple II, требовавшая обрезки и перепайки дорожек для переконфигурирования

Некоторые ранние компьютерные системы, например, Apple II, могли требовать от пользователя перепаивать и разрезать контакты на платах расширения для их переконфигурирования[2]. Такая техника переконфигурирования была сложной и радикально уменьшала срок работы оборудования.

По мере того, как компьютеры становились доступными всё более широким слоям публики, стали требоваться более простые, удобные и доступные для частого использования технологии переконфигурирования. Первоначально вместо обрезки и перепайки проводников для смены конфигурации карт расширения были предложены джамперы (перемычки) и DIP-переключатели.

Слева: Блоки джамперов различного размера. Справа: Блок DIP-переключателей с 8 переключателями

Позднее процесс переконфигурирования плат расширения был автоматизирован[3].

MSX

Выпущенная в 1983 году система MSX[4] была изначально разработана как система, ориентированная на работу с Plug and Play. Это было реализовано с использованием специально организованной системы слотов расширения, каждый из которых, включая субслоты в случае использования расширителя слотов (slot expander)[5], обладал собственным виртуальным адресным пространством, что устраняло сам источник для возможных конфликтов адресов между устройствами. Для конфигурирования системы не требовалось переключать джамперы или проводить любые другие процедуры в ручном режиме. Независимое адресное пространство позволяло использовать в устройствах расширения дешевые микросхемы. Слой промежуточной логики, осуществлявший ретрансляцию виртуальных адресов в реальные, так же оказался весьма дешёв в реализации.

На стороне программного обеспечения драйверы и расширения программного обеспечения поставлялись в постоянной памяти, расположенной на картах расширения. Это позволило ASCII Corporation создать систему, которая не требовала дисков с драйверами и каких-либо пользовательских манипуляций с программным обеспечением во время установки дополнительного оборудования. Расширения BIOS, устанавливаемые на ПЗУ (ROM Extansions в терминологии MSX), обеспечивали реализацию слоя аппаратных абстракций (HAL), который позволял программному обеспечению работать со стандартным API устройств, не обращая внимания на особенности его аппаратной реализации.

NuBus

Видеокарта стандарта NuBus без джамперов и DIP-переключателей

Разработанная в 1984 в Массачусетском технологическом институте архитектура шины расширения NuBus была задумана[6] как нейтральный по отношению к используемой платформе интерфейс с полностью автоматическим конфигурированием подключённых к нему устройств. Спецификация интерфейса включала в себя даже одновременную поддержку как big endian, так и little endian представления чисел, бывших ранее одной из причин несовместимости платформ. Однако, повышенная сложность реализации нейтрального по отношению к платформе интерфейса, требовавшая более дорогих чипов, в 1980-х годах стала фактором, воспрепятствовавшим широкому распространению этого интерфейса.

Amiga Autoconfig и Zorro II

В 1984 году компания Commodore разработала протокол Autoconfig и шину расширения Zorro для своего семейства персональных компьютеров Amiga. Разработка была впервые представлена публике на выставке Consumer Electronics Show, проходившей в Лас-Вегасе в 1985, под названием «Lorraine», данному прототипу технологии. Так же, как и NuBus, устройства, подключаемые к шине Zorro, не требовали никаких джамперов и DIP-переключателей. Сведения о конфигурации устройства хранились в ПЗУ карты расширения, и хост-система-при загрузке выделяла карте необходимые ей ресурсы. Архитектура Zorro не получила широкого распространения в индустрии и, практически, не применялась за пределами продуктовой линейки Amiga. Однако, она последовательно обновлялась до версии Zorro II и 32-битной Zorro III.

Micro Channel Architecture

Карта расширения MCA без джамперов и DIP-переключателей

В 1987-м IBM выпустила обновленную линейку моделей IBM PC, известную как семейство Personal System/2, использовавшую новую шину расширения — Micro Channel Architecture[7]. PS/2 были способны к полностью автоматическому самоконфигурированию. Каждое из устройств расширения поставлялось в комплекте с дискетой, содержащей специальный файл, предназначенный для конфигурирования системы. Пользователь устанавливал плату расширения, включал компьютер, вставлял дискету, и компьютер автоматически назначал прерывания, каналы DMA и прочие требуемые плате ресурсы.

По сравнению с реализациями в упомянутых выше системах такая схема автоконфигурирования имела один недостаток: дискета могла испортиться или потеряться, а единственный способ восстановления необходимого файла настроек — это получение его от компании по почте или загрузка с BBS компании IBM. Без диска новое устройство было полностью бесполезным, и компьютер не мог нормально загрузиться до того, как это устройство не будет отключено от шины расширения. В то же время, преимуществом такого подхода была теоретическая возможность обновить информацию, необходимую для работы устройства.

Шина MCA не получила широкой поддержки[8], поскольку IBM препятствовала её использованию независимыми производителями IBM-PC-совместимых компьютеров. Каждый из разработчиков устройств, совместимых с MCA, подписывал с IBM соглашение о неразглашении технических деталей и должен был платить лицензионные отчисления с каждого устройства, что повышало их стоимость.

EISA

Выпущенный консорциумом из девяти производителей IBM-PC-совместимых компьютеров стандарт EISA позиционировался как альтернатива MCA. Он обладал чрезвычайно схожим способом реализации Plug and Play, основанном на файлах конфигурации, поставляемых в комплекте с дискетами. Однако, в отличие от MCA, компьютер с несконфигурированным устройством EISA всё же мог загрузиться и продолжить работу без доступа программного обеспечения к этому устройству.

Так же как и Micro Channel, EISA не получила широкого распространения, и в дальнейшем сама технология и основанная на ней реализация Plug and Play не развивались.

ISA и PCI

Шина ISA появилась раньше, чем в системы с её использованием стала внедряться технология Plug and Play. В связи с этим карты расширения, работающие с этой шиной, использовали массу разнообразных техник настройки, включая джамперы, DIP-переключатели, фирменные драйверы и утилиты и прочие методы в разнообразных комбинациях. Появление на картах Plug and Play в виде спецификации от Microsoft дополнительно усложнило эту систему, тем более, что различные операционные системы реализовывали Plug and Play по-разному.

Остроту проблемы с настройкой карт ISA для конечных пользователей сняло, скорее, не внедрение Plug and Play, а постепенный выход этого стандарта из широкого оборота. Упомянутая спецификация Microsoft ISA PnP, она же Legacy Plug and Play, включала в себя требования как к оборудованию, так и к доработкам BIOS и поведению операционной системы. Она потеряла свою актуальность по мере распространения стандарта PCI, в котором технология Plug and Play была реализована изначально.

В 1995 году Microsoft выпустила Windows 95, в которой впервые попыталась автоматизировать определение установленных устройств и их конфигурирование в той степени, в которой это было вообще возможно и с реализацией режима возврата к ручному конфигурированию системы, если это было необходимо. Во время процесса начальной установки Windows 95 она пыталась первоначально определить все устройства, установленные в системе. Постольку этот процесс не поддерживался индустрией в полном объёме и не обладал обратной совместимостью, операционная система писала журнал, в котором маркировала попытки автоопределения устройств. Если в результате этой процедуры компьютер подвисал, то у пользователя оставалась возможность принудительно его перезагрузить. Процесс автоопределения конфигурации компьютера при новой её загрузке продолжался с пропуском той его фазы, которая ранее вызвала зависание. Таким образом система могла постепенно пройти процедуру определения конфигурации компьютера до конца[9].

VMEbus и производные технологии

Несмотря на то, что в первоначальной реализации шины VMEbus технология Plug and Play реализована не была, ряд расширений и производных стандартов, в частности, VME64x, поддерживает Plug and Play. В целом ситуацию с конфигурированием VMEbus-совместимых плат можно сравнить c ситуацией с платами ISA — не полностью общепринятые стандарты сочетаются с частными решениями отдельных производителей в произвольных комбинациях.

Текущее состояние технологии

В настоящее время основная острота проблемы с автоопределением конфигурации компьютеров операционной системой для компьютеров общего применения давно уже снята. Абсолютное большинство устройств, интерфейсов расширения и операционных систем поддерживает процедуры Plug and Play.

Среди таких интерфейсов можно назвать

и многие другие.

В то же время в большинстве случаев пользователь оказывается лишён контроля за тонкостями настройки своих устройств и периферийных интерфейсов компьютера. Например, такие интерфейсы, как FireWire и USB, делят пропускную способность между всеми устройствами, подключенными к конкретному порту такого интерфейса, но у пользователя нет возможности управлять распределением полосы пропускания между этими устройствами. Оно обеспечивается автоматически средствами операционной системы.

См. также

Примечания

  1. Plug and Play Definition. Дата обращения: 26 ноября 2018. Архивировано 26 ноября 2018 года.
  2. Apple II Card Electrical Woes. BigMESSoWires.com (Big Mess o' Wires). — «On the Disk II card, while the Apple II was idle, I measured 600 mV… Cut the trace for the B VCC side power supply of 3.3 and use wire wrap wire and solder it to +5v.» Дата обращения: 25 ноября 2018. Архивировано 17 октября 2018 года.
  3. Does it pay to Plug and Play (COVER STORY (англ.) // BYTE : magazine. — 1991. — October.
  4. Gordon Laing. Digital Retro: The Evolution and Design of the Personal Computer (англ.). — Ilex Press[англ.], 2004.
  5. Slot Expanders на сайте MSX.ORG. Дата обращения: 26 ноября 2018. Архивировано 26 ноября 2018 года.
  6. An examination of architectures for interfacing to the NuBus. Massachusetts Institute of Technology. Dept. of Electrical (1984). Дата обращения: 27 ноября 2018. Архивировано 25 февраля 2021 года.
  7. The IBM PS/2: 25 years of PC history (10 июля 2012). — «By the time of the PS/2's launch in 1987, IBM PC ... The line launched in April 1987 with ... its new expansion bus, dubbed Micro Channel Architecture.» Дата обращения: 29 ноября 2018. Архивировано 17 октября 2018 года.
  8. Open Standards vs. IBM — Remembering the MicroChannel Architecture (9 декабря 2004). — «the PS/2 based on the proprietary MicroChannel architecture… was not what the market demanded». Дата обращения: 29 ноября 2018. Архивировано 31 марта 2019 года.
  9. Scott Mueller, Upgrading and Repairing PCs, Eleventh Edition, Que, 2999, ISBN 0-7897-1903-7, page 1370