호스트 컨트롤러 인터페이스(USB, Firewire)
Host controller interface (USB, Firewire)HCI(호스트 컨트롤러 인터페이스)는 USB 또는 IEEE 1394 하드웨어용 호스트 컨트롤러가 소프트웨어에서 호스트 컨트롤러 드라이버와 통신할 수 있도록 하는 레지스터 레벨 인터페이스다.드라이버 소프트웨어는 일반적으로 개인용 컴퓨터의 운영체제가 제공되지만 마이크로컨트롤러와 같은 애플리케이션별 장치에 의해서도 구현될 수 있다.
확장 카드나 마더보드 컨트롤러에서, 이것은 마더보드의 컨트롤러 칩에 있는 디지털 로직 엔진과 고속 차동 신호를 관리하는 아날로그 회로와 함께 많은 맞춤 로직을 포함한다.소프트웨어 측면에서는 디바이스 드라이버(호스트 컨트롤러 드라이버 또는 HCD라고 함)가 필요하다.
IEEE 1394
호스트 컨트롤러 인터페이스 열기
OHCI([1]Open Host Controller Interface)는 개방형 표준이다.
IEEE 1394(FireWire, i라고도 함)에 적용될 때.LINK 또는 Lynx) 카드인 OHCI는 카드가 PC에 대한 표준 인터페이스를 지원하는 것을 의미하며, 모든 최신 운영 체제와 함께 제공되는 OHCI IEEE 1394 드라이버에 의해 사용될 수 있다.카드에 표준 OHCI 인터페이스가 있기 때문에 OS는 누가 카드를 만들거나 어떻게 작동하는지 미리 정확히 알 필요가 없다. OS는 카드가 표준 프로토콜에 정의된 잘 정의된 명령어 집합을 이해한다고 안전하게 가정할 수 있다.
유에스비
호스트 컨트롤러 인터페이스 열기
USB용 OHCI 표준은 IEEE 1394용 OHCI 표준과 유사하지만 USB 1.1(최대 속도 및 저속 속도)만 지원하므로 레지스터 인터페이스가 완전히 다르게 보인다.UHCI와 비교하여, 제어기로 더 많은 인텔리전스를 이동시키고, 따라서 훨씬 더 효율적이다; 이것은 그것을 정의하려는 동기의 일부였다.컴퓨터가 인텔이나 VIA에 의해 만들어지지 않은 USB 컨트롤러에서 비 x86 USB 1.1 또는 x86 USB 1.1을 제공하는 경우, 아마도 OHCI를 사용할 것이다(예: OHCI는 NEC 칩셋에 기초한 추가 PCI 카드에서 일반적이다).UHCI보다 지적재산권 제한이 훨씬 적다.[2]32비트 메모리 어드레싱만 지원하므로 64비트 운영 체제에서[citation needed] 작동하려면 IOMMU나 계산적으로 비싼 바운스 버퍼가 필요하다.[3]메모리 매핑된 I/O가 있는 컴퓨터의 나머지 부분에만 OHCI 인터페이스.[3]
범용 호스트 컨트롤러 인터페이스
UHCI(Universal Host Controller Interface)는 Intel이 USB 1.x(최대 속도 및 저속)를 위해 만든 전용 인터페이스다.인텔의 라이선스를 필요로 한다.UHCI를 사용하는 USB 컨트롤러는 하드웨어에서 거의 역할을 하지 않으며 USB 버스 관리에 많은 작업을 소프트웨어 UHCI 드라이버가 필요로 한다.[2]32비트 메모리 어드레싱만 지원하므로 64비트 운영 체제에서[citation needed] 작동하려면 IOMMU나 계산적으로 비싼 바운스 버퍼가 필요하다.[4]UHCI는 포트맵 I/O와 메모리맵 I/O로 구성되며, 상태 업데이트 및 전송해야 하는 데이터 또는 수신된 데이터를 보유하는 데 필요한 데이터 버퍼에 대해서도 메모리 매핑 I/O가 필요하다.[4]
향상된 호스트 컨트롤러 인터페이스
EHCI([5]Enhanced Host Controller Interface)는 USB 2.0에 적용할 수 있는 고속 컨트롤러 표준이다. UHCI- 및 OHCI 기반 시스템은 이전에 존재했던 것처럼 필요 이상으로 복잡하고 비용이 많이 들었다.결과적으로, USB 구현자 포럼(USB-IF)은 EHCI에 대한 공개 사양을 주장했다[when?].Intel은 EHCI 적합성 테스트를 진행했으며 이는 독점적 기능의 침입을 방지하는 데 도움이 되었다.
원래 고속 포트를 제공하는 PC에는 저속 및 최대속 장치를 처리하는 컨트롤러와 고속 장치를 처리하는 컨트롤러가 두 개 있었다.일반적으로 그러한 시스템은 EHCI와 OHCI 또는 UHCI 드라이버를 가지고 있었다.UHCI 드라이버는 마더보드에 있는 Intel 또는 VIA 칩셋의 USB 호스트 컨트롤러 또는 컴퓨터의 확장 버스에 연결된 모든 VIA 이산 호스트 컨트롤러에 저속 및 최대 속도 인터페이스를 제공한다.OHCI 드라이버는 다른 모든 마더보드 칩셋 공급업체의 통합 USB 호스트 컨트롤러 또는 컴퓨터의 확장 버스에 연결된 이산 호스트 컨트롤러의 USB 포트를 위한 저속 및 최대 속도 기능을 제공한다.EHCI 드라이버는 마더보드나 이산 USB 컨트롤러의 USB 포트에 고속 기능을 제공했다.보다 최신의 하드웨어는 EHCI 컨트롤러에 제시된 고속 트래픽과 그 속도로 동작하는 포트가 예상하는 최대 속도 또는 저속 트래픽 사이에서 최대 속도와 저속으로 동작하는 모든 직접 연결 포트를 포함하는 모든 트래픽을 변환하는 내부 "요율 매칭" 허브(RMH)를 통해 모든 포트를 라우팅하여 다음 작업을 허용한다.e EHCI 컨트롤러.
그 EHCI 소프트웨어 인터페이스 규격 structures,[5]이 rate-matching 허브 동반자 관제사는 범용 주 제어기 인터페이스 규격 대신 손가락 사용과 저속 고속 연결을 제공하도록 구현될 수 있기 때문에 64비트 운영 시스템으로 일하는 o. 솟은 버퍼 또는 IOMMU이 필요하지 않는 경우 데이터 및 64비트 버전을 정의합니다rOHCI 사양, 둘 다 32비트 전용 사양이다.
확장 가능한 호스트 컨트롤러 인터페이스
Extensible Host Controller Interface(xHCI)는 이전 버전보다 속도, 전력 효율성 및 가상화를 향상시킨 최신 호스트 컨트롤러 표준이다.또한 UHCI/OHCI/EHCI를 대체할 USB 호스트 컨트롤러를 정의하는 것이 목표였다.모든 USB 장치 속도(USB 3.1 SuperSpeed+, USB 3.0 SuperSpeed, USB 2.0 Low-, Full-, 고속, USB 1.1 저속 및 최대 속도)를 지원한다.
가상 호스트 컨트롤러 인터페이스
VHCI(Virtual Host Controller Interface)는 물리적 디바이스가 지원하지 않는 가상 USB 디바이스를 내보낼 수 있는 가상 컨트롤러를 가리킨다.예를 들어 Linux에서 VHCI 컨트롤러는 USB/IP 프로토콜을 사용하여 연결된 다른 시스템의 USB 디바이스를 노출하는 데 사용된다.
참고 항목
- AHCI(Advanced Host Controller Interface)
- SuperSpeed USB – 아키텍처 – USB 3.0
- 무선 USB(WHCI 1.0)
- RAID 컨트롤러
- 호스트 어댑터
- LPCIO
참조
- ^ [1]
- ^ a b "Linux USB FAQ". August 27, 2007. Retrieved April 13, 2014.
- ^ a b "Archived copy" (PDF). Archived from the original (PDF) on 2020-05-18. Retrieved 2020-05-12.
{{cite web}}
: CS1 maint: 타이틀로 보관된 사본(링크) - ^ a b "UHCI11D.DOC" (PDF). Ftp.netbsd.org. Retrieved 2017-01-10.
- ^ a b "Enhanced Host Controller Interface Specification". Intel.com. Retrieved 2017-01-10.
외부 링크
- Compaq, Microsoft 및 National Semiconductor의 USB 표준 문서(PDF)
- Linux 커널 소스: OHCI 및 EHCI 설명서
- Intel EHCI 사양
- Intel xHCI 사양