
「Legacy Plug and Play」 [ 1 ] ( Legacy PnP [ 2 ]とも略される)という用語は、デバイスのオペレーティングシステム構成を目的とした一連の仕様とMicrosoft Windows機能を指し、一部のデバイスIDはUEFI Forumによって割り当てられています。[ 3 ]これらの規格は主にIBM PC標準バスを対象としており、後にIndustry Standard Architecture(ISA)と呼ばれるようになりました。関連仕様は、開発当時ISAを介して一般的に接続されていたRS-232やパラレルポートデバイスなどの一般的な外部バスや特殊バスについても定義されています。
Windowsの機能として、プラグアンドプレイとは、ネイティブのプラグアンドプレイデバイスとの接続、構成、管理をサポートするオペレーティングシステムの機能を指します。[ 4 ]当初は仕様と同じ機能セットの一部と考えられていましたが、この文脈でのプラグアンドプレイは、主にWindowsドライバ開発に関連する責任とインターフェースを指します。[ 5 ]
プラグアンドプレイは、ユーザーの介入なしにデバイスを検出し、場合によってはI/Oポートやデバイスメモリマップなどのデバイスリソースの軽微な構成を可能にします。PnPは特定の標準規格のセットであり、デバイスリソースのユーザー構成の必要性を軽減するあらゆるハードウェア仕様を指す一般的な用語であるプラグアンドプレイと混同しないでください。[ 6 ]
ACPIは、従来のプラグアンドプレイの後継規格です。
プラグアンドプレイ規格では、デバイスの設定はPnP BIOSによって処理され、PnP BIOSはリソース割り当ての詳細をオペレーティングシステムに提供します。このプロセスは起動時に実行されます。コンピュータの電源が最初にオンになると、互換性のあるデバイスが識別され、競合しないI/Oアドレス、割り込み要求番号、およびDMAチャネルが割り当てられます。
この用語は、Microsoft が自社のWindows 95製品に関して採用したものです。AmigaOS AutoconfigやMac OS NuBusシステムなどの他のオペレーティングシステムは、すでにしばらくの間、このような機能をサポートしていました (さまざまな名前で、または名前なしで)。[ 7 ] Yggdrasil Linuxでさえ、Windows 95 より少なくとも 2 年前には「プラグ アンド プレイ Linux」として宣伝していました。しかし、プラグ アンド プレイという用語は、Windows が世界的に受け入れられたことにより、徐々に普遍的なものとなりました。
通常、PnP 以外のデバイスはコンピュータの BIOS 設定で識別する必要があり、そうしないと PnP システムが他のデバイスに PnP 以外のデバイスが使用しているリソースを割り当ててしまう。従来の PnP 以外のデバイスと PnP システム間の相互作用に問題があると、PnP システムが故障する可能性があり、この技術は歴史的に「プラグアンドプレイ」と呼ばれてきた。[ 2 ]
レガシー プラグ アンド プレイ仕様は、 MicrosoftとIntelによって定義され、オペレーティングシステムに紐づいたデバイスの検出をサポートするために、レガシー ハードウェアとBIOSに変更を加えることが提案されました。これらの役割は後にACPI標準[ 1 ]に引き継がれ、電源管理と構成のサポートも、以前の「プラグ アンド プレイ BIOS」およびAPM仕様で必要とされていたファームウェアではなく、オペレーティングシステムに移行されました。以下の標準は、 PCIやUSBなどのネイティブ プラグ アンド プレイ仕様とは対照的に、Microsoft がレガシー プラグ アンド プレイと呼ぶものを構成します。
Windows VistaではACPI準拠のBIOSが必要であり、ISAPnPはデフォルトで無効になっています。[ 11 ]
プラグアンドプレイを使用するには、次の3つの要件を満たす必要があります。
プラグアンドプレイハードウェアは通常、コンピュータソフトウェアがそれを正しく識別できるように、何らかのIDコードを提供する必要があります。プラグアンドプレイIDには、3バイトの製造元IDと2バイトの16進数(例:PNP0A08)または4バイトの製造元IDと2バイトの16進数(例:MSFT0101)の2つの形式があります。[ 12 ]さらに、PnPデバイスにはクラスコードとサブシステムIDがある場合があります。[ 13 ]
このIDコードシステムは、プラグアンドプレイが初めて導入された当時、PCで一般的だった初期の業界標準アーキテクチャ(ISA)ハードウェアには統合されていませんでした。ISAプラグアンドプレイは、当初PnPの信頼性を著しく低下させる大きな要因の一つでした。そのため、初期の頃はI/OアドレスやIRQラインの設定ミスが頻繁に発生し、「プラグアンドプレイ」という皮肉な呼び名が生まれました。その後、MCA、EISA、そして当時業界標準になりつつあったPCIといったコンピュータバスに、この機能が統合されました。
最後に、コンピュータのオペレーティングシステムはこれらの変更を処理できる必要があります。通常、これは構成が変更されたことを示すバスからの割り込みを探し、バスから情報を読み取って何が起こったのかを特定することを意味します。古いバス設計では、これらの変更を特定するためにシステム全体を読み取る必要があったため、多くのデバイスで時間がかかることがありました。より新しい設計では、この「探索」を軽減または排除する何らかのシステムが採用されています。たとえば、USBはこの目的でハブシステムを使用しています。
変更箇所が特定されると、OSはデバイス内の情報を調べて、それが何であるかを判断します。そして、デバイスを動作させるために適切なデバイスドライバをロードする必要があります。以前は、これはすべてを実行するか、何も実行しないかの二択でしたが、最新のオペレーティングシステムには、インターネット上で適切なドライバを検索して自動的にインストールする機能が搭載されていることがよくあります。