
Data Device Corporation
62743_pre7_noSA-DB.DOC
www.ddc-web.com
8-07-02
57
In general, the location after the last data word written or read (modulo the circular
buffer size) during the message is written to the respective lookup table location
during the end-of-message sequence. By so doing, data for the next message for
the respective transmit, receive(/broadcast), or broadcast subaddress will be
accessed from the next lower contiguous block of locations in the circular buffer.
For the case of a receive (or broadcast receive) message with a data word error,
there is an option such that the lookup table pointer will only be updated following
receipt of a valid message. That is, the pointer will not be updated following
receipt of a message with an error in a data word. This allows failed messages in
a bulk data transfer to be retried without disrupting the circular buffer data
structure, and without intervention by the RT's host processor.
GLOBAL CIRCULAR BUFFER
Beyond the programmable choice of single buffer mode or circular buffer mode,
programmable on an individual subaddress basis, the PCI Enhanced Mini-ACE RT
architecture provides an additional option, a variable sized global circular buffer.
In the global circular buffer mode, the data for multiple receive subaddresses is
stored in the same circular buffer data structure. The size of the global circular
buffer may be programmed for 128, 256, 512, 1024, 2048, 4096, or 8192 words,
by means of bits 11, 10, and 9 of Configuration Register #6. As shown in Table 56,
individual subaddresses may be mapped to the global circular buffer by means of
their respective subaddress control words.
The pointer to the Global Circular Buffer will be stored in location 0101 (for Area
A), or location 0105 (for Area B).
The global circular buffer option provides a highly efficient method for storing
received message data. It allows for frequently used subaddresses to be
mapped to individual data blocks, while also providing a method for
asynchronously received messages to infrequently used subaddresses to be
logged to a common area. Alternatively, the global circular buffer provides an
efficient means for storing the received data words for all subaddresses. Under
this method, all received data words are stored chronologically, regardless of
subaddress.