The instruction encoding of my homebrew CPU is very simple at the moment. Its control signals are connected directly to individual bits of the instruction. This is very inefficient though, and some useful instructions like ADDI cannot be implemented. In this video we extend my CPU with an instruction decoder and teach it to recognize and execute an existing program.
This video series explores the concepts and techniques that make modern computer processors so incredibly fast and powerful. I build my very own 8-bit processor from individual logic gates and gradually evolve it to become a superscalar out-of-order machine. Along the way, we take a deep dive into contemporary computer architecture in a hands-on fashion and rediscover some of the foundations of modern computing.
Previous Video:
https://youtu.be/8aiC-0pRmBs
Series Playlist: https://youtube.com/playlist?list=PLyR4neQXqQo5nPdEiMbaEJxWiy_UuyNN4
GitHub Repository: https://github.com/fabianschuiki/superscalar-cpu
- 6502 Dieshot: http://visual6502.org/
- 8086 Dieshot: https://www.righto.com/2020/06/a-look-at-die-of-8086-processor.html
Chips:
- SST39SF040A: https://ww1.microchip.com/downloads/en/DeviceDoc/20005022C.pdf
- 74HC139 (2OH4): https://www.ti.com/lit/ds/symlink/sn74hc139.pdf
00:00 - Intro
01:52 - Instruction Decoding
08:29 - Adding Decoder ROMs
13:54 - Functional Units
18:33 - Testing the Functional Units
23:57 - Programming the Decoder
31:11 - Decoding Existing Instructions
34:44 - Testing the Decoder
38:40 - Outro
#homebrew #8bit #breadboard #superscalar #computer