《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。
算法结构与实现
-
加法/减法:考虑指数对齐和尾数加减,做右移归一;
-
乘法:指数直接相加,尾数相乘后归一化;
-
除法:
- 提出一种基于 Chebyshev 多项式近似 + Newton-Raphson优化 的高效倒数计算方法;
- 其结果优于 PaCoGen 的查找表方案,准确率提升 36.4%(如下图所示):
图:各配置下除法计算误差率对比(取自论文 Table II)
-
流水线结构设计:
- 共4级流水线,分为解码、计算、归一化、编码;
- 降低组合路径延迟,提高频率。
-
指令扩展与编译器支持:
- 为 RISC-V 增加
PADD/PSUB/PMUL/PDIV/PFMADD等指令; - 利用 intrinsic 实现 C/C++ 与汇编的映射,免修改编译器。
- 为 RISC-V 增加
三、研究结果分析
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% |
对应图表如下:
四、论文出处与等级
- 会议/期刊名称:IEEE Transactions on Emerging Topics in Computing
- 出版社:IEEE
- 中科院分区(2023最新):
- 一区(Top期刊)
- CCF等级:该期刊目前不在CCF推荐会议/期刊列表中
五、论文相关的开源代码地址
- GitHub项目地址:
🔗 https://github.com/federicorossifr/ppu_public
包含完整的 FPPU IP 数据库、ISA扩展示例、验证流程等内容。

浙公网安备 33010602011771号