![Intel IXP45X Developer'S Manual Download Page 422](http://html1.mh-extra.com/html/intel/ixp45x/ixp45x_developers-manual_2073092422.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
422
Order Number: 306262-004US
The exact details of the function (f(x)) are up to the particular implementation.
However, it should be obvious that the goal is to minimize the area under the curve
between the approximation function and the Last Start curve, without dipping below
the LastStart line, while at the same time keeping the check as simple as possible for
hardware implementation. The f(x) in
Figure 56, “Best Fit Approximation” on page 421
was constructed using the following pseudo-code test on each transaction size data
point. This algorithm assumes that the host controller keeps track of the remaining bits
in the frame.
This algorithm takes two inputs, the current maximum packet size of the transaction
and a hardware counter of the number of bytes left in the current micro-frame. It
unconditionally adds a simple constant of 192 to the maximum packet size to account
for a first-order effect of transaction overhead and bit stuffing. If the transaction size is
greater than or equal to 128 bytes, then an additional constant of 128 is added to the
running sum to account for the additional worst-case bit stuffing of payloads larger
than 128. An inflection point was inserted at 128 because the f(x) plot was getting
close to the LastStart line.
Turnaround time
721
90.125
Time for packet initiator (Host) to see the beginning of a
response to a transmitted packet.
Handshake packet
48
6
Handshake packet as defined in USB core specification. Includes
sync, PID, eop, etc.
144
Total
Table 171.
Example Worst-Case Transaction Timing Components (Sheet 2 of 2)
Component
Bit
Time
Byte Time
Explanation
Alorithm CheckTransactionWillFit (MaximumPacketSize, HC_BytesLeftInFrame)
Begin
Local Temp = MaximumPack 192
Local rvalue = TRUE
If MaximumPacketSize >= 128 then
Temp += 128
End If
If Temp > HC_BytesLeftInFrame then
Rvalue = FALSE
End If
Return rvalue
End