12.07.2015 Views

Geode GXLV Processor Series Low Power Integrated x86 Solutions

Geode GXLV Processor Series Low Power Integrated x86 Solutions

Geode GXLV Processor Series Low Power Integrated x86 Solutions

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Geode</strong> <strong>GXLV</strong> <strong>Processor</strong> <strong>Series</strong><strong>Integrated</strong> Functions (Continued)A VGA is made up of several functional units.• The frame buffer is 256 KB of memory that providesdata for the video display. It is organized as 64 K 32-bitDWORDs.• The sequencer decomposes word and DWORD CPUaccesses into byte operations for the graphicscontroller. It also controls a number of miscellaneousfunctions, including reset and some clocking controls.• Thegraphics controller provides most of the interfacebetween CPU data and the frame buffer. It allows theprogrammer to read and write frame buffer data indifferent formats. Plus provides ROP (raster operation)and masking functions.• The CRT controller provides video timing signals andaddress generation for video refresh. It also provides atext cursor.• The attribute controller contains the video refreshdatapath, including text rasterization and palettelookup.• The general registers provide status information forthe programmer as well as control over VGA-hostaddress mapping and clock selection. This is allhandled in hardware by the graphics pipeline.It is important to understand that a VGA is constructed ofnumerous independent functions. Most of the registerfields correspond to controls that were originally built outof discrete logic or were part of a dedicated controllersuch as the 6845. The notion of a VGA “mode” is a higherlevelconvention to denote a particular set of values for theregisters. Many popular programs do not use standardmodes, preferring instead to produce their own VGA setupsthat are optimal for their purposes.4.6.1.1 VGA Memory OrganizationThe VGA memory is organized as 64K 32-bit DWORDs.This organization is usually presented as four 64 KB“planes”. A plane consists of one byte out of everyDWORD. Thus, plane 0 refers to the least significant bytefrom every one of the 64K DWORDs. The addressinggranularity of this memory is a DWORD, not a byte; that is,consecutive addresses refer to consecutive DWORDs.The only provision for byte-granularity addressing is thefour-byte enable signals used for writes. In C parlance,single_plane_byte = (dword_fb[address] >>(plane * 8)) & 0xFF;When dealing with VGA, it is important to recognize thedistinction between host addresses, frame bufferaddresses, and the refresh address pipe. A VGA controllercontains a lot of hardware to translate between theseaddress spaces in different ways, and understandingthese translations is critical to understanding the entiredevice. In standard four-plane graphics modes, a framebufferDWORD provides eight 4-bit pixels. The left-mostpixel comes from bit 7 of each plane, with plane 3 providingthe most significant bit.pixel[i].bit[j] = dword_fb[address].bit[i*8 + (7-j)]4.6.1.2 VGA Front EndThe VGA front end consists of address and data translationsbetween the CPU and the frame buffer. This functionalityis contained within the graphics controller andsequencer components. Most of the front end functionalityis implemented in the VGA read and write hardware of the<strong>GXLV</strong> processor. An important axiom of the VGA is thatthe front end and back end are controlled independently.There are no register fields that control the behavior ofboth pieces. Terms like “VGA odd/even mode” are thereforesomewhat misleading; there are two different controlsfor odd/even functionality in the front end, and two separatecontrols in the refresh path to cause “sensible”refresh behavior for frame buffer contents written inodd/even mode. Normally, all these fields would be set uptogether, but they don’t have to be. This sort of orthogonalbehavior gives rise to the enormous number of possibleVGA “modes”. The CPU end of the read and write pipelinesis one byte wide. Word and DWORD accesses fromthe CPU to VGA memory are broken down into multiplebyte accesses by the sequencer. For example, a wordwrite to A0000h (in a VGA graphics mode) is processedas if it were two-byte write operations to A0000h andA0001h.4.6.1.3 Address MappingWhen a VGA card sees an address on the host bus, bits[31:15] determine whether the transaction is for the VGA.Depending on the mode, addresses 000AXXXX,000B{0xxx}XXX, or 000B{1xxx}XXX can decode into VGAspace. If the access is for the VGA, bits [15:0] provide theDWORD address into the frame buffer (see odd/even andChain 4 modes, next paragraph). Thus, each byte addresson the host bus addresses a DWORD in VGA memory.On a write transaction, the byte enables are normallydriven from the sequencer’s MapMask register. The VGAhas two other write address mappings that modify thisbehavior. In odd/even (Chain 2) write mode, bit 0 of theaddress is used to enable bytes 0 and 2 (if zero) or bytes1 and 3 (if one). In addition, the address presented to theframe buffer has bit 0 replaced with the PageBit field ofthe Miscellaneous Output register. Chain 4 write mode issimilar; only one of the four byte enables is asserted,based on bits [1:0] of the address, and bits [1:0] of theframe buffer address are set to zero. In each of thesemodes, the MapMask enables are logically ANDed intothe enables that result from the address.www.national.com 158 Revision 1.3

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!