원래 PCI 프레임 워크 ( "기존 PCI") 및 PCI-X에서도 장치는 "슬롯"에 해당하며 각 슬롯은 동일한 병렬 버스에 연결되어 있습니다. 각 슬롯에는 열거 중에 주장 된 고유 한 ID 핀이 있습니다. 열거는 본질적으로 (각 슬롯에 대해) 묻습니다. "이 슬롯에 어떤 것이 있습니까?" 장치는이 신호에 응답하여 데이터를 버스로 구동하여 응답했습니다. 응답 부족은 장치가 없음을 의미했습니다.
장치는 또한 "브리지"일 수 있으며 이는 하위 버스를 형성 함을 의미합니다. 해당 버스에는 별도의 ID (업스트림에서 할당)가 있고 독립적으로 열거 된 자체 슬롯 세트가 있습니다.
PCI-Express (PCIe)는 완전히 다릅니다. PCIe는 장치간에 공유되는 리소스 에서처럼 실제로 버스가 아닙니다. 대신 각 장치에는 업스트림 장치 및 모든 다운 스트림 장치에 대한 개별 개별 지점 간 직렬 연결이 있습니다 (다운 스트림 장치가있는 경우 브리지 기능도 함). PCIe를 LAN처럼 생각하십시오. 각 브리지는 다른 장치에 연결된 많은 포트가있는 스위치와 유사합니다. 다른 장치는 터미널 장치이거나 다른 스위치 (예 : PCIe 브리지) 일 수 있습니다.
PCIe는 개념적 프레임 워크 및 주소 지정 (따라서 소프트웨어에 제공되는 동작)이 PCI 및 PCI-X와 호환되도록 설계되었습니다. 그러나 구현은 완전히 다릅니다. 예를 들어, 장치가 지점 간이므로 열거의 각 지점에서 결정해야하는 유일한 질문은 "어떤 것이 있습니까?"입니다. 각 장치에는 고유 한 독립적 인 전선 세트가 있으므로 장치 ID는 기본적으로 모두 하드 코딩되어 있으므로 최상위 "루트 콤플렉스"를 포함한 각 브리지 는 각 장치에 장치 ID를 알려줍니다 .
모든 경우에 버스 / 장치 / 기능의 "기능"부분은 주변 장치 내에서 엄격하게 처리됩니다. 예를 들어, 듀얼 포트 NIC 컨트롤러에는 종종 각 포트마다 하나씩 두 가지 기능이 있습니다. 독립적으로 구성 및 작동 할 수 있지만 CPU에서 기능으로의 데이터 경로는 모두 동일합니다.