从零构建 Specula:我的乱序 RISC-V 之旅

Building an Order RISC-V CPU from scratch

大四时因课程无聊,我决定挑战构建一个乱序 RISC-V 处理器。Specula 是我用 Bluespec SystemVerilog 编写的 32 位单发射乱序处理器,支持投机执行、寄存器重命名和重排序缓冲。项目从最初的天真设想,发展到集成特权模式、CSRs、异常处理和 Sv32 虚拟内存,甚至成功在 Artix-7 FPGA 上运行 xv6 操作系统。通过复现现代处理器的复杂机制,如分支预测和保留站,我深刻理解了高性能计算背后的架构魔法。

我的学习方式就是阅读某个主题,然后尝试复现它,观察哪里会出问题,因为那一刻的教训远比任何理论课程都要深刻。
  1. Joker_vD

    作为通用参考,这里 [0] (PDF) 是一份相对详细的描述(即它确实讨论了这种特定实现如何解决此前出现的问题),针对的是一种简化 RISC 指令集的乱序实现。简而言之,它与经典的五级 RISC 流水线并没有太多共同之处。

    [0] https://user.eng.umd.edu/~blj/risc/RiSC-oo.1.pdf

  2. Narishma

    标题应该是“从零构建乱序 RISC-V 核心——Specula”。不知道为什么要改。

  3. lp92

    > 11.9 MHz(意味着它慢得像一群在花生酱里爬行的蜗牛)

    说句公道话,这比阿波罗制导计算机快了近 6 倍,而且运行在低成本可获取的硬件上。

同日更多故事

2026-11-10