Rastergraf
Programming On-board Devices 3-5
3.2.4 Linear Windows Controller
The Linear Windows Controller provides address decoding, address
translation, color space conversion between the host interface and the local
memory system. It also provides a mechanism for caching reads and
writes from the host bus to the local buffers. In write mode, up to eight 32
bit words may be written to the host bus cache. The cache continuously
monitors the address of each word written to determine if they are in the
same page. If the words are not in the same page, or if the cache word
count reaches eight, the cache will request the required number of memory
writes from the Memory Controller. At this time the cache controller
swaps access to its second cache and continues to accept host writes. If
another page fault is detected during the secondary cache fill, a system
stall will occur. This situation can be avoided by testing the cache and by
doing cache line fills. During reads latency will be incurred for initial
accesses or any page fault conditions. Software should make an effort to
maintain scan line coherency during any access to the local buffers for
optimal performance.
3.2.5 Drawing Engine
The Drawing Engine provides all the required logic to implement
BITBLT, LINE, LINE_3D, TRIAN_3D, and HOST XFER commands.
The Drawing Engine, when triggered, transfers command and parameter
information from the host accessible registers to its own local working
registers where it begins its setup phase. When the Drawing Engine is
done with its setup, it begins the execution of a specific algorithm for the
associated command.
For non-rendering commands, after the setup phase, the Drawing Engine
begins requesting memory access from the Memory Controller. For 2D
and/or 3D rendering commands, the object is piped through the
algorithmic rendering engine which begins requesting memory access
from the Memory Controller as soon as the first pixel/texel is generated.
Up to 2 rendering commands can be piped through the rendering engine at
the same time.
If read data is requested, the memory controller will control the loading of
the data into the Drawing Data path and will notify the Drawing Engine
that the data is now available. If write data is requested, the data will have
been previously setup in the drawing data path and the Memory Controller
will control the output of that data to the selected memory buffer.