Subject: New theory on CPU speed

From: "cyranojones_lalp" <cyranojones_lalp@...>
Date: Thu, 28 Jan 2010 16:07:15 -0000

Since the topic of clock speed came up a few days ago, I
have been wondering about it myself.  I never was very
happy with the idea that the cpu was running at 8, 10, or
12 MHz, because (for one reason) I did not see any point 
to it.  IOW, if the cpu can run at 12 MHz, why not run 
it at 12 MHz?

At first I thought the lower speed might be for the sake of 
power-dissipation.  (Assuming it is a CMOS 
cpu, since power dissipation in CMOS is essentially directly 
proportional to clock speed).

But, since cpu goes to sleep when there is nothing to do,
and it would be awake for shorter periods at 12 MHz,
the power dissipation would be essentially the same at
any of the 3 speeds.

Another reason I was uncomfortable with 8/10/12 speeds
is that AFAIK it is quite difficult to divide by 1.2
or 1.5, as opposed to dividing by an integer.

But there is one really good reason to run a cpu 
slower:  memory access time!

But if that is the reason, rather than slow the 
whole cpu down, it makes A LOT more sense to slow 
just the memory-access cycles with wait-states.

So, perhaps port 0x0d is just setting the 
number of wait states?

I have not researched this idea very far, but
perhaps the apparent speeds of "10 & 8 MHz"
are accomplished as "1 or 2 wait-states"?

This seems much more plausible than dividing
the actual clock by non-integer amount.

It is also possible that they allow setting
different wait-states for various devices
(codeflash, dataflash, RAM, LCD, modem).

CJ