RISC-V在云端、数据中心、汽车与网络技术中的频繁创新和亮相,已经让这一成长中的ISA一只脚迈入了高性能计算场景。然而缺少强大的性能监测工具让RISC-V的应用优化成了问题,尤其是在RISC-V如今不少软件源于从非原生移植的情况下,运算性能不能发挥出百分百的实力成了令人头疼的问题。
与此同时,英特尔和ARM都拥有自己专用的性能监控方案,让开发者可以发挥出其硬件的全部效力,但RISC-V仍然依靠定制或厂商特定的方案,而缺少通用性能监控软件工具的完整支持。
Perf对RISC-V的支持
系统级的性能优化往往是靠性能剖析和代码优化来实现的,前者是为了寻找性能瓶颈,后者则是为了改善软件性能,因此这类性能分析/监控工具成了处理器开发时必不可少的软件。尽管RISC-V的ISA规范已经定义了硬件性能监控(HPM),但总体支持程度上仍未完善。
就以Linux上的性能分析工具Perf为例,该工具可以借助PMU(性能监控单元)、tracepoint和内核计数器来分析程序中的硬件事件,比如处理器时钟周期、指令计数器等,也可以分析一些软件事件,比如Page Fault等。
Perf分为两种模式,一种是perf stat,一种是perf record。如今上游Linux的perf虽然已经对RISC-V有了支持,但仅对perf stat有一些基本的支持。比如mcycle这一CSR用于处理器运行的时钟周期计数,而minstret这一CSR则用于退休指令计数。
目前RISC-V特权规范中的支持 / 西部数据
RISC-V privileged规范中,RISC-V定义了几种特权模式,分别是U-mode(用户模式)、S-mode(管理员模式)和M-mode(机器模式)。但目前只有在机器模式下才能对这些寄存器进行读写,管理员模式下缺乏可写入的寄存器。
计数器却又是每时每刻运行中的,所以现在可以做到周期和指令计数,却无法启用、禁用和暂停计数器,无法使用任何可编程计数器和事件采样。不仅如此,RISC-V的perf不仅无法处理计数器溢出,也不支持溢出中断。虽然市面上很多RISC-V处理器已经考虑到了这一点,采用定制的形式来完成部分任务,比如Esperanto就为自己的ET-SoC-1千核RISC-V处理器加入了商业级的芯片除错与性能监控能力,但RISC-V规范本身缺少这些支持,这也就不利于当下RISC-V的开源生态。
完整的Perf支持缺少了什么?
于是我们现在发现管理员模式下无法写入计数器,也无法改变mcountinhibit来直接开启或停止计数器,也无法改变mhpmcountern来开启或禁用直接读取。接着就是没有中断指示器,我们不知道哪一个计数器出现了数值溢出,也没有事件筛选功能。那么针对这些问题的解决方案是什么,哪些措施才能实现完整的Perf支持呢?来自西部数据的Atish Patra在近期的RISC-V峰会上提出了他以及开发社区所青睐的答案——SBI PMU扩展和sscofpmf ISA扩展。
SBI PMU扩展将作为一个接口,让管理员模式下的软件发现硬件计数器的细节,针对特定的perf事件来配置硬件计数器,在请求下开始或停止计数器。除此之外,SBI PMU扩展还引入了固件性能计数器来监控固件事件,比如未对齐的存取指令数、RFENCE和IPI数等等。如今在RISC-V的SBI 1.0版本中我们也可以看到,PMU扩展已经成了该规范的一部分。
接着是sscofpmf扩展,ss代表的是特权架构和管理员级的扩展,cofpmf代表的是溢出计数和特权模式筛选。该扩展新增了一个32位的scountovf只读寄存器,该寄存器存储的是29个mhpmcounter的第63位(OF),如此一来就能准确快速地判断究竟是哪个事件的计数器溢出了。这一扩展已经冻结,目前处于审查状态,预计不久的将来就会批准,来自Linux内核的支持工作也在推进中。
小结
RISC-V作为一个尚处于发展初期的架构,在某些方面确实还有不及其前辈x86和ARM的地方,我们这次从性能监控上就能看出一些端倪,但RISC-V自身的特性也为它带来了不小的优势。
首先,RISC-V是站在巨人的肩膀上发展的,它可以有效地规避以上那些架构走错的老路。其次,开源开放让RISC-V有了庞大的社区支持,像以上这些解决方案,其实已经被多次提及,来自社区的力量势必可以让RISC-V走得更远。
与此同时,英特尔和ARM都拥有自己专用的性能监控方案,让开发者可以发挥出其硬件的全部效力,但RISC-V仍然依靠定制或厂商特定的方案,而缺少通用性能监控软件工具的完整支持。
Perf对RISC-V的支持
系统级的性能优化往往是靠性能剖析和代码优化来实现的,前者是为了寻找性能瓶颈,后者则是为了改善软件性能,因此这类性能分析/监控工具成了处理器开发时必不可少的软件。尽管RISC-V的ISA规范已经定义了硬件性能监控(HPM),但总体支持程度上仍未完善。
就以Linux上的性能分析工具Perf为例,该工具可以借助PMU(性能监控单元)、tracepoint和内核计数器来分析程序中的硬件事件,比如处理器时钟周期、指令计数器等,也可以分析一些软件事件,比如Page Fault等。
Perf分为两种模式,一种是perf stat,一种是perf record。如今上游Linux的perf虽然已经对RISC-V有了支持,但仅对perf stat有一些基本的支持。比如mcycle这一CSR用于处理器运行的时钟周期计数,而minstret这一CSR则用于退休指令计数。
目前RISC-V特权规范中的支持 / 西部数据
RISC-V privileged规范中,RISC-V定义了几种特权模式,分别是U-mode(用户模式)、S-mode(管理员模式)和M-mode(机器模式)。但目前只有在机器模式下才能对这些寄存器进行读写,管理员模式下缺乏可写入的寄存器。
计数器却又是每时每刻运行中的,所以现在可以做到周期和指令计数,却无法启用、禁用和暂停计数器,无法使用任何可编程计数器和事件采样。不仅如此,RISC-V的perf不仅无法处理计数器溢出,也不支持溢出中断。虽然市面上很多RISC-V处理器已经考虑到了这一点,采用定制的形式来完成部分任务,比如Esperanto就为自己的ET-SoC-1千核RISC-V处理器加入了商业级的芯片除错与性能监控能力,但RISC-V规范本身缺少这些支持,这也就不利于当下RISC-V的开源生态。
完整的Perf支持缺少了什么?
于是我们现在发现管理员模式下无法写入计数器,也无法改变mcountinhibit来直接开启或停止计数器,也无法改变mhpmcountern来开启或禁用直接读取。接着就是没有中断指示器,我们不知道哪一个计数器出现了数值溢出,也没有事件筛选功能。那么针对这些问题的解决方案是什么,哪些措施才能实现完整的Perf支持呢?来自西部数据的Atish Patra在近期的RISC-V峰会上提出了他以及开发社区所青睐的答案——SBI PMU扩展和sscofpmf ISA扩展。
SBI PMU扩展将作为一个接口,让管理员模式下的软件发现硬件计数器的细节,针对特定的perf事件来配置硬件计数器,在请求下开始或停止计数器。除此之外,SBI PMU扩展还引入了固件性能计数器来监控固件事件,比如未对齐的存取指令数、RFENCE和IPI数等等。如今在RISC-V的SBI 1.0版本中我们也可以看到,PMU扩展已经成了该规范的一部分。
接着是sscofpmf扩展,ss代表的是特权架构和管理员级的扩展,cofpmf代表的是溢出计数和特权模式筛选。该扩展新增了一个32位的scountovf只读寄存器,该寄存器存储的是29个mhpmcounter的第63位(OF),如此一来就能准确快速地判断究竟是哪个事件的计数器溢出了。这一扩展已经冻结,目前处于审查状态,预计不久的将来就会批准,来自Linux内核的支持工作也在推进中。
小结
RISC-V作为一个尚处于发展初期的架构,在某些方面确实还有不及其前辈x86和ARM的地方,我们这次从性能监控上就能看出一些端倪,但RISC-V自身的特性也为它带来了不小的优势。
首先,RISC-V是站在巨人的肩膀上发展的,它可以有效地规避以上那些架构走错的老路。其次,开源开放让RISC-V有了庞大的社区支持,像以上这些解决方案,其实已经被多次提及,来自社区的力量势必可以让RISC-V走得更远。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
处理器
+关注
关注
68文章
19178浏览量
229200 -
Linux
+关注
关注
87文章
11232浏览量
208948 -
RISC-V
+关注
关注
44文章
2233浏览量
46045
发布评论请先 登录
相关推荐
什么是RISC-V?以及RISC-V和ARM、X86的区别
和发展。而ARM架构需要授权才能使用,因此在商业市场中获得了更多的应用和支持。
性能和功耗:由于ARM架构已经在市场上应用多年,因此在性能和功耗方面已经得到了广泛的优化。但是,
发表于 11-16 16:14
加入全球 RISC-V Advocate 行列,共筑 RISC-V 的未来 !
加入RISC-VAdvocate行列!我们正在寻找来自世界各地的RISC-V爱好者,通过全球推广和参与,成为支持RISC-V进步的关键参与者。作为一名
RISC-V Summit China 2024 青稞RISC-V+接口PHY,赋能RISC-V高效落地
沁恒在历届峰会上分享RISC-V在MCU领域的创新成果,和大家共同见证了本土RISC-V产业的成长。早在第一届RISC-V中国峰会上,沁恒就公开了青稞RISC-V系列量产芯片的
RISC-V Summit China 2024 | 青稞RISC-V+接口PHY,赋能RISC-V高效落地
进一步扩展至单线,目前是32位MCU中唯一的单线调试接口。
自研内核与接口等关键模块省去了外购IP的授权和提成费,进一步为客户节约了成本。少花一份钱,却能在标准RISC-V架构的基础上享受更多的特色功能
发表于 08-30 17:37
risc-v的发展历史
得RISC-V架构在学术圈和开源社区中获得了更广泛的关注和应用。
四、广泛应用与生态系统建设
工业界应用:随着RISC-V架构的不断发展,越来越多的公司开始采用RISC-V架构。例如,
发表于 07-29 17:20
rIsc-v的缺的是什么?
RISC-V作为一种开源的指令集架构(ISA),自其诞生以来就受到广泛关注和应用,但它也存在一些不足之处。以下是RISC-V架构目前存在的主要缺点:
1. 性能问题
相对于专用ISA的性能
发表于 07-29 17:18
浅析RISC-V领先ARM的优势
、教育以及初创企业中的使用。
定制化能力强:
RISC-V采用了模块化设计的思路,不同的组件可以灵活进行裁剪与增加。这使得RISC-V架构可以根据具体的应用需求进行灵活定制,优化并满足
发表于 06-27 08:45
risc-v的mcu对RTOS兼容性如何
的RTOS解决方案,这些解决方案已经针对他们的特定硬件进行了优化和测试。
实时性能 :
RTOS的主要特点是其实时性能,即能够在确定的时间内响应外部事件。RISC-V MCU的实时
发表于 05-27 16:26
RISC-V的MCU关于USB高速通信设计的难点
RISC-V的MCU关于USB高速通信设计的难点主要集中在硬件集成、性能优化、软件生态和成本效益等方面。以下是针对这些难点的详细分析和归纳:
硬件集成与外设支持 :
高速USB PHY集成 :传统
发表于 05-27 16:23
RISC-V的MCU与ARM对比
和实现。这意味着RISC-V具有高度的灵活性和可定制性,可以根据不同的应用需求进行优化和扩展。
ARM :ARM是一种专有的架构,任何想要使用ARM的指令集或实现的设计者都必须向ARM公司支付版权费
发表于 05-27 15:58
为何什么risc-v芯片比arm的效率高
免费使用和修改其指令集,这促进了RISC-V生态系统的快速发展。随着越来越多的公司和开发者参与到RISC-V的开发和优化中来,RISC-V芯
发表于 04-28 09:38
RISC-V有哪些优点和缺点
。同时,这种设计也降低了制造成本,使得RISC-V在成本敏感的应用场景中更具竞争力。
缺点:
性能问题:虽然RISC-V设计简洁,但相对于某些专用ISA(如ARM),其
发表于 04-28 09:03
RISC-V有哪些优缺点?是坚持ARM方向还是投入risc-V的怀抱?
是一个优势。同时,这种设计也降低了制造成本,使得RISC-V在成本敏感的应用场景中更具竞争力。
缺点 :
性能问题 :虽然RISC-V设计简洁,但相对于某些专用ISA(如ARM),其
发表于 04-28 08:51
什么是RISC-V?RISC-V的关键技术
RISC-V不仅仅是一个流行语;它建立在坚实的技术基础之上,使其有别于其他指令集架构 (ISA)。RISC-V的核心是基于精简指令集计算(RISC)原则,强调效率和性能。
发表于 03-26 09:34
•3432次阅读
评论