I often have heard people telling they have so and so clock speed. So what does this clock speed mean and does it determine the speed of a system? What is its significance?
"Clock speed" is quite simply how often a timer (often a crystal oscillator) tells the CPU to "advance" or go forward.
That's it, and that's why comparing clock speeds of different processor architectures is next to useless when trying to gauge relative performance. Even within a particular architecture, different features that may be disabled on lower-end models and enabled on higher-end models can cause clock-speed to not be a good benchmark for comparison.
- Scalar Processors take one or several clock cycles to execute a single instruction.
- Superscalar Processors can execute multiple instructions in a single clock cycle.
- Processors with pipelining take many clock cycles to execute an instruction, but they can run multiple instructions at the same time in different "stages", which allow them to still hit about 1 instruction / clock cycle.
- Multi-core Processors have multiple discrete sub-units (cores) which can process instructions independently of each other, each with their own (L1) cache, but they share other processor-level components (L2 and L3 caches, Memory controller, System bus, etc.)
Most desktop processors these days are Multi-core pipelined scalar processors. Some Intel processors have over 17 stages in their pipeline (i.e., it may take up to 17 clock cycles from start to finish for a single instruction to execute).
If you want to get into more specifics behind the definition of "clock cycle", you have to first start asking more specific questions. If you asked "What does a 3rd-generation Intel Core processor do during a clock cycle?", then you could get mountains of information describing how that particular processor works and what it does (though such a question would not be suitable for this site, but it would be a great starting place for google or asking on forums).
The clock speed is how many "operations" per second a processor does.
Now I say "operations" not "instructions" because modern are CISC based which can take several cycles to perform one instruction.
The number of cycles a instruction could take can vary between processor families, that is why a slower clocked processor can out perform a higher clocked processor, it can do more work per cycle.
I highly reccomend the Podcast "Security Now!" they go over the basics of building a computer from the ground up and explain in depth how it all works.
- 233 - Let's Design a Computer (part 1)
- 235 - Machine Language
- 237 - Indirection: The Power of Pointers
- 239 - Stacks, Registers & Recursion
- 241 - Hardware Interrupts
- 247 - The “Multi”-verse
- 250 - Operating Systems
- 252 - RISCy Business
- 254 - What We'll Do for Speed
I highly recommend listing to the listener feedback episodes too between the episodes, the go back over things people thought where confusing from last week and wrote in about.
Clock speed is a measure of how quickly a computer completes basic computations and operations. It is measured as a frequency in hertz (Hz), and most commonly refers to the speed of the computer's Central Processing Unit (CPU). While computer developers and users can refer to this term regarding CPU performance, this has fallen out of favor as CPUs have become more complex. The easiest ways to boost clock speed in a computer include upgrading components and "overclocking" a piece of hardware.
CPUs have, as their "heart", a quartz oscillator or other very precise timing mechanism called the CPU clock (not to be confused with the "system clock" that maintains the current time using a different system). This clock sends out pulses of voltage into the circuitry of the CPU, which, along with voltage on I/O circuits representing the bits of data to be processed, allows the computer to do its work. Each pulse allows one set of input bits to be processed into a set of output bits as the result of some operation.
The "clock speed", therefore, is a (very) rough measure of the rate at which the CPU can perform instructions. The higher the clock rate, the faster it can process. However, there are several physical limitations to this approach, not the least of which is the second law of thermodynamics which states that no system can be perfectly energy-efficient. Some of the energy input is lost as heat, and heat can very quickly cause the delicate circuitry of the CPU to swell and short-circuit, or in the extreme even melt down. There are also physical limits to the frequency at which you can vibrate the electrons in conductive materials; at some point you're trying to vibrate them faster than the electrons can physically jump between atoms. Lastly, there's a point of diminishing returns to making the CPU go faster, when other limits inherent in other components of the computer are maxed out. When the CPU is waiting for bits of data to be received from the hard disk or a network connection, it can't proceed with any instruction that needs them, and so
Instead, designers of modern CPUs have backed off the clock speed in favor of making a single clock pulse do more. More efficient "pipelines" to retrieve data needed for instructions, and now more cores built onto the same CPU chip (I believe the current gold standard for workstations is 8 cores), allow designers to multiply the work done by a single pulse and so continue to increase processing power in terms of instructions per second. However, this approach requires programmers to tap into the CPU's full potential by allowing their program to be executed by multiple cores simultaneously, and this "divide and conquer" design to the program can only take you so far in many cases. This is known as the "parallel problem", and is the Next Big Thing for CPU designers and language architects alike to solve.
CPU Clock Speed is measured in Hertz(Hz) and generally speaking a CPU running at 1 Hertz is processing an instruction in one line of assembly programming code in one second. By this metric, a CPU that is running at 2.13 Giga-Hertz(GHz) is capable of processing about 2,130,000,000 lines of code every second. If you have what's known as a Dual Core system that is running at 2.13 GHz, you have a machine that can process two instructions in the same time-frame, provided that either the program itself is designed with Multithreading capability, or you have two active programs running at the same time. Multithreading simply means that different calculations in a program can be delegated to run in parallel on a separate CPU if one is available.
Clock speed is the most common metric used by Advertisers.