从头开始构建自己的RISC-V CPU

煤油灯科技2023-01-14 09:47

Pineapple One是一台具有I/O、内存和一个自制的32bit RISC-V CPU的完整电脑。(James Provost)


自造CPU是一种“梗”一样魔力的驱使。我们开始思考我们理解中那些被掩盖的鸿沟,即潜伏在“逻辑门和触发器如何独立工作,与机器代码如何控制完全组装的处理器”之间的鸿沟。在硬线电路开始随着软件不断变化的曲调起舞的神奇地带,到底发生了什么?

事实证明,这种“梗”折磨着足够多的人,这也激活了供创客使用的商业套件,以便把CPU组装在一起看(或听)它滴答作响,网络上也充斥着自制的4位和8位CPU,其架构是20世纪70年代的工程师所熟悉的。我应该知道——我自己也做过一个。但后来我开始想:我能不能用一些最新的技术制造我自己的CPU?我可以自己设计完全兼容的32位RISC-V中央处理器吗?

RISC-V是一种开源架构,已经有11年的历史,现在开始在x86和ARM CPU架构占主导地位的世界中取得进展。罗伯特·巴鲁克(Robert Baruch)的工作让我注意到RISC-V的可能性,他大约两年前开始了一个类似的项目,但尚未完成他的处理器,部分原因是他必须不断重新设计他早期构建的组件,以满足不断发展的设计需求。

RISC-V设计的模块化特征让我将“菠萝一号”(Pineapple One)构建为一堆可单独测试的10 x 10厘米的PCB,具有不同的功能(顺时针从左上开始):VGA驱动程序、RAM、传输层、移位器、ALU、寄存器文件、控制单元、程序计数器、ROM。(James Provost)

相反,我开始在逻辑电路模拟器Logisim Evolution中构建我的完整设计——我称之为Pineapple One。在查阅了官方的RISC-V手册和大卫·帕特森(David Patterson)和约翰·汉尼斯(John Hennessy)合著的《计算机组织与设计,RISC-V版》(Elsevier,2017)第一版,并将Logisim移到外部极限后,我在六个月内就有了一个满足一个基本RISC-V CPU要求的“菠萝一号”工作模拟。

在实现RISC-V体系结构时,我惊讶地发现,与我在早期自制CPU中使用的传统复杂指令集相比,这种体系结构更有意义。冗余已经消除,处理器的寄存器——存储CPU工作内存的暂存区——更加灵活。另一个很大的优势是RISC-V是一个很好的模块化设计,所以我知道每个模块要做什么。我的目标是以我自己的方式设计每个模块,但要确保它的性能符合RISC-V标准。(这决定了我的CPU是32位的,因为RISC-V指令根据定义至少有那么长。)

在物理上,“菠萝一号”由8个正方形印刷电路板垂直堆叠而成,这些电路板的边长约为10厘米,外加一个处理VGA显示接口卡。它使用了230多个集成电路,大部分来自74HCT系列逻辑芯片。我最大的挑战是实现桶形移位器——一种可以在寄存器中以可控的量移动位的电路。我首先尝试了一个需要80多个元件的快速实现,但尽管尽了最大努力,还是无法将它安装到我的PCB上。因此,我转而采用一种“降低组件”(low-component)的方法,本质上是暂停CPU其余部分的操作,直到我的移位器启动完毕。由于“菠萝一号”的长走线,与单芯片CPU相比,我还努力管理寄生电容和阻抗,这意味着需要调试一些非常奇怪的行为。

虽然指令长度可以在16位和理论上的无限大之间,但这里使用的是固定长度的32位格式四核RISC-V指令。一些指令将操作码与附加功能字段相结合来定义行为,而其他指令允许多个源寄存器与所谓的及时数据相结合,并将结果放入目标寄存器。(James Provost)

我使用Arduino微控制器来模拟来自计算机其他部分的输入,并监控输出的正确性,以此来测试每块电路板。我3D打印了一个漂亮的盒子来容纳整个PCB和I/O连接器,这样就可以直接将键盘和VGA显示器连接到“菠萝一号”电脑上。这台机器有四个通用I/O端口——两个8位输入和两个输出。

我的朋友Jan Vykydal帮我设置了一个符合RISC-V的编译器,以便正常工作,所以我用c语言编写了一些系统软件和演示程序。编译器产生机器代码,我使用Python脚本将这些代码保存到CPU的内存中。尽管“菠萝一号”的运行频率只有500kHz,但这仍然足以实时玩一个如同“贪吃蛇(Snake)”之类的简单电脑游戏,512kB程序内存和512kB ram也已经足够了。

最后,我想稍微升级一下处理器,让它可以运行更复杂的程序。我还想增加更多的扩充卡,比如声卡。您可以在Hackaday上找到原理图和材料清单,但最终它将作为一个工具包提供给其他有兴趣了解当代CPU设计的人。


原文链接:https://spectrum.ieee.org/build-a-riscv-cpu-from-scratch

 

---煤油灯科技victorlamp.com翻译整理---

你可能也喜欢这些文章

科技互联网,科技,资讯,动态,洞察,量子,计算,AI,人工智能,机器人,区块链,Web3,分布式,操作系统,OS,芯片,视频,深度,论文