English
Language : 

82801BA Datasheet, PDF (176/498 Pages) Intel Corporation – Intel 82801BA I/O Controller Hub 2 (ICH2) and Intel 82801BAM I/O Controller Hub 2 Mobile
Functional Description
5.16.2
5.16.2.1
5.16.2.2
Data Transfers To/From Main Memory
The following sections describe the details on how HCD and the ICH2 communicate via the
Schedule data structures. The discussion is organized in a top-down manner, beginning with the
basics of walking the Frame List, followed by a description of generic processing steps common to
all transfer descriptors, and finally a discussion on Transfer Queuing.
Executing the Schedule
Software programs the ICH2 with the starting address of the Frame List and the Frame List index,
then causes the ICH2 to execute the schedule by setting the Run/Stop bit in the Control register to
Run. The ICH2 processes the schedule one entry at a time. The next element in the frame list is not
fetched until the current element in the frame list is retired.
Schedule execution proceeds in the following fashion:
• The ICH2 first fetches an entry from the Frame List. This entry has three fields. Bit 0 indicates
whether the address pointer field is valid. Bit 1 indicates whether the address points to a
Transfer Descriptor or to a queue head. The third field is the pointer itself.
• If isochronous traffic is to be moved in a given frame, the Frame List entry points to a Transfer
Descriptor. If no isochronous data is to be moved in that frame, the entry points to a queue
head or the entry is marked invalid and no transfers are initiated in that frame.
• If the Frame List entry indicates that it points to a Transfer Descriptor, the ICH2 fetches the
entry and begins the operations necessary to initiate a transaction on USB. Each TD contains a
link field that points to the next entry, as well as indicating whether it is a TD or a QH.
• If the Frame List entry contains a pointer to a QH, the ICH2 processes the information from
the QH to determine the address of the next data object that it should process.
• The TD/QH process continues until the millisecond allotted to the current frame expires. At
this point, the ICH2 fetches the next entry from the Frame List. If the ICH2 is not able to
process all of the transfer descriptors during a given frame, those descriptors are retired by
software without having been executed.
Processing Transfer Descriptors
The ICH2 executes a TD using the following generalized algorithm. These basic steps are common
across all modes of TDs. Subsequent sections present processing steps unique to each TD mode.
1. ICH2 Fetches TD or QH from the current Link Pointer.
2. If a QH, go to 1 to fetch from the Queue Element Link Pointer. If inactive, go to 12
3. Build Token, actual bits are in TD Token.
4. If (Host-to-Function) then
[PCI Access] issue request for data, (referenced through TD.BufferPointer)
wait for first chunk data arrival
end if
5. [Begin USB Transaction] Issue Token (from token built in 2, above) and begin data transfer.
if (Host-to-Function) then Go to 6
else Go to 7
end if
6. Fetch data from memory (via TD BufferPointer) and transfer over USB until TD Max-Length
bytes have been read and transferred. [Concurrent system memory and USB Accesses]. Go to
8.
5-114
82801BA ICH2 and 82801BAM ICH2-M Datasheet