160 Matching Annotations
  1. Sep 2026
    1. System software also uses the Configure Endpoint Command to inform the xHC of pipe changes due to selecting an Alternate Interface on a device. Typically an Alternate Interface setting is used to modify the payload size or bandwidth requirement of a pipe, however it may also be used to disable or enable one or more pipes. The Input Control Context data structure of the Input Context allows software to explicitly identify which pipes are enabled, disabled, or modified by a target Alternate Interface setting. The parameters of the Input Endpoint Contexts for enabled or modified pipes shall correlate target pipe settings (Endpoint Type, Max Packet Size, etc.). If the Configure Endpoint Command does not complete successfully, software shall not issue a SET_INTERFACE request to the device.

      システムソフトウェアはデバイスの代替インターフェースを選択したことによるパイプのxHCの変化を知らせるためにConfigure Endpoint Commandを使います。通常は代替インターフェースセッティングはパイプのペイロードや帯域幅の変化要求に使われます、しかしそれは一つ以上の有効/無効パイプを使います。インプットコンテキストのインプットコントロールコンテキストはソフトウェアが有効/無効/代替インターフェースによって変更された/パイプを識別するのを許可します。有効/変更されたパイプ用のインプットエンドポイントコンテキストのパラメータはパイプセッティングに関係しますもしConfigure Endpoint Commandが完全に完了していない場合ソフトウェアはSET_INTERFACE要求をデバイスへ発行していません。

    2. The Configure Endpoint Command points to an Input Context data structure, which defines the target configuration parameters for the xHC. For proper operation of the xHC, every endpoint that will be enabled by a target device configuration shall be defined in a respective Endpoint Context data structure of the Input Context, and the parameters of the Endpoint Contexts shall correlate target endpoint settings (Endpoint Type, Max Packet Size, Burst Size, etc.). xHC and device behavior will be undefined if there are any mismatches. This also means that if the Configure Endpoint Command does not complete successfully, software shall not issue a SET_CONFIGURATION request to the device.

      Configure Endpoint CommandはInput Contextを指し、xHC用の狙いのコンフィギュレーションパラメータを定義します。すべての正しいxHCの命令にとってすべてのエンドポイントは各エンドポイントコンテキストのインプットコンテキストで定義されたデバイスコンフィグレーションにより利用可能になり、エンドポイントコンテキストのパラメータはエンドポイントのセッティングと関係します。xHCとデバイスは適合しないとき未定義の振る舞いを見せます。これはConfigure Endpoint Commandが完全に終わっておらず、ソフトウェアがSET_CONFIGURATION要求をデバイスに発行していない場合を意味しています。

    3. The Disable Slot Command is issued by software to inform the xHCI that a Device Slot is no longer needed, and that any resources assigned to the slot can be released. This command would be issued when a device is detached from the USB. A disabled Device Slot is available for assignment by the Enable Slot Command.

      Disable SlotコマンドはソフトウェアがxHCIにスロットに割り当てられたリソースが解放されデバイススロットが必要なくなったことを知らせるために発行されます。このコマンドはUSBからデバイスが離されたときに発行されます。使用不可デバイススロットはEnable Slotによって割り当てられ利用可能になります。

    4. The Enable Slot Command is issued by software to obtain an ID for an available Device Slot. System software uses the Slot ID returned by the command as an index into the Device Context Base Address Array to link a Device Context data structure for the USB device to a xHC Device Slot.

      Enable slotコマンドはソフトウェアが利用可能なデバイススロットのIDを得るために発行します。システムソフトウェアは、コマンドによって返されたSlot IDをDevice Context Base Address Arrayのインデックスとして使用し、USBデバイス用のDevice Contextデータ構造をxHCのDevice Slotに関連付けます。

    5. The No Op Command may be issued by software to exercise the TRB Ring mechanism of the xHC without affecting any xHC or USB Device state, or to report the current value of the Command Ring Dequeue Pointer. Refer to section 4.6.2 for more information on the No Op Command.

      No OpコマンドはxHCが他のxHCかUSBデバイス状態に影響を及ぼさずに、もしくはコマンドリングデキューポインターの値を報告するためのTRBリングのメカニズムの試験を発行します。

      セクション4.6.2でNo Opコマンドについて説明します。

    6. Evaluate Context Informs xHC that software has modified selected Context parameters. Reset Endpoint Resets selected Endpoint. This command is used to recover from a halted endpoint. Stop Endpoint Stops or aborts operation on selected Endpoint. Set TR Dequeue Pointer Updates the Transfer Ring Dequeue Pointer of an enabled endpoint. Reset Device Resets selected Device Slot. This command is used to synchronize the state of a Device Slot when resetting a USB device. Force Event Used with virtualization by a VMM to force a TRB on to an Event Ring owned by a VM. Negotiate Bandwidth Initiates Bandwidth Request Events. Set Latency Tolerance Used by software to set the Best Effort Latency Tolerance (BELT) value for the xHC. Get Port Bandwidth Provides a means for software to identify the periodic bandwidth available on xHC Root Hub Ports. Force Header Allows software to generate SS LMPs or TPs to a Root Hub Port

      ・Evaluate Context ソフトウェアが選んだコンテキストパラメータを変更したことをxHCに通知します。 ・Reset Endpoint 選んだエンドポイントをリセットします。このコマンドは停止したエンドポイントヲ復帰させるのに使われます。 ・Stop Endpoint エンドポイントに停止か中断命令を指します。 Set TR Dequeue Pointer 使用可能なエンドポイントの転送リングデキューポインターを更新します。 Reset Device 選んだデバイススロットをリセットします。このコマンドはUSBデバイスをリセットした時デバイススロットの状態を同期させるために使います。 Force Event 仮想マシンのイベントリングへVMMによるTRBの仮想化に使用します。 Negotiate Bandwidth 帯域幅の初期化の要求イベント Set Latency Tolerance ソフトウェアにxHC用のBELTの値をセットするのに使います。 Get Port BandWidth ソフトウェアにxHCで使用できる周期帯域幅を識別できる手段を提供します。 ・Force Header ソフトウェアがRoot Hub PortへのSS LMPsかTPを生成する許可を出します。

    7. No Op Tests TRB Ring mechanism Enable Slot Returns a Device Slot ID and transitions the Device Slot from the Disabled to the Default state. Disable Slot Transitions the selected Device Slot from any state to the Disabled state. Any pending transfers are terminated and the slot is made available again. Address Device Enables the Default Control Endpoint, optionally issues a SET_ADDRESS request to the USB device, and transitions the Device Slot to the Addressed state. Configure Endpoint Enables and/or Disables selected endpoints for the device.

      ・No OP TRBリングのテスト用 ・Enable slot デバイススロットIDとDisableからDefalut状態になったデバイススロットを返す ・Disable slot 選択したデバイススロットがいずれかの状態からDiabled状態に変わった。保留中の転送は終了しスロットはまた利用可能状態になる。 ・Address Device Default Control Endpointを有効化し、必要に応じてUSBデバイスにSET_ADDRESSリクエストを発行し、Device SlotをAddressed状態へ移行させる。 ・Configure Endpoint そのデバイスについて、指定されたEndpointを有効化および/または無効化する。

    8. The table below provides a summary of the xHCI command set. The remainder of this section provides a high level description of each of the commands.

      以下の表はxHCIのコマンドをまとめたものです。このセクションの残りは各コマンドの大まかな説明です。

    9. Commands are executed by the xHC in the order that they are placed on the Command Ring. System software may add CDs to the Command Ring while it is running, however the execution of CDs should be stopped if software wants to delete or reorder (i.e. raise the priority of) scheduled CDs. Special Command Ring controls allow commands to be stopped or aborted.

      コマンドたちはコマンドリングに配置された順番でxHCに処理されていきます。システムソフトウェアは起動中にコマンドリングにCDsが追加していきますがソフトウェアがCDsを消去や再スケジューリングしたい場合CDsの処理は止まります。特別なコマンドリングのcontrolsはコマンドを停止か無視します。

    10. All commands result in a Command Completion Event being placed on the Event Ring, which reports the completion status of the command.

      Command Completionイベントの全ての結果はイベントリングに配置され、コマンドの完了状態を報告します。

    11. To manage the xHC and the devices attached to it, the xHC provides an independent Command Ring interface. A work item on a Command Ring is called a Command Descriptor (CD). Command Ring operation is very similar to that of Transfer Rings, software issues a command to the xHC by placing a CD on the Command Ring then rings the Host Controller doorbell. The size of the Command Ring can be modified using the same Link TRB mechanism that Transfer Rings use.

      xhcとそれへのデバイス接続を管理するためxhcは独立したコマンドリングインターフェースを実現します。コマンドリングで実行しているものをコマンドディスクリプタと呼びます。コマンドリングの挙動は転送リングと酷似しており、コマンドリングに置かれたCDによるコマンドがxHCに通知されてからホストコントローラーのドアベルを鳴らします。コマンドリングのサイズは転送リングで使ったLinkTRBメカニズムと同じメカニズムを使って変更できます。

    12. When system software issues a SET_CONFIGURATION request to a USB Device, it enables a specific set of endpoints (pipes) in the device, which are defined by the respective Configuration Descriptor. To simplify the xHC hardware implementation, the xHC does not read descriptors from a device or monitor SET_CONFIGURATION (or SET_INTERFACE) requests to a device. Instead, the xHC depends on system software to coordinate the pipes configured in the xHC with those configured in the device. System software uses the Configure Endpoint Command to explicitly identify to the xHC the pipes that would be enabled by a target configuration and the characteristics of those pipes. Not only does the Configure Endpoint Command inform the xHC of the target USB Device configuration, but it also gives the xHC an opportunity to reject a configuration if the necessary USB bandwidth or xHC internal res ources are not available.

      システムソフトウェアがUSBデバイスにSET_CONFIGURATIONを要求した時特定のデバイスのエンドポイントの集合を使えるようにし、それらは各コンフィグレーションディスクリプタによって定義されます。xhcハードウェア設定を簡素化するために、xHCはデバイスかモニタのデバイスへのSET_CONFIGURATION 要求のディスクリプタを読み取りません。xHCは「自分の中に設定された通信経路」と「USBデバイス側に設定されている通信経路」が正しく対応するように、自動で全部判断してくれるわけではない。システムソフトウェアが両者を調整する。システムソフトウェアは明確にxHCのパイプを識別するためにConfigure Endpoint Commandを使いそのパイプのターゲットの特徴と設定を使えるようにします。Configure Endpoint CommandはターゲットUSBデバイスコンフィギュレーションのxHCを知らせるだけでなくUSBの帯域幅かxHCの内部リソースが使用できないとき設定を拒否するためにxHCに機会を与えます。

    13. A Transfer Ring may include an Event Data TRB. Rather than pointing to a Data buffer this TRB contains a 64-bit value which software may use to tag a TD and generate a special Transfer Event to pass that tag back to software when the TD is complete. Refer to section 4.11.5.2 for more information.

      Transfer RingにはEvent Data TRBを含めることができます。 このTRBはData Bufferを指すのではなく、ソフトウェアがTDを識別するために使用できる64ビット値を格納します。そして、そのTDが完了したとき、そのタグをソフトウェアに返すための特殊なTransfer Eventを生成します。

    14. Figure 3-6 illustrates a Transfer TRB Ring with multiple pending TDs. The Enqueue Pointer identifies the next TRB location available to system software for scheduling work (TDs) to the Ring. The Dequeue Pointer identifies the next TRB in the Transfer Ring to be executed by the xHC. Upon completion of a Transfer TRB, the Length and Status of the transfer may optionally be reported in a Transfer Event TRB. Refer to section 6.4.2.1 for more information on the Transfer Event TRB.

      Figure 3-6は、複数の未処理のTDを持つTransfer TRB Ringを示している。 Enqueue Pointerは、システムソフトウェアがTransfer Ringに作業(TD)をスケジュールするために利用できる、次のTRBの位置を示す。 Dequeue Pointerは、xHCによって実行されるTransfer Ring上の次のTRBを示す。 Transfer TRBの処理が完了すると、その転送のLengthとStatusは、Transfer Event TRBに任意で報告されることがある。

    15. The Control Dword in the TRB shall contain a TRB Type field and may contain one or more of the following fields: Chain (CH), Interrupt On Completion (IOC), Immediate Data (IDT), No-Snoop (NS), Interrupt-on Short Packet (ISP), Start Isoch ASAP (SIA), and Frame ID. Refer to section 6.4.1 for more information on the contents and use of the Transfer TRB Control Dword.

      TRBのControl DwordはTRBタイプと一つ以上のCH,IOC,IDT,NS,ISP,SIA,Frame IDフィールドを含みます。セクション6.4.1でその構成と転送TRBControlDwordの使い方について説明します。

    16. The Data Buffer Pointer field of a TRB provides byte granularity for data addressing. The Length field, which resides in the Status Dword, identifies the size of the buffer referenced by the Data Buffer Pointer. The maximum value the Length field may contain is 64K. When Length bytes are transferred, the next TRB in the ring is automatically accessed by the xHC. It is system software’s responsibility to ensure that the Length field is consistent with any Page crossings that may be encountered.

      TRBのdata buffer pointerフィールドはデータアドレッシング用のバイトを実現します。

      StatusのDwordにあるLengthフィールドはDataBufferPoitnerに参照されるバッファのサイズを識別します。Lengthフィールドの最大値は64Kです。Lengthバイトが転送された時xhcは自動的に次のTRBにアクセスします。システムソフトウェアには、Page crossingが発生する可能性がある場合に、Lengthフィールドがそれと整合するように設定する責任があります。

    17. The longer a system is running, the harder it is to find contiguous pages in physical memory. If due to runtime changes in workload demands, hot -plug events, etc., the host needs to increase the size of an existing Transfer Ring or allocate a multi-page Transfer Ring, then a special Link TRB may be used to extend a ring to include additional non-physically contiguous Segments.

      システムが長期間実行すると物理メモリの隣接ページを見つけるの難しくなります。実行上の都合で実行時間が変わるせいで(ホットプラグイベントなど)ホストは存在する転送リングか割り当てられている複数ページ転送リングのサイズの増加を要求しspecial Link TRBは追加の論理連続セグメントを含めてリングを拡張するのに使われます。

    18. For small, single buffer operations (of which many are required in the USB protocol) a TD will be composed of a single TRB. For large multi-buffer operations (e.g. Scatter/Gather), TRBs can be chained to form a complex TD. The small size of the TRB data structure allows up to 256 individual buffers to be defined in a 4K Segment (page of memory).

      小規模な単一バッファの転送処理(USBプロトコルではこのような処理が多数必要になります)では、TDは1つのTRBから構成されます。一方、大規模な複数バッファの転送処理(例えばScatter/Gather)では、複数のTRBを連結して複雑なTDを構成できます。TRBデータ構造は小さいため、4KBのSegment(メモリページ)内に最大256個の個別バッファを定義できます。

    19. A Transfer Request Block (TRB) is a data structure constructed in memory by software to transfer a single physically contiguous block of data between host memory and the xHC. TRBs contain a single Data Buffer Pointer, the size of the buffer, and some additional control information.

      TRBはホストとxhc間のデータ物理的に連続したシングルブロックを転送するためのソフトウェアのメモリに構築されます。TRBsはシングルデータバッファポインタ、バッファサイズ、追加されたcontrol情報を含みます。

    1. By including this definition, you can create a patch.xp3 file with its original folder structure. Remember to move the Config.tjs file to the root directory (originally located in the system folder), as Config.tjs is read before the Kirikiri engine gains the ability to read folders.

      この定義を含めることで、あなたはオリジナルの構成と同じ構成のpatch.xp3ファイルを作成できます。

      KiriKiriエンジンがフォルダ読取をするための機能を得る前にConfig.tjsを読み取るような

  2. Aug 2026
    1. By default, Kirikiri only reads data in the root directory of the patch.xp3 file. This can result in an ugly internal structure, as all data including images, tjs, and scenarios are collected in one folder. Moreover, it does not allow files with the same name that were previously in different folders. However, there is a way to make the KAG engine read the folder structure within patch.xp3. This can be achieved by adding a definition in the Config.tjs file. Here’s an example of the patch’s structure definition inside Config.tjs:

      デフォルトでは、KiriKiriはルートディレクトリのpatch.xp3しか読み取りしません。これは、画像、TJS、シナリオを含むすべてのデータが1つのフォルダに集められてしまうため、内部構造が雑然としたものになる可能性があります。さらに、以前は異なるフォルダに存在していた同名のファイルを扱うことができません。

      しかし、KAGエンジンがpatch.xp3のフォルダ構成を読み取る方法があります。それは定義されたConfig.tjsを追加することです。

      ここにConfig.tjs定義のパッチ構成の例があります。

    2. 3. Click “Process” and wait until the process is completed. 4. Copy the newly created xp3 file into the root folder of your game.

      3.「プロセス」をクリックし完了するまで待ちます。 4.作成された新しいxp3ファイルを元のゲームのフォルダにコピーします。

    3. To repack the translated materials back into an xp3 file, you can use the Translator++ xp3 repacker tool. Here’s how you can create an xp3 patch:

      変更した素材をxp3ファイルに戻すために、あなたはxp3変換ツールを使えます。ここにあなたがどのようにxp3 patchを作れるかがあります。

    4. 1. Export (not inject) your project into a blank folder. 2. Open the Translator++ XP3 repacker tool and select the directory you created in the previous step in the “Select directory” field. Also, select the target xp3 file. Note: The naming of the xp3 files matters, as the content of patch2.xp3 will overwrite patch.xp3, and so on.

      1.プロジェクトを既存のファイルに直接組み込むのではなく、空のフォルダに書き出してください。 2. Translator++のXP3 Repackerツールを開き、「Select directory」欄で前の手順で作成したディレクトリを選択します。また、対象となるXP3ファイルも選択します。

      注: XP3ファイルの名前には意味があります。patch2.xp3 の内容は patch.xp3 を上書きし、同様に後ろの番号のXP3ほど前のものを上書きします。

    5. First way of applying translation: Extracting data.xp3 into the data folder

      最初の方法翻訳を適用する最初の方法:dataフォルダのdata.xp3を解凍する。

    6. Extract the contents of data.xp3 into the data folder. Various tools such as GarBro or KrkrExtract can be used to extract xp3 files. Inject or apply your translation. Important: Remove the original data.xp3 file. This ensures that the game will load the data folder instead.

      1.dataフォルダのdata.xp3のコンテンツを解凍します。  ・GarbroかKrKrExtractのようないろんなツールでxp3を解凍できます。 2.あなたの変更を挿入か適用します。 3:重要:オリジナルのdata.xp3ファイルは別のところに移動します。これで確実にゲームが代わりのdataフォルダをロードします。

    7. This behavior allows us to create translations without modifying the original data.xp3 file or any of the original assets in the game. Instead, we can create a patch.xp3 file. Thus, there are at least two ways to inject mods or apply translations using the KiriKiri engine:

      この挙動は我々にゲームの任意の元々のアセットか元々のdata.xp3を変更することなく変化を加えることを許可します。

      したがって、KiriKiriエンジンを使ったmod挿入、アプリ変更するための少なくとも二つの方法があります。

    8. By default, the KiriKiri game reads resources in the specified folder/archive sequentially. If a script is found later, it will overwrite the previous resource. The order of resource reading is as follows:

      デフォルトではKiriKiriゲームは指定された連続のフォルダ/アーカイブのリソースを読み取ります。もしスクリプトが後から見つかったらそれは前のリソースを上書きします。リソースを読み取る順序は以下の通りです。

    9. For example, if there is a “first.ks” scenario in the Data folder, it will be overwritten by the “first.ks” in data.xp3. Similarly, the “first.ks” in data.xp3 will be overwritten by the version found in patch.xp3, and so on.

      例えばDataフォルダーに「first.ks」シナリオがあるとき、それはdata.xp3の「first.ks」に上書きされます。同様に、data.xp3の「first.ks」はpatch.xp3で見つかったバージョンに上書きされます。

    1. After a Transfer Ring is initialized Transfer Descriptors (comprised of one or more TRBs) may be placed on it. A “ring” is formed by the placement of a special Link TRB at the end of a Transfer Ring which jumps the TRB execution back to its beginning.

      転送リングがTransfer Descriptor(一つ以上のTRBsで公正された)を初期化した後にそれはそこに置かれます。

      リングはTRBの最初に戻る処理を行う、特殊なリンクTRBが転送リングの末尾に配置されるように形成されます。

    2. The Transfer Ring Enqueue and Dequeue Pointers are not accessible through physical xHC registers. They are logical entities, maintained internally by both system software and the xHC. Refer to section 4.9.2 for more information on Enqueue and Dequeue Pointers.

      転送リングの円キュー、デキューポインターは物理xhcレジスタを通じてアクセスできません。これらは論理的なエンティティであり、システムソフトウェアとxHCの両方によって内部的に管理されます。Enqueue PointerとDequeue Pointerの詳細については、4.9.2節を参照してください。

    3. In the simplest case, software defines a Transfer Ring by allocating and initializing a memory buffer for it, then setting the Enqueue and Dequeue Pointers to the address of this memory buffer and writing it into the TR Dequeue Pointer field of the associated Endpoint or Stream Context. Each memory buffer that comprises a Transfer Ring is called a Segment. Multiple Segments may be linked together to form large rings, and Segments may be added or removed from a ring during runtime. A Transfer Ring is empty when the Enqueue Pointe r equals the Dequeue Pointer.

      一番簡単なケースではソフトウェアは初期化と割り当てされたメモリバッファによって転送リングを定義し、エンキューとデキューポインターにこのメモリバッファのアドレスをセットし、割り当てられたエンドポイントかストリームのTRデキューポインターフィールドにそれを書き込む。転送リングを構成する各メモリバッファはセグメントと呼ばれます。複数のセグメントは一つの大きなリングを形成し、実行中はセグメントは追加されたり削除されたりします。エンキューポインター=デキューポインターの時転送リングは空です。

    4. A Transfer Ring exists for each active endpoint or Stream declared by a USB device. Transfer Rings contain “Transfer” specific TRBs. Section 4.11.2 for more information on Transfer TRBs.

      転送リングはUSBデバイスによって定義されたそれぞれのアクティブなストリームかエンドポイントに存在します。転送リングは特別なTRBを含みます。セクション4.11.2で詳しく説明します。

    5. Transfers to and from the Endpoint of a USB device are defined using a Transfer Descriptor (TD), which consists of one or more Transfer Request Blocks (TRBs, refer to sections 4.11 and 6.4). Transfer Descriptors are managed through Transfer Rings that reside in host memory. A Chain flag in the TRB is used to identify the TRBs that comprise a TD. Therefore, a TD refers to a consecutive set of TRB data structures on a Transfer Ring, where the Chain flag is set in all but the last TRB of a TD. Note that a TD may consist of a single TRB, whose Chain flag shall not be set.

      USBデバイスのエンドポイントの転送はTransferDescriptorを使って定義され、TDは一つ以上のTransfer Request Blocks で構成されます。TransferDescriptorはホストメモリーにいる転送リングを通じて管理されます。TRBのChainフラグはTDを構成するTRBを識別するのに使われます。したがってTDは転送リングの連続したTRBの集合を指し、ChainフラグはTDの最後のTRBを除くすべてに設定します。TDをシングルTRBで構成する場合、Chainフラグは設定しないほうが良いことを覚えていてください。

    6. The Command Ring is used by system software to issue commands to the xHC. The Event Ring is used by the xHC to return status and results of commands and transfers to system software. Transfer Rings are used to move data between system memory buffers and device endpoints. Below is a description of the operation of a Transfer Ring. All ring types employ the same basic mechanisms to transfer information between the xHC and host memory.

      コマンドリングはシステムソフトウェアがxHCにコマンドを発行するために使われます。

      イベントリングはxhcはコマンドの状態とステータスを返し、システムソフトウェアに転送するために使われます。

      転送リングはシステムメモリバッファとデバイスエンドポイントの間でデータを移動するために使われます。

      転送リングの命令の説明を以下に記載します。すべてのリングのタイプはxhcとホストメモリ間で情報を転送するために同じ基底メカニズムを使います。

    7. A Ring is a circular queue of data structures. Three types of Rings are used by the xHC to communicate and execute USB operations:

      リングは循環キューのデータ構造です。xhcは3つのタイプのリングを使って通信とUSB命令を処理します。

    8. Refer to section 6.2.5.1 for more information on the Input Control Context.

      インプットコントロールコンテキストはセクション6.2.5.1で詳しく説明します。

    9. For example: to set up the xHC to support a particular USB device configuration, software will initialize the Endpoint Context data structures of an Input Context with the target endpoint configuration information, insert a Configure Endpoint Command on the Command Ring that points to the Input Context, and ring the Host Controller Doorbell. The Input Endpoint Context information would include: type, Max Packet Size, Interval, etc. The Add flags in the Inp ut Control Context indicate which endpoints software wants to be added to the xHC’s list of valid endpoints, i.e. which Input Endpoint Contexts are valid. If the command is successful, the endpoint information in the Input Context is copied by the xHC

      例えば特定のUSBデバイスコンフィグレーションに対応したxHCをセットアップするためにソフトウェアはエンドポイントコンフィグレーションの情報を対象にインプットコンテキストのエンドポイントコンテキストを初期化し、インプットコンテキストを指すコマンドリングにConfigure Endpointを挿入し、ホストコントローラーのドアベルを鳴らします。インプットエンドポイントコンテキストの情報はtype, Max Packet Size, Intervalなどを含むでしょう。インプットコンテキストのAddフラグはエンドポイントsoftwareが求めているxHCの無効なエンドポイントのリストを示します。すなわちインプットエンドポイントコンテキストは無効です。もしコマンドが成功したらインプットコンテキストのエンドポイントの情報はxhcからデバイスコンテキストの各コンテキストをコピーし、xhcがそれらのエンドポイントの状態にRunをセットし、ドアベルが鳴るのを待ちます。

    10. The Input Control Context data structure contains two groups of flags (Drop and Add) organized as bit vectors. The interpretation of these flags is command dependent, but generally they are used to indicate which endpoints are affected by the command and how.

      Input Control Contextデータ構造には、ビットベクトルとして構成された2つのフラグ群(DropとAdd)が含まれています。これらのフラグの解釈はコマンドによって異なりますが、一般的には、どのEndpointがそのコマンドの対象となるのか、またどのように影響を受けるのかを示すために使用されます。

    11. Throughout this document Slot Context or Endpoint Contexts contained in an Input Context are also referred to as “Input” Slot or Endpoint Contexts. Refer to section 6.2.5 for more information on the Input Context.

      この仕様書を通してインプットコンテキストに含まれるスロットコンテキストかエンドポイントコンテキストは「インプットスロットかインプットエンドポイントコンテキストと呼ばれます。 セクション6.2.5でインプットコンテキストを詳しく説明しています。

    12. The Input Context data structure is used by system software to define device configuration and state information that will be passed to the xHC by an Address Device, Configure Endpoint, or Evaluate Context Command. It consists of an Input Control Context data structure, followed by a Slot Context, and 1 -31 Endpoint Context data structures. The Input Control Context data structure qualifies which of the remaining contexts are affected by the command. After a command is complete, software may reuse or free the Input Context data structure.

      システムソフトウェアが使うインプットコンテキストはxHCのアドレス、コンフィギュレーションエンドポイント、Evaluationコンテキストコマンドに渡す状態とデバイスコンフィグレーションを定義します。それはインプットコントロールコンテキストとそれに続くスロットコンテキストと1~31個のエンドポイントコンテキストで構成されます。Input Control Contextデータ構造は、残りのContextのうち、どれがそのコマンドの影響を受けるのかを指定します。コマンドが完了した後、ソフトウェアはInput Contextデータ構造を再利用するか、メモリを解放することができます。

    13. The Stream Context data structure provides a pointer to the Stream’s Transfer Ring and provides some opaque (scratchpad) space for the xHC.

      ストリームコンテキストはストリームの転送リングのポイントを実現しいくつかのxHCの一時領域になります。

    14. A Stream Context Array is employed to define the Transfer Rings of a USB3 endpoint that supports Streams. A Stream Context Array consists of Stream Context data structures. The number of Stream Context data structures in a Primary Stream Context Array and its location are defined by fields in the parent Endpoint Context. Figure 4-20 illustrates how a Stream Context Array may be used to extend the number of Transfer Rings that are supported by an endpoint.

      ストリームコンテキスト配列はストリームに対応したUSB3エンドポイントの転送リングを定義するために使われます。ストリームコンテキスト配列はストリームコンテキストで構成されます。プライマリーストリームコンテキストとその場所のストリームコンテキストの数は親エンドポイントコンテキストのフィールドによって定義されます。

      図4-20はエンドポイントに対応した転送リングの数を拡張するためにどのようにストリームコンテキストを使うか説明しています。

    15. An xHCI Reserved area of the Endpoint Context is available as an xHC implementation defined scratchpad.

      xhciのエンドポイントコンテキストの予約領域はxhc実装でスクラッチパッドとして利用可能です。

    16. As an Input Context member, the Endpoint Context data structure is used by system software to pass endpoint related command parameters to the host controller. In this document the Endpoint Context data structure of an Input Context is also referred to as “Input Endpoint Context”. If a command referencing an Input Context is successful, the xHC will update the Output Endpoint Context to reflect the parameter values that it is actively using to manage the endpoint prior to generating a Command Completion Event.

      インプットコンテキストのメンバとして、エンドポイントコンテキストはシステムソフトウェアがホストコントローラーへエンドポイントに関連したコマンドのパラメータを渡すのに使われます。この仕様書ではインプットコンテキストのエンドポイントコンテキストをインプットエンドポイントコンテキストと呼びます。インプットコンテキストを参照するコマンドが成功したら、xhcはコマンド完了イベントを生成する前にエンドポイントを管理するためによく使うパラメータの値を反映するためにアウトプットエンドポイントコンテキストをアップデートします。

    17. As a Device Context member, the Endpoint Context data structure is used by the xHC to report the current values of endpoint related parameters to system software. In this document the Endpoint Context data structure of a Device Context is also referred to as “Output Endpoint Context”.

      デバイスコンテキストのメンバとして、エンドポイントコンテキストはxhcがシステムソフトウェアにエンドポイントに関連した現在の変数のパラメータを報告するのに使われます。この仕様書ではデバイスコンテキストのエンドポイントコンテキストはアウトプットエンドポイントコンテキストと呼ばれます。

    18. The Endpoint Context also contains some fields that are helpful in debugging the transfer operations associated with the pipe. An Error Counter (CErr) may be used to force unlimited retries of USB transactions.

      Endpoint Contextには、そのPipeに関連する転送処理のデバッグに役立つフィールドもいくつか含まれています。CErr(Error Counter)は、USBトランザクションを無制限に再試行させるために使用することができます。

    19. Note that the Device Context and Input Context data structures provide for all possible (31) endpoints that can be declared by a USB device. Most devices declare only a small number of endpoints, which means that many of the Endpoint Context data structures in a Device Context or Input Context may be unused.

      Device ContextとInput Contextのデータ構造は、USBデバイスが宣言可能な最大31個すべてのEndpointに対応できるようになっています。

      しかし、ほとんどのUSBデバイスは少数のEndpointしか宣言しません。そのため、Device ContextやInput Context内にある多くのEndpoint Contextデータ構造は使用されないままになります。

    20. Most of the fields of the Endpoint Context contain endpoint related type, control, state, and bandwidth information, that correspond to the information in the associated endpoint related descriptors reported by the device. An Endpoint Context also defines a TR Dequeue Pointer field, which norm ally provides a pointer to the Transfer Ring associated with the pipe. There is a special case for USB3 Bulk endpoints where Streams may be associated with an endpoint. Streams allow the data stream of an endpoint to be multiplexed between Transfer Rings by the device (refer to section 4.12 for more information on Streams). In this case, a level of indirection is introduced to access the Transfer Rings associated with the endpoint, and the Endpoint Context TR Dequeue Pointer field contains a pointer to a Stream Context Array data structure (commonly referred to as a Stream Array), where each Stream Context data structure in the array may contain a NULL pointer (if the Stream ID is not assigned) or point to the Transfer Ring or another Stream Context Array associated with the respective Stream.

      Endpoint Contextのほとんどのフィールドには、Endpointの種類、制御、状態、帯域幅などに関する情報が含まれており、これらはデバイスが報告する関連するEndpoint Descriptorに含まれる情報と対応しています。エンドポイントコンテキストはTRデキューポインターとしても定義され、それはパイプによって割り当てられた転送リングへのポインタを実現します。特別なケースにエンドポイントによって割り当てられるストリームのUSB3Bulkエンドポイントがあります。ストリームはエンドポイントのデータストリームがデバイスの転送リングの間で多重化することを許可します。(セクション4.12でストリームについて詳しく説明しています。)この場合、そのEndpointに関連付けられたTransfer Ringにアクセスするために、1段階の間接参照が導入されます。Endpoint ContextのTR Dequeue Pointerフィールドには、Stream Context Arrayデータ構造(一般にStream Arrayと呼ばれる)へのポインタが格納されます。この配列内の各Stream Contextデータ構造には、Stream IDが割り当てられていない場合はNULLポインタが格納されるか、対応するStreamに関連付けられたTransfer Ring、または別のStream Context Arrayへのポインタが格納されます。

    21. The Endpoint Context data structure defines the configuration and state of a specific USB endpoint. This data structure is defined as a member of the Device Context and Input Context data structures. Refer to section 3.2.5 for information on the Input Context data structure.

      エンドポイントは特定のUSBエンドポイントの構成や状態を定義します。このデータ構造はデバイスコンテキストとインプットコンテキストのメンバとして定義されます。インプットコンテキストはセクション3.2.5で説明します。

    22. An xHCI Reserved area of the Slot Context is available as an xHC implementation defined scratchpad. All Reserved fields in the Slot Context are for the exclusive use of the xHC and shall not be modified by system software except when the Slot is in the Dis abled state.

      xhciのスロットコンテキストの予約エリアはxhc実装が定義したスクラッチパッドとして利用できます。

      Slot Context内のすべてのReservedフィールドはxHC専用で使用されるものであり、SlotがDisabled状態の場合を除いて、システムソフトウェアによって変更してはなりません。

    23. As an Input Context member, the Slot Context data structure is used by system software to pass command parameters to the host controller. The Slot Context data structure of an Input Context is also referred to as “Input Slot Context”. If a command targeted at a Device Slot is successful, the xHC will update the Output Slot Context to reflect the parameter values that it is actively using to manage the device prior to generating a Command Completion Event.

      スロットコンテキストはインプットコンテキストのメンバとしてシステムソフトウェアがコマンドパラメータをホストコントローラーに渡すために使われます。インプットコンテキストのスロットコンテキストはインプットスロットコンテキストと呼ばれます。もしデバイススロットを対象としたコマンドが成功したらxhcはCommand Completion イベントに先立って、デバイス管理のために積極的に使用するパラメータの値をアウトプットスロットコンテキストに反映するでしょう。

    24. As a Device Context member, the Slot Context data structure is used by the xHC to report the current values of device parameters to system software. The Slot Context data structure of a Device Context is also referred to as “Output Slot Context”.

      スロットコンテキストはデバイスコンテキストのメンバとしてxHCが現在のデバイスパラメータをシステムソフトウェアに報告するために使われます。デバイスコンテキストのスロットコンテキストはアウトプットスロットコンテキストと呼ばれます。

    25. The information provided by the Slot Context includes; control, state, addressing, and power management. The Slot States reported by the xHC identify the current state of a device and map closely to the USB Device States described in the USB specification. The addressing informat ion is used for a variety of purposes; The USB Device Address, assigned by the xHC, is available for developers to trace device related USB activity with a bus analyzer. The Route String is used by the xHC to target Enhanced SuperSpeed packets. And the Speed, Parent Port Number, and Parent Hub Slot ID fields allow the xHC to execute the split transactions necessary to address low- and full-speed devices attached to high-speed hubs. The power management information includes the Max Exit Latency, used by the xHC to determine the scheduling of Isoch packets on the bus.

      Slot Contextが提供する情報には、制御、状態、アドレス、電力管理に関する情報が含まれます。xHCによって報告されるSlot Stateは、デバイスの現在の状態を示し、USB仕様で定義されているUSB Device Stateと密接に対応しています。

      アドレスに関する情報はさまざまな目的に使用されます。xHCによって割り当てられるUSB Device Addressは、開発者がバスアナライザを使用してデバイス関連のUSB通信を追跡・解析するために利用できます。Route Stringは、xHCがEnhanced SuperSpeedパケットの宛先を指定するために使用されます。また、Speed、Parent Port Number、Parent Hub Slot IDの各フィールドにより、xHCはHigh-Speed Hubに接続されたLow-SpeedおよびFull-Speedデバイスと通信するために必要なsplit transactionを実行できます。

      電力管理情報にはMax Exit Latencyが含まれており、xHCはこれを使用してバス上でのIsochパケットのスケジューリングを決定します。

    26. The Slot Context data structure contains information that relates to the device as a whole, or affects all endpoints of a USB device. This data structure is defined as a member of the Device Context and Input Context data structures. Refer to section 3.2.5 for information on the Input Context data structure.

      スロットコンテキストデータ構造は全ての、もしくは影響を与えるすべてのUSBデバイスのエンドポイントに関係する情報が含まれます。このデータ構造はデバイスコンテキストとインプットコンテキストのメンバーとして定義されます。インプットコンテキストについてはセクション3.2.5で説明します。

    27. ‘0’. Ownership of the data structure is then passed to the xHC with an Address Device Command. The xHC maintains ownership of the Device Context until the device slot is disabled with a Disable Slot Command. The Device Context data structure shall be treated as read-only by system software while it is owned by the xHC.

      USBデバイスの列挙処理の一環として、システムソフトウェアはデバイスのホストメモリ用のデバイスコンテキストデータ構造を割り当て0で初期化します。アドレスデバイスコマンドによってデータ構造の所有権はxHCに移ります。Disable Slot コマンドによってデバイススロットが無効になるまでxHCは所有権を維持します。デバイスコンテキストデータ構造はxHCが持っている間システムソフトウェアによって読み取り専用にされなければなります。

    28. The Device Context data structure is managed by the xHC and used to report device configuration and state information to system software. The Device Context data structure consists of an array of 32 data structures. The first context data structure (index = ‘0’) is a Slot Context data structure (6.2.2). The remaining context data structures (indices 1-31) are Endpoint Context data structures (6.2.3).

      デバイスコンテキストはxHCに管理されデバイス設定と状態の情報をシステムソフトウェアに報告するために使われます。デバイスコンテキストデータ構造は32個のデータ構造の配列で構成されます。最初の要素はスロットコンテキストデータ構造で、残りはエンドポイントデータ構造です。

    29. Note that the first entry (Slot ID = ‘0’) in the Device Context Base Address Array is utilized by the xHCI Scratchpad mechanism. Refer to section 4.20 for more information.

      DCBAAのSlot id0はxHCIの一時記憶機構に利用されることを認識しておいてください。セクション4.2.0で詳しく説明します。

    30. The Device Context Base Address Array (DCBAA) provides the xHC with a Slot ID based lookup table for accessing the Device Context data structure associated with each slot. This data structure consists of an array of pointers to Device Context data structures. When a device attach is detected: system software initializes a Device Context data structure, requests a Slot ID from the xHC, and inserts a pointer to the newly created Device Context into the DCBAA at the location indicated by the Slot ID.

      DCBAAは各スロットに割り当てられたデバイスコンテキストデータ構造にアクセスするためのxhcのスロットIDに基づいたlookupテーブルを実現します。このデータ構造はデバイスコンテキストデータ構造のポインタ配列で構成されます。デバイスの接続が検出されると、システムソフトウェアはDevice Contextデータ構造を初期化し、xHCにSlot IDを要求します。そして、新しく作成したDevice Contextへのポインタを、Slot IDによって示されるDCBAA内の位置に登録します。

    31. The xHC is expected to run in virtual memory environments where the size of a contiguous block of physical memory will be limited by the Page size of the system. The data structures that the xHC uses to manage devices and endpoints are designed to accommodate this limitation, by either keeping the data structure under 4K Bytes (the minimum Page size supported), or providing mechanisms to link non-contiguous blocks of physical memory to form larger, logically contiguous data structures, e.g. circular queues of data structures t hat point to the data buffers used for transferring USB data to or from the host. The data buffers referenced by these data structures may be byte aligned and reference from 1 to 64K bytes of contiguous physical data.

      xHCはシステムのページサイズによって制限される仮想環境の物理メモリの連続ブロック上で実行することが期待されています。xHCがデバイスとエンドポイントの管理に使うデータ構造はこの制限に収めるためにデザインされていて、データ構造を4KB未満(サポートされる最小のページサイズ)に保つか、あるいは、連続していない物理メモリ領域をつないで、より大きな論理的に連続したデータ構造を形成する仕組みを提供することによって、実現します。例えば、ホストとの間でUSBデータを転送するために使用されるData Bufferを指し示すデータ構造の循環キューなどです。それらのデータ構造から参照されるデータ構造はバイト境界になり1から64バイトの連続物理メモリで参照されます。

    32. All three types of rings support the ability for system software to grow or shrink them while they are active. Special TDs written to the Transfer and Command rings allow software to change their size, however since the Event Ring is read - only to software, the Event Ring Segment Table is provided so that software may modify its size.

      この3つのリングはすべて動作中に拡大、縮小するためのシステムソフトウェア用の機能に対応しています。転送、コマンドリングに書かれた特別なTD達はソフトウェアにそれらのサイズを変えることを許可しますが、イベントリングは読み込み専用で、Event Ring Segment Tableがサイズを変更できるようにします。

    33. A Transfer Ring is used by software to schedule work items for a single USB Endpoint. A Transfer Ring is organized as a circular queue of Transfer Descriptor (TD) data structures, where each Transfer Descriptor defines one or more Data Buffers that will be moved to or from the USB. Transfer Rings are

      Transfer ringはソフトウェアがシングルUSBエンドポイント用の処理スケジュールをするために使われます。Transfer ringはTDデータ構造の循環キューで整理して、 それぞれのTransfer Descriptorは、USBとの間で転送される1つ以上のData Bufferを定義します。 Transfer ringはxHCで読み込み専用として扱わなければいけません。セクション4.9.2でTransfer ringについて説明します。

    34. The Event Ring is used by the xHC to pass command completion and asynchronous events to software. The Event Ring shall be treated as read -only by system software. Refer to section 4.9.4 for a discussion of Event Ring Management.

      イベントリングはxhcがコマンド完了、非同期イベントをソフトウェアに渡すために使われます。イベントリングはシステムソフトウェアで読み込み専用で扱われなければいけません。セクション4.9,4でイベントリングについて説明します。

    35. The Command Ring is used by software to pass device and host controller related commands to the xHC. The Command Ring shall be treated as read-only by the xHC. Refer to section 4.9.3 for a discussion of Command Ring Management.

      ソフトウェアが、デバイスやホストコントローラーに関するコマンドをxHCに渡すために、Command Ringが使用されます。xHCはCommand Ringを読み取り専用として扱わなければならない。セクション4.9.3でコマンドリングの管理について取り扱います。

    36. The Device Context Base Address Array supports up to 255 USB devices or hubs, where each element in the array is a pointer to a Device Context data structure.

      DCBAAは最大255個のUSBデバイスかハブに対応していて、配列の各要素はデバイスコンテキストデータ構造のポインタです。

    37. The term Device Slot is used as a generic reference to a set of xHCI data structures associated with an individual USB device. Each device is represented by an entry in the Device Context Base Address Array, a register in the Doorbell Array register, and a device’s Device Context. The term Slot ID refers to the index used to identify a specific Device Slot. For example the value of Slot ID will be used as an index to identify a specific entry in the Device Context Base Address Array.

      デバイススロットは個々のUSBデバイスに割り当てられたxHCIデータ構造の集まりを参照するのに使われます。各デバイスはDCBAAエントリーが代表とされます。スロットIDは特定のデバイススロットを識別するのに使うインデックスを指します。例えばスロットIDの値は特定のDCBAAエントリーにを識別するインデックスとして使われます。

    38. The Doorbell Array is an array of up to 256 Doorbell Registers, which supports up to 255 USB devices or hubs. Each Doorbell Register provides system software with a mechanism for notifying the xHC if it has Slot or Endpoint related work to perform. A DB Target field in the Doorbell Register is written with a value that identifies the reason for “ringing” the doorbell. Doorbell Register 0 is allocated to the Host Controller for Command Ring management.

      Doorbell Arrayは最大256個のDoorbellレジスタで、最大255個のUSBデバイスかハブに対応しています。各DoorbellレジスタはxHCが持つスロットかエンドポイントが実施すべき処理を通知するための機構のシステムソフトウェアを実現します。DoorbellレジスタのDBTargetフィールドは値が書き込まれDoorbellが鳴らされた理由を識別します。Doorbellレジスタ0をコマンドリング管理用のホストコントローラーに割り当てます。

    39. The xHCI Extended Capabilities specify optional features of an xHC implementation, as well as providing the ability to add new capabilities to implementations after the publication of this specification.

      xhci拡張Capabilitiesはxhc実装の任意の機能を規定し、この仕様が出版された後も新規の機能を追加するための機能を実現します。

    40. The Runtime and Operational Registers specify host controller configuration and runtime modifiable state, and are used by system software to control and monitor the operational state of the host controller. These registers ar e partitioned as a function of those that are heavily accessed during runtime and those that are accessed only at initialization time or only lightly during runtime to better support virtualization of the xHCI.

      RuntimeとOperationalレジスタはホストコントローラーの命令状態の制御と監視のためのシステムソフトウェアによって使われるホストコントローラーの構成と実行変更可能状態を規定します。これらのレジスタはxHCIの仮想化機能を向上させるために実行時に頻繁にアクセスされる機能と初期化時のみ実行時に負荷の軽い機能に分割されました。

    41. The Capability Registers specify read-only limits, restrictions and capabilities of the host controller implementation. These values are used as parameters to the host controller driver.

      Capability Registersには、そのホストコントローラーが備える機能や制限、上限などの読み取り専用の情報が規定されています。それらの値はホストコントローラードライバーのパラメータに使われます。

    42. The USB Base Address Register (BAR) in the PCI Config Space points to the base address of the xHC register interface. The xHC register interface consists of 4 major components: Capability Registers, Operational Registers, Runtime Registers, and the Doorbell Array. The Operational and Capability Regist ers are concatenated in MMIO space. The Runtime Registers are actually just an extension of the Operational Registers. Their partitioning allows the xHC to better support virtualization, by allowing the Runtime Registers to reside on a separate page boundary. A xHCI Capabilities Pointer mechanism (similar to that defined by PCI) is presented in the Capability Registers to point to new or optional capabilities of an xHC implementation.

      PCIコンフィギュレーション空間のUSBBARはXHCレジスタインターフェースのベースアドレスを指し示します。xHCレジスタインターフェースはCapability レジスタ, Operational レジスタ, Runtime レジスタ、 Doorbell Arrayの4つの主要な要素で構成されます。Capability レジスタ, Operational レジスタはMMIO空間に連結されています。Runtimeレジスタは実はOperational レジスタの延長です。これらのレジスタを分割することで、Runtime Registersを別のページ境界に配置できるようになり、xHCは仮想化をより適切にサポートできます。PCIで定義されている仕組みに似たxHCI Capabilities Pointerという仕組みがCapability Registers内に用意されており、xHCの実装が持つ新しい機能やオプション機能を指し示します。

    43. The xHCI provides support for two categories of USB transfer types: asynchronous and periodic. Isochronous and Interrupt transfers are Periodic transfer types. Asynchronous transfer types include Control and Bulk. Figure 3-3 illustrates that the xHCI provides a homogeneous mechanism (Transfer Rings) for each category of transfer type.

      xhciは非同期と定期の2種類のカテゴリのUSB転送タイプに対応しています。アイソクロナス転送と割り込み転送は定期転送タイプです。非同期転送にはControlとBulkがあり、xHCIではそれぞれを扱うために共通のTransfer Ringという仕組みを使用している。

    44. This space is defined by the control data structures (Device Context Base Address Array, Device Contexts, Transfer Rings, etc.) and data buffers that are allocated and managed by the xHC Driver to enable the endpoint traffic of individual devices. This sp ace is allocated in the Kernel and User areas of the Memory Address Space.

      このスペースはコントロールデータストラクチャと個人デバイスのエンドポイントの通信の往来を可能にするためのxHCドライバーによって割当、管理するデータバッファによって定義されます。このスペースはメモリアドレス空間のユーザーエリアとカーネルに割り当てられます。

    45. The Register Space represents the hardware registers presented by the xHC to system software that reside in the Memory Address Space. The Register Space provides for the implementation - specific parameters defined in the xHCI normal and Extended Capabilities registers, the Operational and Runtime control and status registers, and the Doorbell Array used to flag accesses to individual USB devices. This space, normally referred to as I/O space, is implemen ted as Memory-Mapped I/O (MMIO) space.

      レジスタスペースはメモリアドレススペースにいるxHCからシステムソフトウェア用のハードウェアレジズタスペースを表します。レジスタスペースは個人デバイスのフラグへアクセスするのに使うxhciの標準、拡張Capabilitiesレジスタ,Operational、Runtime control、 status レジスタ、 Doorbell Arrayで特定の機能のパラメータを定義します。このスペースは通称I/Oスペースと呼ばれ、MMIO空間として実装されます。

    46. Every xHC implementation shall include a means of identifying and enumerating the host controller by system software. This specification provides a PCI example of the Host Configuration Space, which is referred to as PCI Config Space. The PCI Config Space definition provides a working example of configuration space use for system xHC enumeration and resource (interrupt, power, virtualization, etc.) management.

      全てのxhcの実装は識別子とシステムソフトウェアによって列挙されたホストコントローラーを含みます。この仕様はホストコンフィギュレーション空間の例であるPCIコンフィギュレーション空間を実現します。PCI Config Spaceの定義では、システムによるxHCの列挙・認識や、リソース(割り込み、電力、仮想化など)の管理のためにConfiguration Spaceを使用する具体例が示されています。

    47. The xHCI interface defines three interface spaces (refer to Figure 3-3):

      xhciインターフェースは三つのインターフェーススペースで定義されます。(図3-3参照)

    48. The xHC always manages the respective speed USB devices connected to its Root Hub ports. Depending on the implementation, the resources of a USB bus instance (bandwidth, device addressability, etc.) may be presented on each root hub port, shared across multiple root hub ports, or a combination of allocations. This specification defines the registers and interfaces for the eXtensible Host Controller Interface.

      xhcは常にルートハブポートに接続されたそれぞれのUSBデバイスの通信速度を管理します。USBバスインスタンスのリソースは複数のルートハブポートで共有、あるいは割り当ての組み合わせの各ルートハブポートに提供されるでしょう。

      この仕様はxhciのレジスタ群とインターフェースを定義します。

    49. Note that Figure 3-2 does not imply a particular xHC implementation, however the functional partitioning that it illustrates is useful for this discussion. The Host Interface Logic manages the Registers and DMA associated with the xHC.

      図3-2は特定のxhcの実装を暗示していないことに注意してください、しかしこの議論において図示された機能分割は役に立ちます。ホストインターフェースロジックはレジスタ群とxhcに関連したDMAを管理します。

    50. The xHCI architecture allows the USB3 host controller to provide USB functionality for all speed devices without requiring, as in previous generations, companion controllers along with the associated software support for their respective drivers. The enhanced features of the xHCI architecture are key to delivering this simplified operating environment.

      xHCIアーキテクチャでは、USB 3ホストコントローラーだけで、さまざまな速度のUSBデバイスにUSB機能を提供できます。従来の世代のように、Companion Controllerや、それぞれのドライバをサポートするための関連ソフトウェアを必要としません。 xHCIアーキテクチャの強化された機能が、この簡素化された動作環境を実現するための鍵となっています。

    51. The xHCI is used for all communications to devices connected through the Root Hub ports of the USB3 host controller.

      xhciはUSB3ホストコントローラーのルートハブを通じてデバイスを繋げるための全ての通信を使用します。

    52. Native OS support for Device Classes allows a compliant device to provide a user with basic functionality if the vendor Device Class drivers are not available, however a vendor can define their own Class Driver to add value. Many commodity USB device vendors (mice, keyboard, etc.) take advantage of those provided by OS vendors and don’t bother to offer their own Class Drivers. If a vendor offers a USB device that does not fall under one of the standard USB defined Device Classes supported by an OS then they shall offer their own Class Driver.

      OSがDevice Classを標準でサポートしていれば、仕様に準拠したデバイスは、メーカー独自のDevice Class Driverが利用できない場合でも、ユーザーに基本的な機能を提供できます。ただし、メーカーは独自のClass Driverを定義して付加価値を加えることもできます。多くの一般的なUSB機器メーカー(マウス、キーボードなど)は、OSベンダーが提供するClass Driverを利用しており、自社独自のClass Driverをわざわざ提供していません。もしメーカーが、OSによってサポートされている標準USB Device Classのいずれにも該当しないUSBデバイスを提供する場合、そのメーカーは独自のClass Driverを提供しなければなりません。

    53. Working groups in the USB-IF have defined several standard USB Device Classes (Mass Storage, Audio, etc.). A USB device vendor may choose to define a proprietary Device Class for their product or utilize part or all of an appropriate USB-IF defined Device Class. The USB-IF defined Device Classes provide a baseline set of features, for their respective class. Several USB Device Classes are supported natively by today’s Operating Systems.

      USB-IFはいくつかの標準USBデバイスクラスを定義しました。ベンダーは商品もしくは部品の活用もしくはUSB-IFのデバイスクラスすべてのために独自のデバイスクラスを定義します。USB-IFが定義したデバイスクラスはそれぞれのクラス用の基礎機能のセットを提供します。現在のOSでいくつかのUSBデバイスクラスは標準で対応しています。

    54. “value add” that a vendor may provide. As long as the USB Framework presented through the USBDI remains unchanged, the USB Class Drivers do not have to change because the USB bus driver does (e.g. to support the xHCI)

      Class Driverには、ベンダーが独自に提供する付加価値も含まれます。USBDIを通して提供されるUSB Frameworkが変更されない限り、USB Bus Driverが変更されたとしても(例えばxHCIをサポートするために)、USB Class Driverを変更する必要はありません。

    55. The USB bus driver (USBD) provides a standard method of interfacing to the transport mechanisms (USB Framework) defined by the USB architecture (Isoch, Interrupt, Control, and Bulk Pipes) and the Device Class driver is where all the application specific knowledge resides.

      USB Bus Driver(USBD)は、USBアーキテクチャによって定義された転送メカニズム(USB Framework:Isoch、Interrupt、Control、Bulk Pipe)とやり取りするための標準的な方法を提供します。一方、アプリケーション固有の知識はすべてDevice Class Driverに存在します。

    56. The Device Framework allows the USB architecture to separate the details of the “Bus” interface from that of the application specific (“Device”) interface, resulting in a split driver model (xHCD/Class Driver). Note that in this context, Device Class refers to the portion of a USB device that performs some useful end user application specific function (e.g. Mass Storage, Audio, Human Interface, etc.).

      デバイスフレームワークはアプリケーションのデバイスインターフェースからバスインターフェースの詳細を分離させることをUSBアーキテクチャに許可します、その結果分割型ドライバーモデルになります。ここでいうDevice Classとは、USBデバイスの中で、ストレージやオーディオ、キーボードなど、エンドユーザーが利用する特定の機能を担当する部分を指します。

    57. A key feature of the USB architecture is the Device Framework that it presents. The Device Framework defines the interface between a USB device and a Class Driver, which is independent of the particular host controller interface that a system employs to communicate with the USB. This interface consists of a Default Pipe, and zero or more additional class defined Pipes. The Default Pipe (also referred to as the Default Control Endpoint) is used to enumerate and manage a USB device. It can also be used to provide access to application specific features of the device. The class defined Pipes provide specialized Quality-of-Service requirements to perform device class specific functions.

      USBアーキテクチャの主な特徴はデバイスフレームワークが提供します。デバイスフレームワークはUSBデバイスとクラスドライバー間のインターフェースを定義し、それはシステムがUSBと通信するために使われ特定のホストコントローラーインターフェースから独立しています。このインターフェースはデフォルトパイプとクラス定義された0個以上の追加パイプで構成されます。そのデフォルトパイプ(おそらくデフォルトコントロールパイプと呼ばれる)はUSBデバイスの列挙と管理に使用されます。それはデバイスのアプリの特定の機能へのアクセスを提供するのにも使われます。クラス定義されたパイプはデバイスクラスの特定の機能を実行する特化したサービス品質要件を提供します。

    58. This is a hardware device that expands the bus topology (hub) or performs a useful end-user function. Interactions with USB devices flow from the applications through the software and hardware layers to the USB devices.

      これは、USBハブのようにバストポロジーを拡張したり、キーボードなどのようにエンドユーザー向けの機能を提供したりするハードウェアデバイスです。USBデバイスとの通信は、アプリケーションからソフトウェア層、ハードウェア層を経由してUSBデバイスへと伝わります。

    59. The host controller is the specific hardware implementation of the host controller architecture. There is one host controller specification for the USB3 host controller, which enables support for Low-, Full-, High-, SuperSpeed, and SuperSpeedPlus devices. The interface presented by the xHC to the system is referred to as the eXtensible Host Controller Interface or the xHCI.

      xhcはホストコントローラーアーキテクチャの特定のハードウェア実装です。USB3ホストコントローラーのためのホストコントローラーの仕様が一つあり、Low-, Full-, High-, SuperSpeed, and SuperSpeedPlusデバイスに対応しています。xHCがシステムに提供するインターフェースは、eXtensible Host Controller Interface、またはxHCIと呼ばれます。

    60. xHCD provides the software layer between the Host Controller hardware and the USBD. The details of the host controller driver depend on the host controller hardware register interface definition.

      xHCDホストコントローラーハードウェアとUSBDの間のソフトウェアレイヤーによって実現されます。ホストコントローラードライバーの詳細はホストコントローラーハードウェアレジスタインターフェースの定義によって決まります。

    61. The USBD is a system software Bus Driver that abstracts the details of the particular Host Controller Driver for a particular operating system. The generic USB interface p resented to the system by USBD is referred to as the USB Driver Interface or the USBDI.

      USBDは特定のOSのための特定のホストコントローラードライバーの詳細を抽象化するバスドライバーです。汎用USBインターフェースはUSBDIかUSBドライバーインターフェースと呼ばれているUSBDによって提示されます。

    62. This software executes on the host PC corresponding to a particular “class” of USB device (Mass Storage, Human Interface, Audio, etc.). Class Driver software is typically part of the operating system or provided with the USB device.

      このソフトウェアはUSBデバイスの特定の「クラス」に対応するホストPCで処理される。クラスドライバはosの一部であるかUSBデバイスを用いて実現されます。

    63. This software uses the services provided by one or more USB devices. Application software interfaces with USB devices through standardized interfaces provided by the Class Drivers.

      このソフトウェアは一つ以上のUSBデバイスによって実現されたサービスです。 アプリケーションソフトウェアインターフェースはクラスドライバによって標準化されたインターフェースを介してUSBデバイスを用います。

    64. A USB Host System is composed of a number of hardware and software layers. Figure 3-1 illustrates a conceptual block diagram of the building block layers in a host system that work in concert to support USB 3.x.

      USBホストシステムはいくつかのハードウェアとソフトウェアレイヤーで構成されています。 図3-1はUSB3.xに対応するための連携するホストシステムの構成単位の概念ブロック図を図示します。

    65. Adopters and Contributors of the eXtensible Host Controller Interface Specification for Universal Serial Bus (xHCI) have signed the eXtensible Host Controller Interface (xHCI) Specification Contributor Agreement in order to be licensed to use and implement this Specification. This Contributors Agreement provides Contributors and Adopters with a reciprocal, royalty-free license to certain intellectual property rights from Intel and other Adopters and Contributors for their products that are compliant with the xHCI specification. Adopters and Contributors can demonstrate compliance with the Specification through the testing program as defined by Intel.

      xHCI仕様を使いたい ↓ Contributor Agreementに署名する ↓ 仕様を使用・実装するライセンスを得る ↓ 一定の知的財産権について 相互・ロイヤリティなしのライセンスが得られる ↓ Intelのテストプログラムで xHCI仕様への準拠を証明できる

    66. Through use of the PCIe SR-IOV specification, the xHCI provides a Virtual Machine Manager with the ability to enable Virtual xHCs

      PCIe SR-IOV仕様を使う中でxhciは(VxHCs)コントローラーを有効にする機能を仮想マシンマネージャーに提供していくつかのUSB デバイスをVxHCインターフェースに割り当てます。 仮想化機能はxhciの任意規格です。

    67. Support for Virtual Memory. All xHCI register and data structures are designed to support the “coarse-grain” Scatter/Gather requirements of page based virtual memory architectures. Support for “fine-grain” Scatter/Gather. The interface supports a hardware scatter/gather method for all data transfers that may be used for accessing memory. The EHCI scatter/gather mechanism was an example of Coarse Grain scatter/gather. It was tailored specifically to work with page based virtual memory, specifying a Start Offset, a Transfer Length and a list of Page aligned addresses. The xHCI scatter/gather mechanism is not constrained by memory page boundary or size limitations. xHCI scatter/gather lists may be comprised of buffers starting on any byte boundary and any byte length. This feature allows the xHCI scatter/gather mechanism to be used for accessing page aligned data, as well as at the application level to minimize software data copies.

      仮想メモリのサポート xHCIのすべてのレジスタおよびデータ構造は、ページベースの仮想メモリアーキテクチャにおける「粗い粒度(coarse-grain)」のScatter/Gather要件をサポートするように設計されています。

      「細かい粒度(fine-grain)」のScatter/Gatherのサポート このインターフェースは、メモリへのアクセスに使用される可能性のあるすべてのデータ転送について、ハードウェアによるScatter/Gather方式をサポートしています。EHCIのScatter/Gather機構はCoarse Grain Scatter/Gatherの一例でした。これはページベースの仮想メモリで動作することに特化されており、開始オフセット、転送長、およびページ境界に揃えられたアドレスのリストを指定していました。一方、xHCIのScatter/Gather機構は、メモリのページ境界やサイズによる制限を受けません。xHCIのScatter/Gatherリストは、任意のバイト境界から開始し、任意のバイト長を持つバッファから構成できます。この機能により、xHCIのScatter/Gather機構はページ境界に揃えられたデータへのアクセスだけでなく、アプリケーションレベルでソフトウェアによるデータコピーを最小限にするためにも使用できます。

    68. Over the implementation lifetime of this specification, it is expected that xHCI controllers will be used increasingly in architectures that support more than 32-bits of addressable memory space. The xHCI inherently supports up to 64-bits of addressing.

      本仕様に実装期間にわたりxhciは32bitアドレス空間での使用を想定していますが本質的には64bitに対応しています。

    69. The xHCI provides a simple interface for software to provide the host controller with parameterized Transfer Requests that the host controller uses to execute transactions on the USB. The interface allows software to asynchronously add work to the interface while the host controller is executing, without requiring the use of software synchronization primitives.

      xHCIは、ソフトウェアがホストコントローラーにパラメータ化されたTransfer Requestを渡すための、シンプルなインターフェースを提供する。 インターフェースは使用しているソフトウェアの同期プリミティブの許可なしでホストコントローラー処理中に非同期にインターフェースに作業の追加を許可します。

    70. The xHCI’s data transfer model eliminates the memory based transaction schedules that existed in previous host controller architectures. It utilizes Transfer level operations to decrease the average number of memory accesses required to execute USB operations.

      xhciのデータ転送モデルは前のホストコントローラーアーキテクチャに存在したメモリに置かれたトランザクションスケジュールを削除します。それはUSB命令処理を要求するメモリアクセスの平均回数を減らすために転送レベルの命令で活用されます。

    71. The xHCI specification enables solutions to a myriad of issues, which have proven to be problematic for USB host controllers. Some of the issues resolved in the xHCI specification include: Memory thrashing, Memory access efficiency, and conflicts with CPU power management. The xHCI architecture provides both new specific features and optimizations to its architecture to solve the legacy issues.

      xhci仕様書はUSBホストコントローラーで判明した無数の問題を解決してくれます。メモリスラッシング、効率的なメモリアクセスCPU電力管理の衝突といったいくつかの問題をxhci仕様書は解決しました。xhciアーキテクチャは新しい特有の機能と従来の問題を解決するための最適化されたアーキテクチャを実現しました。

    72. 51 by the xHCI. Special attention has been paid to minimizing power consumption when the system is Idle. USB is a critical component in delivering a consistent, coherent and robust user experience. If the implementation includes PCI configuration registers, then the host controller is required to implement a PCI Power Management Interface (PCI PM).

      USB2LPM拡張機能はxhciに対応しています。特に注目されているのがシステムが停止状態の時電力消費を最小化することです。USBの重要なコンポーネントは一貫性と堅牢なユーザーエクスペリエンスで一貫して提供され続けています。機能にPCIコンフィギュレーションレジスタが含まれるときホストコントローラーはPCI電力管理インターフェース機能を必要とします。

    73. System Power Management. Current PC architectures are providing ubiquitous support for aggressive power management. The USB3 architecture focuses on power conservation to improve battery life in mobile, battery powered applications. USB2 LPM (Link Power Management) extensions are also supported

      現在のPCアーキテクチャは積極的な電力管理のためのユビキタスを実現している。USB 3アーキテクチャは、モバイル機器などのバッテリー駆動環境でバッテリー寿命を延ばすため、省電力化を重視しています。

    74. Support for all USB device speeds. The xHCI specification defines support for all USB device speeds including; USB 2.0 Low-, Full-, and High-speed devices, and USB 1.1 Low- and Full-speed.

      xhci仕様書はすべてのUSBデバイスの速度を網羅している。一覧:USB 2.0 Low-, Full-, and High-speed devices,and USB 1.1 Low- and Full-speed.

    75. Robust Support for all USB 3.x Features. This specification describes a host controller architecture that is capable of supporting compliant USB 3.x SuperSpeedPlus and SuperSpeed devices. This includes new USB 3.x features such as asynchronous transactions and other extensions to the protocol.

      この仕様書は、USB 3.xの仕様に準拠したSuperSpeedPlusおよびSuperSpeedデバイスをサポートできるホストコントローラーアーキテクチャについて説明しています。

      名詞 + that + 動詞 ... 「thatの前の名詞について追加説明している」

    76.  Efficient operation – idle power and performance better than current USB host controller architectures.  A device level programming model that is fully consistent with the existing USB software model  Decouple the host controller interface presented to software from the underlying USB protocols  Minimize host memory accesses, fully eliminating them when USB devices are idle  Eliminate the “Companion Controller” model  Enable hardware “fail-over” modes in system resource constrained situations so devices are still accessible, but perhaps at less optimal power/performance point  Provide the ability for different markets to differentiate hardware capabilities, e.g. target host controller power, performance and cost trade-offs for specific markets  Define an extensible architecture that provides an easy path for new USB specifications and technologies, such as higher bandwidth interfaces, optical transmission medium, etc., without requiring the definition of yet another USB host controller interface

      ・効率的な操作-停止状態の電力と性能が現在のUSBホストコントローラーより良い ・デバイスレベルのプログラミングモデルが既存のUSBソフトウェアモデルと完全に整合性がとれている ・ソフトウェアに提示されるホストコントローラーインターフェースを、その下にあるUSBプロトコルから切り離す ・ホストメモリアクセスが最小化されて、USBデバイスたちが停止状態の時完全に排除されている ・"Companion Controller”モデルを排除する ・ある機能・装置が使えなくなったとき、最適な電力消費や性能でなくても別の方法に切り替えて動作を継続する。 ・市場ごとに、ホストコントローラーの消費電力・性能・コストのバランスを変えられるようにする ・将来、新しいUSB技術が新しくUSBホストコントローラーインターフェースを定義する必要なし対応しやすいアーキテクチャにする

    77. The goal of xHCI architecture is to define a USB host controller to ultimately replace UHCI/OHCI/EHCI, to provide highly power efficient operation, higher performance, and extensibility to new USB specification s, such as USB3 and beyond. Key xHCI architectural goals are:

      xhciの目的はUSBホストコントローラーが最終的にUHCI/OHCI/EHCIの代わりになることでUSB3やそれ以上の効率的な命令と高パフォーマンスとUSB仕様の拡張性を実現することです。キーとなるxhciアーキテクチャのゴールは

    78. The eXtensible Host Controller Interface addresses these factors. In addition, the xHCI architecture provides a new industry standard means for interfacing to USB devices that delivers the extensibility necessary to meet future needs.

      xhciのアドレスはこれらの要因で構成されています。加えてxhciアーキテクチャは将来の需要を満たすのに必要な拡張性をもたらす新しい工業的な標準基準を実現します。

    79. Virtualization is beginning to play a key role in system architectures and the legacy USB host controller architectures exhibit some serious shortcomings when applied to virtualized environments. Legacy USB host controller interfaces define a data pump; where critical state related to overall bus management (Bandwidth allocation, Address assignment, etc.) reside in the software driver. Trying to apply the standard hardware IO virtualization technique, of replicating IO interface registers, to the legacy USB host controller interface is problematic because critical state that must be managed across Virtual Machines (VMs) is not available to hardware. The xHCI architecture moves the control of this critical state into hardware, enabling USB resource management across VMs. The xHCI virtualization features also provide for: 1) Direct-Assignment of individual USB devices (irrespective of their location in the bus topology) to any VM, 2) minimizing run-time inter-VM communications, and 3) support for native USB device sharing.

      仮想化はシステムアーキテクチャにおいて重要な役割を果たし始めています。しかし、従来のUSBホストコントローラーのアーキテクチャには、仮想化環境で使用する際に重大な問題があります。従来のUSBホストコントローラーでは、USBバス全体の管理に関係する重要な状態情報(帯域幅の割り当てやアドレスの割り当てなど)がソフトウェアドライバ側に存在します。そのため、I/Oインターフェースのレジスタを複製するという一般的なI/O仮想化技術を従来のUSBホストコントローラーに適用することは困難です。これは、複数のVMにまたがって管理する必要がある重要な状態情報を、ハードウェア側から利用できないためです。xHCIでは、この重要な状態の管理をハードウェア側に移すことで、VM間でUSBリソースを管理できるようにしています。さらにxHCIの仮想化機能は、①USBバストポロジー上の位置に関係なく個々のUSBデバイスを任意のVMに直接割り当てること、②実行時のVM間通信を最小限にすること、③ネイティブなUSBデバイス共有をサポートすること、を可能にします。

    80. When USB was originally developed, it was targeted at desktop platforms and performance was the primary objective, which meant that host power consumption was not an important consideration. Since then, mobile platforms have become the platform of choice, and their batteries have made host power consumption and idle time efficiency key considerations. The xHCI elimination of the host memory based transaction schedules and its support for the advanced USB3 power management features are key to providing more power efficient platforms without sacrificing performance.

      USBの元祖が開発されていた時、そのターゲットはデスクトッププラットフォームで性能が主要目的であり、ホストの電力消費は重要視されていませんでした。 モバイルプラットフォームがプラットフォームとして選ばれるようになるとバッテリーのホストの電力消費と効率的な停止時間が重要視されるようになりました。 xHCIでは、ホストメモリを使用したトランザクションスケジュールを排除していること、および高度なUSB 3の電力管理機能をサポートしていることが、性能を犠牲にすることなく、より電力効率の高いプラットフォームを実現するうえで重要です。

    81. The storage capacities of portable devices have been increasing with Moore’s Law. Vendors of these devices need high performance interfaces so that these high capacity devices can be loaded in reasonable amounts of time. The Enhanced SuperSpeed support of the xHCI addresses this need.

      ポータブルデバイスのストレージの容量はムーアの法則に従い増加していきました。 これらのデバイスのベンダーはその結果高容量デバイスから合理的な時間で読み込みができるように、高パフォーマンスインターフェースを必要としました。

    82. The development of the eXtensible Host Controller Interface was driven by 3 key factors; Speed, Power Efficiency, and Virtualization.

      xhciの開発の背景は速度、電力効率、仮想化の3つの鍵となる要素でした。

    83. The abbreviation i.e. is for the Latin phrase id est which means that is. The abbreviation e.g. is for the Latin phrase exempli gratia which means for example.

      略語のi.eはラテン語の「すなわち」を意味します。 略語のe.gはラテン語の「例えば」を意味します。

    84. The symbol combination “=>” shall be read as “transitions to”. e.g. OCA => ‘1’ means the value of OCA transitions to ‘1’.

      “=>”は~へ変換するという意味です。例えばOCA => ‘1’はOCA変数が1を意味します。

    85. Throughout this document pseudo code is used to illustrate operating principals. Comments are demarcated by the double forward slashes “//”. The pseudo code conventions include: If/else condition statements:

      この文書全体を通じて疑似コードは主要な操作を図解するのに使われます。 コメントは//で区切られた部分です。 疑似コードは慣例を含んでいます。

    86. The word may is used to indicate a course of action permissible within the limits of the standard (may equals is permitted).

      mayは標準の制限の中で許可されたものを示します。

    87. The word should is used to indicate that among several possibilities one is recommended as particularly suitable, without mentioning or excluding others; or that a certain course of action is preferred but not necessarily required; or that (in the negative form) a certain course of action is deprecated but not prohibited (should equals is recommended that).

      shouldはいくつかの方法のなかで特に適しているものを選ぶときに使われますが、他の方法を否定するものではありません。shouldの否定形(should not)は非推奨だが禁止されていないものを意味します。

    88. The use of the word will is deprecated and shall not be used when stating mandatory requirements; will is only used in statements of fact.

      必須要件を説明するときwillは使用してはいけません、willは事実を並べる時に使われます。

    89. The word can is used for statements of possibility and capability, whether material, physical, or causal (can equals is able to).

      can という単語は、物質的、物理的、または因果的なものであるかに関係なく、可能性や能力について述べる場合に使用されます。

    90. The use of the word must is deprecated and shall not be used when stating mandatory requirements; must is used only to describe unavoidable situation s

      必須要件を説明するときmustは使用してはいけません、mustは避けられない状況を説明する時に使われます。

    91. Hexadecimal numbers are written with a lower case “h” suffix, e.g., FFFFh and 80h. Hexadecimal numbers larger than four digits are represented with a space dividing each group of four digits, as in 1E FFFF FFFFh. Binary numbers are written with a lower case “b” suffix, e.g., 1001b and 10b. Binary numbers larger than four digits are written with a space dividing each group of four digits, as in 1000 0101 0010b. All other numbers are decimal.

      16進数は後ろにhがつきます。例:FFFFh、80h 16進数が四桁を超える場合は1E FFFF FFFFhのようにスペースを空けて表記されます。 2進数は後ろにbがつきます。例:1001b、10b 2進数が四桁を超える場合は1000 0101 0010bのようにスペースを空けて表記されます。 他の数字は10進数です。

    92. Terms or names in bold text indicate the sentence provides a basic xHCI definition of the respective term/name. All other references to an xHCI defined term/name use the exact same text string as the definition so that you can search on it easily. Refer to section 1.5 for more information on searching.

      太字の項目か名前は各標準xhciの定義を示す文章です。 その他すべての参照は簡単に検索しやすいように全く同じ書き方で定義されています。検索のさらに詳しい情報はセクション1.5を参照してください。

    93. Implementation Notes should not be considered to be part of this specification. They are included for clarification and illustration only. Implementation Notes within this document are enclosed in a box and set apart from other text.

      実装上の注意はxhciの仕様ではありません。 これらは明確化や具体化のためだけに用意されています。 実装上の注意は文中から切り離された箱に書かれています。

    94. The word shall is used to indicate mandatory requirements strictly to be followed in order to conform to the xHCI specification and from which no deviation is permitted (shall equals is required to).

      shallという言葉が出てきたらそこはxhciのの仕様に準拠するために従わなければならない必須要件である。

    95. Italic text is used to identify Capitalized names that are explicitly named xHCI; registers, register fields, or flags in registers.

      斜体文字はxhciで明確に定義された名前を識別するのにつかわれます。例:レジスタ、レジスタフィールド、レジスタフラグ

    96. Adopters can demonstrate compliance of their product(s) with this specification through the xHCI compliance testing program provided by Intel®. For details on the xHCI compliance testing program, please send email to ssusbcompliance@usb.org. The xHCI Compliance Test Suite provides an excellent reference of software expectations when communicating with the xHCI and a concise list of the test validation assertions associated with this specification.

      xHCI仕様に従って製品を作った場合、それが本当に仕様に準拠しているかを確認するためのCompliance Testing Programがあります。さらに、そのテストスイートは単なる合否判定用のテストではなく、ソフトウェアがxHCIとやり取りするときにどのような動作をすることが期待されているのかを知るための良い参考資料にもなります。

    97. Some terms are capitalized to distinguish their definition in the context of this document from their common English meaning. Words not capitalized have their common English meaning. When terms such as “memory write” or “memory read” appear completely in lower case, they include all transactions of that type.

      いくつかの項目は大文字で表記されそれはこの文書の文脈で定義されており一般的な英語の意味とは区別されます。大文字で表記されていない英語は一般的な意味です。「メモリ書き込み」や「メモリ読み込み」のようなsすべて小文字の項目ではそのままの文字通りのやり取りをします。

    98. Rather than enumerating the full specification name every time one of the above specs are referenced in this document, the abbreviation listed in the Spec Reference column shall be used.

      この仕様書で上記の仕様を参照するときフルネームを称せずSpec Reference の略語を使用することとします

    99. Register names and the names of fields and bits in registers and headers are presented with the first letter capitalized and the remainder in lower case.

      レジスタ名、フィールド名、レジスタのビット、ヘッダ、は頭文字が大文字でそれ以外が小文字です。

    100. For example: To find all references to the Port Power (PP) field of the PORTSC register, in Reader® open the Search dialog box, and since this field has an acronym, enter the string “PP” in the ‘What word of phrase would you like to search for?’ text box. Check the ‘Whole words only’ and ‘Case-sensitive’ check boxes, and press the ‘Search’ button to list all references to the Port Power flag in this specification in the ‘Results’ window.

      PORTSCレジスタのPortPowerフィールドを参照するときReaderのダイアログボックスを開いて略語であるPPを「What word of phrase would you like to search for?」テキストボックスに入力します。 「Whole words only’ and Case-sensitive」チェックボックスにチェックを入れ‘Search’ボタンを押すと‘Resultsウィンドウにこの仕様書のPortPowerフラグの参照がすべてリストアップされます。

    101. This document does not include an index. An effective substitute when viewing with Adobe® Reader® is to use the Search dialog box to locate all references to a specific xHCI feature or field.

      このドキュメントには索引がありません。特定のxHCIの機能を参照したいときは検索ダイアログを使用するのが効果的です。

    102. This specification presents a view of the overall architect ure and detailed description of the operational model requirements of the host controller, using the defined registers and interface data structures.

      この仕様書ではデータ構造のインターフェースとレジスタの定義を使ったホストコントローラのoperationalモデル要求の詳細な説明とアーキテクチャの全体像を提供します

    103. The specification is primarily targeted to host controller developers and system OEMs, but provides valuable information for platform operating system and BIOS device driver developers, adapter IHVs/ISVs, and platform/adapter controller vendors. This specification can be used for developing new products and associated software.

      この仕様書の主要なターゲットはホストコントローラー開発者とシステムoemですが提供される有益な情報はosのプラットフォームとBIOSのデバイスドライバー開発者、IHVs/ISVs、プラットフォーム、アダプターのベンダー向けでもあります。 この仕様書は新しい商品や関連ソフトウェアの開発に使用できます

    104. The following documents are referenced throughout this specification. The Spec Reference defines a shorthand mnemonic used in this specification for the respective document listed below.

      以下のドキュメントはこの仕様書全体を言及しています。 Spec Reference はこの仕様書で使われる以下の各ドキュメントの略語です。

    105. The eXtensible Host Controller Interface (xHCI) specification describes the register-level host controller interface for Universal Serial Bus Revision 2.0 and above. The specification includes a description of the hardware/software interface between system software and the host controller hardware.

      xhciの仕様書はUSB2.0以上のレジスタレベルのホストコントローラーインターフェースを説明しています。 この仕様書にはシステムソフトウェアとホストコントローラーハードウェア間の説明が含まれます

    106. The architecture (3) and operational (4) sections are followed by two sections of pure structural definitions that detail the register space (5) and interface data structures (6). These definition chapters contain little or no operational requirements or usage models. The final sections describe the xHCI Extended Capabilities (7), and the virtualization operational model (8). The Appendix covers useful information not included elsewhere in the specification.

      3章のArchitectureと4章のOperationalの後に、レジスタ空間を定義する5章と、インターフェースのデータ構造を定義する6章があります。5章と6章は「どう動かすか」を説明する章ではなく、「どういう構造になっているか」を定義する章です。その後、7章で拡張機能、8章で仮想化時の動作について説明します。Appendixには、それ以外の補足的な情報が載っています。

    107. This specification is intended for hardware component des igners, system builders and device driver (software) developers. The reader is expected to be familiar with the current Universal Serial Bus Specification revisions. In spite of due diligence, there may exist conflicts between this specification and the US B Specification. The USB Specifications take precedence on all issues of conflict.

      この仕様書はハードウェアコンポーネント設計者、システムビルダー、デバイスドライバー開発者用を意図しています。 読者はユニバーサルシリアルバス仕様リビジョンに精通していることが期待されます。 十分に注意・確認を行っているにもかかわらず、この仕様書とUSB仕様書との間に矛盾が存在する可能性があります。すべての矛盾はUSB仕様が優先されます

  3. Dec 2025
  4. Nov 2025
    1. Device Context Base Address Array Pointer - RW. Default = ‘0’. This field defines high orderbits of the 64-bit base address of the Device Context Pointer Array. A table of address pointersthat reference Device Context structures for the devices attached to the host.

      デバイスコンテキストベースアドレス配列ポインタ - RW。デフォルト = ‘0’。このフィールドは、デバイスコンテキストポインタ配列の64ビットベースアドレスの上位ビットを定義します。ホストに接続されたデバイスのデバイスコンテキスト構造を参照するアドレスポインタのテーブルです。

    2. Number of Interrupters (MaxIntrs). This field specifies the number of Interrupters implementedon this host controller. Each Interrupter may be allocated to a MSI or MSI-X vector and controlsits generation and moderation.The value of this field determines how many Interrupter Register Sets are addressable in theRuntime Register Space (refer to section 5.5). Valid values are in the range of 1h to 400h. A ‘0’ inthis field is undefined.

      割り込み数(MaxIntrs)。このフィールドは、このホストコントローラに実装されている割り込みの数を指定します。各割り込みはMSIまたはMSI-Xベクターに割り当てられ、その生成と制御を制御します。 このフィールドの値は、ランタイムレジスタ空間(セクション5.5を参照)でアドレス指定可能な割り込みレジスタセットの数を決定します。有効な値は1hから400hの範囲です。このフィールドが「0」の場合、 未定義となります。

    3. Number of Device Slots (MaxSlots). This field specifies the maximum number of DeviceContext Structures and Doorbell Array entries this host controller can support. Valid values arein the range of 1 to 255. The value of ‘0’ is reserved.

      デバイススロット数(MaxSlots)。このフィールドは、このホストコントローラがサポートできるデバイスコンテキスト構造とドアベルアレイエントリの最大数を指定します。有効な値は 1~255 の範囲です。「0」は予約済みです。

    4. The capability registers specify the limits, restrictions,and capabilities of a host controller implementation.These values are used as parameters to the hostcontroller driver.

      capabilityレジスタは、ホストコントローラ実装の制限、制約、および機能を指定します。 これらの値は、ホストコントローラドライバへのパラメータとして使用されます。

    5. Refer to section 3.1 for a summary of the xHCI register architecture

      xHCI レジスタ アーキテクチャの概要については、セクション 3.1 を参照してください。

    6. Note that the xHCI does not require support for exclusive -access mechanisms(such as PCI LOCK) for accesses to the memory-mapped register space.Therefore, if software attempts exclusive-access mechanisms to the hostcontroller memory-mapped register space, the results are undefined.

      xHCI は、メモリマップ レジスタ空間へのアクセスに排他アクセス メカニズム (PCI LOCK など) のサポートを必要としないことに注意してください。したがって、ソフトウェアがホスト コントローラのメモリマップ レジスタ空間への排他アクセス メカニズムを試行した場合、結果は未定義になります。

    7. The extensible USB Host Controller contains many software accessible hardwareregisters. A large portion of the registers appear as Memory -mapped HostController Registers. Other registers may appear using non-memory addressmechanisms, as in the case of a PCI or PCIe based Host Controller. For thesedesigns it is required to implement the required registers as defined by therespective specification.

      xhclにはソフトウェアからアクセス可能なハードウェアレジスタが多数含まれています。レジスタの大部分は、メモリマップドホストコントローラレジスタとして表示されます。PCIまたはPCIeベースのホストコントローラの場合のように、他のレジスタはメモリ以外のアドレスメカニズムを使用して表示されることがあります。これらの設計では、それぞれの仕様で定義されている必要なレジスタを実装する必要があります。

  5. Oct 2025
    1. This document describes the EDK II Platform Description file (DSC) format. The EDK Build Tools are included as part of the EDK II compatibility package. In order to use EDK II Modules or the EDK II Build Tools, an EDK II DSC and FDF file must be used.

      このドキュメントでは、EDK II プラットフォーム記述ファイル(DSC)形式について説明します。EDK ビルドツールは、EDK II 互換性パッケージに含まれています。EDK II モジュールまたは EDK II ビルドツールを使用するには、EDK II DSC ファイルと FDF ファイルを使用する必要があります。