Graphics memory

from Wikipedia, the free encyclopedia

Computer memory that is used by the graphics hardware ( graphics card or onboard graphics chip) is referred to as graphics memory (also video memory or video RAM ) . This can be a reserved area of ​​the main memory ( shared memory ) or dedicated graphics memory .

development

Up until the end of the 1970s there was no separate computing unit responsible for calculations for screen output. All the necessary operations were performed directly by the CPU (for example Atari 2600 ) and cached in the main memory of the computer.

The first generation

Graphics memory module

The first generation of graphics cards (until 1990) used the local graphics memory only as a frame buffer , that is, the pixel data or, in text mode, the character data are calculated by the CPU and stored in the local graphics memory; the electronics on the card, which cannot be referred to as GPU in the actual sense of the word, then simply reads this data repeatedly and transmits it to the monitor. The following overview shows the memory configuration that was common at the time.

Graphics standard MDA CGA EGA VGA SVGA XGA
Publishing year 1981 1981 1984 1987 1989 1990
typical
memory configuration
4 kB 16 kB 64-256 kB 256 kB 256-1024 kB 512-2048 kB

Which combinations of image resolution and color depth in graphics mode require which memory size for display - assuming a corresponding monitor - can be read here. In the text mode , which was still common at the time , the memory requirement is significantly lower.

resolution 4 colors 16 colors 256 colors High color True color
320 × 200 16 kB 32 kB 64 kB 128 kB 192 kB
640 × 480 75 kB 150 kB 300 kB 600 kB 900 kB
800 × 600 117 kB 234 kB 468 kB 938 kB 1406 kB
1024 × 768 192 kB 384 kB 768 kB 1536 kB 2304 kB
1280 × 960 300 kB 600 kB 1200 kB 2400 kB 3600 kB
1280 × 1024 320 kB 640 kB 1280 kB 2560 kB 3840 kB
1600 × 1200 480 kB 960 kB 1920 kB 3840 kB 5760 kB

Windows accelerator

The GPUs in this category were able to execute a few commands (for example, draw a square) independently. The local graphics memory, mostly between 1 MB and 8 MB, was implemented using DRAM , EDO RAM , VRAM or MDRAM . The latter two are semiconductor memory technologies specifically designed for graphics cards.

3D accelerator

The first real 3D accelerators hit the market in the mid-1990s. Triangle transformations and texture mapping were calculated independently from these maps. The first representative of the series was the Voodoo Graphics with 4 MB or 6 MB EDO RAM in 1996 .

At the end of 1999 Nvidia's GeForce256 appeared with 32 MB SGRAM - the first graphics card in the retail business with an integrated T&L unit .

ATI's Radeon 9700 Pro with 128 MB DDR-SDRAM appeared in mid-2002 - the first graphics card that was fully DirectX 9.0 compatible.

Current status

In current systems, the GPU sits on a separate plug-in card that is connected to the CPU and the main memory via a bus system (usually PCI Express or AGP , rarely PCI ) . On the plug-in card there is semiconductor memory specially tailored to graphics operations, which is directly available for the GPU. New developments in real-time - rendering and price erosion in the semiconductor memory segment contribute to the steady growth in the graphics memory. Graphics cards with up to 24 GB GDDR 5X-SDRAM are available.

Another possibility is the integration of the GPU on the motherboard and is used in applications where 3D performance is not a priority (for example with most workstation computers). This inexpensive and low-performance variant does not have its own graphics memory; rather, part of the main memory ( shared memory ) is made available for storing data.

Memory content

What information is stored in the graphics memory?

  • Framebuffer
    In this memory area, which is regularly read out by the RAMDAC , the calculations for image synthesis take place continuously. The size of the frame buffer depends on the resolution used (e.g. 1024 × 768), the color depth used (e.g. 16 bits per pixel), the anti-aliasing mode and the frame buffer concept used ( e.g. double buffering , triple buffering ).
  • z-Buffer A value for depth information is saved
    here for each screen pixel . The size in turn depends on the selected accuracy of the values; 24 and 32 bits are common.
  • Vertex shader and pixel shader programs
    Since DirectX 8.0, game developers have been offered machine - code- like operations for deforming objects or for implementing certain graphic effects (e.g. shadows, reflections). These mostly very small programs are stored directly in the graphics memory.
  • Geometry data
    With the introduction of DirectX, the triangle was defined as the standard primitive for 3D representation. This means that almost every scene that can be displayed in the
    graphics mode consists of objects ( polygons ) composed of triangles . The geometry data arrange u. a. assign the corner points to each triangle and store the normal vector for each corner point . The size of this memory area depends on the complexity of the calculated scene (currently up to 500,000 triangles), i.e. the more triangles to be processed, the larger the geometry data.
  • Texture data
    All textures used in a scene are usually stored in compressed form in the graphics memory for reasons of space; Examples of compression algorithms are FXT1 and S3TC . This area takes up the largest share of the graphics memory and is dependent on many factors, for example number, size (up to 8192 × 8192 pixels) and color depth of the textures used.

Bottleneck system bus

Older graphics cards send graphics calculations to the CPU. Due to higher resolutions and more reproducible colors, the data flow between GPU and CPU grew over time until it was slowed down by the performance of the system bus. Another problem was the graphics memory used. This does not allow simultaneous read and write access. The RAMDAC has to wait with reading out as long as the CPU is writing to the memory and vice versa. On modern computers, the system bus is the critical performance-determining component; this is particularly evident in current 3D graphics. The following example calculation should clarify this.

  • Representation of a scene in the resolution 1280 × 1024 pixels with 32 bit color depth and 50 images per second
1280 × 1024 × 32 bit × 50 1 / s = 2097.152 Mbit / s

These approx. 2100 Mbit per second only take into account the data stream required for monitor output. The entire data transfer that may occur for image synthesis does not contribute to the value. As a consequence, the use of the system bus should be reduced to a minimum.

  • All calculations for image synthesis or output are carried out by a separate GPU that is locally separated from the CPU.
  • The GPU has its own and directly accessible semiconductor memory. The infrequent use of the main memory should only take place if the local memory is insufficient.
  • Normal DRAM should not be installed as the semiconductor memory used, since it does not meet the high requirements of the GPU. For example, DRAM does not allow simultaneous read and write operations. This is important for a graphics card, as the RAMDAC continuously reads parts of the memory while the GPU writes results to the memory.

Dedicated graphics memory

Many graphics cards use dedicated graphics memory (also called video RAM ). This is located in an exclusive memory module and is physically separated from the main memory .

The advantage of a block that is separate from the main memory over the shared memory method is that it does not have to take into account the specification of the computer bus. For example, refreshing the memory content of the PC is not controlled by the chipset but by the GPU .

Despite broadly similar technology of DRAM - memory chips , so faster memory access times can be specified. The technology of these chips was called VRAM , due to the further development VRAM today only refers to chips with separate input and output lines of this technology.

literature

  • DAGodse, APGodse, Digital Computer Fundamentals , 4-39 (partial view)