PCI-X

PCI-X(Peripheral Component Interconnect eXtended의 약어)는 서버 및 워크스테이션에서 주로 요구되는 더 높은 대역폭을 위해 32비트 PCI 로컬 버스를 향상시키는 컴퓨터 버스 및 확장 카드 표준이다. 더 높은 클럭 속도(최대 133 MHz)를 지원하기 위해 수정된 프로토콜을 사용하지만, 전기적 구현에서는 유사하다. PCI-X 2.0은 전기 신호 레벨 감소와 함께 최대 533 MHz의 속도를 추가했다

슬롯은 물리적으로 3.3 V PCI 슬롯이며, 동일한 크기, 위치 및 핀 할당을 갖는다. 전기적 사양은 호환되지만 더 엄격하다. 그러나 대부분의 기존 PCI 슬롯은 85 mm 길이의 32비트 버전인 반면, 대부분의 PCI-X 장치는 130 mm 길이의 64비트 슬롯을 사용하며, 64비트 PCI 커넥터와 PCI-X 지원이 동의어로 간주될 정도이다.

PCI-X는 32비트 및 64비트 PCI 커넥터 모두에 대해 지정되며, PCI-X 2.0은 임베디드 애플리케이션을 위해 16비트 변형을 추가했다.

PCI-X는 최신 설계에서 유사한 이름의 PCI 익스프레스(PCIe)로 대체되었으며, 이는 다른 물리적 커넥터와 다른 전기적 설계를 가지며, 여러 개의 느린 병렬 연결 대신 하나 이상의 직렬 레인을 갖는다.

 역사 

 배경 및 동기 
섬네일|단일 PCI-X 슬롯용 이중 포트 기가비트 이더넷 네트워크 카드로, PCI-X 슬롯을 절약하고 PCI-X 64비트 버스의 잠재력을 최대한 활용한다.
섬네일|LSI 로직의 PCI-X용 8포트 SATA 호스트 버스 어댑터.
섬네일|PCI-X용 HP VISUALIZE fx10 Pro 비디오 카드
PCI에서 즉시 완료할 수 없는 트랜잭션은 대상 또는 시작자가 재시도 주기를 발행하여 연기되며, 이 동안 다른 에이전트는 PCI 버스를 사용할 수 없다. PCI는 나중에 대상을 통해 데이터를 반환할 수 있는 분할 응답 메커니즘이 부족하므로, 읽기 데이터가 준비될 때까지 버스는 재시도 주기를 발행하는 대상에 의해 점유된다. PCI-X에서는 마스터가 요청을 발행한 후 PCI 버스에서 연결을 끊어 다른 에이전트가 버스를 사용할 수 있도록 한다. 요청된 데이터를 포함하는 분할 응답은 대상이 요청된 모든 데이터를 반환할 준비가 되었을 때만 생성된다. 분할 응답은 버스를 통해 데이터가 전송될 수 없는 재시도 주기를 제거하여 버스 효율성을 높인다.

PCI는 또한 고유한 인터럽트 라인의 상대적 부족으로 어려움을 겪었다. 단 4개의 인터럽트 핀(INT A/B/C/D)만으로는 많은 PCI 장치를 사용하는 시스템에서 여러 기능이 인터럽트 라인을 공유해야 하므로 호스트 측 인터럽트 처리가 복잡해진다. PCI-X는 호스트 메모리에 대한 쓰기를 사용하는 인터럽트 시스템인 메시지 시그널링 인터럽트를 추가했다. MSI 모드에서는 기능의 인터럽트가 INTx 라인을 활성화하여 신호되지 않는다. 대신, 기능은 호스트 메모리의 시스템 구성 영역에 메모리 쓰기를 수행한다. 내용과 주소가 기능별로 구성되므로 MSI 모드 인터럽트는 공유되지 않고 전용이다. PCI-X 시스템은 MSI 모드 인터럽트와 레거시 INTx 인터럽트를 동시에 사용할 수 있다(동일한 기능에서는 아님).

등록된 I/O의 부족은 PCI를 최대 66 MHz의 주파수로 제한했다. PCI-X I/O는 PCI 클럭에 등록되며, 일반적으로 PLL을 통해 버스 핀의 I/O 지연을 능동적으로 제어한다. 설정 시간의 개선으로 주파수를 133 MHz로 높일 수 있다.

일부 장치, 특히 기가비트 이더넷 카드, SCSI 컨트롤러(파이버 채널 및 울트라320), 클러스터 상호 연결은 PCI 버스의 133 MB/s 대역폭을 포화시킬 수 있었다. 버스 속도를 66 MHz로 두 배로 늘리고 버스 폭을 64 비트(핀 수는 124개에서 184개로 증가)로 두 배로 늘린 포트가 조합되거나 조합되지 않은 상태로 구현되었다. 이러한 확장은 PCI 2.x 표준의 선택적 부분으로 느슨하게 지원되었지만, 기본 133 MB/s를 넘어서는 장치 호환성은 계속 어려웠다.

개발자들은 결국 결합된 64비트 및 66MHz 확장을 기반으로 삼았고, 미래의 요구를 예상하여 최대 대역폭이 각각 532 MB/s 및 1064 MB/s인 66MHz 및 133MHz 변형을 확립했다. 공동 결과는 ACM의 PCI 특별 이익 그룹에 PCI-X로 제출되었다. 후속 승인을 통해 모든 컴퓨터 개발자가 채택할 수 있는 개방형 표준이 되었다. PCI SIG는 PCI-X에 대한 기술 지원, 교육 및 규정 준수 테스트를 관리한다. IBM, 인텔, 마이크로일렉트로닉스 및 마이렉스는 지원 칩셋을 개발할 예정이었다. 쓰리콤 및 아답텍은 호환 주변 장치를 개발할 예정이었다. 업계에서 PCI-X 채택을 가속화하기 위해 컴팩은 웹사이트에서 PCI-X 개발 도구를 제공했다.

 PCI-X 1.0 
PCI-X 표준은 IBM, HP, 컴팩이 공동으로 개발하여 1998년에 승인되었다. 이는 PCI 로컬 버스의 여러 단점을 해결하고 기가비트 이더넷, 파이버 채널, 울트라3 SCSI 카드와 같은 고대역폭 장치의 성능을 높이며, 프로세서가 클러스터로 상호 연결될 수 있도록 서버 확장을 체계화하기 위한 노력이었다.

인텔은 PCI-X에 대해 제한적인 환영만을 표하며, 차세대 버스는 "근본적으로 새로운 아키텍처"여야 한다고 강조했다. 인텔의 지원 없이는 PCI-X는 PC에 채택되지 못했다. EE Times의 릭 메릿에 따르면, "PCI SIG와 가속 그래픽 포트 개발을 주도했던 핵심 인텔 인터커넥트 디자이너 간의 불화로 인해 인텔은 초기 PCI-X 노력에서 철수했다." 그러나 PCI-X 인터페이스는 파워 매킨토시 G5의 첫 몇 세대에서 애플에 의해 잠시 채택되었다.

최초의 PCI-X 제품은 1998년에 제조되었으며, 아답텍 AHA-3950U2B 듀얼 울트라2 와이드 SCSI 컨트롤러와 같은 제품들이 있었지만, 당시에는 PCI-X 커넥터가 단순히 포장에 "64비트 지원 PCI"라고 표기되어 미래의 상위 호환성을 암시했다. 실제 PCI-X 브랜딩은 나중에야 표준이 되었으며, 이는 PCI-X 장착 마더보드의 광범위한 보급과 일치했을 가능성이 높다. 2001년 8월에 PCI 익스프레스에 대한 더 많은 세부 정보가 공개되었을 때, PCI SIG 의장인 로저 팁리는 "PCI-X는 특정 수준의 기능을 제공하기 때문에 서버에 영원히 존재할 것이며, 해당 기능에 대해 3GIO [PCI 익스프레스]로 전환하는 것이 설득력이 없을 수도 있다. 우리는 ISA를 없애지 못했던 경험을 통해 이를 배웠다. ISA는 대량 부품이 아닌 모든 시스템 때문에 남아있었다."라고 믿음을 표명했다. 팁리는 또한 (당시) PCI SIG가 PCI 익스프레스와 PCI-X 2.0을 PCI 3.0이라는 잠정적인 이름으로 하나의 작업으로 통합할 계획이라고 발표했지만, 해당 이름은 결국 기존 PCI의 비교적 사소한 개정에 사용되었다.

 PCI-X 2.0 
2003년, PCI SIG는 PCI-X 2.0을 비준했다. 이는 266 MHz 및 533 MHz 변형을 추가하여 각각 약 2,132 MB/s 및 4,266 MB/s의 처리량을 제공한다. PCI-X 2.0은 시스템 신뢰성을 높이고 재전송을 피하기 위해 버스에 오류 정정 부호를 추가하도록 설계된 추가 프로토콜 개정을 수행한다. PCI-X 폼 팩터의 가장 일반적인 불만 사항 중 하나인 184핀 커넥터를 해결하기 위해 16비트 포트가 개발되어 PCI-X를 공간 제약이 있는 장치에서 사용할 수 있게 되었다. PCI 익스프레스와 유사하게, PtP 기능이 추가되어 버스의 장치들이 CPU나 버스 컨트롤러에 부담을 주지 않고 서로 통신할 수 있게 되었다.

PCI-X 2.0의 다양한 이론적 이점과 PCI-X 및 PCI 장치와의 하위 호환성에도 불구하고, 현재 대규모로 구현되지 않았다. 이러한 구현 부족은 주로 하드웨어 공급업체가 대신 PCI 익스프레스를 통합하기로 선택했기 때문이다.

IBM은 System i5 모델 515, 520, 525에서 PCI-X 2.0(266 MHz)을 지원하는 (소수의) 공급업체 중 하나였으며, IBM은 이러한 슬롯이 10기가비트 이더넷 어댑터에 적합하다고 광고했다. HP는 일부 프로라이언트 및 인테그리티 서버에서 PCI-X 2.0을 제공했으며, 266 MHz로 작동하는 듀얼 포트 4 Gbit/s 파이버 채널 어댑터도 제공했다. AMD는 8132 하이퍼트랜스포트-PCI-X 2.0 터널 칩을 통해 PCI-X 2.0(266 MHz)을 지원했다. 서버웍스는 PCI-X 2.0의 열렬한 지지자였으며 (1세대 PCI 익스프레스와는 달리) 특히 최고 책임자 라주 베게스나를 통해서였으나, 그는 곧 브로드컴 리더십과의 로드맵 불일치로 해고되었다.

2003년에 델은 PCI-X 2.0을 건너뛰고 PCI 익스프레스 솔루션을 더 빠르게 채택할 것이라고 발표했다. PC 매거진이 보도한 바와 같이, 인텔은 2004년 로드맵에서 PCI-X를 PCI 익스프레스로 대체하기 시작했으며, 후자가 시스템 대기 시간 및 전력 소비 측면에서 상당한 이점을 가지며, 텀워터 칩셋의 "1,000핀 종말"을 피할 수 있다고 주장했다.

 기술적 설명 
PCI-X는 기존 PCI 표준을 개정하여 최대 클럭 속도를 두 배로 늘리고(66 MHz에서 133 MHz로) 그 결과 컴퓨터 프로세서와 주변 장치 간에 교환되는 데이터 양을 늘렸다. 기존 PCI는 66 MHz에서 최대 64비트를 지원한다(단, 33 MHz에서 32비트 이상은 하이엔드 시스템에서만 볼 수 있다). PCI-X를 통해 프로세서와 주변 장치 간에 교환되는 이론적 최대 데이터 양은 1.06 GB/s이며, 표준 PCI의 133 MB/s와 비교된다. PCI-X는 또한 PCI의 오류 허용 오차를 개선하여, 예를 들어, 오류가 있는 카드를 다시 초기화하거나 오프라인으로 전환할 수 있도록 한다.

PCI-X는 버스의 어떤 카드라도 PCI-X를 지원하지 않으면 전체 버스가 PCI로 폴백된다는 점에서 PCI와 하위 호환된다.

가장 근본적인 두 가지 변경 사항은 다음과 같다.
 PCI 버스에 신호가 나타나는 시점과 해당 신호에 대한 응답이 버스에 발생하는 시점 사이의 가장 짧은 시간이 1사이클에서 2사이클로 연장되었다. 이는 훨씬 빠른 클럭 속도를 허용하지만, 많은 프로토콜 변경을 초래한다.
 IRDY# 및 TRDY# 신호를 기반으로 어떤 사이클에서든 대기 상태를 삽입하는 기존 PCI 버스 프로토콜의 기능이 삭제되었다. PCI-X는 128바이트 경계에서만 버스트가 중단될 수 있도록 한다.
 시작자는 트랜잭션 종료 2사이클 전에 FRAME#을 비활성화해야 한다.
 시작자는 대기 상태를 삽입할 수 없다. 대상은 삽입할 수 있지만, 데이터가 전송되기 전과 쓰기 대기 상태는 2클럭 사이클의 배수로 제한된다.
 마찬가지로, 버스트의 길이는 시작하기 전에 결정된다. FRAME# 및 STOP# 신호를 사용하여 임의의 사이클에서 중지될 수 없다.
 감산 디코드 DEVSEL#은 "느린 DEVSEL#" 사이클 다음 사이클이 아니라 2사이클 후에 발생한다.
 주소 단계(그리고 어떤 장치도 DEVSEL#로 응답하기 전) 후에 1사이클의 추가 "속성 단계"가 있으며, 이 동안 작업에 대한 36비트의 추가 정보(AD 및 C/BE# 라인 모두 사용됨)가 전송된다. 여기에는 16비트 요청자 식별(PCI 버스, 장치 및 기능 번호), 12비트 버스트 길이, 5비트 태그(분할 트랜잭션 연결용), 3비트 추가 상태가 포함된다.

 버전 
500px|섬네일|64비트 PCI 카드(PCI 및 PCI-X 모두)의 3.3 V 및 5 V 키잉. 대부분의 64비트 PCI-X 카드는 범용이며 일반적인 32비트 5 V PCI 슬롯과 하위 호환되지만, PCI-X 슬롯은 3.3 V이며 5 V 전용 PCI 카드는 허용하지 않는다.

기본적으로 모든 PCI-X 카드 또는 슬롯은 64비트 구현을 가지며 다음과 같이 다양하다.
 카드
 66 MHz (Rev. 1.0에서 추가)
 100 MHz (버스를 100 MHz로 다운클럭하여 133 MHz 슬롯에서 작동)
 133 MHz (Rev. 1.0에서 추가)
 266 MHz (Rev. 2.0에서 추가)
 533 MHz (Rev. 2.0에서 추가)
 슬롯
 66 MHz (66 MHz 64비트 PCI와 동일한 속도, 구형 서버에서 발견될 수 있음)
 133 MHz (가장 일반적)
 266 MHz (x86에서 드물게, 해당 시대의 IBM pSeries의 메인 버스)
 533 MHz (드물게)

 다른 너비 슬롯에 32비트 및 64비트 PCI 카드 혼용 
섬네일|32비트 PCI 슬롯에 부분적으로 삽입된 64비트 PCI-X 카드, 호환성 표시
대부분의 32비트 PCI 카드는 64비트 PCI-X 슬롯에서 제대로 작동하지만, 버스 속도는 가장 느린 카드의 클럭 주파수로 제한된다. 이는 PCI의 공유 버스 토폴로지의 본질적인 한계이다. 예를 들어, 133 MHz를 지원하는 PCI-X 버스에 PCI 2.3 66 MHz 카드가 설치되면 전체 버스 백플레인은 66 MHz로 제한된다. 이러한 한계를 극복하기 위해 많은 마더보드에는 여러 개의 PCI/PCI-X 버스가 있으며, 하나의 버스는 고속 PCI-X 주변 장치에 사용하고 다른 버스는 범용 주변 장치에 사용한다.

많은 64비트 PCI-X 카드는 더 짧은 32비트 커넥터에 삽입할 경우 속도 손실이 약간 발생하지만 32비트 모드에서 작동하도록 설계되었다. 아답텍 29160 64비트 SCSI 인터페이스 카드가 그 예이다. 그러나 일부 64비트 PCI-X 카드는 표준 32비트 PCI 슬롯에서 작동하지 않는다. 작동하더라도 32비트 슬롯에 64비트 PCI-X 카드를 설치하면 카드 에지 커넥터의 64비트 부분이 연결되지 않고 돌출된다. 이 경우 마더보드 구성 요소가 카드 에지 커넥터의 돌출된 부분을 기계적으로 방해하지 않도록 배치되어야 한다.

 PCI 익스프레스와의 비교 
섬네일|표준 PCI 및 PCIe 변형으로도 출시된 MOTU PCIX-424 오디오 인터페이스 카드.
PCI-X는 유사한 이름이지만 호환되지 않는 PCI 익스프레스(일반적으로 PCI-E 또는 PCIe로 약칭됨)와 혼동해서는 안 된다. 둘 다 내부 주변 장치용 고속 컴퓨터 버스이지만, 외관과 기술에서 차이가 있다. PCI-X는 32비트 PCI와 하위 호환되는 64비트 병렬 인터페이스이다. PCIe는 PCI와 PCI-X를 모두 대체하도록 설계된 다른 물리적 인터페이스를 가진 직렬 포인트-투-포인트 연결이다.

PCI-X 및 표준 PCI 버스는 일부 컴퓨터에서 ISA 버스가 표준 PCI 버스에서 실행되었던 것과 유사하게 PCIe 브리지에서 실행될 수 있다. PCIe는 또한 PCI-X 및 심지어 PCI-X 2.0의 최대 대역폭과 일치한다. PCIe 1.0 x1은 각 방향(레인)으로 250 MB/s를 제공하며, 현재 최대 16레인(x16)이 전이중으로 각 방향을 지원하여 PCIe 1.0의 각 방향으로 최대 4 GB/s의 대역폭을 제공한다. PCI-X 2.0은 (최대 64비트 533 MHz 변형에서) 최대 4,266 MB/s(≈4.3 GB/s)의 대역폭을 제공하지만, 반이중으로만 가능하다.

PCI-X는 PCI 익스프레스에 비해 기술적 및 경제적 단점이 있다. 64비트 병렬 인터페이스는 어려운 트레이스 라우팅을 필요로 한다. 왜냐하면 모든 병렬 인터페이스와 마찬가지로 버스의 신호가 동시에 또는 매우 짧은 시간 내에 도착해야 하며, 인접 슬롯의 노이즈가 간섭을 일으킬 수 있기 때문이다. PCIe의 직렬 인터페이스는 이러한 문제가 적으므로 복잡하고 비용이 많이 드는 설계가 필요하지 않다. PCI-X 버스는 표준 PCI와 마찬가지로 반이중 양방향인 반면, PCIe 버스는 전이중 양방향이다. PCI-X 버스는 가장 느린 장치만큼만 빠르게 실행되는 반면, PCIe 장치는 버스 속도를 독립적으로 협상할 수 있다. 또한, PCI-X 슬롯은 PCIe 1x부터 PCIe 16x까지보다 길어서 PCI-X용 짧은 카드를 만들 수 없다. PCI-X 슬롯은 마더보드에서 상당한 공간을 차지하며, 이는 ATX 및 더 작은 폼 팩터에 문제가 될 수 있다.

 같이 보기 
 PCI 버스
 PCI 익스프레스

 각주 

 외부 링크 
 5 볼트와 3.3 볼트 슬롯의 차이에 대한 훌륭한 도표와 글

분류:메인보드 확장 슬롯
분류:개방형 표준
분류:PCI 버스