从头设计你的 CPU.
这个系列主要探索计算机在硬件层面上是如何工作的。不过我们并不会特别注重于具体的硬件实现——至少不会考虑如何烧沙子。我们的主要讨论方向是在逻辑层面上如何实现一个 CPU.
当然,我们仍然会使用现实的硬件构建我们的 CPU. 在接下来的章节中,我们将探讨组合逻辑电路、时序逻辑电路,并用他们搭建时钟、存储器、译码单元和算数单元等组成处理器的基本器件。在此之后,我们将会讨论指令流水线、分支预测、与其他外设交互与阅读数据手册的一般方法。
我们的 CPU 并不一定要实现某个指令集,所有的内容都可以由我们自行设计,所以不需要拘泥于一个架构。诚然,这个系列有 Ben Eater 的影子在里面,甚至在硬件设计上可以说是照搬了他的结构,但有些时候,正确答案确实只有一个。
当我们开始设计电路的时候,我会用 KiCad 套件来绘制原理图和 PCB. 尽管用 Fritzing 会有更直观的图形表示,但是 Fritizng 实在是太卡了。原理图、PCB 以及制板文件将会在资料下载内可用。
目录
- B0 - Where the Circuit is Built <HERE>
- B1 - Logic Gates
- B2 - Sequential Logic
- B3 - Buffers and Storages
- B4 - Sum of the Parts
- B5 - Fetch-Execute Cycle
- B6 - Flag Register
- B7 - Arithmetic Operations
- B8 - Branching
- B9 - Pipeline
- B10 - Peripherals
- B11 - Branch Prediction*
- B12 - Reading Datasheets
- B13 - Race Condition
- B14 - Timings and Glitches
Your comments will be submitted to a human moderator and will only be shown publicly after approval. The moderator reserves the full right to not approve any comment without reason. Please be civil.