© 1998 Michael J. Hammel

'Muse: Paul Sargent over at 3Dlabs was quite helpful in the writing of this article. When I started researching video cards I found I'd fallen way behind on hardware memory types. I asked him for short descriptions or definitiions and he came through with a terrific response. I've included it here. Its a little more technical than the rest of the article, but will definitely be of interest if you have a need to understand the hardware a little better.

EDO RAM

This is the stuff that was found in PC's about two years ago. Basically it's normal DRAM with _E_nhanced _D_ata _O_ut functionality. This means that the graphics controller can perform burst reads on the memory, hence increasing the amount of read bandwidth from the memory. For example this would make the read half of a BLIT that much quicker. It's a single ported memory (see below).

VRAM

This is normal DRAM (sometimes with EDO functionality). It's big thing is that it's dual ported. I'll deal with Dual Vs Single ports a bit later. It also has some special features like block writes (see SGRAM)

SDRAM

Synchronous DRAM is the stuff you find in your new PC's (Pentium II's and such like). This type of memory tends to run about 3-4 times as fast as EDO DRAM. It supports functions such as burst writes and burst reads. All Synchronous Memory I've ever heard of is Single Ported.

SGRAM

Synchronous Graphics RAM is the same stuff as SDRAM, but it contains various features that are graphics specific. For example, Block Writes allow an area of memory to be filled with a single colour by issuing only one write. Combine that with Masked writes (another SGRAM feature) where you can load a bit mask to say which pixels are written to and you have a very powerful mechanism for drawing things like single colour text.

WRAM: Windows RAM

WRAM was developed by Mitsubishi for E&S (I believe) and is a variant on VRAM. They included some more special feature that are graphics related, but it's based on old technology. It's dual ported like VRAM.

Single Vs Dual Ports:

Imagine a RAMDAC. It needs to send signals to the monitor each 75th of a second to refresh the display, therefore it needs to know what colour all the pixels should be. Therefore one way or another the graphics controller must supply the RAMDAC with the full contents of the framebuffer each frame. There are two ways it can do this.

1) It can periodically read a batch of pixels from the Frambuffer and squirt these down a dedicated pixel bus that lies between the Graphics controller and the RAMDAC. The trouble is, while it's doing this the graphics controller can't do any reads or writes to the framebuffer for normal jobs. This becomes more of a problem as the screen resolution goes up. More reads have to be performed to keep the RAMDAC fed. If this doesn't occur the display would have artefacts, so these reads takes priority over everything else. The net result is as the display resolution goes up, the performance of the graphics card goes down.

2) The RAMDAC can have it's own connection to the graphics memory. By doing this the data stream required to refresh the display doesn't get in the way of the graphics controller. Therefore screen resolution tends not to impact performance (i.e. a 100x100 pixel BLIT will take the same amount of time, but remember that you now have a larger screen to fill. The graphics controller tends to do more work at higher res's anyway)

Method 1 is the only option with single ported RAM (EDO, SDRAM, SGRAM) and Method 2 is a better if your using Dual ported RAM (VRAM, WRAM)

The thing is that these days the memory bandwidth has got large enough that the bandwidth needed to refresh the screen is becoming less of a problem, and there are no fast Dual ported memories any more.

> 'Muse: What are the differences between these? My understanding is that VRAM and EDO RAM are primarily used on older cards (>2 years old) and SGRAM is the latest thing, fastest because of how its integrated with the video processor. Am I close?

You're time scales are about right, for reason of speed see above.

> 'Muse: An old article from ComputerShopper.com says that 3D cards (from early 1997) used VRAM for displaying video and DRAM for offscreen display and textures. How does DRAM fit into the current picture then?

Cards tend to only have one type of memory on them these days, and the Graphics controller stores everything in it. That said, if we were to make a card with a memory arrangement like that on it, we would replace the VRAM with SGRAM and the DRAM with SDRAM.

> 'Muse: Boy, no wonder the average person gets lost trying to set up X on Linux.

This sort of stuff doesn't need to be visible to the end user, and hopefully more recent cards are getting better at hiding it.

> 'Muse: Thanks Paul!

© 1998 by Michael J. Hammel