A CPU is essentially made from switches. Tiny areas on a piece of silicon - a microchip - can be created such that they allow electricity to pass from one place to another when there is electricity supplied at a third point and not otherwise; or the inverse, they prevent electricity from passing through when there is electricity applied to the control point and not otherwise. These are then wired together by making areas of the chip conductive, or by just layering metal on top of the chip. All logic is built out of these. (Good things to Google for are pnp / npn junctions, logic gates, flip flop, half adder, ALU, VLSI if you want to read more about this stuff).

At this level, electricity isn't always "fully on" or "fully off". The switches take time to switch. When the inputs change, the output takes a while to settle down to a stable level. When a bunch of switches are wired together into a circuit, the whole thing takes time to settle down.

Human programmers working with the CPU need to be able to reason about its behaviour as a whole. It is easiest to reason about a system that, as a whole, goes from one well-documented stable state to another in response to some input and has no unpredictable behaviours.

For this purpose we introduce the idea of a clock: something that regularly pulses electricity. 

We design all the various circuits such that, when a clock pulse starts and only then, they latch onto their inputs and all the switching starts; this means that as all the switching happens and all of the various outputs fluctuate before settling into the resulting states, we can ignore this fluctuation since the things the outputs are wired to won't look at them before the next clock pulse. 

The closer together we space the clock pulses, the faster we can go from one state to another, and so the faster we can do work. But we have to wait at least as long between them as it takes for the part of the CPU that takes the longest to settle to a new state when something changes to do that.

This rate at which we decide to run the clock - the clock speed, the number of pulses per second, or Hertz - is the MHz (megahertz, million hertz, million pulses per second) figure you are asking about.

There are alternative ways of designing a CPU; e.g. "dual rail logic" allows each circuit that makes up the CPU to individually tell the things reading its outputs when its outputs are ready, so no overall clock is needed and each part can potentially run at its own speed.

This makes the system as a whole much more complex and harder to reason about, and so is rarely done.
CPU එකක් අත්‍යවශ්‍යයෙන්ම ස්විච් වලින් සාදා ඇත. සිලිකන් කැබැල්ලක කුඩා ප්‍රදේශ - මයික්‍රොචිපයක් - තුන්වන ලක්ෂ්‍යයක දී විදුලිය සැපයෙන විට එක් ස්ථානයක සිට තවත් ස්ථානයකට විදුලිය ගමන් කිරීමට ඉඩ සලසන පරිදි නිර්මාණය කළ හැකිය. නැතහොත් ප්‍රතිලෝමව, පාලන ලක්ෂ්‍යයට විදුලිය යොදන විට විදුලිය ගමන් කිරීම වළක්වන අතර වෙනත් ආකාරයකින් නොවේ. චිපයේ ප්‍රදේශ සන්නායක බවට පත් කිරීමෙන් හෝ චිපයේ මුදුනේ ලෝහ ස්ථර කිරීමෙන් මේවා එකට වයර් කරනු ලැබේ. හැම තර්කයක්ම ගොඩනැගෙන්නේ මේවායින්. (ඔබට මෙම දේවල් ගැන වැඩිදුර කියවීමට අවශ්‍ය නම් pnp / npn හන්දි, ලොජික් ගේට්ටු, ෆ්ලිප් ෆ්ලොප්, අර්ධ එකතු කරන්නා, ALU, VLSI සඳහා Google වෙත හොඳ දේවල් වේ). මෙම මට්ටමේ දී, විදුලිය සෑම විටම &quot;සම්පූර්ණයෙන්&quot; හෝ &quot;සම්පූර්ණයෙන්ම අක්රිය&quot; නොවේ. ස්විචයන් මාරු වීමට කාලය ගතවේ. යෙදවුම් වෙනස් වූ විට, ප්‍රතිදානය ස්ථාවර මට්ටමකට පත් වීමට යම් කාලයක් ගත වේ. ස්විච් පොකුරක් පරිපථයකට සම්බන්ධ කළ විට, සියල්ල සමනය වීමට කාලය ගතවේ. CPU සමඟ වැඩ කරන මානව ක්‍රමලේඛකයින්ට එහි සමස්ත හැසිරීම ගැන තර්ක කිරීමට හැකි විය යුතුය. සමස්තයක් වශයෙන්, යම් ආදානයකට ප්‍රතිචාර වශයෙන් එක් හොඳින් ලේඛනගත ස්ථායී තත්වයක සිට තවත් ස්ථානයකට යන පද්ධතියක් ගැන තර්ක කිරීම පහසුම සහ අනපේක්ෂිත හැසිරීම් නොමැත. මේ සඳහා අපි ඔරලෝසුවක් පිළිබඳ අදහස හඳුන්වා දෙන්නෙමු: නිතිපතා විදුලිය ස්පන්දනය කරන දෙයක්. ඔරලෝසු ස්පන්දනයක් ආරම්භ වන විට සහ ඉන් පසුව පමණක්, ඒවායේ යෙදවුම් වලට අගුලු දමා සියලු මාරුවීම් ආරම්භ වන පරිදි අපි විවිධ පරිපථ සැලසුම් කරමු; මෙයින් අදහස් කරන්නේ සියලු මාරුවීම් සිදු වන විට සහ ප්‍රතිඵලයක් ලෙස ලැබෙන තත්ත්වයන්ට පත් වීමට පෙර විවිධ ප්‍රතිදානයන් උච්චාවචනය වන විට, අපට මෙම උච්චාවචනය නොසලකා හැරිය හැක, මන්ද ප්‍රතිදානයන් රැහැන්ගත කර ඇති දේ ඊළඟ ඔරලෝසු ස්පන්දනයට පෙර ඒවා දෙස නොබලන බැවිනි. අපි ඔරලෝසු ස්පන්දන එකිනෙකට සමීප වන තරමට, අපට එක් ප්‍රාන්තයක සිට තවත් ප්‍රාන්තයකට වේගයෙන් යා හැකි අතර, අපට වැඩ වේගවත් කළ හැකිය. නමුත් ඒ සඳහා යම් දෙයක් වෙනස් වූ විට නව තත්වයකට පත් වීමට වැඩිම කාලයක් ගත වන CPU හි කොටස සඳහා ගත වන තාක් දුරට අපට ඒවා අතර රැඳී සිටීමට සිදු වේ. ඔරලෝසුවේ වේගය, තත්පරයට ස්පන්දන ගණන හෝ හර්ට්ස් - අපි ඔරලෝසුව ධාවනය කිරීමට තීරණය කරන මෙම අනුපාතය ඔබ අසන MHz (මෙගාහර්ට්ස්, මිලියන හර්ට්ස්, තත්පරයට ස්පන්දන මිලියන) වේ. CPU එකක් සැලසුම් කිරීමේ විකල්ප ක්‍රම තිබේ; උදා: &quot;ද්විත්ව දුම්රිය තර්කනය&quot; මඟින් CPU සෑදෙන සෑම පරිපථයකටම එහි ප්‍රතිදානයන් සූදානම් වන විට එහි ප්‍රතිදානයන් කියවන දේවල් තනි තනිව පැවසීමට ඉඩ සලසයි, එබැවින් සමස්ත ඔරලෝසුවක් අවශ්‍ය නොවන අතර සෑම කොටසකටම එහි වේගයකින් ක්‍රියා කළ හැකිය. මෙය සමස්තයක් ලෙස පද්ධතිය වඩාත් සංකීර්ණ වන අතර තර්ක කිරීමට අපහසු වන අතර එසේ කරන්නේ කලාතුරකිනි.