В вычислительной технике устройство plug and play ( PnP ) или компьютерная шина — это устройство со спецификацией, которая облегчает распознавание аппаратного компонента в системе без необходимости физической конфигурации устройства или вмешательства пользователя в разрешение конфликтов ресурсов. [1] [2] Термин «plug and play» с тех пор был расширен до широкого спектра приложений, к которым применяется то же отсутствие настройки пользователем. [3] [4]
Устройства расширения управляются и обмениваются данными с хост-системой через определенные адреса портов памяти или ввода-вывода , каналы прямого доступа к памяти , линии запроса прерывания и другие механизмы, которые должны быть однозначно связаны с конкретным устройством для работы. Некоторые компьютеры предоставляли уникальные комбинации этих ресурсов для каждого слота материнской платы или объединительной платы . Другие конструкции предоставляли все ресурсы для всех слотов, и каждое периферийное устройство имело собственное декодирование адреса для регистров или блоков памяти, необходимых для связи с хост-системой. Поскольку фиксированные назначения затрудняли расширение системы, устройства использовали несколько ручных методов для назначения адресов и других ресурсов, таких как жестко закрепленные перемычки, штыри, которые можно было подключить с помощью проводов или съемных ремней, или переключатели, которые можно было установить для определенных адресов. [5] Поскольку микропроцессоры сделали компьютеры массового рынка доступными, программная конфигурация устройств ввода-вывода была выгодна для возможности установки неспециалистами. Ранние системы для программной конфигурации устройств включали стандарт MSX , NuBus , Amiga Autoconfig и IBM Microchannel. Первоначально все карты расширения для IBM PC требовали физического выбора конфигурации ввода-вывода на плате с помощью перемычек или DIP-переключателей , но все больше устройств шины ISA организовывались для программной конфигурации. [6] К 1995 году Microsoft Windows включила комплексный метод перечисления оборудования во время загрузки и выделения ресурсов, который был назван стандартом «Plug and Play». [7]
Устройства Plug and Play могут иметь ресурсы, выделенные только во время загрузки, или могут быть системами горячего подключения , такими как USB и IEEE 1394 (FireWire). [8]
Некоторые ранние периферийные устройства микрокомпьютеров требовали от конечного пользователя физического перерезания одних проводов и спаивания других для внесения изменений в конфигурацию; [9] такие изменения должны были быть в значительной степени постоянными на весь срок службы оборудования.
По мере того, как компьютеры становились все более доступными для широкой публики, возникла необходимость в более частых изменениях, которые должны были вноситься пользователями компьютеров, не имеющими навыков использования паяльников. Вместо резки и пайки соединений, конфигурация выполнялась с помощью перемычек или DIP-переключателей . Позже этот процесс конфигурации был автоматизирован: Plug and Play. [6]
Система MSX , выпущенная в 1983 году, [10] была разработана с нуля, чтобы быть plug and play, и достигала этого с помощью системы слотов и подслотов, где каждый имел свое собственное виртуальное адресное пространство , тем самым устраняя конфликты адресации устройств в самом его источнике. Не требовалось никаких перемычек или какой-либо ручной настройки, а независимое адресное пространство для каждого слота позволяло использовать очень дешевые и обычные чипы, наряду с дешевой клеевой логикой . Что касается программного обеспечения, драйверы и расширения поставлялись в собственном ПЗУ карты, таким образом, не требовалось никаких дисков или какого-либо вмешательства пользователя для настройки программного обеспечения. Расширения ПЗУ абстрагировали любые аппаратные различия и предлагали стандартные API, как указано ASCII Corporation .
В 1984 году Массачусетский технологический институт (MIT) разработал архитектуру NuBus [11] как платформенно-независимый периферийный интерфейс, который полностью автоматизировал конфигурацию устройств. Спецификация была достаточно интеллектуальной, чтобы работать как с big endian , так и с little endian компьютерными платформами, которые ранее были взаимно несовместимы. Однако этот агностический подход увеличил сложность интерфейса и потребовал поддержки чипов на каждом устройстве, что в 1980-х годах было дорого, и, за исключением использования в Apple Macintosh и машинах NeXT , эта технология не получила широкого распространения.
В 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 . [12] PS/2 была способна к полностью автоматической самонастройке. Каждая часть оборудования расширения выпускалась с дискетой, содержащей специальный файл, используемый для автоматической настройки оборудования для работы с компьютером. Пользователь устанавливал устройство, включал компьютер, загружал информацию о конфигурации с диска, и оборудование автоматически назначало прерывания, DMA и другие необходимые настройки.
Однако диски представляли собой проблему в случае их повреждения или потери, поскольку единственными вариантами получения замены в то время были почтовые отправления или коммутируемая служба BBS IBM . Без дисков любое новое оборудование было бы совершенно бесполезным, а компьютер иногда вообще не загружался, пока не было удалено ненастроенное устройство.
Micro Channel не получил широкой поддержки, [13] потому что IBM хотела исключить производителей клонов из этой вычислительной платформы следующего поколения. Любой, кто разрабатывал для MCA, должен был подписать соглашения о неразглашении и выплачивать IBM роялти за каждое проданное устройство, что привело к ценовой надбавке на устройства MCA. Конечные пользователи и производители клонов восстали против IBM и разработали собственную шину открытых стандартов, известную как EISA. Следовательно, использование MCA зачахло, за исключением мэйнфреймов IBM.
Со временем многие карты промышленной стандартной архитектуры (ISA) включали, посредством фирменных и разнообразных методов, аппаратное обеспечение для самонастройки или для обеспечения программной конфигурации; часто карта поставлялась с программой конфигурации на диске, которая могла автоматически устанавливать программно-конфигурируемое (но не самонастраивающееся) оборудование. Некоторые карты имели как перемычки, так и программную конфигурацию, причем некоторые настройки контролировались каждым из них; этот компромисс уменьшил количество перемычек, которые нужно было установить, избежав при этом больших затрат на определенные настройки, например, энергонезависимые регистры для настройки базового адреса. Проблемы с необходимыми перемычками продолжались, но постепенно уменьшались, поскольку все больше и больше устройств, как ISA, так и других типов, включали дополнительное аппаратное обеспечение для самонастройки. Однако эти усилия все еще не решили проблему обеспечения конечного пользователя соответствующим программным драйвером для оборудования.
ISA PnP или (устаревшая) Plug & Play ISA была системой plug-and-play, которая использовала комбинацию модификаций оборудования, системного BIOS и программного обеспечения операционной системы для автоматического управления распределением ресурсов. Она была заменена шиной PCI в середине 1990-х годов.
Технология PCI plug and play (автоконфигурация) основана на спецификации PCI BIOS 1990-х годов, которая была заменена спецификацией ACPI в 2000-х годах.
В 1995 году Microsoft выпустила Windows 95 , которая попыталась максимально автоматизировать обнаружение и настройку устройств, но все еще могла вернуться к ручным настройкам, если это было необходимо. Во время первоначального процесса установки Windows 95 она пыталась автоматически обнаружить все устройства, установленные в системе. Поскольку полное автоматическое обнаружение всего было новым процессом без полной поддержки отрасли, процесс обнаружения постоянно записывал в файл журнала отслеживания прогресса во время процесса обнаружения. В случае, если проверка устройства не удавалась и система зависала, конечный пользователь мог перезагрузить компьютер, перезапустить процесс обнаружения, и установщик использовал журнал отслеживания, чтобы пропустить точку, вызвавшую предыдущее зависание. [14]
В то время в системе могла быть смесь устройств, некоторые из которых могли автоматически настраиваться, а некоторые все еще использовали полностью ручные настройки с помощью перемычек и DIP-переключателей. Старый мир DOS все еще скрывался под Windows 95, и системы могли быть настроены на загрузку устройств тремя различными способами:
Microsoft не могла утверждать полный контроль над всеми настройками устройств, поэтому файлы конфигурации могли включать смесь записей драйверов, вставленных автоматическим процессом настройки Windows 95, а также могли включать записи драйверов, вставленные или измененные вручную самими пользователями компьютеров. Диспетчер устройств Windows 95 также мог предлагать пользователям выбор из нескольких полуавтоматических конфигураций, чтобы попытаться освободить ресурсы для устройств, которые все еще нуждались в ручной настройке.
Кроме того, хотя некоторые более поздние устройства ISA могли автоматически настраиваться, платы расширения PC ISA обычно ограничивали себя очень небольшим количеством вариантов выбора для линий запроса прерывания. Например, сетевой интерфейс может ограничить себя только прерываниями 3, 7 и 10, в то время как звуковая карта может ограничить себя прерываниями 5, 7 и 12. Это приводит к небольшому количеству вариантов конфигурации, если некоторые из этих прерываний уже используются каким-либо другим устройством.
Аппаратное обеспечение персональных компьютеров дополнительно ограничивало возможности расширения устройств, поскольку прерывания не могли быть общими, а некоторые многофункциональные платы расширения использовали несколько прерываний для различных функций платы, например, двухпортовая последовательная плата, требующая отдельного прерывания для каждого последовательного порта.
Из-за этой сложной операционной среды процесс автоопределения иногда выдавал неверные результаты, особенно в системах с большим количеством устройств расширения. Это приводило к конфликтам устройств в Windows 95, в результате чего устройства, которые должны были быть полностью самонастраиваемыми, не работали. Ненадежность процесса установки устройств привела к тому, что Plug and Play иногда называли Plug and Pray . [15]
Примерно до 2000 года ПК-компьютеры все еще можно было купить с комбинацией слотов ISA и PCI, поэтому все еще была возможность, что ручная настройка устройств ISA может потребоваться. Но с последующими выпусками новых операционных систем, таких как Windows 2000 и Windows XP, Microsoft имела достаточно влияния, чтобы заявить, что драйверы больше не будут предоставляться для старых устройств, которые не поддерживают автоматическое определение. В некоторых случаях пользователь был вынужден покупать новые устройства расширения или полностью новую систему для поддержки следующего выпуска операционной системы.
В настоящее время используется несколько полностью автоматизированных компьютерных интерфейсов, каждый из которых не требует настройки устройства или других действий со стороны пользователя компьютера, кроме установки программного обеспечения, для самоконфигурируемых устройств. Эти интерфейсы включают:
Для большинства этих интерфейсов конечному пользователю доступно очень мало технической информации о производительности интерфейса. Хотя и FireWire, и USB имеют пропускную способность, которая должна быть общей для всех устройств, большинство современных операционных систем не могут контролировать и сообщать о количестве используемой или доступной пропускной способности или определять, какие устройства в данный момент используют интерфейс. [ необходима цитата ]
Run-time services (обнаруживаемые только в программном обеспечении) являются центральными в Windows ... который находит заголовок Plug and Play, а затем вызывает run-time services. ... Windows 95 включает в себя мастер "Добавить новое оборудование"
На карте Disk II, пока Apple II простаивал, я измерил 600 мВ... Перережьте дорожку для питания стороны B VCC 3,3 В и используйте провод для накрутки и припаяйте его к +5 В.
К моменту запуска PS/2 в 1987 г. IBM PC ... Линейка была запущена в апреле 1987 г. с ... новой шиной расширения, получившей название Micro Channel Architecture.
PS/2, основанная на фирменной архитектуре MicroChannel ... не соответствовала требованиям рынка
Итак, Plug and Play звучит здорово, не так ли? Ну, так оно и есть... когда все работает правильно (вот почему его иногда также называют "Plug and Pray"!)