Information

Universal Serial Bus Interface
MPC8308 PowerQUICC II Pro Processor Reference Manual, Rev. 1
13-94 Freescale Semiconductor
Figure 13-54. General Structure of EHCI Periodic Schedule Utilizing Interrupt Spreading
The periodic frame list is effectively the leaf level a binary tree, which is always traversed leaf to root.
Each level in the tree corresponds to a 2
N
poll rate. Software can efficiently manage periodic bandwidth
on the USB by spreading interrupt queue heads that have the same poll rate requirement across all the
available paths from the frame list. For example, system software can schedule eight poll rate 8 queue
heads and account for them once in the high-speed bus bandwidth allocation.
When an endpoint is allocated an execution footprint that spans a frame boundary, the queue head for the
endpoint must be reachable from consecutive locations in the frame list. An example would be if 8
0b
were
such an endpoint. Without additional support on the interface, to get 8
0b
reachable at the correct time,
software would have to link 8
1
to 8
0b
. It would then have to move 4
1
and everything linked after into the
same path as 4
0
. This upsets the integrity of the binary tree and disallows the use of the spreading
technique.
FSTN data structures are used to preserve the integrity of the binary-tree structure and enable the use of
the spreading technique. Section 13.5.7, “Periodic Frame Span Traversal Node (FSTN),” defines the
hardware and software operational model requirements for using FSTNs.
The following queue head 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 a queue head (Table 13-55). This bit
is used to track the current state of the split transaction.
Frame S-mask. This is a bit-field where-in system software sets a bit corresponding to the
microframe (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 in the Status field of the queue head.
For example, referring to Figure 13-53, case one, the S-mask would have a value of 0b0000_0001
indicating that if the queue head is traversed by the host controller, and the SplitXState indicates
Do_Start, and the current microframe as indicated by FRINDEX[2–0] is 0, then execute a
start-split transaction.
21
43
40
20
10
Periodic
Frame List
• • •
87
86
85
84
83
82
81
80
80b
42
41
Level 8 Level 4
Level 2
Level 1
Linkage repeats every 8 for
remainder of frame list
(Root)