构建五级流水线——lab5 一、lab5背景在这个 Lab 中,我们需要真正处理异常和中断,需要完成 MRET、ECALL 和 MMU(支持 Sv39 页表)。说了这么老半天,到底什么是异常,什么是中断?具体的细节会在实现时说明,根据资料,大致可以这样归类: 异常:运行中的程序自己出了问题(系统内部产生),如缺页异常,除零异常 中断:程序外的外部事件对运行中的程序造成了影响(系统外部产生),如键盘输入 Ctrl+C,关机 发布 2026-05-10 22:53:06 更新 2026-05-12 12:57:16 计算机组成原理 > 校内课程 #cpu #计算机组成原理(H) #五级流水线 #大二下 #pj
构建五级流水线——lab4 一、引言通过前三个 lab,我们设计的 CPU 已经具备基本的计算、跳转、内存操作功能,具有图灵完备性。并没有,实际上乘除法是bonus内容,我还没实现 1图灵完备性是指:一个计算系统可以计算任何图灵-可计算函数(摘自维基百科) 也就是理论上,可以完成任何有限的计算。 然而,在真实计算机系统中,CPU 必须具备与外部世界交互、自我监控以及处理突发事件的能力。为了应对这些复杂的系统级需求,RISC 发布 2026-05-05 08:59:15 更新 2026-05-09 15:59:55 计算机组成原理 > 校内课程 #cpu #计算机组成原理(H) #五级流水线 #大二下 #pj
构建五级流水线——lab1_bonus 一、lab1背景介绍在lab1中,我们完成了基本的加减法运算,在bonus部分,我们将会实现乘除法。为什么乘除法不能像加减法那样在alu中用*和/来简单表示呢?这里我们需要对cpu频率和周期数的计算有更深入的了解:在cpu中,每当时钟信号来临时,寄存器的值会被输入到各个模块中进行运算,等待其中的组合逻辑运算完成并将数据存入寄存器之后才能进入下一个时钟周期。这意味着,时钟周期受限于关键路径,即时钟周 发布 2026-05-09 10:35:45 更新 2026-05-09 14:27:36 计算机组成原理 > 校内课程 #cpu #计算机组成原理(H) #五级流水线 #大二下 #pj
构建五级流水线——lab1 我针对lab1代码进行了重构,想要更清晰地理清每个部分的功能。 一、信号定义 enable和valid: enable是控制寄存器是否更新,stall时表示不更新 valid控制指令是否有效,针对指令本身,对应气泡。这个需要一直传递 pc和inst: pc:当前命令对应的地址 inst:当前命令 并不是所有模块都需要这两个信号,但可以在级间寄存器中保留,便于查看波形图 clk和res 发布 2026-04-14 19:02:26 更新 2026-04-15 12:29:24 计算机组成原理 > 校内课程 #cpu #计算机组成原理(H) #五级流水线 #大二下 #pj