← Documents Documentation/usb/ohci.rst GitHub 원문 ↗

Linux 6.18.37 · USB

OHCI host controller driver

ohci-hcd의 계보, OHCI hardware model, USB 1.1 transfer queue 개선을 설명합니다.

Source pathDocumentation/usb/ohci.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약·해설

ohci.rst:1-35

ohci-hcd의 계보, OHCI hardware model, USB 1.1 transfer queue 개선을 설명합니다.

원문 명령, symbol, source path, 수치와 ABI 이름을 그대로 유지하면서 각 절의 의미와 주의 사항을 한국어로 옮겼습니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 ====
2 OHCI
3 ====
4
5 23-Aug-2002
6
7 The "ohci-hcd" driver is a USB Host Controller Driver (HCD) that is derived
8 from the "usb-ohci" driver from the 2.4 kernel series. The "usb-ohci" code
9 was written primarily by Roman Weissgaerber <weissg@vienna.at> but with
10 contributions from many others (read its copyright/licencing header).
11
12 It supports the "Open Host Controller Interface" (OHCI), which standardizes
13 hardware register protocols used to talk to USB 1.1 host controllers. As
14 compared to the earlier "Universal Host Controller Interface" (UHCI) from
15 Intel, it pushes more intelligence into the hardware. USB 1.1 controllers
16 from vendors other than Intel and VIA generally use OHCI.
17
18 Changes since the 2.4 kernel include
19
20 - improved robustness; bugfixes; and less overhead
21 - supports the updated and simplified usbcore APIs
22 - interrupt transfers can be larger, and can be queued
23 - less code, by using the upper level "hcd" framework
24 - supports some non-PCI implementations of OHCI
25 - ... more
26
27 The "ohci-hcd" driver handles all USB 1.1 transfer types. Transfers of all
28 types can be queued. That was also true in "usb-ohci", except for interrupt
29 transfers. Previously, using periods of one frame would risk data loss due
30 to overhead in IRQ processing. When interrupt transfers are queued, those
31 risks can be minimized by making sure the hardware always has transfers to
32 work on while the OS is getting around to the relevant IRQ processing.
33
34 - David Brownell
35 <dbrownell@users.sourceforge.net>
36

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

배경과 hardware model

1-19

문서 날짜는 2002년 8월 23일입니다. `ohci-hcd`는 Linux 2.4 계열의 `usb-ohci`에서 파생된 USB Host Controller Driver(HCD)입니다.

`usb-ohci`는 Roman Weissgaerber가 주로 작성했고 여러 contributor가 참여했습니다.

OHCI(Open Host Controller Interface)는 USB 1.1 host controller와 통신하는 hardware register protocol을 표준화합니다.

Intel의 이전 UHCI보다 더 많은 지능을 hardware에 둡니다. Intel과 VIA 이외 vendor의 USB 1.1 controller는 일반적으로 OHCI를 사용했습니다.

OHCI와 UHCI
항목설명
OHCIregister protocol 표준화, hardware에 더 많은 기능
UHCIIntel의 이전 interface
ohci-hcd2.4 usb-ohci에서 파생된 HCD

USB 1.1 host controller interface의 역사적 차이입니다.

====
OHCI
====

23-Aug-2002

The "ohci-hcd" driver is a USB Host Controller Driver (HCD) that is derived
from the "usb-ohci" driver from the 2.4 kernel series.  The "usb-ohci" code
was written primarily by Roman Weissgaerber <weissg@vienna.at> but with
contributions from many others (read its copyright/licencing header).

It supports the "Open Host Controller Interface" (OHCI), which standardizes
hardware register protocols used to talk to USB 1.1 host controllers.  As
compared to the earlier "Universal Host Controller Interface" (UHCI) from
Intel, it pushes more intelligence into the hardware.  USB 1.1 controllers
from vendors other than Intel and VIA generally use OHCI.

Changes since the 2.4 kernel include

2.4 이후 변화와 전송

20-35

2.4 이후에는 robustness와 bug fix가 개선되고 overhead가 줄었으며 갱신·단순화된 usbcore API를 지원합니다.

interrupt transfer가 더 커질 수 있고 queue할 수 있으며 상위 `hcd` framework를 사용해 code가 줄었습니다. 일부 non-PCI OHCI 구현도 지원합니다.

`ohci-hcd`는 모든 USB 1.1 transfer type을 처리하고 모두 queue할 수 있습니다.

`usb-ohci`도 interrupt를 제외한 transfer는 queue할 수 있었습니다. 한 frame period를 쓰던 예전 방식은 IRQ 처리 overhead로 data loss 위험이 있었습니다.

interrupt transfer를 queue하면 OS가 IRQ를 처리하는 동안에도 hardware가 수행할 transfer를 갖게 해 이 위험을 줄일 수 있습니다.

ohci-hcd 개선 사항
항목설명
Robustnessbug fix, overhead 감소
API갱신된 usbcore와 hcd framework
Interrupt큰 transfer와 queue 지원
Platform일부 non-PCI OHCI 지원
Transfer types모든 USB 1.1 type queue 가능

이전 usb-ohci와 비교한 주요 변화입니다.

	- improved robustness; bugfixes; and less overhead
	- supports the updated and simplified usbcore APIs
	- interrupt transfers can be larger, and can be queued
	- less code, by using the upper level "hcd" framework
	- supports some non-PCI implementations of OHCI
	- ... more

The "ohci-hcd" driver handles all USB 1.1 transfer types.  Transfers of all
types can be queued.  That was also true in "usb-ohci", except for interrupt
transfers.  Previously, using periods of one frame would risk data loss due
to overhead in IRQ processing.  When interrupt transfers are queued, those
risks can be minimized by making sure the hardware always has transfers to
work on while the OS is getting around to the relevant IRQ processing.

- David Brownell
  <dbrownell@users.sourceforge.net>