|Re: Nut Processor Clock Speed?|
Message #5 Posted by Jonathan Busby on 30 Mar 2003, 11:09 a.m.,
in response to message #4 by Kim
You said :
"42S is a Saturn based CPU with 64bit ACC registers"
Well, the Saturn doesn't have "accumulator" registers per se, but it has 4 64-bit general purpose registers : A, B, C, and D. These can be used interchangeably with most instructions but there are exceptions with respect to eg. memory access and loading of immediate data. Also, the D register is the most restrictive when it comes to its use: It will only interoperate with the C register.
"The bus is 4 bit wide (as opposed to 41 serial)."
While this is true for all Saturn processors, there is one notable exception from a performance perspective: In Yorke based Saturns (used in the 48G series and its siblings) the ALU operates at twice the speed of the external CPU clock from what I've seen. This gives the processor an effective 8-bit internal data bus.
"Wouldn't it take the CPU at least 16 cycles to load the accumulator and therefore make the suggested 333333 wrong."
You're thinking in terms of the 41's single cycle architecture, where "cycle" here is the 41 word time. The single cycle architecture is one of the simplest CPU designs and as you probably guessed (or knew), this is an architecture in which most or all instructions take one clock cycle to execute. In contrast, the Saturn has a multi-cycle design where the instruction execution times vary depending on what each instruction does. In general, the time it takes a Saturn instruction to execute is roughly proportional to how many nibbles of data it has to process.
Now, admittedly the speedup factor I gave was a bit contrived as I was basing this on one of the Saturn's fastest instructions, namely P=P+1 (which takes 3 cycles).
In real world code that actually accomplishes something useful you'll have a mix of instructions with varying execution times. A good guess for the average execution time of an instruction is 16 cycles, which gives you a speedup factor of around 10. But, this is in no way scientific since it really depends on what the currently executing routine is trying to accomplish.
"Even assuming that the clock speed and the CPU processing speed is the same might prove to be inaccurate."
The clock speed of the Lewis, like other Saturn based ICs, only varies to a very minor degree depending on temperature.
It's usually around 1 MHz, although it can be increased to 2 MHz at the expense of battery life. I don't know what you mean by "CPU processing speed". How is that suppose to change? As far as I know the architecture isn't self modifying. ;) ( a self modifying Saturn on an FPGA, now that's a thought ;)
Jonathan Busby - jdb@SNMAPOhouston.rr.com
Remove the random permutation of "NOSPAM" before replying.