Skip to main content
QUICK REVIEW

[论文解读] PERI: A Posit Enabled RISC-V Core

Sugandha Tiwari, Neel Gala|arXiv (Cornell University)|Aug 5, 2019
Low-power high-performance VLSI design参考文献 14被引用 9
一句话总结

该论文提出了 PERI,这是首个扩展了参数化、功能完整的 Posit 支持 FPU 的 RISC-V 核心,支持在 32 位 posit 大小下运行时在两种指数大小(es=2 和 es=3)之间切换。该 FPU 通过 RoCC 接口作为紧密耦合的执行单元或协处理器与 SHAKTI C 类 RISC-V 核心集成,在 Artix-7 FPGA 上实现了 100 MHz 的运行频率,使用了 3,507 个 LUT 和 1,294 个寄存器,同时使应用程序能够根据需要利用 Posit 的更高精度或更大动态范围。

ABSTRACT

Owing to the failure of Dennard's scaling the last decade has seen a steep growth of prominent new paradigms leveraging opportunities in computer architecture. Two technologies of interest are Posit and RISC-V. Posit was introduced in mid-2017 as a viable alternative to IEEE 754-2008. Posit promises more accuracy, higher dynamic range, and fewer unused states along with simpler hardware designs as compared to IEEE 754-2008. RISC-V, on the other hand, provides a commercial-grade open-source ISA. It is not only elegant and simple but also highly extensible and customizable, thereby facilitating novel micro-architectural research and exploration. In this paper, we bring these two technologies together and propose the first Posit Enabled RISC-V core. The paper provides insights on how the current 'F' extension and the custom op-code space of RISC-V can be leveraged/modified to support Posit arithmetic. We also present implementation details of a parameterized and feature-complete Posit FPU which is integrated with the RISC-V compliant SHAKTI C-class core either as an execution unit or as an accelerator. To fully leverage the potential of Posit, we further enhance our Posit FPU, with minimal overheads, to support two different exponent sizes (with posit-size being 32-bits). This allows applications to switch from high-accuracy computation mode to a mode with higher dynamic-range at run-time. In the absence of viable software tool-chain to enable porting of applications in the Posit domain, we present a workaround on how certain applications can be modified minimally to exploit the existing RISC-V tool-chain. We also provide examples of applications which can perform better with Posit as compared to IEEE 754-2008. The proposed Posit FPU consumes 3507 slice LUTs and 1294 slice registers on an Artix-7-100T Xilinx FPGA while capable of operating at 100 MHz.

研究动机与目标

  • 为解决 IEEE 754 浮点数算术的局限性,如复杂的异常处理、次正规数的开销以及不一致的 NaN 表示方式。
  • 将 Posit 算术——提供更高精度、更大动态范围和更简单的硬件实现——集成到商业级开源 RISC-V ISA 中。
  • 实现在同一 FPU 硬件单元内,支持在高精度(es=2)和高动态范围(es=3)模式之间进行运行时选择。
  • 为在缺乏原生 Posit 编译器支持的情况下,为现有 RISC-V 工具链集成 Posit 支持提供实用路径。
  • 通过 FPGA 原型验证,证明 Posit 基于的计算在关键数值应用中优于 IEEE 754。

提出的方法

  • 扩展 RISC-V 的 'F' 扩展,并利用自定义操作码空间对 Posit 特定指令进行编码,包括 FMADD、FADD、FMUL、FDIV、FSQRT 和 FCVT。
  • 设计一个参数化的 Posit FPU,支持 32 位 posit 大小,具有两种指数大小(es=2 和 es=3),使用 BSV 进行硬件生成。
  • 实现控制和状态寄存器以存储当前的 es 值,从而在执行期间实现模式的动态切换。
  • 将 FPU 作为紧密耦合的执行单元集成到 SHAKTI C 类核心的流水线中,或通过类似 RoCC 的接口作为协处理器。
  • 通过一种变通方法实现软件移植,仅需对代码进行最小修改,即可利用现有的 RISC-V 工具链支持 Posit 感知的应用程序。
  • 使用 FPGA 原型(Xilinx Artix-7-100T)验证性能、面积和频率,实测运行频率为 100 MHz。

实验结果

研究问题

  • RQ1如何扩展或修改 RISC-V ISA,以原生支持 Posit 算术,同时保持与现有扩展的兼容性?
  • RQ2在单个 FPU 单元中支持两种指数大小(es=2 和 es=3)的 32 位 posit 大小,其硬件和性能开销是多少?
  • RQ3尽管缺乏原生编译器工具链支持,Posit 算术是否能在实际应用中优于 IEEE 754?
  • RQ4如何高效地将 Posit FPU 集成到 RISC-V 核心中,作为执行单元或协处理器?
  • RQ5在 RISC-V 环境下,Posit 和 IEEE 754 FPU 实现之间在指令级行为和周期计数方面有何关键差异?

主要发现

  • 所提出的 Posit FPU 在 Artix-7-100T FPGA 上消耗 3,507 个切片 LUT 和 1,294 个切片寄存器,运行频率为 100 MHz。
  • FPU 支持在 es=2(更高精度)和 es=3(更高动态范围)模式之间运行时切换,模式切换仅引入 4 个周期的开销。
  • FMUL、FADD 和 FMA 等关键操作的实现分别需要 6、6 和 8 个周期,而 FDIV 和 FSQRT 分别需要 20 和 32 个周期。
  • FPU 支持所有必需的 RISC-V 'F' 扩展指令,包括转换(FCVT)、比较(FMIN/FMAX)和分类(FCLASS),其周期计数与标准 RISC-V FPU 的预期一致。
  • 该设计支持在同一芯片上共存 IEEE 754 和 Posit FPU,允许应用程序根据精度或范围需求进行选择。
  • 矩阵乘法和信号处理等应用表明,与 IEEE 754 相比,Posit 在减少精度损失和提升数值稳定性方面表现出可测量的优势。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。