0% found this document useful (0 votes)
130 views4 pages

XHCI Architectural Overview

The document provides an overview of the eXtensible Host Controller Interface (xHCI) architecture, detailing the hardware and software layers involved in a USB Host System. It describes three types of Rings used for communication: Command Rings for issuing commands, Event Rings for returning status, and Transfer Rings for scheduling data transfers. Additionally, it explains the structure and function of Transfer Request Blocks (TRBs) in managing data transfers between host memory and the xHC.

Uploaded by

sruthi krapa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
130 views4 pages

XHCI Architectural Overview

The document provides an overview of the eXtensible Host Controller Interface (xHCI) architecture, detailing the hardware and software layers involved in a USB Host System. It describes three types of Rings used for communication: Command Rings for issuing commands, Event Rings for returning status, and Transfer Rings for scheduling data transfers. Additionally, it explains the structure and function of Transfer Request Blocks (TRBs) in managing data transfers between host memory and the xHC.

Uploaded by

sruthi krapa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

XHCI Architectural Overview

A USB Host System is composed of a number of hardware and software layers.


General Architecture of the eXtensible Host Controller Interface

Rings
 A Ring is a circular queue of data structures. Three types of Rings are used by the xHC to communicate
and execute USB operations:
o 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.
 One for the xHC
 The Command Ring is used by system software to issue commands to the xHC

o 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.
 One for each Interrupter
 The Event Ring is used by the xHC to return status and results of commands and transfers to
system software.

o 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
treated as read-only by the xHC
 One for each Endpoint or Streamcache
 Transfer Rings are used to move data between system memory buffers and device endpoints.

o 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)
 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.
 A Transfer Ring exists for each active endpoint or Stream declared by a USB device.
 Transfer Rings contain “Transfer” specific TRBs.

Transfer Request Block


 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.
Simple transfer Example

You might also like