[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
A question to David Empson on ZipGS Cache Memory Speeds
- Subject: A question to David Empson on ZipGS Cache Memory Speeds
- From: marvinmiller@hotmail.com (Marvin Miller)
- Date: 2000/11/12
- Newsgroups: comp.sys.apple2
- Organization: Excite@Home - The Leader in Broadband
Hi David !!
Long, long ago in a galaxy far, far away you posted a message relating
to ZipGS memory speeds that I've attached below to 'jog the fog' so to
speak!
Back then, you made a nice table on ZipGS memory speed requirements &
oscillator speeds. I am looking into upgrading my ZipGS and have done
some research on it. Finding these old archives was REALLY useful. I
extrapolated a larger table based on your calculations and am in the
process of getting an order ready for the cache memory chips &
oscillators etc for the ZipGS.
Two Questions;
[1] In light of the time that's gone by (and probably increased
learning) would you say that this table still makes a good 'general'
guide?
[2] If a person bought the fastest possible cache chips (say for a
20Mhz //GS) and than ran the Zip at half that speed (say 10Mhz) would
there be a problem or would it be advantageous to run the processor
Mhz as near as possible to the reccommended chips?
Thanks in Advance David, and I apologize for bringing this thing 'back
from the dead' !
Best;
Marvin Miller
Here's a more complete table based on your long ago theories;
CPU Oscillator ------- DATA RAM speed ----------TAG RAM Speed
Freq. Freq. (F) min (2/F) max (3/F) est (2.5/F) (3/F -30ns)
7 MHz 28 MHz 71.4 ns 107 ns 89.2 ns 77.1ns
8 MHz 32 MHz 62.5 ns 93.0 ns 78.1 ns 63.7ns
9 MHz 36 MHz 55.5 ns 83.0 ns 69.4 ns 53.3ns
10 MHz 40 MHz 50.0 ns 75.0 ns 62.5 ns 45.0ns
11MHz 44 MHz 45.4 ns 68.1ns 56.8 ns 38.1ns
12 MHz 48 MHz 41.6 ns 62.5 ns 52.0 ns 32.5ns
13Mhz 52 MHz 38.4 ns 57.6 ns 48.0 ns 27.6ns
14 MHz 56 MHz 35.7 ns 53.5 ns 44.6 ns 23.5ns
15MHz 60 MHz 33.3 ns 50.0 ns 41.6 ns 20.0ns
16 MHz 64 MHz 31.2 ns 46.8 ns 39.0 ns 16.8ns
17MHz 68 MHz 29.4 ns 44.1 ns 36.7 ns 14.1ns
18MHz 72 MHz 27.7 ns 41.6 ns 34.7 ns 11.6ns
19MHz 76 MHz 26.3 ns 39.4 ns 32.8 ns 9.4ns
20MHz 80 MHz 25.0 ns 37.5 ns 31.2 ns 7.5ns
21MHz 84 MHz 23.8 ns 35.7 ns 29.7 ns 5.7ns
22MHz 88 MHz 22.7 ns 34.0 ns 28.4 ns 4.0ns
23MHz 92 MHz 21.7 ns 32.6 ns 27.1 ns 2.6ns
24MHz 96 MHz 20.8 ns 31.2 ns 26.0 ns 1.2ns
25MHz 100MHz 20.0 ns 30.0 ns 25.0 ns 0.0ns
****Original Message from Aug '97******
Newsgroups: comp.sys.apple2
Subject: Re: IIgs Zip accelerator SRAM speeds
From: dempson@actrix.gen.nz (David Empson)
Date: Wed, 27 Aug 1997 23:03:43 +1200
Message-ID: <19970827230343817275@dempson.actrix.gen.nz>
References: <5tsopj$gt5@gandalf.Advent.COM>
Organization: Empsoft
X-Newsreader: MacSOUP 2.2.1
NNTP-Posting-Host: dempson.actrix.gen.nz
Lines: 113
Path:
news1.icaen!news.uiowa.edu!news1.chicago.cic.net!iagnet.net!infeed1.internetmci.com!newsfeed.internetmci.com!202.14.100.1!status.gen.nz!news.iprolink.co.nz!news.actrix.gen.nz!dempson
Stephen McGrogan <smcgroga@gandalf.Advent.COM> wrote:
> My question is, if 65ns SRAMs work at 7-8 mhz (28-32mhz oscillators),
> why do I need 15ns SRAMs to run at 12-15mhz (48-60mhz oscillator)?
> What is the actual relationship between the SRAM speed and the
> oscillator clock speed?
I don't think anyone has ever described a clear relationship between
the clock frequency and required cache RAM speed. The following is my
current theory on how it might work. I make no claims that this
theory is correct!
In general, the speed of the TAG RAMs is more important than the speed
of the DATA RAMs. The DATA RAMs need to be fast enough to complete an
access in about half to three quarters of a CPU cycle, thus the
required speed is somewhere between (2 / F) and (3 / F) where F is the
oscillator frequency.
The TAG RAM may need to be faster than this. I don't know exactly how
the ZIP implements its tag mechanism, but it needs at least two pieces
of information for each DATA byte:
1. Is this byte valid?
2. Which bank does this byte come from?
The first item could be implemented by reserving an illegal bank
number (e.g. $EF).
If the ZIP has less than 64K of cache, it also needs to know the top
one or two bits of the address within the bank. This means that it
needs more than one byte associated with each data location. This
could be handled by sharing tag locations between two data bytes, but
this would mean the tag RAM has to be read twice.
I suspect that the ASIC has a small amount of RAM internally, which is
used to hold the extra tag information if there is less than 64K of
cache. It would need 32768 bits (two bits for each location in a 16K
cache), which is only 4096 bytes - not too large to fit inside an
ASIC.
Given these assumptions, the ASIC could handle the cache by
simultaneously reading the TAG and DATA locations, and deciding
whether a main memory read is required as soon as the TAG information
is available. The DATA information might not be needed as quickly.
The ASIC has to wait until the CPU has generated the address (about a
quarter of the way through the cycle) before it can address the cache.
It can use the VPA and VDA signals to identify when the address is
ready. The decision about whether the right location is in the cache
is probably synchronized to the oscillator (4 times the CPU cycle), so
I expect the TAG RAM would have to be able to complete an access
within half a cycle (assuming the decision about using the cache is
made at the 3/4 point in the CPU cycle).
For a cache hit, the DATA RAM is already outputting the appropriate
value, and it will be ready by the end of the cycle.
For a cache miss, the ZIP needs to synchronize with the clock speed of
the main computer. This is the really tricky bit that I haven't
thought through yet.
If the ZIP wants to improve the average synchronization time, it could
require the TAG RAM to be twice as fast as the DATA RAM, but this
doesn't appear to be the case (from observation of shipped ZIPs at
speeds from 7 MHz to 9 MHz).
Now for the explanation of why you need faster TAG RAM at higher
speeds: there are probably delays introduced by discrete logic and/or
the ASIC itself, which use up a constant amount of time. At lower
frequencies this isn't significant, but as the clock frequency
increases you need substantially faster TAG RAM to compensate for this
fixed delay.
Another factor is that the TAG information is probably needed earlier
in the cycle than the DATA.
Assuming my theories are correct, the required speed range of the DATA
RAM is somewhere between the following limits:
CPU Oscillator ------- DATA RAM speed ----------
Freq. Freq. (F) min (2/F) max (3/F) est (2.5/F)
7 MHz 28 MHz 71 ns 107 ns 89 ns
8 MHz 32 MHz 62 ns 93 ns 78 ns
9 MHz 36 MHz 55 ns 83 ns 69 ns
10 MHz 40 MHz 50 ns 75 ns 62 ns
12 MHz 48 MHz 41 ns 62 ns 52 ns
14 MHz 56 MHz 35 ns 53 ns 44 ns
16 MHz 64 MHz 31 ns 46 ns 39 ns