From: "cyranojones_lalp" <cyranojones_lalp@...>
Jan 28, 2010
Since the topic of clock speed came up a few days ago, I
have been wonderin=
g about it myself. I never was very
happy with the idea that the cpu was r=
unning at 8, 10, or
12 MHz, because (for one reason) I did not see any poin=
t
to it. IOW, if the cpu can run at 12 MHz, why not run
it at 12 MHz?
A=
t first I thought the lower speed might be for the sake of
power-dissipati=
on. (Assuming it is a CMOS
cpu, since power dissipation in CMOS is essent=
ially 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 AF=
AIK it is quite difficult to divide by 1.2
or 1.5, as opposed to dividing b=
y an integer.
But there is one really good reason to run a cpu
slower: m=
emory 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 wai=
t states?
I have not researched this idea very far, but
perhaps the appare=
nt speeds of "10 & 8 MHz"
are accomplished as "1 or 2 wait-states"?
This s=
eems much more plausible than dividing
the actual clock by non-integer amou=
nt.
It is also possible that they allow setting
different wait-states for =
various devices
(codeflash, dataflash, RAM, LCD, modem).
CJ