[comp.sys.amiga.hardware] SCRAM vs. DRAM

fmcphers@VTTCF.CC.VT.EDU (Frank McPherson) (12/06/90)

I'm confused about some beasties referred to as Static Column RAM.  I have 
several questions, the answers of which will probably lead to more questions.
1) What are the differences between SCRAM and DRAM? 
2) What, if any, additional functionality does one gain by using SCRAM?
3) Which does my A3000 have?  (5 meg ram.  1 chip, 4 fast)
4) The reason I'm asking is because of a mode called Burst mode for the 68030.
   When I type CPU from the shell, I get the following information:

    1.DH1:files cpu                                                     
    System: 68030 68882 FastROM (INST: Cache Burst) (DATA: Cache NoBurst)

   What does this mean, exactly?  (I am familiar with some other machine 
   architectures, I just don't know much about the 68030.  Please explain 
   this in highly specific detail.  Thanks)

-- Frank McPherson     INTERNET: fmcphers@vttcf.cc.vt.edu --

daveh@cbmvax.commodore.com (Dave Haynie) (12/06/90)

In article <9012051703.AA163006@vttcf.cc.vt.edu> fmcphers@VTTCF.CC.VT.EDU (Frank McPherson) writes:
>I'm confused about some beasties referred to as Static Column RAM.  I have 
>several questions, the answers of which will probably lead to more questions.
>1) What are the differences between SCRAM and DRAM? 

It's all DRAM.  "SCRAM" is short for Static Column DRAM, while what most folks
call plain DRAM is generally Fast Page DRAM.  All common DRAM is driven with a
multiplexed address bus; you send out row addresses, latch them, then send out
column addresses on the same wires.  This way, the DRAM chips can be small, 
since you squeeze, say, 20 address lines into 10 physical pins.  Based on the
way the chips are organized internally, the row/column model also makes a 
good amount of sense. 

In any case, if you wanted to make a faster DRAM, you could say to yourself,
"Self, I already have those row addresses latched.  How about a way to make
use of that by repeatedly feeding in new column addresses".  Both PRAM and 
SCRAM use this optimization.  With PRAM, the column addresses are clocked in
just like the row addresses.  With SCRAM, the column addresses are static;
you present column addresses, and Xns later you get your data out.  Based on
the timing involved, we found we could use the static column chips to support
68030 burst mode.

>2) What, if any, additional functionality does one gain by using SCRAM?

Somewhere around 20% extra speed.

>3) Which does my A3000 have?  (5 meg ram.  1 chip, 4 fast)

If it came with the 4 meg Fast, I think it has SCRAMs.  

>4) The reason I'm asking is because of a mode called Burst mode for the 68030.
>   When I type CPU from the shell, I get the following information:

>    1.DH1:files cpu                                                     
>    System: 68030 68882 FastROM (INST: Cache Burst) (DATA: Cache NoBurst)

CPU tells you what the 68030 is set up for, which is basically a global
burst/noburst setting for each cache.  It doesn't tell you whether or not
burst mode for a particular memory system is enabled. 

>   What does this mean, exactly?  (I am familiar with some other machine 
>   architectures, I just don't know much about the 68030.  Please explain 
>   this in highly specific detail.  Thanks)

The 68030's burst mode is essentially a special cache line prefetch.  When a
read takes place for a cachable address and the burst mode for that cache is
enabled, the 68030 asserts the CBREQ* line to indicate to the memory system
that it can handle a burst cycle.  If the memory system can to, it asserts 
the CBACK* line, and a burst transfer takes place.  The first cycle of a
burst is like any other longword memory cycle, but there can be up to three 
additional longwords fetched quickly after this first one.  These longwords
are located within the same quadword aligned quadword as the first longword,
though the addresses are implied, not actually generated by the 68030.  So
if address on the bus ends in "04", the burst cycle will actually fetch the
words at "04", "08", "0c", and then "00" (eg, it wraps).

The longword the 68030 was after is always the first to be fetched. The 
additional words come in and get deposited in the cache, since, at full speed,
they come in faster than the 68030 execution unit can actually deal with.
On the A3000 at 25MHz, a normal cycle to on-board Fast RAM takes 5 clocks.
With SCRAMs and burst enabled, the 3 burst fetches can run in 2 clock each,
so you get your 4 longwords in 11 cycles rather than 20.  This doesn't actually
result in a near doubling of memory speed, since as these are only prefetched 
into the cache, there's no guarantee that the extra longwords will be used
before being flushed from the cache.  But overall, the burst mode is around a
20% speed improvement on the 3000.

>-- Frank McPherson     INTERNET: fmcphers@vttcf.cc.vt.edu --


-- 
Dave Haynie Commodore-Amiga (Amiga 3000) "The Crew That Never Rests"
   {uunet|pyramid|rutgers}!cbmvax!daveh      PLINK: hazy     BIX: hazy
		      Wheeeeeeeeeeeeeeee...........