7、手写CPU(二):如何实现指令译码模块

你好,我是LMOS。 上节课,我们了解了什么是CPU的流水线,并决定采用经典的五级流水线来设计我们的MiniCPU,之后梳理了我们将要设计的MiniCPU架构长什么样,最后完成了流水线的第一步——取指。 取指阶段把存储器里的指令读出以后,就会传递给后...

计算机基础实战课

8、手写CPU(三):如何实现指令执行模块

你好,我是LMOS。 上一节课,我们完成了CPU流水线的指令译码模块设计。我们一起探讨了RISC-V指令是如何翻译的,还学会了提取不同类型指令中的信息。最后根据流水线的需要,我们设计出了译码控制模块和数据通路模块。 接下来,我们利用译码后的这些信息继...

计算机基础实战课

9、手写CPU(四):如何实现CPU流水线的访存阶段

你好,我是LMOS。 先简单回顾一下上一节课,我们设计了MiniCPU流水线的执行相关模块。其中包括执行控制模块、通用寄存器模块,以及可以进行加减法运算、大小比较、移位操作的ALU模块。 指令执行之后就到了流水线的下一级——访存。这节课我们就重点聊聊...

计算机基础实战课

10、手写CPU(五):CPU流水线的写回模块如何实现

你好,我是LMOS。 今天我们一起来完成迷你CPU的最后一个部分——写回相关模块的设计(课程代码在这里)。 简单回顾一下,上节课我们完成了CPU流水线的访存相关模块的设计。在设计访存模块之前,我们发现流水线中存在数据冒险的问题。为了解决这个问题,我们...

计算机基础实战课

11、手写CPU(六):如何让我们的CPU跑起来

你好,我是LMOS。 通过前面几节课的学习,我们已经完成了MiniCPU五级流水线的模块设计,现在距离实现一个完整的MiniCPU也就一步之遥。 还差哪些工作没完成呢?还记得我们在第六节课设计的MiniCPU架构图吗?回想一下,我们已经设计完成的五级...

计算机基础实战课

12、QEMU:支持RISC、V的QEMU如何构建

你好,我是LMOS。 工欲善其事,必先利其器。作为开发者,学习过程中我们尤其要重视动手实践,不断巩固和验证自己学到的知识点。而动手实践的前提,就是要建立一个开发环境,这个环境具体包括编译环境、执行环境,以及各种常用的工具软件。 我会用两节课带你动手搭...

计算机基础实战课
12347