Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!uunet!cbmvax!daveh From: daveh@cbmvax.commodore.com (Dave Haynie) Newsgroups: comp.sys.amiga.hardware Subject: Re: Memory For A3000... Message-ID: <14332@cbmvax.commodore.com> Date: 10 Sep 90 20:50:30 GMT References: <1990Sep10.021111.26231@ncsuvx.ncsu.edu> Reply-To: daveh@cbmvax.commodore.com (Dave Haynie) Distribution: usa Organization: Commodore, West Chester, PA Lines: 78 In article <1990Sep10.021111.26231@ncsuvx.ncsu.edu> harris@shumv1.ncsu.edu (Michael Harris) writes: >Also, the manual only explains that Static Column chips can be accessed >faster and that the benefits of Static Column chips could not be utilized >if Page Mode chips were installed. I was looking for a more technical >answer. ie. What is the difference in the design, addressing, etc... Ok, >so it is faster... WHY? How is the Static Column logic different from >the Page Mode logic? In all standard DRAM, there's a basic memory cycle in which row and column addresses are multiplexed. That looks like this: ADDR XXXXXXX-Row-Col-XXXXXXX Basically, the RAS* strobe latches the row address, the CAS* strobe RAS* ---------______-------- latches the column address and turns on the DRAM's outputs. CAS* -------------__-------- In a page mode device, there's a special way to speed things up. If you can somehow determine that the next memory access is going to be on the same page, eg, same row address, as the last one, you can provide multiple CAS* strobes for multiple column addresses. Typically, a row address to data valid time will be 80ns or 100ns (same as the speed rating stamped on the chip), but column address to data valid time might only be 40ns. The page mode cycle looks like this: ADDR XXXXXX-Row-Col-Col-...-Col-XXXXXXX RAS* --------__________________-------- CAS* ------------__--__-...--__-------- This has advantages and disadvantages, depending on your system. Since CAS* and RAS* are latching strobes, it's not necessary to hold the value of the Row or Column address very long after the strobe falls. But it does mean that somehow, a strobe must be created. In the context of the Amiga 3000, there was nothing we could do with page mode DRAM, since it would have been impractical to make a CAS* strobe fast enough for any clever page-tricks. But with static column memory, you have a non-latching column enable. So we get: ADDR XXXXXX-Row-Col-Col-...-Col-XXXXXXX RAS* --------__________________-------- CS* ------------______________-------- The CS* strobe doesn't latch anything. This means that the column address must be held steady until the particular memory operation is finished, but one that is done, a new column address will access a new memory location on the page defined by the row address without needing a strobe of any kind. And that's something we could play some tricks with in the A3000. The trick, of course, is to figure out when the row address doesn't need to change. The 68030's burst mode provides this information automatically, since you know a burst is on the same page for all four words of the burst. So the A3000's memory controller turns a burst mode access into a memory cycle with Row address, RAS*, CS* and four different column addresses, and this takes 11 clock cycles (at 25MHz), rather than the 20 it would take without SCRAM memory. There's also a page detect mode in the 3000. When a cycle occurs and page detect mode is on, RAS* and CS* stay low at the end of a cycle. If the next cycle is on the same page (eg, same row address), that cycle completes in 3 clocks rather than the standard 5 clocks. If the page is different, however, the controller must close the current page and open the new one, which winds up taking 7 clocks rather than 5. If references stay local enough, the times where a page match occurs outweigh those where it misses, and things go faster. The Amiga software tends to jump around in memory enough to make this mode undesirable in normal operation, but we think it may be more useful under UNIX or with some of the accelerator cards one might cook up. >Michael Harris -- Dave Haynie Commodore-Amiga (Amiga 3000) "The Crew That Never Rests" {uunet|pyramid|rutgers}!cbmvax!daveh PLINK: hazy BIX: hazy Get that coffee outta my face, put a Margarita in its place!