레거시 플러그 앤 플레이

[섬네일|[사운드 블라스터 AWE32 PNP CT3990 사운드 카드에는 플러그 앤 플레이 ISA 버스 인터페이스 칩(하단 중간에 있는 큰 사각형 칩)이 있다.]]

**레거시 플러그 앤 플레이**(Legacy Plug and Play)는 줄여서 **레거시 PnP**(Legacy PnP)라고도 하며, 마이크로소프트 윈도우 운영체제에서 장치 구성을 위한 일련의 사양과 기능을 설명하며, 일부 장치 ID는 UEFI 포럼에서 할당한다. 이 표준은 주로 IBM PC 표준 버스(나중에 ISA(Industry Standard Architecture)로 명명됨)를 목표로 했다. 관련 사양은 개발 당시 ISA를 통해 일반적으로 연결된 일반 외부 버스 또는 특수 버스에 대해서도 정의되어 있으며, 여기에는 RS-232 및 병렬 포트 장치가 포함된다.

윈도우 기능으로서 플러그 앤 플레이는 기본 플러그 앤 플레이 장치와의 연결, 구성 및 관리를 지원하는 운영체제 기능을 의미한다. 원래 사양과 동일한 기능 세트의 일부로 간주되었던 플러그 앤 플레이는 이 문맥에서 주로 윈도우 장치 드라이버 개발과 관련된 책임 및 인터페이스를 의미한다.

플러그 앤 플레이는 사용자 개입 없이 장치를 감지하며, 가끔 I/O 포트 및 장치 메모리 맵과 같은 장치 리소스의 사소한 구성을 허용한다. PnP는 장치 리소스의 사용자 구성 필요성을 덜어주는 모든 하드웨어 사양을 설명하는 일반적인 용어인 플러그 앤 플레이와 혼동해서는 안 된다.

ACPI는 레거시 플러그 앤 플레이의 후속 기술이다.

## 개요

플러그 앤 플레이 표준은 PnP BIOS가 장치 구성을 처리하도록 요구하며, 이 BIOS는 리소스 할당 세부 정보를 운영체제에 제공한다. 이 과정은 부팅 시점에 호출된다. 컴퓨터가 처음 켜지면 호환되는 장치가 식별되고, 충돌하지 않는 I/O 주소, 인터럽트 요청 번호 및 DMA 채널이 할당된다.

이 용어는 마이크로소프트가 윈도우 95 제품과 관련하여 채택했다. 아미가OS Autoconfig 및 맥 OS NuBus 시스템과 같은 다른 운영체제는 이미 이 기능을 (다양한 이름으로 또는 이름 없이) 한동안 지원하고 있었다. 심지어 이그드라실 리눅스는 윈도우 95보다 최소 2년 전에 자신을 "플러그 앤 플레이 리눅스"라고 광고했다. 그러나 플러그 앤 플레이라는 용어는 윈도우의 전 세계적인 수용으로 인해 점차 보편화되었다.

일반적으로 PnP가 아닌 장치는 컴퓨터의 BIOS 설정에서 식별해야 PnP 시스템이 PnP가 아닌 장치에서 사용 중인 리소스에 다른 장치를 할당하지 않는다. 레거시 PnP가 아닌 장치와 PnP 시스템 간의 상호 작용 문제가 발생하면 오류가 발생할 수 있으며, 이로 인해 이 기술은 역사적으로 "플러그 앤 프레이(plug and pray)"라고 불리기도 했다.

## 사양
레거시 플러그 앤 플레이 사양은 마이크로소프트와 인텔이 정의했으며, 장치에 대한 운영체제 기반 검색을 지원하기 위해 레거시 하드웨어 및 BIOS에 대한 변경 사항을 제안했다. 이러한 역할은 나중에 ACPI 표준에 의해 계승되었으며, 이 표준은 이전 "플러그 앤 플레이 BIOS" 및 APM 사양에서 요구했던 펌웨어와 달리 전원 관리 및 구성 지원을 운영체제로 이동시켰다. 다음 표준은 PCI 및 USB와 같은 기본 플러그 앤 플레이 사양과 달리 마이크로소프트가 레거시 플러그 앤 플레이로 설명하는 내용을 구성한다.

* 플러그 앤 플레이 BIOS 사양
* 플러그 앤 플레이 ISA 사양
* IEEE 1394용 플러그 앤 플레이 설계 사양
* 플러그 앤 플레이 외부 COM 장치 사양
* 플러그 앤 플레이 병렬 포트 장치 사양
* 플러그 앤 플레이 ATA 사양
* 플러그 앤 플레이 SCSI 사양
* 레거시 플러그 앤 플레이 지침

윈도우 비스타는 ACPI 호환 BIOS를 요구하며, ISAPnP는 기본적으로 비활성화되어 있다.

## 요구 사항
플러그 앤 플레이를 사용하려면 세 가지 요구 사항이 충족되어야 한다:
# 운영체제는 플러그 앤 플레이와 호환되어야 한다.
# BIOS는 플러그 앤 플레이를 지원해야 한다.
# 설치될 장치는 플러그 앤 플레이 호환 장치여야 한다.

## 하드웨어 식별

플러그 앤 플레이 하드웨어는 컴퓨터 소프트웨어가 올바르게 식별할 수 있도록 공급할 수 있는 일종의 ID 코드도 필요하다. 플러그 앤 플레이 ID는 3바이트 제조업체 ID와 2바이트 16진수(예: PNP0A08) 또는 4바이트 제조업체 ID와 2바이트 16진수(예: MSFT0101)의 두 가지 형식을 가질 수 있다. 또한 PnP 장치는 클래스 코드와 서브시스템 ID를 가질 수 있다.

이 ID 코드 시스템은 플러그 앤 플레이가 처음 도입될 당시 PC에서 흔히 사용되던 초기 ISA(Industry Standard Architecture) 하드웨어에 통합되지 않았다. ISA 플러그 앤 플레이는 PnP가 초기에 매우 신뢰할 수 없게 만든 가장 큰 어려움 중 일부를 야기했다. 이로 인해 초기에는 I/O 주소와 IRQ 라인이 종종 잘못 설정되어 "플러그 앤 프레이(Plug and Pray)"라는 조롱적인 용어가 생겨났다. 나중에 MCA, EISA 및 PCI(당시 업계 표준이 되고 있던)와 같은 컴퓨터 버스는 이러한 기능을 통합했다.

마지막으로, 컴퓨터의 운영체제는 이러한 변경 사항을 처리할 수 있어야 한다. 일반적으로 이는 버스에서 구성이 변경되었다는 인터럽트를 찾아낸 다음, 버스에서 정보를 읽어 어떤 일이 일어났는지 파악하는 것을 의미한다. 오래된 버스 설계는 이러한 변경 사항을 찾기 위해 전체 시스템을 읽어야 하는 경우가 많았는데, 이는 많은 장치에 대해 시간이 많이 걸릴 수 있다. 더 현대적인 설계는 이러한 "탐색"을 줄이거나 제거하기 위한 일종의 시스템을 사용한다. 예를 들어, USB는 이 목적을 위해 허브 시스템을 사용한다.

변경 사항이 발견되면 운영체제는 장치의 정보를 검사하여 무엇인지 파악한다. 그런 다음 작동시키기 위해 적절한 장치 드라이버를 로드해야 한다. 과거에는 이것이 전부이거나 아무것도 아닌 일이었지만, 현대 운영체제는 종종 인터넷에서 적절한 드라이버를 찾아 자동으로 설치하는 기능을 포함한다.

## 같이 보기
* 사용자 친화성
* 확장 시스템 구성 데이터 (ESCD)
* 유니버설 플러그 앤 플레이 (UPnP)
* 로우 핀 카운트 (LPC)

## 각주

## 외부 링크
* UEFI 포럼 PNP ID 및 ACPI ID 레지스트리
* 마이크로소프트 플러그 앤 플레이 사양 및 문서
* https://web.archive.org/web/20040615191235/http://www.microsoft.com/whdc/system/pnppwr/pnp/pnpid.mspx (P&P ID)
* https://web.archive.org/web/20041019180414/http://www.microsoft.com/whdc/archive/idpnp.mspx
* https://web.archive.org/web/20050107175505/http://www.microsoft.com/whdc/archive/pnpbiosp.mspx

분류:IBM PC 호환기종
분류:메인보드
분류:바이오스
분류:컴퓨터 주변기기