On 3 Nov 1999, Marcus Sundberg wrote:
> Jos Hulzink <[EMAIL PROTECTED]> writes:
>
> > On 2 Nov 1999, Marcus Sundberg wrote:
> >
> > > Basicly you never want to cache anything that sits on the other side
> > > of the PCI-bus. MTRR write combining should always be turned on for
> > > memory, but never for registers. That's about it.
> > > AGP is ofcourse another story...
> >
> > Eh.. Enabling MTRR write combining for the videomemory of some chips
> > causes crashes. Yes it's me again with my outdated ViRGE :)
>
> Why am I not surprised... ;)
> But that's just one flag passed from the driver to the OS-layer,
> telling it that it shouldn't do any sort of burst accesses to video
> memory. (I'm assuming that's what causes trouble with write combining).
>
> > And I like to know your AGP story, for it seems S3 has managed to get a
> > ViRGE listening to an AGP bus... (AGP0.0001X or something...)
>
> Well, my AGP story is that I don't know much about it. ;)
> But for the CPU accessing the AGP card AFAIK there's no difference
> compared to PCI, except mayby the speed. If I have understood things
> correctly the real difference is that an AGP card can access main RAM
> in a really fast way.
There's more to AGP than just bandwidth to main memory, although
that is certainly the main benfit. AGP also offers:
* Dynamic memory allocation - The AGP controller can directly access and
reprogram the system's page tables. This means that, unlike with PCI, AGP
DMA buffers do not have to be physically contiguous. You can vmalloc()
memory and use that for DMA buffer space, which makes things _much_
easier.
* Transaction pipelining - The AGP bus is designed to decouple the address
phase from the data phase. This basically makes certain types of memory
access patterns which are commonly seen in graphics programming more
efficient.
* Grant pipelining - the AGP bus can be directly controlled by the video
card to a degree not possible with PCI. Again, this allows to make more
efficient use of bus cycles for graphics-related operations.
* Sideband addressing - allows to use a separate port for all address
request info, thus freeing up the "main" bus for data transfers.
The main benefit of the direct-to-memory bus found in AGP was mean
to be the ability to fetch textures directly from system memory without
touching the CPU, and with more bus efficiency. This was meant to hold
down the amount of expensive dual-ported VRAM or fast SDRAM needed on the
card itself. However, this has not happened in the real world - most
cards these days come with 16-32 MB of video RAM anyway.
Jon
---
'Cloning and the reprogramming of DNA is the first serious step in
becoming one with God.'
- Scientist G. Richard Seed