![Intel IXP45X Скачать руководство пользователя страница 436](http://html1.mh-extra.com/html/intel/ixp45x/ixp45x_developers-manual_2073092436.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
436
Order Number: 306262-004US
asynchronous schedule traversal is because of empty list detection, it is mandatory the
host controller implement a 'waking' method to resume traversal of the asynchronous
schedule. An example method is described below.
9.14.8.4.1
Example Method for Restarting Asynchronous Schedule Traversal
The reason for idling the host controller when the list is empty is to keep the host
controller from unnecessarily occupying too much memory bandwidth. The question is:
how long should the host controller stay idle before restarting?
The answer in this example is based on deriving a manifest constant, which is the
amount of time the host controller will stay idle before restarting traversal. In this
example, the manifest constant is called AsyncSchedSleepTime, and has a value of
10
μ
sec. The value is derived based on the analysis in
AsyncSchedSleepTime” on page 437
The traversal algorithm is simple:
• Traverse the Asynchronous schedule until the either an End-Of-micro-Frame event
occurs, or an empty list is detected. If the event is an End-of-micro-Frame, go
attempt to traverse the Periodic schedule. If the event is an empty list, then set a
sleep timer and go to a schedule sleep state.
• When the sleep timer expires, set working context to the Asynchronous Schedule
start condition and go to schedule active state. The start context allows the HC to
reload Nakcnt fields, etc. so the HC has a chance to run for more than one iteration
through the schedule.
This process simply repeats itself each micro-frame.
illustrates a sample
state machine to manage the active and sleep states of the Asynchronous Schedule
traversal policy. There are three states: Actively traversing the Asynchronous schedule,
Sleeping, and Not Active. The last two are similar in terms of interaction with the
Asynchronous schedule, but the Not Active state means that the host controller is busy
with the Periodic schedule or the Asynchronous schedule is not enabled. The Sleeping
state is specifically a special state where the host controller is just waiting for a period
of time before resuming execution of the Asynchronous schedule.
The actions referred to in
Figure 63.
Example State Machine for Managing Asynchronous Schedule Traversal
B4506-01
Asynch Sched
Active
Asynch Sched
Sleeping
Asynch Sched
Not Active
(Periodic Schedule Complete
.AND.
Async Schedule Enabled)
End of Micro-Frame C
End of Micro-Frame
<label> Denotes an action is
triggered by this event. Action is
described where <label> is
defined.
Sleep Timer Expires B
Empty List A