从零造CPU,我们跑起了DOOM
Running Doom on Our Custom CPU and Going Viral

两周前,我们团队成功在自研的定制CPU上跑起了经典游戏DOOM,这让我也难以置信。为了突破FPGA上BRAM内存不足和运行速度慢的瓶颈,我们重新设计了CPU架构,集成了DDR3内存和缓存系统。Liam负责优化乱序执行以提升并行度,而我则攻克了内存整合难题,通过引入指令缓存和数据缓存,解决了DDR3高延迟带来的性能卡顿。从最初只能运行Pong等简单程序,到如今能流畅运行完整的商业游戏,这条道路充满了挑战与惊喜。
为了证明这一点,DOOM几乎被移植到了所有设备上,从微控制器、烤面包机,甚至细菌。
HN 评论区
37- tantalor
> 发了一个几百万播放量的视频
有人有链接吗?
是这个吗?
https://www.instagram.com/armaan.gomes/reel/DatqWKChtnw/?hl=...
我本来期待的是个正经视频,而不是随便发在某个社交媒体上的 9 秒短视频。
- _joel
很酷,我本来以为这是为 Doom 专门定制的 CPU,结果看来只是个 486 罢了 :)
编辑:我顺藤摸瓜查了一下,"历史上确实发生过类似的事。SNES 版的 Doom 卡带里搭载了 Super FX 2 芯片,这是一颗带有像素绘制指令的定制 RISC 芯片,因为主机自带的 CPU 根本跑不动。Jaguar 和 PlayStation 移植版则把光栅化器搬到了专用硬件上。Doom 的设计深受没有 FPU 这一事实的影响,随后硬件厂商也不断跟进,努力追赶它的步伐。"
- Flex247A
太棒了!
这让我想起我之前做过的项目:一个用 C++ 写的 RV32IM 模拟器,能够启动并运行 DOOM。起初我只实现了 RV32I,后来加上 M 扩展后性能提升巨大!
如果有人感兴趣,这里是源码:https://github.com/lalitshankarch/rvcore
- arghunter
这只是 RV32I-ZMMUL,并不是自定义架构。不过,如果你想看完全从零开始、不依赖任何现成 ISA 或框架的东西,这是我做的一颗 NPU:https://www.armaangomes.com/blogs/kernn/
- paulmooreparks
非常酷!
我也刚做了类似的事情,不过是为一段我几年前自创的完全新颖的 ISA(顺便用了点 Claude 的辅助)写的字节码解释器。我还没发 HN 帖子,因为正在做一点收尾清理工作。