📢
本系列文章只提供课上测试的解读
所有课下作业的源代码请按下面指示前往我的Github仓库~

BUAA-2023-CO

通过阅读本文,您可以大致了解 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]

求解思路

addsub指令类似,只需要将addsub指令在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。

助教问答环节

这部分只提供问题。

  1. T1题的求解思路是什么?
  2. 检查是否进行了本地测试。
  3. 检查课下设计文档是否完整。