Intel IXP400 Frozen Dessert Maker User Manual


 
Intel
®
IXP400 Software
Access-Layer Components: HSS-Access (IxHssAcc) API
Programmer’s Guide IXP400 Software Version 2.0 April 2005
Document Number: 252539, Revision: 007 215
All the buffers have the same length. When the channelized service is initialized by
ixHssAccChanConnect(), the pointer to the pool, the length of the circular buffers, and a parameter
bytesPerTStrigger are passed to IxHssAcc, as well as a pointer to the an
ixHssAccChanRxCallback() Rx callback function.
Figure 69 shows how the circular buffers are filled with data received though the HSS ports. When
each of the N channels receive bytesPerTStrigger bytes, the Rx callback function will be called,
and an offset value rxOffset is returned to indicate where data is written into the circular buffer.
Note that rxOffset is shared for all the circular buffers in the pool. rxOffset is adjusted internally in
the HSS component so that it will be wrapped back to the beginning of the circular buffer when it
reaches the end of the circular buffer.
The client has to make sure the Rx data is processed or moved elsewhere before being overwritten
by the HSS component. Hence the length of the circular buffers has to be chosen properly. The
buffer need to be large enough for data to be read by the client and complete any possible in-place
processing that would need to occur before the NPE rewrites over that memory. Understanding the
client application’s read and processing latency, the size of the data unit needed by the client
application for processing, and the rate at which the NPE writes data to a buffer at a given channel
rate, are useful in making this calculation.
Figure 69 on page 216 shows the data flow of the channelized Receive service.