Hi,
here's something I've been pondering for some time. How does the RAMDAC (correct term?) and the interface to the display adapter share the display memory? The RAMDAC has to have a constant access to the RAM so that it can keep feeding data to the display. So when does the actual adapter get its turn?
So far I've figured out following possible solutions:
- The interface caches accesses to the display memory that occurr during a horizontal display line and unloads to the actual display memory during horizontal and vertical blanking. Would need flow control.
- The interface allows accesses only during vertical and horizontal blanking. This doesn't seem too smart, since the other end needs to wait for blanking.
- Some kind of double buffering scheme. Part of the display memory that should be displayed gets copied during vertical blanking to a separate memory that is dedicated for the RAMDAC. This doesn't make sense though since I remember seeing a tearing effect on older PCs displaying realtime graphics without double buffering in the software.
- Double port RAM. This is quite expensive isn't it? I dug up some old display adapters and the seem to have DRAM in them.
I'd appreciate, if someone could tell me how the trick is done :)