系统与设计
的意见

指令内存处理器PPA的影响

RISC-V扩展添加到两个核心的影响大小和codesize。

受欢迎程度

任何部分的面积的设计既有助于硅成本和功耗。后一个简单的“A”在一个处理器IP供应商的PPA数字可能会误导人。一个处理器从来不是孤立的,但另外一个子系统包括指令内存的一部分,数据存储器和外围设备。在大多数情况下,指令内存将占主导地位,处理器领域更重要。

指令内存的大小会影响目标指令集,所使用的编译器和编译器开关。在RISC-V的情况下,选择可选的标准扩展和自定义扩展可以极大地影响codesize。


来源:为物联网的应用程序,实现RISC-V丹Ganousis &维贾伊安,2017 DAC

为了说明这一点,上表显示的效果添加扩展核心和codesize。在这个例子中,Microsemi使用Codasip RISC-V Bk3核心实现音频处理应用程序。只有32位指令集基础开始,他们有一个高得令人无法接受codesize和循环计数。一些改进是通过添加乘法[M]扩展,但突破是使用自定义DSP指令。这些导致codesize减少3.6×2.4×增加核心尺寸的价格相比基本核心。与指令记忆支配区域,这是一个很好的权衡;此外,性能目标是很容易实现的。

与典型的供应商PPA数据,等合成基准CoreMark / MHz常常引用一组复杂的编译器开关。但在实践中,嵌入式软件可能是编译使用常见的开关- Os或- O3等。

考虑编译CoreMark基准不同使用常见的GCC编译器开关。在这种情况下,目标是一个Codasip RV32IMC RISC-V核心强度管道。下面的图表显示了不同的编译器CoreMark /兆赫和codesize措施设置。最后一个例子是一个典型的供应商的性能数据,很多交换机用于CoreMark(厘米=“o3 -flto -fno-common -funroll-loops -finline-functions -falign-functions = 16 -falign-jumps = 8 -falign-loops = 8 -finline-limit = 1000 -fno-if-conversion2 -fselective-scheduling -fno-tree-dominator-opts -fno-reg-struct-return -fno-rename-registers param case-values-threshold = 8 -fno-crossjumping -freorder-blocks-and-partition -fno-tree-loop-if-convert -fno-tree-sink -fgcse-sm -fgcse-las -fno-strict-overflow”)。

在这个例子中,CoreMark / MHz得分随着开关改变从左到右。然而,有趣的是,最复杂的一组开关增加codesize 40% - O3的而只性能提高了14%。

不是每个示例将以这种方式表现,但编译器开关影响性能和codesize。是很重要的是现实的你想什么编译器开关使用,并确保任何性能基准数据匹配你的交换机将用于评估codesize。



留下一个回复


(注意:这个名字会显示公开)

Baidu