Before going into the next tutorial (The Kernel), I have decided to go back to the System Architecture tutorial and add a little bit more content...
I hope to disect each component: ALU, FPU, CU, Registers, etc..
This is the primary reason why I want to add more content: Microprogramming.
On the low level, the processor does not execute the machine code generated from assembly language. The processor does not know how, as assembly language is still to high level.
Instead, the processor--just like any other controller, relies on it's own microcode language, which describes how each instruction is executed at the hardware level. This Microprogram is stored within the Control Store inside the CPU's Control Unit, and is responsible for breaking each machine instruction down to instructions that can be used electronically by the controller.
The microcode language may varies from each individual programmable chip.
Microprograms are the firmware, which are stored within the Control Store of a controller. This software needs to be directly copied within this ROM. This is what firmware is. Some example firmware include the CPU, CMOS, and even the BIOS itself.
Each controller has their own microprogram stored within a control store (or hard wired), and is used (in their own way) to translate our instructions and commands that we send to it (in/out instructions, for example) into somethings that can be used by the electronic device.
I think adding a section for microcode, and microprogramming would be a great addition to the series, as our code directly works with the microprogram firmware to turn our high level assembly language instructions to something the controller can actually use.