English
Language : 

82801DB Datasheet, PDF (182/587 Pages) Intel Corporation – Intel 82801DB I/O Controller Hub 4 (ICH4)
Functional Description
Transfer Queues are based on the following characteristics:
• A QH’s vertical link pointer (Queue Element Link Pointer) references the “Top” queue
member. A QH’s horizontal link pointer (Queue Head Link Pointer) references the “next”
work element in the Frame.
• Each queue member’s link pointer references the next element within the queue.
In the simplest model, the ICH4 follows vertical link point to a queue element, then executes the
element. If the completion status of the TD satisfies the advance criteria as shown in Table 5-65,
the ICH4 advances the queue by writing the just-executed TD’s link pointer back into the QH’s
Queue Element link pointer. The next time the queue head is traversed, the next queue element will
be the Top element.
The traversal has two options: Breadth first, or Depth first. A flag bit in each TD (Vf - Vertical
Traversal Flag) controls whether traversal is Breadth or Depth first. The default mode of traversal
is Breadth-First. For Breadth-First, the ICH4 only executes the top element from each queue. The
execution path is shown below:
1. QH (Queue Element Link Pointer)
2. TD
3. Write-Back to QH (Queue Element Link Pointer)
4. QH (Queue Head Link pointer).
Breadth-First is also performed for every transaction execution that fails the advance criteria. This
means that if a queued TD fails, the queue does not advance, and the ICH4 traverses the QH’s
Queue Head Link Pointer.
In a Depth-first traversal, the top queue element must complete successfully to satisfy the advance
criteria for the queue. If the ICH4 is currently processing a queue, and the advance criteria are met,
and the Vf bit is set, the ICH4 follows the TD’s link pointer to the next schedule work item.
Note that regardless of traversal model, when the advance criteria are met, the successful TD’s link
pointer is written back to the QH’s Queue Element link pointer. When the ICH4 encounters a QH,
it caches the QH internally, and sets internal state to indicate it is in a Q-context. It needs this state
to update the correct QH (for auto advancement) and also to make the correct decisions on how to
traverse the Frame List.
Restricting the advancement of queues to advancement criteria implements a guaranteed data
delivery stream. A queue is never advanced on an error completion status (even in the event the
error count was exhausted). Table 5-65 lists the general queue advance criteria, which are based on
the execution status of the TD at the “Top” of a currently “active” queue.
Table 5-65. Queue Advance Criteria
Function-to-Host (IN)
Non-NULL
Advance Q
NULL
Advance Q
Error/NAK
Retry Q Element
Host-to-Function (OUT)
Non-NULL
Advance Q
NULL
Advance Q
Error/NAK
Retry Q Element
Table 5-66 is a decision table illustrating the valid combinations of link pointer bits and the valid
actions taken when advancement criteria for a queued transfer descriptor are met. The column
headings for the link pointer fields are encoded, based on the following list:
182
Intel® 82801DB ICH4 Datasheet