z80 timing... 6502 timing
 
from my ampro LB using calibrated logic analyser...
 Tc = 1/clock	z80A	4mhz or 250ns (clock is symetric)
address stable before Memreq/         ~80nS  (occurs 0.5clocks earlier 
                                              than read or wr -delays)
 WR/ width	 		      210ns  (roughly 1 clock -delays)
 RD/ width (M1)	 		      290us  (roughly 1.5 clocks -delays
 RD/ width (other)		      390us  (roughly two clocks -delays)
So the longest memory use cycle is address setup+ RD/ or about 470us.
Even the rom chip select was active for less than 400ns and that includes
propagation delays.  the 4mhz z80 wants memories with access times in the 
250ns range.  
In terms of memory bandwidth used the z80 runs from a high of 80% on M1 
cycles (due to z80 providing memory refersh) to around less than 50% on 
other read or write cycles.  Refresh is not a required signal for operation 
with static rams so the M1 memeory bandwidh can be less than 50%. This
set of statements is also inaccurate as it is worst case for some 
instuctions.  In those cases like ADD DE,HL that takes many cycles but the 
only bus useage is during M1 so the average bandwidth can be very low.
To get 750ns I need to slow the clock to about less than 2mhz or add the 
time for m1 and refresh at 4mhz.  In either case it's apples and oranges.
The 6502 _at_2mhz would want 300ns memory.  An aside to this is that the 
6502 like many cpus use both edges of the clock to trigger functions via 
a two phase internal clock so there are roughly 4 phase pulses per cycle 
internally.  the external timing of the 6502 looks simpler due to it's 
use of signals and the synchronous nature of the machine.  this is wny 
external clock frequency is so meaningless.  Instruction execution time
is the only measure.
the 6502 memory useage is far higher as it is active for half the 
processor cycle so it's roughly 50% in all cases.  This makes hidden 
refresh of Drams easier with the regular cycle timing but allows less 
time to achieve it.  If the refresh is done during the inactive portion 
of the 6502 cycle then memory bandwidth nears 100% use.  The exception 
is if the memory is fast enough it can be done with post read refresh
(cas after ras).  Static rams will run at ~50% of bus bandwidth.
Allison
Received on Mon Apr 12 1999 - 21:17:01 BST
This archive was generated by hypermail 2.3.0
: Fri Oct 10 2014 - 23:31:42 BST