📢
本系列文章只提供课上测试的解读
所有课下作业的源代码请按下面指示前往我的Github仓库~
通过阅读本文,您可以大致了解 2023 年秋季北航计算机组成原理课程 P3 课上测试的题目内容、难度和解题思路
P3 课上测试 3题做出2题 通过。主要内容是对 P3课下已经实现的CPU进行强测并增加新的的指令 。
题目每年都会发生变化,题意描述大致清晰,但是可能与原题有一定差异
T0·新增指令1-qaq
指令格式
R型指令,op-rd-rs-rt-fn
RTL语言表述
temp1 <- GRF[rs] GRF[rs]
temp2 <- GRF[rt] GRF[rt]
GRF[rd] <- temp1[31:0] | temp2[31:0]
求解思路
与add
和sub
指令类似,只需要将add
和sub
指令在ALU中的+
和-
操作换成一个全新的操作qaq
(算平方再按位与)即可。
T1·新增指令2-booze
指令格式
op-rs-rt-offset
RTL语言表述
if GRF[rs][15:0]有奇数个1 && GRF[rt][31:16] 有偶数个0 then
PC <- PC + 4 + offset
else
PC <- PC + 4
求解思路
与beq
指令类似,只需要将beq
指令在ALU中的判断相等操作换成一个全新的操作booze
(判断GRF[rs][15:0]有奇数个1 && GRF[rt][31:16] 有偶数个0是否成立
)即可。
T2·新增指令3-csws
指令格式
op-rs-rt-offset
RTL语言表述
Addr <- GRF[rs] + sign_extend(offset)
if GRF[rt]的最高位为1 then
Mem[Addr] <- GRF[rt]
else
Mem[Addr] <- 0
求解思路
与sw
指令类似,ALU需要一个全新的操作csws
(算出Addr并且判断条件);DM的数据来源多出一条可选通路:直接写入常数0。
助教问答环节
这部分只提供问题。
- T1题的求解思路是什么?
- 检查是否进行了本地测试。
- 检查课下设计文档是否完整。