對于性能分析,通常我們會使用Perf工具。而perf中的硬件事件,則需要硬件的支持——性能監視單元PMU。RISC-V u64內核支持PMU,使得我們可以通過perf來統計程序運行所產生的cycle、cache hit、cache miss等事件的次數,從而進一步分析、優化性能。
在SiFive U64內核中,把PMU稱作HPM,實際是一個東西。另外,u64內核的hpm增加了一個新的特性——hpm計數溢出中斷。
下面詳細介紹SiFive U64的HPM。
HPM簡介HPM:Hardware Performance Monitor。U6 處理器內核支持基本的硬件性能監控 (HPM) 設施。性能監視工具分為兩類計數器:固定功能計數器和事件可編程計數器。這些類包括一組固定計數器及其計數器使能寄存器,以及一組事件可編程計數器及其事件選擇器寄存器。寄存器可用于控制計數器的行為。性能監控可用于多種用途,從優化到調試。
性能監控計數器重置行為instret 和循環計數器在系統復位時被初始化為零。硬件性能監視器事件計數器不會在系統重置時初始化,因此具有任意值。用戶可以將所需值寫入計數器控制和狀態寄存器 (CSR),以在給定的已知值開始計數。
固定功能性能監控計數器一個固定功能的性能監視器計數器是硬件連接的,只計算一種特定的事件類型。也就是說,它們不能根據它們計數的事件類型進行重新配置。唯一的可以對固定功能性能監控計數器進行的修改是啟用或禁用計數,并寫入計數器值本身。
U6 處理器內核包含兩個固定功能的性能監控計數器
Fixed-Function Cycle Counter (mcycle)
固定功能性能監控計數器 mcycle 保存自過去某個任意時間以來 hart 執行的時鐘周期數的計數。mcycle 計數器是可讀寫的,64 位寬。讀取 mcycle 返回 mcycle CSR 的所有 64 位。
Fixed-Function Instructions-Retired Counter (minstret)
固定功能性能監控計數器 minstret 保存 hart 自過去某個任意時間以來退役的指令數。minstret 計數器是可讀寫的并且是 64 位寬的。讀取 minstret 返回 minstret CSR 的所有 64 位。
事件可編程性能監控計數器一組可編程事件計數器與固定功能計數器相輔相成。U6 HPM 包括兩個額外的事件計數器,mhpmcounter3 和 mhpmcounter4。這些可編程事件計數器是可讀寫的,寬度為 64 位。硬件計數器本身在 U6 內核系列上實現為 40 位計數器。可以寫入這些硬件計數器以初始化計數器值。
-
內核
+關注
關注
3文章
1409瀏覽量
41090 -
Linux
+關注
關注
87文章
11457瀏覽量
212766 -
HMP
+關注
關注
0文章
2瀏覽量
5894 -
sifive
+關注
關注
0文章
36瀏覽量
9547
發布評論請先 登錄
關于從RGB圖像中提取alpha通道
怎么從sdk中的zynq PL 64位寄存器打印64位寄存器值
如何實現shift count is too large的warning功能?
SiFive Shield: 一個開放的、可擴展的安全平臺架構
帶有SiFive開發板和高性能CPU的RISC-V邁向主流
基于SIFIVE E24的BL602與BL702移植過程
關于先楫半導體hpm6750的上手體驗知識總結
HPM SDK Linux開發環境搭建指南
【先楫HPM5361EVK開發板試用體驗】coremark測試HPM5361EVK性能
Linux 下編譯HPM_Math 工程報錯
PQI展示USB3.0接口的64GB U盤
FX3U 64CCL用戶手冊

FX3U 64DP M用戶手冊

評論