Learn How CPU works

This is my processor that I built completely from transistors.
An image of a computer processor made from MOSFETs

In this interactive online course we will go in depth how I actually built it.

✅ implementing logic gates with transistors
✅ building registers, decoders, adders...
✅ creating the instruction set
✅ creating the control unit
✅ implementing branching
✅ programming the hello world
✅ whole CPU simulator to test understanding
✅ many more...

The course contains:







There are also 17 annotated images and 40 different diagrams of the processor which help you connect the basic concepts learned and simulated to the broader working of the processor.

We use over 70 simulations to slowly build understanding and intuition.

Many chapters have questions after the main text which test your understanding and help you grok the content.

My project was mentioned in:

Learn assembly

Below is the classic "Hello world" program. We will explain assembler, go through simple exercises and program the same thing in our online simulator!

An image of a computer processor made from MOSFETs

Course elements

Every chapter explains one concept and they usually end by assembling one part of the processor. They also contain interactive simulations and questions.

Make lamp turn on each clock cycle if the button is pressed down.
Loading the circuit ....
Get Hint

An example of a circuit simulator and a question:

What will happen when you press on both of the inputs (L) and change the inputs from L to H?
Get Hint

Architecture chapters have simulations of various memory-register architectures, including:

Here is an example:

Let us calculate (2+5)*(1+2) with stack based computer (press 'Step' several times)

Questions that test your understaning

Many chapters have questions at the end. They do not test memory, but help you deepen your understanding of topics presented.

All questions have answers and longer questions, such as ones including the simulator, have hints also. Here is an example from micromemory chapter:

Lets say we can implement one bit of microcode with 1 transistor. How many more transistors would we need in the horizontal, compared with vertical micromemory? (take the numbers from my processor example)
960-512-19=429. We need to calculate how many transistors extra decoders for the vertical microcode use. There are 3 of them. One has 3 NOT gates and 8 NOR gates which is 3+8*2=19 transistors.
I want to expand my microcode, it should enable me to do 1 or 2 ALU operations at the same time, and 1 or 2 receive devices, how do I do it?
Expand the ALU area to have 6 bits and receive area to have 6 bits. We want to select 2 or 1 things out of 8 things. We have 8 choose 2 + 8 choose 1 distinct choosings which is 28+8=36. So we need log2(36)=5.17 -> 6 bits for ALU and 6 for receive.
Same question as above, but we use horizontal microcode. Do we need all the things we need for the above one?
No we don't. We do not need to expand the horizontal microaddress. It already has the flexibility because we do not have to decode anything.

No hiding complexity

There are some projects on the internet that build small 8 bit computers out of integrated circuits, like registers, bus selectors, decoders, etc. this is not the focus of this course. We do not use any integrated circuits, there is no hiding complexity.

Frequently Asked Questions

What prerequisites do I need for this course?

Basic knowledge of electronics and understanding of fundamental programming concepts are nice to have, but all the things that we really need are explained.

How long is the course?

There are 25 different topics. You can also see topics on the left.

There are 25 different topics. You can also see topics in "Chapters" drop down menu at the top.

There are also example articles, the ones withot locks, so you can estimate the total length.

How up-to-date is the course material?

The course has two parts, the fundemental processor design part and specifics of a single (my) implementation. The fundemental processor design part is timeless, this is by definition. Specifics of my processor are also timeless. They show a single solution to series of constraints posed by building a processor yourself, where the main constraint is the number of transistors.

Do I need to purchase any additional materials or software?

No!!! All the simulations are browser native. This means that you can run them on the phone, tablet, laptop, etc. all without downloading a single program.

Can I get a refund if I'm not satisfied with the course?

The refund policy is pretty lax. As long as you contact us within day or two and mention why you did not like it you can get you money back.

Will there be any hands-on projects?

This course explains how to build a processor and walks through the specifics of my processor. There are no hands-on projects.

Is there an option for advanced learning after this course?

My todo list contains a much more capable processor, with more transistors, higher clock rates, etc. The next course will focus on it and more advanced things like pipelining, branch prediction, VGA display...

Still not sure?

Check out several public articles:

You can also see topics on the left.

You can also see topics in "Chapters" drop down menu at the top.