Video RAM

From OSDev Wiki
Jump to navigation Jump to search

This article is a stub! This page or section is a stub. You can help the wiki by accurately contributing to it.

Video RAM or VRAM is the common name given to dedicated memory that is located on the graphics hardware.

Most plug-in video cards have memory on board, which is continuously scanned and outputted over the graphics cable. By detaching it from the system bus, this process does not interrupt the performance of other computation tasks. In some cases[which?], this RAM can be used as system memory even though accessing it is significantly slower, but it can also be used as dedicated caching space like the disk cache.

Video RAM is typically exposed through the 128KB at 0x000A0000-0x000BFFFF, as well as a large secondary region typically dictated by a corresponding PCI range. This first block imitates a VGA regarding where the reads and writes appear in the memory, the large region typically maps 1:1 to the actual VRAM on the hardware. If these regions are actually accessible depends on the configuration, and both ways of accessing might require setting the appropriate video mode using the BIOS first - typically a LFB mode. A native driver can often enable or disable the entire region without depending on specific video modes, or it can be permanently enabled.

In various low-end systems, graphics hardware actually uses the same memory as the rest of the system, leading to the presence of shared memory. On x86, shared memory is typically represented as a loss in system memory and added dedicated video memory, including fake PCI BARs. On other architectures you might have free choice in which areas of RAM to use for your graphics.