You are currently viewing The CPU – Part 1

The CPU – Part 1

If you are very interested in cars, you are probably also interested in the hardware of the car: what is below the hood and what makes the car drive. For myself, this is the same with computers. I think that it is also important to have a better understanding of the hardware to get a better grasp of technology. Without doing this (sticking to the analogy I used), would give me a feeling that I am driving a car without knowing what is under the hood of the car. And to start this off, I would like to get more insight into the heart of the computer: the Central Processing Unit or short: the CPU. 

Communication with the CPU

You can see a CPU as a powerful calculator. But it only executes calculations if it gets commands. If you want to give commands in words to a CPU it doesn’t work. A CPU doesn’t understand our language. 

In order to be able to communicate with the CPU, we need a communication tool that translates commands to the CPU into a language that the CPU understands. The tool that is used for that is the External Data Bus (EDB). Communication through the EDB is done by placing voltage (electronic pulses) on the wires of the EDB. This way the wire switches “on” or “off”. If a wire switches “off” this is a “0”. If the wire switches “on” this is a “1”. The 0s and 1s are called binary code and this is a language that the CPU understands. This is how we communicate with the CPU. These wire switches are also called “transistors”. 

Commands for the CPU in order for the computer to operate have to be programmed in the binary code. This is done by programmers and the common word used for this is “coding”. The code lines of 0s and 1s are communicated by voltage through the EDB wires and these are then passed to the CPU that can execute the commands.   

The EDB can’t hand over code (lines of 0s and 1s) 1-1 to the processor. That is way too slow. Instead, it processes in batches. To be able to do this, the EDB has registers that store internal commands and data after which it is communicated in batches (full lines of code) to the CPU. The commands stored in the registers are very small batches of information like an address register, an instruction register, and a program counter.

Memory

At first (back in the ’70s), a code line (the number of 0s and 1s) did not exceed 8 characters. That was the maximum the EDB register could handle. A line would look like this:

10110110

One character in the line is called a bit and the whole line (8 characters) is called a byte.

The first computers had four registers of up to 8 bits per register but during the time this moved from 8 bit to 16 bit to 32 bit and nowadays to 64 bit which means lines of up to 64 characters.

This sounds like quite a lot of characters/possibilities, but now step two comes into play. You also want to run programs on a computer. A computer that can only be turned on and off is useless.  

The programs that you want to run on a computer are called software and because the EDB has only very limited storage, the software is stored on a hard drive of the computer. These hard drives can’t hand over the data directly to the CPU at a fast enough speed and it is also not an option to store all these programs in the registers of the EDB: it’s too small for that. 

To solve this you need an alternative that can temporarily store these lines of code. Because each line of code always has a pattern of eight 1s and 0s (or a multiple of that), any device that can store these code lines is sufficient. These devices are called memory. The device that is used for this is called Random Access Memory (RAM). You can see RAM as a big spreadsheet file of cells that can store lines of coding, existing out of one bit of data (so a “1” or a “0”). It doesn’t look like that from the outside: instead, you will see a collection of chips that are soldered on a small print plate:

In addition to RAM, you also have DRAM (Dynamic Random Access Memory). DRAM is used for the main system memory.

The difference between RAM and other storage devices (like a hard drive or a flash drive) is that RAM stores data only temporarily. RAM is wiped when you restart your computer. Other storage devices (like Harddisks, USB media, etc.) store files indefinitely (until you manually delete them).

So now we got RAM. But there is still no connection between the CPU and the RAM. The CPU needs to communicate with RAM what row of programming it wants and needs to extract it after that from the EDB where it is stored for a very short time until the CPU retrieves it. To solve this, a special chip communicates between CPU and RAM. This chip is called the Memory Controller Chip (MCC). The MCC grabs the contents (data or command) of any line of programming on the RAM and places this on the EDB. But there is still one problem. The communication between MCC and CPU can’t be done over the existing communication line (Bus) between the EDB and the CPU: that line is taken by the program lines that RAM places on the EDB. To solve this, an extra line (Bus) of communication was created through which the MCC and CPU can directly communicate: the Address Bus. The full communication line looks like this:

The Clock Wire

The EDB wires/transistors communicate based on voltage. So when a piece of code enters the EDB, the CPU needs to get a signal that a piece of code is available in the EDB. This is done by a charge of voltage on the Clock Wire (CLK), managed by a separate microchip: the clock chip. When the CLK is charged, the CPU gets a signal that information can be taken and processed. A single charge on the CLK is called a clock cycle and one clock cycle is equal to one hertz (Hz) A CPU needs at least two charges (two clock cycles) to process a single command but with the ever-increasing demand of programs (and therefore coding), this is far higher. 

When I got my first desktop computer at the beginning of the ’90s, the clock speed of the processor was 25 megahertz (MHz). Translated in clock cycles this meant that the CLK gave 25 million charges (voltage) per second. Insane, right? 

Now let’s move to the current day (I think you can feel this one coming): the number of clocking cycles increased over 750(!) times. One of the strongest gaming processors (there are more but just for example’s sake) by Intel and AMD:

  • Intel Core i5-11600K (3.9 GHz base frequency)
  •  AMD Ryzen 5 5600X (4.1GHz base frequency)

The processors work at a base frequency of about 4 gigahertz (GHz). This is 4.9 billion charges per second. For me, it sounds almost impossible that in 1 second, 4.9 billion pulses are given to the CPU but the facts tell different: it is possible and we are certainly not done as I know that the performance will keep increasing.

The System Crystal

All the parts of a computer and the CPU need to operate in harmony at the right speed. This means that you need a conductor to keep the band together. This conductor is the system crystal. The system crystal is a quartz oscillator and it is soldered on the motherboard. Without it, the computer can’t operate because it would completely run out of sync. 

To prevent overheating, the system crystal needs to prevent the CPU to run faster than its clock speed. So if you install a CPU into your system, the system crystal and clock chip need to send out the correct clock pulse for that particular CPU.

The risk of overheating is a past problem because modern computers found a solution for this risk. On modern systems, the CPU informs the motherboard what clock speed it needs and the clock chip then automatically adjusts its speed according to the instruction of the CPU. 

You might think it’s not necessary for me to talk about the risk of overheating the system. It sounds that there is no real risk on modern devices because of the extra prevention that is built into the motherboard. That’s true but there are still a lot of old computers out there so it might apply to them and you should keep the risk of overheating in mind when you want to upgrade the hardware of an old computer that needs to be kept up and running. One of the reasons that this can be the case is that in some cases, old software is required that can only run on old computers. For instance, software for old machinery and old Enterprise Resource Planning systems. My advice: if you install a different CPU in an old system, always check if the crystal and clock chip sends out the correct clock pulse for that specific CPU.

Final thoughts

I hope this information was useful and gives a better understanding of how the heart of the computer, the CPU, works. Feel free to contact me if you have any questions or if you have any additional advice/tips about this subject. if you want to keep in the loop if I upload a new post, don’t forget to subscribe to receive a notification by e-mail.  

Leave a Reply