Article View: comp.sys.ibm.pc
Article #7657Re: What are the differences between 8-bit and 16-bit VGA cards?
From: David Hinds
Date: Mon, 27 Nov 1989 18:31
Date: Mon, 27 Nov 1989 18:31
32 lines
2679 bytes
2679 bytes
In article <340030@hpsgpa.HP.COM>, plim@hpsgpa.HP.COM (Peter Lim) writes:
> That doesn't sound right. As far as I know, the 16-bit access thing
> is done totally in hardware. When a 16-bit card is plugged into an
> AT-bus, it tells the AT bus system that it it 16-bit and the system
> will read/write in 16-bit...
For the ATI VGA Wonder card, the bus width seems to be at least partially
under software control. There is an option in the 'VSETUP' program to enable
or disable 16-bit ROM accesses. The card is actually supposed to work in
either 16-bit or 8-bit slots; in the 8-bit slot, the extra pins just hang in
space, and the card configures itself for the shorter bus. Aside from the
ROM accesses, it is not obvious that any software would use 16-bit accesses
to video memory, or what they would actually do. In the true VGA graphics
modes, at least, almost all video memory accesses are indirect, and data is
churned through a series of arithmetic units on the VGA controller before
being put in video memory. These steps map a 32-bit internal VGA memory bus
onto an external 8-bit bus, using various VGA registers to control different
kinds of rotating, masking, and logical operations. It would not be trivial
to redesign these units to map to a 16-bit bus. For one thing, lots of VGA
graphics control registers would need to be 16 bits long to be useful. There
is no obvious way to make these extensions transparant and compatible with
existing VGA software. And certainly, all existing VGA graphics software
uses 8-bit accesses.
I can see that there would be a speed improvement for 16-bit direct writes
to video memory, in modes where the VGA is emulating a direct-memory-mapped
display like CGA or Herc. But the indirect VGA modes are designed to cut down
on the amount of host CPU effort and CPU-to-Video memory transfers. Proper
VGA software should never do direct accesses to video memory, so as far as I
can see, a wider bus won't do anything. I would like to be wrong, though (?).
- David Hinds
dhinds@portia.stanford.edu
Technical Details
Message-ID:
<7025@portia.Stanford.EDU>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!samsung!brutus.cs.uiuc.edu!apple!genbank!agate!shelby!portia!dhindsReferences:
<6980@portia.Stanford.EDU> <340030@hpsgpa.HP.COM>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!samsung!brutus.cs.uiuc.edu!apple!genbank!agate!shelby!portia!dhinds From: dhinds@portia.Stanford.EDU (David Hinds) Newsgroups: comp.sys.ibm.pc Subject: Re: What are the differences between 8-bit and 16-bit VGA cards? Summary: Bus width isn't anything if your code uses 8-bit memory accesses Message-ID: <7025@portia.Stanford.EDU> Date: 27 Nov 89 18:31:44 GMT References: <6980@portia.Stanford.EDU> <340030@hpsgpa.HP.COM> Sender: David Hinds <dhinds@Portia.stanford.edu> Organization: Stanford University Lines: 31