The clock speed of a CPU is defined as the frequency that a
processor executes instructions or that data is processed. This
clock speed is measured in millions of cycles per second or
megahertz (MHz). The clock itself is actually a quartz crystal
that vibrates at a certain frequency when electricity is passed
through it. Each vibration sends out a pulse or beat, like a
metronome, to each component that's synchronized with it.
By now, you've probably got a handle on the
incomprehensible amount of data and information that is flowing
around inside your computer. There are many different devices
and components, each sending and receiving millions of bytes
of information every second. Imagine the havoc if each of these
components just sent their information where ever and whenever
they wanted, or all at once. There has to be some sort of organization
and cooperation between the different devices. That's where
these little quartz crystals come in. Each device synchronized
with the clock performs each instruction, transmits or receives
data, transfers, reads, processes, etc. on each beat of the
clock (clock cycle).
Early computers had a single system clock.
The expansion bus and the CPU both ran at the same speed. It
didn't take long before CPU technology had advanced to where
they were faster than the expansion bus. This caused a real
bottleneck. The CPU could process and send information faster
than the expansion bus could possibly transfer it. The problem
was to get each device to run at its own separate speed and
still be in synch. What to do?
Well, first off, you give the expansion bus
its own clock. Take a hint from music, and make that clock speed
a sub-multiple of the system clock. In other words, if the expansion
bus clock is running at 8 MHz, then the system clock would run
at 16, or 32 etc. Of course, these are arbitrary numbers, the
actual values can be pretty strange (like 14.31818 MHz) but
you get the idea. Now, have the bus send a signal to the rest
of the system that says, "don't send me anymore info until I'm
through with this"! When the bus can handle more data, it sends
a signal asking for more.
To begin with, the expansion bus was not really
given a separate clock. The circuits and technology on the motherboard
could split the clock signal or multiply it as needed by certain
components. These circuits are called 'frequency dividers' or
'frequency multipliers'. Now, the memory system in your computer
can be controlled by a 100 MHz clock. A frequency divider is
used to reduce the speed by 1/3 to accommodate the 33 MHz PCI
bus, and another divider to reduce the speed by 12 for the 8
MHz ISA bus. The CPU can have a frequency multiplier that will
increase that 100 MHz speed to 500 MHz or 600 MHz for internal
operations. So these devices are still maintaining synch even
though they are running at different speeds.
Modern computer technology does allow for some
asynchronous operation. Some motherboards now have separate
clocks for the expansion bus, system bus, video, etc.. Although
these devices run asynchronously, their individual clocks will
still run at multiples or sub-multiples of each other which
allows for the optimization of transfer rates and data exchange.