【计算机组成原理】RISC-V模型机的有限状态控制器设计

文章详细阐述了RISC-V模型机的设计,包括目标指令集、部件设计如CPU的取指令、译码、运算及数据通路设计,特别是针对运算、传送、访存和转移指令的数据通路。此外,还讨论了CPU性能指标和采用的多周期CPU结构,以及控制单元CU的有限状态机设计,为理解和实现RISC-V处理器提供了深入的见解。

目录

一、RISC-V模型机的目标指令集

二、RISC-V模型机的部件设计

三、运算及传送指令的数据通路设计

四、访存指令的数据通路设计

五、转移类指令的数据通路设计

六、RISC-V模型机控制单元CU的有限状态机设计


一、RISC-V模型机的目标指令集

取指令并译码:根据PC从内存取出指令,PC+4 -> PC,译码

执行指令:首先根据指令字的字段,取出1~2个寄存器(rs1,rs2)内容,再根据指令具体功能,做不同操作

  • 算术逻辑运算:ALU运算,写寄存器
  • 传送类指令:生成立即数,写寄存器
  • 访存指令:计算存储器地址(ALU运算),读/写存储器
  • 转移类指令:比较数据(ALU运算),PC+偏移量 -> PC

二、RISC-V模型机的部件设计

CPU性能的重要指标:CPU速度(执行时间)

CPU执行指标 = 程序指令数 × 每条指令的时钟周期数(CPI)× 时钟周期长度

  • 单周期CPU:CPI = 1,但是时钟周期很长
  • 多周期CPU:CPI > 1,但是时钟周期很短,且某些硬件部件可共享

从CPU效率指标考虑,我们设计的RV32I的25条核心指令集,采用:

  • 直接连接(无总线)
  • 多周期CPU(性能和硬件成本优于单周期CPU)
  • 哈佛结构(指令和数据分开存储)

1. 指令存储器及取指令部件——取指令IF

  • 程序计数器 PC:存放指令地址,32位,取指令后自增4个字节(独立加法器)
  • 指令寄存器 IR:存放指令代码,32位
  • Mem[PC] -> IR, PC+4 -> PC
  • clk上跳沿:取指令(读存储器)
  • clk下跳沿:指令置入IR,更新PC

2. 指令译码器与立即数生成器——指令译码ID

(1)指令译码器

  • 初级译码器 ID1:①指令字段与格式解析器;②立即数生成器
  • 二级译码器 ID2:产生指令信号、ALU_OP

(2)立即数生成器

  • 立即数拼接与生成器:按照各格式,对立即数进行拼接与拓展,产生6个32位立即数
  • 6选1多路选择器:按照当前指令的格式,在6个立即数中选择一个输出,记为imm32

(3)指令二级译码器

  • 输入:ID1产生的opcode、func3、func7
  • 输出:指令信息8个,运算码ALU_OP

3. 运算器部件——执行EX

(1)通用寄存器堆 Regs

  • 32×32位寄存器,寄存器地址5位
  • 三端口:两个读端口,一个写端口(同时读出2个寄存器,写入1个寄存器)
  • 读出无需时钟,写入需要时钟
  • 读出的数据写入暂存器A和B,时钟clk_RR控制打入

(2)多功能运算部件 ALU

  • 32位,进行算术、逻辑、比较置数、移位运算
  • 选择信号:运算功能码ALU_OP
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AllinTome

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值