Открыть главное меню

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

Шина 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
  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.».
  3. “Does it pay to Plug and Play (COVER STORY”. BYTE. October 1991.
  4. Gordon Laing. Digital Retro: The Evolution and Design of the Personal Computer. — Ilex Press, 2004.
  5. Slot Expanders на сайте MSX.ORG.
  6. An examination of architectures for interfacing to the NuBus. Massachusetts Institute of Technology. Dept. of Electrical (1984).
  7. The IBM PS/2: 25 years of PC history (July 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.».
  8. Open Standards vs. IBM – Remembering the MicroChannel Architecture (December 9, 2004). — «the PS/2 based on the proprietary MicroChannel architecture ... was not what the market demanded».
  9. Scott Mueller, Upgrading and Repairing PCs, Eleventh Edition, Que, 2999, ISBN 0-7897-1903-7, page 1370