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