RISC-V MCU中文社区

【分享】 【集创赛分享】CICC3454 喝可乐队 蜂鸟内核FPU模块扩展分享

发表于 开源蜂鸟E203 2023-05-25 22:28:06
1
1675
1

FPU设计遵循IEEE754标准原则,将FPU集成到E203处理器后,其可以支持RISC-V浮点F扩展所有指令,

FPU有以下特点:

  1. 将该FPU集成到E203处理器中,实现所有F扩展。而且,集成后的FPU可以与E203中的其他协处理单元,如NICE、ALU、VPN并行运行,提高了数据的处理效率与资源利用率。同时,集成中我们就整体模块进行简化,舍弃不需要的部分,利用相对较小的电路面积,实现了高能量比例和效率。

  2. 该FPU具有高度可配置体系结构的设计。由于其支持所有标准的RISC-V操作指令,集成时可自由选择添加模块来完成操作。如多格式融合多重添加(FMA)操作、浮点比较(FCMP)操作,或转换(FCVT)和标识(FSGNJ)功能。该单元将完全开源的,因此可以扩展以支持更多的功能。

  3. 在高能量比例和效率的前提下,该FPU仍然保持着较高的精度。运算器中当几个操作数完成运算,结果数存在可能越界的情况,结果数越界时,依据不同的舍入模式(rounding mode)需要进行舍入,因此,该FPU中的误差主要来源于舍入误差,经过合理的软件编码,控制在极小可忽略的范围内。

FPU架构

本项目FPU的整体架构如图所示:

图片alt

fpu核在旁路实现,依然通过转换接口与cpu交互,其分为三个通道:数据请求,计算结果和交付通道。输入包括操作数与操作信息等,输出包括操作结果和操作状态(浮点处理器中处理产生的记录非法操作、越界溢出、运算不精确的信号),当cpu内部流水线出现冲刷,也会将相应信号传给fpu以停止fpu的运算。所有的解码工作均在cpu中完成,通过集成在alu的fpu控制单元完成逻辑判断后经过接口将数据发给fpu。
内核将浮点指令均视作长指令,解码后在oitf注册,返回结果时解注并通过longpwbck模块。相关访存进程通过蜂鸟内核的lsu访存,所以在存储控制单元增添了一组fpu数据,其优先级为次优先,仅低于vpu。同时,在内核中增加了一个浮点寄存器以存储浮点数据,并增添相应的控制信号。
fpu结构中包含计算和仲裁模块,将二十七种支持的具体运算方式按特点分为四个计算单元:包含浮点乘法和加法的addmul,包含浮点除法和开方的divsqrt,不进行运算只进行比较的noncomp以及类型转换conv。计算单元间互不影响,通过仲裁模块将数据发给接口并进入蜂鸟内核。

图片alt

喜欢1
用户评论 (1)
le樂

le樂 实名认证

懒的都不写签名

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