How a CPU works.

# How a CPU works.

Hello.

So recently I found out that most people involved or not with programming have no idea how a CPU works.

This bothered me.

And I didn't like that.

So I decided to find why this was the case. And the more I though about it I realized that most people never have to deal with a CPU in programming at all.

For most of you, programming is about variables, classes, functions, ect. And all of that is too high level to ever need to worry about a CPU.

The only reason you would need to is out of curiosity.

# What is a CPU?

I'll make this one short due to the fact that most of you probably know what a CPU does at a higher level already.

In short, a CPU or Central Processing Unit is what does all the actual computation in your computer

It can also interface with the other components in your computer.

# What is inside a CPU?

At a very low level a CPU is just a ALU, and registers.

## The ALU

The ALU or the Arithmetic and Logic Unit is where all the Arithmetic and Logic happens.

Inside the ALU is what is known as logic gates.

These are little electrical circuits that when given any input return (out the other end) a output via electrical wire.

Lets look at an example.

### The AND Gate

The and gate only returns a 1 (or an electrical current) when all of the inputs are 1 (or on).

Back to the ALU.

The ALU consists of these gates and they can perform logic.

When these gates are put together you can make some cool things.

## The registers

A Computer needs to store things its working with.

This can be done via RAM.

Or a few registers inside the actual CPU.

These are just little circuits that can store values.

# The fetch and execute cycle.

The CPU needs stuff to do.

So it has instructions in RAM.

These instructions can tell the CPU to do certain things.

But how does it get these?

It uses a cycle.

Firstly it fetches the binary instruction from RAM.

Then it decodes it.

Then it executes whatever the instruction said to do.

# Conclusion.

Congrats! We have learned about a simple CPU!

It can execute instructions that are in RAM and store values in internal registers!

I hope you enjoyed.

Upvoting is caring :) - @Bookie0 2020

You are viewing a single comment. View All
Jakman (462)

As a side. Write a tutorial explaining how to write a language in itself like how C wrote the stdlib in itself.. I want to see just how good of programmers are on this site.

JustAWalrus (1167)

What good would that do? @Jakman

JustAWalrus (1167)

Also I don't write programming languages. I write operating systems so I am not the best source on that. @Jakman

Jakman (462)

@Wuru ok. So C was written in ASM and itself. This was done by using the abilities given from ASM and using those abilities to write C in itself. Kind of how the python standard lib was written in itself mostly

DynamicSquid (4532)

@Jakman That has always been a goal of mine, to create a language good enough so that you can use it to create your language

Jakman (462)

@DynamicSquid i can already see you making Night libraries in Night after giving it some more control in Cpp

DynamicSquid (4532)

@Jakman Yup! That's my plan! I just gotta finish some bugs I have with functions, then I can start work on predefined functions, and eventually entire libraries

Jakman (462)

@DynamicSquid sounds great!. I could help with some C libs like most languages have if you would like for me to help.

DynamicSquid (4532)

@Jakman it's still going to be a while until I start actually making the library, but I might need your help cause I've done nothing like it before. thanks for offering btw!

firefish (878)

@Wuru Yes, a tutorial on bootstrapping would be wonderful.