Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!purdue!decwrl!decvax!crltrx!jg From: jg@crltrx.crl.dec.com (Jim Gettys) Newsgroups: comp.arch Subject: Re: PMAX/DS3100 frame buffers Message-ID: <111@crltrx.crl.dec.com> Date: 23 Mar 89 21:09:10 GMT References: <93849@sun.Eng.Sun.COM> <5845@mit-vax.LCS.MIT.EDU> <1989Mar22.175616.1420@utzoo.uucp> <27738@apple.Apple.COM> Reply-To: jg@crltrx.crl.dec.com.UUCP (Jim Gettys) Organization: DEC Cambridge Research Lab Lines: 49 In article <27738@apple.Apple.COM> jrg@Apple.COM (John R. Galloway) writes: > >Its not quite that simple, since if the copy hardware runs direclty out >of memory (or has its own cache) then the CPU can be running in its own >cache and doing other useful work while the copy is going on, until the >copy is interrupted for the CPU to get another cache line. >apple!jrg John R. Galloway, Jr. contract programmer, San Jose, Ca > >These are my views, NOT Apple's, I am a GUEST here, not an employee!! It is interesting to note, that with the exception of scrolling, the PMAX (DECstation 3100) color frame buffer code ends up outperforming the GPX hardware on uVAXes, sometimes by radical amounts. (or at least, the statement will be true in the next release of the software, anyway; most things do already in the first release on the DECstation, but more work has been done since). So as usual, general purpose hardware catches up with special purpose hardware of the previous. And for many operations, the graphics hardware in the GPX was more of a hindrance than a help. Many operations are completely bound by memory bandwidth between the processor and the frame buffer. Also note that most frame buffer operations are WRITES, and not READS, so with most caches, (for example, the write through cache on the PMAX), you quickly end up being limited by the memory subsystem. And graphics operations generally go romping through substantial chunks of memory quickly, flushing the data from the cache. Running the display cached would interfere with other programs on the machine (like the X server, or your favorite application). Preliminary experiments showed that running cached did not help color, and may have helped monochrome somewhat, but the mono case was far from obvious, particularly when you consider interference with other programs running on the machine. So at this instant, we are running the frame buffers uncached. At some point it would be interesting to rerun the tests; the frame buffer can be run either cached or unchached with a simple driver change. All this will have to be re-examined as cache sizes and organizations change; for example, if the cache were 10 times larger, the probability of hitting the cache for the scrolling case would be very much higher (if you have a 64k D cache, as on the PMAX, a large window on a 8 bit frame buffer would have a good chance of still being in the cache the next time you scrolled one line). - Jim Gettys