《FPPU: Design and Implementation of a Pipelined Full Posit Processing Unit》(一)

以下是对论文 《FPPU: Design and Implementation of a Pipelined Full Posit Processing Unit》 的全面中文分析,依照你的要求分条整理:


一、论文的主要内容和研究方向

本论文面向新兴的Posit数值表示系统,提出了一种完全流水线化的Posit处理单元(FPPU),并集成进低功耗的 RISC-V Ibex内核。研究目标是:

  • 提升数值计算的准确性与动态范围;
  • 替代传统 IEEE 754 浮点系统,尤其是在 DNN 等边缘/嵌入式应用中;
  • 保持硬件面积与功耗尽可能低。

论文设计的 FPPU 支持:

  • Posit 加法、减法、乘法、除法、FMA
  • 浮点↔Posit 互转
  • 支持 SIMD(并行)配置。

二、研究方法与算法流程

Posit 表示与解码

  • Posit⟨N,ES⟩格式通过四段表示(sign、regime、exponent、fraction);
  • 数值计算采用 FIR (Floating-point Intermediate Representation) 表示;
  • 所有运算(加减乘除)均先转为 FIR,再归一化成 Posit。

算法结构与实现

  1. 加法/减法:考虑指数对齐和尾数加减,做右移归一;

  2. 乘法:指数直接相加,尾数相乘后归一化;

  3. 除法

    • 提出一种基于 Chebyshev 多项式近似 + Newton-Raphson优化 的高效倒数计算方法;
    • 其结果优于 PaCoGen 的查找表方案,准确率提升 36.4%(如下图所示):

    表格截图:对比PaCoGen和本论文在除法准确率上的表现

    图:各配置下除法计算误差率对比(取自论文 Table II)

  4. 流水线结构设计

    • 共4级流水线,分为解码、计算、归一化、编码;
    • 降低组合路径延迟,提高频率。
  5. 指令扩展与编译器支持

    • 为 RISC-V 增加 PADD/PSUB/PMUL/PDIV/PFMADD 等指令;
    • 利用 intrinsic 实现 C/C++ 与汇编的映射,免修改编译器。

三、研究结果分析

1. 面积与功耗

  • FPPU 插入 Ibex 内核后,面积增加:
    • 8-bit Posit:仅 7%
    • 16-bit Posit:仅 15%
  • 功耗测试(20MHz下):
    • 8-bit ADD/MUL/SUB:<1 mW
    • 8-bit DIV:1 mW

2. 性能验证与准确性评估

在多个 DNN 任务中比较 Posit 与 IEEE binary32 准确率,结果如下:

任务 Posit 8-bit Posit 16-bit binary32
LeNet5 on MNIST/CIFAR10 ~96–98% >98% >98%
EfficientNet/SSD300 on VOC2007 ~92% >96% >96%

对应图表如下:

  • 图7:LeNet5准确率对比图
  • 图8:复杂DNN任务中精度对比

四、论文出处与等级

  • 会议/期刊名称:IEEE Transactions on Emerging Topics in Computing
  • 出版社:IEEE
  • 中科院分区(2023最新):
    • 一区(Top期刊)
  • CCF等级:该期刊目前不在CCF推荐会议/期刊列表中

五、论文相关的开源代码地址

包含完整的 FPPU IP 数据库、ISA扩展示例、验证流程等内容。


posted @ 2025-04-28 02:40  江左子固  阅读(72)  评论(0)    收藏  举报