RISC-V MCU中文社区

【分享】 RISC-V B扩展介绍及实现

发表于 开源蜂鸟E203 2023-05-31 11:07:12
1
4364
4

团队介绍

大家好,我们团队的名字是真芯为你,参赛编号是CICC2886.本次分享的主题是蜂鸟E203指令集扩展B扩展。

B扩展简介

RISCV B扩展指的是RISCV用于位运算加速的一个扩展指令集,目的是使用一条指令实现原本需要2-3条指令才能实现的位操作指令。具体包含内容如下:


B扩展就是RISC-V一个可选的扩展,它提供了一些常见的位操作和压缩指令,从而增强了RISC-V的位运算和压缩指令的能力。
对于位操作,B扩展增加了两个寄存器-位移结果寄存器(RZ)和位位掩码寄存器(RM)。前者可以将指定寄存器向某个方向移位并将结果存储在目标寄存器中;后者则用于为一个值生成一个位掩码。
此外,B扩展还增加了一组压缩指令,可以使指令占用更少的内存空间,从而提高系统性能。这些压缩指令兼容于RISC-V ISR,可以被任何支持RISC-V ISR的处理器解释执行。
需要注意,B扩展是与基本RV32I/RV64I RISC-V指令集完全兼容的。因此,使用支持B扩展的芯片可以同时享受到原始架构指令集以及B扩展的优势。

B扩展实现简述

B扩展的实现主要在e203_exu_alu_dpath.v和e203_exu_alu_rglr.v、e203_exu_alu_dpath.v添加控制信号线。

e203_exu_decode.v中添加译码信息,将译码出的信息合并到alu_info_bus中。

e203_exu_alu_rglr.v中通过e203_defines.v中定义的寻址信息,向e203_alu_dpath模块发送请求信号。

最后在e203_exu_alu_dpath模块中通过四条乘法指令的op选通信号选取两个指令操作数和指令操作行为,设置组合逻辑对操作数进行运算。并输出对应指令的计算结果。


大致只需读懂蜂鸟E203原本的内核,在其架构基础上添加B拓展所需信号线即可。

喜欢4
用户评论 (1)
  • 江南咸鱼

    2024-07-03 17:14:45 江南咸鱼 1#

    佬,想问一下,将位操作扩展设计成一个协处理器挂载到nice接口上实现起来复杂还是你这种复杂?

赵嘉豪

赵嘉豪 实名认证

哈喽

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板