1. 개요
xHCI(eXtensible Host Controller Interface)은 Intel (Intel Corporation)이 제안하고 일부 반도체 관련 업체들이 이를 수용해 전폭적으로 지원/설계하는 표준규격이다. 놀랍게도 xHCI는 인텔이 독점적 권리를 행사하지 않고 공개 표준(Open Standard / Royalty-Free)으로 풀어 관리하는 사양으로 USB-IF(USB Implementers Forum)와 협력은 하고 있지만, xHCI 호스트 컨트롤러 인터페이스 아키텍처 스펙 문서 자체는 인텔 공식 기술 문서 포털에서 직접 발행 및 업데이트를 전담하고 있다.2. 개발 배경
USB 2.0 시절에는 인텔 방식(EHCI)과 다른 회사 방식(UHCI, OHCI)이 뒤죽박죽 섞여 난립하면서 드라이버도 복잡하고 사용자입장에서 효율성 체감도 떨어지기 시작했다. 거기다 다른 여타의 반도체 업체들이 고성능의 새로운 통신규격을 개발해 내놓는 상황까지 등장. 이러한 시대적 배경과 맞물리면서 인텔이 USB 3.0 의 새로운 시대를 준비하게되는데, 이때 모든 USB(1.1~3.0, 최신 Type-C/USB4까지)를 하나의 스펙으로 통일하기 위해 이 xHCI를 제안하며 판을 정리한 일종의 개방형 통합 프로토콜이 되겠다.3. xHCI 관리
3.1. 인텔
공식 문서 배포 사이트 및 핵심 스펙 문서 : Intel Technical Resources - xHCI Specification* xHCI Specification [1]: 레지스터 맵, Doorbell 메커니즘, Data Buffer/Ring 구조, Interrupter handling 등 전체 하드웨어/소프트웨어 규격 명세
자세히 보면 , Ring Buffer 기반의 Doorbell 메커니즘과 Bus-Master DMA가 있다는것을 알수있다.
* xHCI Errata & Addendum: 버전별 수정 사항 및 핀/타이밍 보완 문서
3.2. 얼라이언스(alliance)
주요 협력단체로는 xHCI 하단에서 함께 동작하는 UASP(USB Attached SCSI Protocol) 관련 표준을 제정하는 아래 단체에서 별도 관리하고 있다.* USB-IF (USB Implementers Forum): USB 3.x / USB4 물리 계층(PHY) 및 기본 USB 프로토콜 스펙 관리[2]
* T10 Technical Committee (INCITS T10): UASP의 바탕이 되는 SCSI 커맨드 세트(SPC, SBC 등) 규격 제정 및 관리[3]
4. 개발 업체
주요 반도체 회사 및 제품으로는 NEC (현 Renesas Electronics)의 µPD720201, µPD720202 시리즈 그리고 VIA Labs, Inc. (VLI)의 VL805 그리고 ASMedia Technology (에즈메디아) ASM1042, ASM1042A 그리고 Fresco Logic (프레스코 로직)등이 있다.5. 지원
Microsoft Windows에서는 Windows 8부터 공식 지원한다. Windows 7까지는 별도의 디바이스 드라이버가 필요하다.안드로이드에서는 갤럭시 노트3가 최초로 xHCI 인터페이스를 지원한다.
6. 관련 문서
*PCIe*SPI
[1] Intel Technical Resources - xHCI Specification Revision1.2https://www.intel.com/content/www/us/en/content-details/868295/extensible-host-controller-interface-for-universal-serial-bus-xhci-requirements-specification-r1-2c.html[2] 공식 사이트: https://www.usb.org[3] 공식 사이트: https://www.t10.org