![Intel IXP45X Скачать руководство пользователя страница 470](http://html1.mh-extra.com/html/intel/ixp45x/ixp45x_developers-manual_2073092470.webp)
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors—USB 2.0 Host Controller
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
Developer’s Manual
August 2006
470
Order Number: 306262-004US
• Case 2b: This case can only occur for a very large isochronous IN. It is the only
allowed scenario where a start-split and complete-split for the same endpoint can
occur in the same micro-frame. Software must enforce this rule by scheduling the
large transaction first. Large is defined to be anything larger than 579-byte
maximum packet size. A subset of the same mechanisms employed by full- and
low-speed interrupt queue heads are employed in siTDs to schedule and track the
portions of isochronous split transactions. The following fields are initialized by
system software to instruct the host controller when to execute portions of the split
transaction protocol.
• SplitXState. This is a single bit residing in the Status field of an siTD (
“siTD Transfer Status and Control” on page 397
). This bit is used to track the
current state of the split transaction. The rules for managing this bit are described
in
“Split Transaction Execution State Machine for Isochronous” on page 473
• Frame S-mask. This is a bit-field where-in system software sets a bit corresponding
to the micro-frame (within an H-Frame) that the host controller should execute a
start-split transaction. This is always qualified by the value of the SplitXState bit.
For example, referring to the IN example in
Figure 72, “Split Transaction,
Isochronous Scheduling Boundary Conditions” on page 469
, case one, the S-mask
would have a value of 00000001b indicating that if the siTD is traversed by the host
controller, and the SplitXState indicates Do Start Split, and the current micro-
frame as indicated by FRINDEX[2:0] is 0, then execute a start-split transaction.
• Frame C-mask. This is a bit-field where system software sets one or more bits
corresponding to the micro-frames (within an H-Frame) that the host controller
should execute complete-split transactions. The interpretation of this field is always
qualified by the value of the SplitXState bit. For example, referring to the IN
example in
Figure 72, “Split Transaction, Isochronous Scheduling Boundary
, case one, the C-mask would have a value of 00111100b
indicating that if the siTD is traversed by the host controller, and the SplitXState
indicates Do Complete Split, and the current micro-frame as indicated by
FRINDEX[2:0] is 2, 3, 4, or 5, then execute a complete-split transaction.
• Back Pointer. This field in a siTD is used to complete an IN split-transaction using
the previous H-Frame's siTD. This is only used when the scheduling of the
complete-splits span an H-Frame boundary.
There exists a one-to-one relationship between a high-speed isochronous split
transaction (including all start- and complete-splits) and one full-speed isochronous
transaction. An siTD contains (amongst other things) buffer state and split transaction
scheduling information. An siTD's buffer state always maps to one full-speed
isochronous data payload. This means that for any full-speed transaction payload, a
single siTD's data buffer must be used. This rule applies to both IN an OUTs. An siTD's
scheduling information usually also maps to one high-speed isochronous split
transaction. The exception to this rule is the H-Frame boundary wrap cases mentioned
above.
The siTD data structure describes at most, one frame's worth of high-speed
transactions and that description is strictly bounded within a frame boundary.
illustrates some examples. On the top are examples of the full-speed transaction
footprints for the boundary scheduling cases described above. In the middle are time-
frame references for both the B-Frames (HS/FS/LS Bus) and the H-Frames. On the
bottom is illustrated the relationship between the scope of an siTD description and the
time references. Each H-Frame corresponds to a single location in the periodic frame
list. The implication is that each siTD is reachable from a single periodic frame list
location at a time.