2021 buaa 计组上机P3和P4 单周期CPU 3道课上考试题
P3和P4上机2021试题
P3和P4一共三道题,分别是计算、跳转和存储相关指令
同场考试,P3和P4所用的题目一致
计算相关指令的扩展
格雷码指令
gray $t0, $t1
32位指令格式
000000 rs 00000 rd 00000 110001
描述
GPR[rd] ← GPR[rs] ^ (GPR[rs] >> 1)
>>应该是逻辑右移的意思
同类题1
ssze指令
000000 5位 5位 5位 00000 001111
ssze rd, rs, rt
描述:若rs
和rt
寄存器所存值的后缀0的个数相同,则给rd寄存器置1,否则R[rd]←R[rs]−R[rt]R[rd] ← R[rs] - R[rt]R[rd]←R[rs]−R[rt]
同类题2
异或
GPR[rd]←GPR[rs]XORGPR[rt]GPR[rd] ← GPR[rs]\ \ XOR\ \ GPR[rt]GPR[rd]←GPR[rs] XOR GPR[rt]
跳转相关指令的扩展
jas指令
32位指令格式
110110 26位target
描述
指令地址从0x3000
开始,取值时PC对128取模(0~6位)
跳转并将PC写入栈顶
VAddr←GPR[29]VAddr ← GPR[29]VAddr←GPR[29]
Memory[VAddr]←PC+4Memory[VAddr] ← PC+4Memory[VAddr]←PC+4
PC←PC31...28∣∣target∣∣02PC ← PC_{31...28} || target || 0^2PC←PC31...28∣∣target∣∣02
同类题1:
若GPR[rs]
为1的位数为奇数,则跳转
内存相关指令的扩展
MEMSET指令
32位指令格式
110100 5位base 5位rt 16位offset
memset rt, offset(base)
例子 memset $t1, 8($t0)
描述:
将GPR[rt]
的最后1个byte赋值给Memory[GPR[base]+offset]
的每一个byte
操作
VAddr←GPR[base]+sign_ext(offset)VAddr ← GPR[base]+sign\_ext(offset)VAddr←GPR[base]+sign_ext(offset)
Memory[VAddr]←GPR[rt]7...0∣GPR[rt]7...0∣GPR[rt]7...0∣GPR[rt]7...0Memory[VAddr] ← GPR[rt]_{7...0}\ |\ GPR[rt]_{7...0}\ |\ GPR[rt]_{7...0}\ |\ GPR[rt]_{7...0}Memory[VAddr]←GPR[rt]7...0 ∣ GPR[rt]7...0 ∣ GPR[rt]7...0 ∣ GPR[rt]7...0
同类题1
6位opcode 5位base 5位rt 16位offset
lboez rt, offset(base)
lboez $t0, 1($t1)
描述
若memory[Addr]
的对应字节数据的二进制1的个数等于0的个数,则将该字节符号扩展存入GPR[rt]
,否则将0存入GPR[rt]
Addr←GPR[base]+signextend(offset)Addr ← GPR[base] + sign_extend(offset)Addr←GPR[base]+signextend(offset)
memword←Memory[Addr]memword ← Memory[Addr]memword←Memory[Addr]
byte←Addr1...0byte ← Addr_{1...0}byte←Addr1...0
temp←memword7+8∗byte+memword7+8∗byte−1+...+memword8∗bytetemp ← memword_{7+8*byte} + memword_{7+8*byte-1} +...+ memword_{8*byte}temp←memword7+8∗byte+memword7+8∗byte−1+...+memword8∗byte
iftemp==4thenGPR[rt]←sign_extend(memword7+8∗byte...8∗byte)if\ \ temp == 4\ \ then\ \ GPR[rt] ← sign\_extend(memword_{7+8*byte...8*byte})if temp==4 then GPR[rt]←sign_extend(memword7+8∗byte...8∗byte)
elseGPR[rt]←0else\ \ GPR[rt] ← 0else GPR[rt]←0
同类题2
lb指令
2021 buaa 计组上机P3和P4 单周期CPU 3道课上考试题相关推荐
- 北航2021届计组 - 支持中断的CPU
北航2021级计组支持中断的CPU Itisallaboutcontrol,cheatandtradeoff.It\space\space is\space\space all\space\space ...
- 北航2021届计组 -- 流水线CPU
北航2021届计组流水线CPU设计 文章目录 北航2021届计组流水线CPU设计 一.设计想法 1.1 我的CPU的整体架构 1.2 从单周期到流水线 1.2.1 修改原单周期CPU 1.2.2 流水 ...
- 北航2021届计组 -- 单周期CPU设计
单周期CPU设计 写在前面的话 首先需要强调的是,这是一篇考后反思,所以相比于之前的HDLBit的以力证道,或者MIPS的技之巅峰(不要笑,我的技巧最高水平就那样了).这篇文章要温吞很多.这篇文章 ...
- 2022 buaa CO P3(Logisim 实现单周期CPU)
我的课上题目 T1:senodb rd,rs,rt 描述:统计rs和rt寄存器中不同位的个数,不同位个数为偶数rd置1,否则置0 32位指令格式:000000 rs rt rd 00000 10011 ...
- BUAA(2021秋)计算机硬件基础(软件学院计组)P4——用Logisim实现流水线CPU(含测试数据供自测)
计算机硬件基础(软件学院计组)P4--用Logisim实现流水线CPU 目录 计算机硬件基础(软件学院计组)P4--用Logisim实现流水线CPU 实验内容 实验要求 提交要求 题解 前言及其预备知 ...
- 【BUAA_CO_LAB】计组p3p4碎碎念
文章目录 计组P3&P4碎碎念 前言 正文 初见单周期CPU 具体搭建步骤 算术逻辑运算单元ALU 指令存储器IM 通用寄存器堆GRF Ext扩展部件 数据存储器DM 控制信号生成单元CU N ...
- 计组课设:单周期31条MIPS指令CPU设计(含代码)
多周期54条CPU:计组课设:多周期54条MIPS指令CPU设计(含代码)_孔艺菲的博客-CSDN博客 单周期CPU源码:while-TuRe/Single-cycle-CPU31 (github.c ...
- 【计组实验】P3 Verilog多周期处理器开发 MIPS指令集
全部代码+测试指令: 链接:CPUMultiCycle p3正确运行_百度网盘 提取码:gmzb (实验P1P2)Logisim电路图以及Verilog单周期处理器设计,见以下博客: [计算机组成原理 ...
- 计组——彻底搞懂cache主存映射以及cache容量的计算
cache主存映射以及cache容量 一.三种映射方式 1. 全相联映射 2. 直接映射 3. 组相联映射 二.cache容量计算 1. 先计算cache行标记项位数 2. 再计算cache块位数 3 ...
最新文章
- 【Qt】获取、比较Qt版本的宏和函数
- POJ1144:Network(无向连通图求割点)
- UVA 11255 Necklace
- java 强制垃圾回收_Java垃圾回收机制
- POJ 1300 Door Man(欧拉回路的判定)
- linux系统mysql密码忘记了怎么办_Linux系统下忘记MySql密码怎么办
- JNI系列(2):jstring操作
- 基于Arduino的智能避障小车
- python制作电子签名
- 【华为OD机试真题 JS】数字涂色
- 无盘服务器快慢取决于什么,cpu运行速度的快慢取决于什么
- Android Studio开发(四)SQLite数据库的DAO标准CRUD操作模拟微信通讯录
- keil5工程 AC5 编译器升级 AC6编译器
- PDF转换Word、Excel、PPT、图片,PDF去水印,PDF拆分该怎么做到这些
- 输入两个正整数,求其最大公约数。
- 【苹果推相册软件】imessage群发arrangesAllSubviews安装
- 第七章 本源时空
- python 中的 __len__(self) 方法
- MM 供应商账户组后台配置步骤
- Ambari自定义stack