Plug and Play

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

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

История технологии[править | править код]

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

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

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

Jumperblock-shunts.jpg DIP switch 01 Pengo.jpg
Слева: Блоки джамперов различного размера. Справа: Блок 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. Без диска новое устройство было полностью бесполезным и компьютер не мог нормально загрузиться до того, как это устройство не будет отключено от шины расширения. В то же время, преимуществом такого подхода была теоретическая возможность обновить информацию, необходимую для работы устройства.

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

EISA[править | править код]

Выпущенный консорциумом из 9 производителей 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