armv8 aarch64 PMU寄存器介紹

1. PMCCFILTR_EL0, Performance Monitors Cycle Count Filter Register

作用
????決定循環(huán)計數(shù)器PMCCNTR_EL0的增長模式
位圖

image.png

  • RES0
    保留位
  • P, bit[31]
    0b0 計算EL1中的周期
    0b1 不計算EL1中的周期
    如果實現(xiàn)了EL3的話抽兆,那么是否在EL1進(jìn)行計數(shù)將會進(jìn)一步的由NSK位進(jìn)行控制
  • U, bit[30]
    0b0 計算EL0中的周期
    0b1 不計算EL0中的周期
    如果實現(xiàn)了EL3的話誊酌,那么是否在EL0進(jìn)行計數(shù)將會進(jìn)一步的由NSU位進(jìn)行控制
  • NSK, bit[29]
    在實現(xiàn)了EL3的情況下:如果值與P相同則計算EL1中的周期,否則不纬乍。
  • NSU, bit[28]
    在實現(xiàn)了EL3的情況下:如果值與U相同則計算EL0中的周期,否則不过蹂。
  • NSH, bit[27]
    在實現(xiàn)了EL2的情況下:
    0b0 不計算EL2中的周期
    0b1 計算EL2中的周期
    如果實現(xiàn)了EL2和EL3的話族檬,那么是否在EL2進(jìn)行計數(shù)將會進(jìn)一步的由SH位進(jìn)行控制
  • M, bi[26]
    在實現(xiàn)了EL3的情況下:如果值與P相同則計算EL3中的周期,否則不呼奢。
  • SH, bi[24]
    在實現(xiàn)了EL3和FEAT_SEL2的情況下:如果值與NSH不相同則計算EL2中的周期宜雀,否則不。

讀MRS/寫MSR

op0 op1 CRn CRm op2
0b11 0b011 0b1110 0b1111 0b111

2. PMCCNTR_EL0, Performance Monitors Cycle Count Register

作用
????統(tǒng)計進(jìn)程的時鐘周期
????只有實現(xiàn)了FEAT_PMUv3握础,此計數(shù)器才存在辐董。并且PMCCNTR的計數(shù)還會受到時鐘頻率的改變的影響,例如時鐘被WFI和WFE指令暫停了禀综。
位圖

image.png

  • CCNT, bits[63:0]
    可以每一個時鐘周期計數(shù)一次简烘,也可以每64個時鐘周期計數(shù)一次,具體由PMCR_EL0.D控制
    如果給PMCR_EL0.C設(shè)為1的話可以重置此計數(shù)器為0

讀寫

op0 op1 CRn CRm op2
0b11 0b011 0b1001 0b1101 0b000

3. PMCEID0_EL0, Performance Monitors Common Event Identification register 0

作用
????表明哪些通用架構(gòu)事件和通用微架構(gòu)事件被實現(xiàn)/計數(shù)定枷,PMU事件編號從0x0000到0x001F和0x4000到0x401F
位圖

image.png

  • IDhi<n>, bit[n+32], for n = 31 to 0
    只有實現(xiàn)了FEAT_PMUv3p1孤澎,這些位才有效,對應(yīng)事件0x4000+n
    0b0 該位代表的事件沒有實現(xiàn)或不會被計數(shù)
    0b1 該位代表的事件被實現(xiàn)了且會被計數(shù)
  • ID<n>, bit[n], for n = 31 to 0
    對應(yīng)事件0x0000+n
    0b0 該位代表的事件沒有實現(xiàn)或不會被計數(shù)
    0b1 該位代表的事件被實現(xiàn)了且會被計數(shù)

只讀

op0 op1 CRn CRm op2
0b11 0b011 0b1001 0b1100 0b110

4. PMCEID1_EL0, Performance Monitors Common Event Identification register 1

作用
????表明哪些通用架構(gòu)事件和通用微架構(gòu)事件被實現(xiàn)/計數(shù)欠窒,PMU事件編號從0x0020到0x003F和0x4020到0x403F
位圖

image.png

  • IDhi<n>, bit[n+32], for n = 31 to 0
    只有實現(xiàn)了FEAT_PMUv3p1覆旭,這些位才有效,對應(yīng)事件0x4020+n
    0b0 該位代表的事件沒有實現(xiàn)或不會被計數(shù)
    0b1 該位代表的事件被實現(xiàn)了且會被計數(shù)
  • ID<n>, bit[n], for n = 31 to 0
    對應(yīng)事件0x0020+n
    0b0 該位代表的事件沒有實現(xiàn)或不會被計數(shù)
    0b1 該位代表的事件被實現(xiàn)了且會被計數(shù)

只讀

op0 op1 CRn CRm op2
0b11 0b011 0b1001 0b1100 0b111

5. PMCNTENCLR_EL0, Performance Monitors Count Enable Clear register

作用
????可以使計數(shù)器去使能岖妄。直接讀的話表明哪些計數(shù)器使能了型将。
位圖

image.png

  • RES0
    保留位
  • C, bit[31]
    0b0 讀:表明PMCCNTR未使能。寫:無意義。
    0b1 讀:表明PMCCNTR使能了。寫:PMCCNTR去使能咽块。(這里寫1龙助,到clr寄存器里面的值最后應(yīng)該是0)
  • Pn, bit[n], for n = 30 to 0
    0b0 讀:表明PMEVCNTR<n>_EL0未使能。寫:無意義。
    0b1 讀:表明PMEVCNTR<n>_EL0使能了。寫:PMEVCNTR<n>_EL0去使能。
    注:當(dāng)EL2在當(dāng)前安全狀態(tài)下實現(xiàn)并啟用時恬惯,則在EL1和EL0中,N是MDCR_EL2.HPMN中的值亚茬。否則N是PMCR_EL0.N的值酪耳。且如果N小于31,則[N,30]的位都是RAZ/WI(Read-As-Zero/Writes Ignored)的。

讀寫

op0 op1 CRn CRm op2
0b11 0b011 0b1001 0b1100 0b010

6. PMCNTENSET_EL0, Performance Monitors Count Enable Set register

作用
????使能計數(shù)器碗暗。直接讀的話表明哪些計數(shù)器使能了颈将。
位圖

image.png

  • RES0
    保留位
  • C, bit[31]
    0b0 讀:表明PMCCNTR未使能。寫:無意義言疗。
    0b1 讀:表明PMCCNTR使能了晴圾。寫:使能PMCCNTR。(這里寫1噪奄,到set寄存器里面的值最后應(yīng)該是1死姚,注意與clr寄存器的區(qū)別)
  • Pn, bit[n], for n = 30 to 0
    0b0 讀:表明PMEVCNTR<n>_EL0未使能。寫:無意義勤篮。
    0b1 讀:表明PMEVCNTR<n>_EL0使能了都毒。寫:使能PMEVCNTR<n>_EL0。
    注:當(dāng)EL2在當(dāng)前安全狀態(tài)下實現(xiàn)并啟用時碰缔,則在EL1和EL0中账劲,N是MDCR_EL2.HPMN中的值。否則N是PMCR_EL0.N的值金抡。且如果N小于31瀑焦,則[N,30]的位都是RAZ/WI(Read-As-Zero/Writes Ignored)的。

讀寫

op0 op1 CRn CRm op2
0b11 0b011 0b1001 0b1100 0b001

7. PMCR_EL0, Performance Monitors Control Register

作用
????描述了性能監(jiān)控的實現(xiàn)細(xì)節(jié)梗肝,包括實現(xiàn)的計數(shù)器的數(shù)量榛瓮、用來配置和控制計數(shù)器等。
位圖

image.png

  • RES0
    保留
  • FZS, bit[32]
    只有實現(xiàn)了FEAT_SPEv1p2的情況下這個位才有意義
    全稱Freeze-on-SPE event(freeze on Statistical Profiling Buffer Management event)
    0b0 不要凍結(jié)統(tǒng)計分析緩沖區(qū)管理事件统捶。
    0b1 事件計數(shù)器在統(tǒng)計分析緩沖區(qū)管理事件之后不計數(shù)榆芦。(需要PMBLIMITR_EL1.{PMFZ,E} == {1,1}和PMBSR_EL1.S == 1)
    如果實現(xiàn)了EL2的情況下,這個位只影響編號0到MDCR_EL2.HPMN-1的計數(shù)器喘鸟,而MDCR_EL2.HPMN到PMCR_EL0.N-1的計數(shù)器(MDCR_EL2.HPMN小于PMCR_EL0.N的時候)以及PMCCNTR不受影響
  • IMP, bits[31:24]
    IMP,Implementer code驻右。
    只讀字段什黑,且不建議使用此字段。
    只有在FEAT_PMUv3p7沒有實現(xiàn)的情況下這個字段才有意義堪夭,否則是RAZ的愕把。
    值為0,則IDCODE是保留字段森爽,并且軟件必須使用MIDR_EL1來標(biāo)識PE恨豁。
    值為其他,這個字段和IDCODE一起標(biāo)識PMU是由軟件實現(xiàn)的爬迟。實現(xiàn)的代碼由arm分配橘蜜。且非零值的含義和MIDR_EL1.Implementer一樣。
  • IDCODE, bits[23:16]
    IDCODE,Identification code计福。
    只讀字段跌捆,且不建議使用此字段。
    只有在PMCR_EL0.IMP != 0x00時此字段才有意義
  • N, bits[15:11]
    只讀字段
    表示實現(xiàn)了多少個pmu事件計數(shù)器象颖,取值范圍是0b00000-0b11111
    當(dāng)實現(xiàn)了并使能了EL2的情況下佩厚,在EL1和EL0下讀取此值,返回的是MDCR_EL2.HPMN的值说订。
  • FZO, bit[9]
    FZO抄瓦,F(xiàn)reeze-on-overflow。
    只有在實現(xiàn)了FEAT_PMUv3p7的情況下此位才有意義陶冷,否則為保留字段
    0b0 在發(fā)生溢出時也不暫停計數(shù)器
    0b1 在PMOVSCLR_EL0[(N-1):0]非零的情況下钙姊,暫停事件計數(shù)器。
    如果實現(xiàn)了EL2埃叭,且MDCR_EL2.HPMN小于PMCR_EL0.N的情況下摸恍,此位忽略PMOVSCLR_EL0[(PMCR_EL0.N-1):MDCR_EL2.HPMN]的非零,且編號從MDCR_EL2.HPMN到PMCR_EL0.N的事件計數(shù)器不受影響赤屋。
    PMCCNTR不收此位影響立镶。
  • LP, bit[7]
    只有在實現(xiàn)了FEAT_PMUv3p5的情況下此位才有意義,否則為保留字段
    此位決定溢出標(biāo)識寄存器什么時候記錄事件計數(shù)器發(fā)生了無符號溢出类早。
    0b0 導(dǎo)致PMEVCNTR<n>_EL0[31:0]溢出時
    0b1 導(dǎo)致PMEVCNTR<n>_EL0[63:0]溢出時
    這里n的大小取決于EL2的實現(xiàn)媚媒,以及MDCR_EL2.HPMN和PMCR_EL0.N的大小。
  • LC, bit[6]
    只有在EL0支持AArch32的情況下此位才有意義涩僻,否則為保留字段
    此位決定溢出標(biāo)識寄存器什么時候記錄PMCCNTR發(fā)生了無符號溢出缭召。
    0b0 導(dǎo)致PMEVCNTR<n>_EL0[31:0]溢出時
    0b1 導(dǎo)致PMEVCNTR<n>_EL0[63:0]溢出時
    Arm不建議使用0b0
  • DP, bit[5]
    此位只有在實現(xiàn)了EL3或者(FEAT_PMUv3p1和EL2都實現(xiàn))的情況下才有意義,否則為保留字段逆日。
    0b0 無影響
    0b1 當(dāng)[0..(MDCR_EL2.HPMN-1)]的事件計數(shù)器被禁用時嵌巷,PMCCNTR被禁用
  • X, bit[4]
    export
    此位只有實現(xiàn)了PMU事件導(dǎo)出總線的情況下才有意義,否則為RAZ/WI的
    在已經(jīng)實現(xiàn)的PMU事件導(dǎo)出總線中啟用事件導(dǎo)出功能
    0b0 不導(dǎo)出事件
    0b1 當(dāng)計數(shù)沒有被禁止時導(dǎo)出事件
  • D, bit[3]
    只有在EL0支持AArch32的情況下此位才有意義室抽,否則為保留字段
    0b0 控制PMCCNTR每一個時鐘周期計數(shù)一次
    0b1 控制PMCCNTR每64個時鐘周期計數(shù)一次
    當(dāng)PMCR_EL0.LC == 1時搪哪,此位無效且PMCCNTR每一個時鐘周期計數(shù)一次
    Arm不建議使用0b1
  • C, bit[2]
    此位是WO/RAZ
    0b0 無影響
    0b1 重置PMCCNTR為0
    重置PMCCNTR為0不影響對應(yīng)的PMCCNTR的溢出標(biāo)識位。
    如果實現(xiàn)了FEAT_PMUv3p5坪圾,PMCR_EL0.LC的影響會被忽略晓折,則bit[63:0]會被重置。
  • P, bit[1]
    此位是WO/RAZ
    0b0 無影響
    0b1 重置當(dāng)前異常等級下可訪問的所有事件計數(shù)器為0兽泄,不包括PMCCNTR
    在EL0或者EL1下:如果實現(xiàn)并使能了EL2漓概,且MDCR_EL2.HPMN小于PMCR_EL0.N的話,則此位寫0b1對[MDCR_EL2.HPMN..(PMCR_EL0.N-1)]沒影響病梢,否則重置所有計數(shù)器胃珍。
    在EL2和EL3下:此位寫0b1直接重置所有計數(shù)器
    重置為0不影響對應(yīng)的計數(shù)器的溢出標(biāo)識位。
    如果實現(xiàn)了FEAT_PMUv3p5,MDCR_EL2.HLP和PMCR_EL0.LP的影響會被忽略堂鲜,則所有計數(shù)器的bit[63:0]會被重置栈雳。
  • E, bit[0]
    0b0 所有計數(shù)器[0..(PMN-1)],包括PMCCNTR都是不可用的
    0b1 所有計數(shù)器[0..(PMN-1)]缔莲,包括PMCCNTR都由PMCNTENSET_EL0來使能哥纫。
    如果實現(xiàn)了EL2,則:PMN = HDCR.HPMN(EL2是AArch32)痴奏;PMN = MDCR_EL2.HPMN(EL2是AArch64)蛀骇;PMN < PMCR_EL0.N的話,此位對[PMN..(PMCR_EL0.N-1)]沒有影響读拆。
    如果沒有實現(xiàn)EL2擅憔,則PMN = PMCR_EL0.N。

讀寫

op0 op1 CRn CRm op2
0b11 0b011 0b1001 0b1100 0b000

8. PMEVCNTR<n>_EL0, Performance Monitors Event Count Registers, n = 0 - 30

作用
????用來事件計數(shù)的計數(shù)器檐晕,n從0到30
位圖

image.png

  • Bits
    如果實現(xiàn)了FEAT_PMUv3p5暑诸,則是[63:0],否則為[31:0]辟灰,多余的是保留位

訪問
????可以直接訪問計數(shù)器n个榕,也可以將PMSELR_EL0.SEL置為n,然后通過PMXEVCNTR_EL0間接訪問芥喇。
????如果訪問的時候用的n的值大于實現(xiàn)的計數(shù)器的數(shù)量的話西采,此行為將會是未定義的行為。
????EL0想要訪問的話继控,取決于PMUSERENR_EL0.{ER,EN}
讀寫

op0 op1 CRn CRm op2
0b11 0b011 0b1110 0b10:n[4:3] n[2:0]

這里假設(shè)要訪問的是編號為7的計數(shù)器械馆,對應(yīng)的五位二進(jìn)制是00111,所以上訴的n[4:3]就是00武通,n[2:0]就是111

9. PMEVTYPER<n>_EL0, Performance Monitors Event Type Registers, n = 0 - 30

作用
????事件類型寄存器n用來配置對應(yīng)的計數(shù)器n霹崎。功能類似于PMCCFILTR_EL0對PMCCNTR的控制一樣。
位圖

image.png

  • MT, bit[25]
    只有當(dāng)實現(xiàn)了FEAT_MTPMU(見ID_AA64DFR0_EL1.MTPMU)或?qū)崿F(xiàn)了一個定義的多線程PMU擴(kuò)展時此位才有效冶忱,否則為保留位
    0b0 僅在控制PE上進(jìn)行事件計數(shù)
    0b1 對來自任何在級別1及以上的仿畸,且與當(dāng)前PE具有相同親和性的PE的事件進(jìn)行計數(shù)
  • evtCount[15:10], bits[15:10]
    只有實現(xiàn)了FEAT_PMUv3p1時,此字段才有意義朗和,否則為保留字段
    此時擴(kuò)展到字段[9:0],詳情見[9:0]
  • evtCount[9:0], bits[9:0]
    記錄要計數(shù)的事件編號
    軟件必須要使用PE支持的事件來編程此字段簿晓。
    (沒看懂這字段的含義眶拉,讀者可以自行查閱Arm手冊)
  • 其他
    其他位的功能都和PMCCFILTR_EL0一樣,不再贅述

訪問
????可以直接訪問計數(shù)器n憔儿,也可以將PMSELR_EL0.SEL置為n忆植,然后通過PMXEVTYPER_EL0間接訪問。
????如果訪問的時候用的n的值大于實現(xiàn)的計數(shù)器的數(shù)量的話,此行為將會是未定義的行為朝刊。
????EL0想要訪問的話耀里,取決于PMUSERENR_EL0.{ER,EN}。
讀寫

op0 op1 CRn CRm op2
0b11 0b011 0b1110 0b11:n[4:3] n[2:0]

10. PMINTENCLR_EL1, Performance Monitors Interrupt Enable Clear register

作用
????禁用計數(shù)器的溢出中斷請求功能
位圖

image.png

  • RES0
    保留位
  • C. bit[31]
    0b0 讀:表示PMCCNTR溢出中斷請求被禁用拾氓;寫:無影響
    0b1 讀:表示PMCCNTR溢出中斷請求啟用冯挎;寫:禁用PMCCNTR溢出中斷請求
  • P<n>, bit[n], for n = 30 to 0
    0b0 讀:表示PMEVCNTR<n>_EL0溢出中斷請求被禁用;寫:無影響
    0b1 讀:表示PMEVCNTR<n>_EL0溢出中斷請求啟用咙鞍;寫:禁用PMEVCNTR<n>_EL0溢出中斷請求
    當(dāng)實現(xiàn)并使能了EL2房官,則在EL1中N的值是MDCR_EL2.HPMN,否則N是PMCR_EL0.N续滋。如果N小于31翰守,則[30:N]是RAZ/WI的。

讀寫

op0 op1 CRn CRm op2
0b11 0b000 0b1001 0b1110 0b010

11. PMINTENSET_EL1, Performance Monitors Interrupt Enable Set register

作用
????使能計數(shù)器的溢出中斷請求功能
位圖

image.png

  • RES0
    保留位
  • C. bit[31]
    0b0 讀:表示PMCCNTR溢出中斷請求被禁用疲酌;寫:無影響
    0b1 讀:表示PMCCNTR溢出中斷請求啟用蜡峰;寫:使能PMCCNTR溢出中斷請求
  • P<n>, bit[n], for n = 30 to 0
    0b0 讀:表示PMEVCNTR<n>_EL0溢出中斷請求被禁用;寫:無影響
    0b1 讀:表示PMEVCNTR<n>_EL0溢出中斷請求啟用朗恳;寫:使能PMEVCNTR<n>_EL0溢出中斷請求
    當(dāng)實現(xiàn)并使能了EL2湿颅,則在EL1中N的值是MDCR_EL2.HPMN,否則N是PMCR_EL0.N僻肖。如果N小于31肖爵,則[30:N]是RAZ/WI的。

讀寫

op0 op1 CRn CRm op2
0b11 0b000 0b1001 0b1110 0b001

12. PMMIR_EL1, Performance Monitors Machine Identification Register

作用
????描述特定于軟件實現(xiàn)的性能監(jiān)視器參數(shù)臀脏。
????僅當(dāng)實現(xiàn)FEAT_PMUv3p4時劝堪,此寄存器才存在。否則揉稚,對PMMI_EL1的直接訪問是未定義的秒啦。
位圖

image.png

  • RES0
    保留位
  • BUS_WIDTH, bits[19:16]
    總線寬度。表明每個BUS_ACCESS事件相關(guān)的字節(jié)數(shù)搀玖。對應(yīng)取值如下:
    0b0000 信息不可用
    0b0011-0b1100余境,每增加一,字節(jié)數(shù)翻倍灌诅,0b0011表示4字節(jié)芳来,0b1100表示2048字節(jié),其他值是保留值猜拾。
    每次傳輸都達(dá)到此字節(jié)數(shù)即舌。但是訪問可能小于總線寬度。
    (沒看懂挎袜,讀者可自行查閱Arm手冊)
  • BUS_SLOTS, bits[15:8]
    總線計數(shù)顽聂。當(dāng)此字段為非零時肥惭,BUS_ACCESS事件在單個BUS_CERS周期中可能遞增的最大值為此值。
  • SLOTS, bits[7:0]
    操作寬度紊搪。STALL_SLOT事件在單個周期中可能遞增的最大值蜜葱。如果未實現(xiàn)STALL_SLOT事件,則此字段可能為RAZ耀石。

讀寫

op0 op1 CRn CRm op2
0b11 0b000 0b1001 0b1110 0b110

13. PMOVSCLR_EL0, Performance Monitors Overflow Flag Status Clear Register

作用
????保存有計數(shù)器溢出的狀態(tài)標(biāo)識牵囤。寫此寄存器可以重置溢出狀態(tài)。
位圖

image.png

  • RES0
    保留位
  • C, bit[31]
    0b0 讀:自上一次這個位被重置以來娶牌,PMCCNTR計數(shù)器沒有溢出奔浅;寫:無影響
    0b1 讀:自上一次這個位被重置以來,PMCCNTR計數(shù)器溢出了诗良;寫:重置此位為0汹桦。
  • P<n>, bit[n], for n = 30 to 0
    0b0 讀:自上一次這個位被重置以來,PMEVCNTR<n>_EL0沒有溢出鉴裹;寫:無影響
    0b1 讀:自上一次這個位被重置以來舞骆,PMEVCNTR<n>_EL0計數(shù)器溢出了;寫:重置此位為0径荔。
    當(dāng)實現(xiàn)并使能了EL2督禽,則在EL1和EL0中N的值是MDCR_EL2.HPMN,否則N是PMCR_EL0.N总处。如果N小于31狈惫,則[30:N]是RAZ/WI的。

讀寫

op0 op1 CRn CRm op2
0b11 0b011 0b1001 0b1100 0b011

14. PMOVSSET_EL0, Performance Monitors Overflow Flag Status Set register

作用
????當(dāng)對應(yīng)計數(shù)器溢出時鹦马,設(shè)置對應(yīng)的位胧谈,表明溢出
位圖

image.png

  • RES0
    保留位
  • C, bit[31]
    0b0 讀:自上一次這個位被重置以來,PMCCNTR計數(shù)器沒有溢出荸频;寫:無影響
    0b1 讀:自上一次這個位被重置以來菱肖,PMCCNTR計數(shù)器溢出了;寫:置為1旭从。
  • P<n>, bit[n], for n = 30 to 0
    0b0 讀:自上一次這個位被重置以來稳强,PMEVCNTR<n>_EL0沒有溢出;寫:無影響
    0b1 讀:自上一次這個位被重置以來和悦,PMEVCNTR<n>_EL0計數(shù)器溢出了退疫;寫:重為1。
    當(dāng)實現(xiàn)并使能了EL2鸽素,則在EL1和EL0中N的值是MDCR_EL2.HPMN蹄咖,否則N是PMCR_EL0.N。如果N小于31付鹿,則[30:N]是RAZ/WI的澜汤。

讀寫

op0 op1 CRn CRm op2
0b11 0b011 0b1001 0b1110 0b011

15. PMSELR_EL0, Performance Monitors Event Counter Selection Register

作用
????用來選擇對應(yīng)編號的計數(shù)器。
????可以和PMXEVCNTR_EL0一起配合使用舵匾,來決定選擇的計數(shù)器的值俊抵。
????也可以和PMXEVTYPER_EL0一起配合使用,來決定選擇的計數(shù)器的計數(shù)事件坐梯,計數(shù)模式等徽诲。
位圖

image.png

  • RES0
    保留位
  • SEL, bits[4:0]
    取值為0b00000到0b11111,其中0b11111代表計數(shù)器PMCCNTR吵血,其余的代表PMEVCNTR<n>_EL0谎替。
    當(dāng)值為0b11111:則讀寫PMXEVTYPER_EL0,實際上是在讀寫PMCCFILTR_EL0
    當(dāng)值為剩下的:則讀寫PMXEVTYPER_EL0蹋辅,實際上是在讀寫PMEVTYPER<n>_EL0

讀寫

op0 op1 CRn CRm op2
0b11 0b011 0b1001 0b1100 0b101

16. PMSWINC_EL0, Performance Monitors Software Increment register

作用
????當(dāng)某個PMEVCNTR<n>_EL0計數(shù)器被配置用來作為計算軟件自增事件(事件編號0x00)的計數(shù)器時钱贯,將它的計數(shù)增加一。
位圖

image.png

  • RES0
    保留位
  • P<n>, bit[n], for n = 30 to 0
    0b0 無影響侦另,寫操作被忽略
    0b1 如果有某個已經(jīng)使能的計數(shù)器被配置來計算軟件自增事件的秩命,則給那個計數(shù)器增加一,否則無影響褒傅,寫操作被忽略弃锐。
    當(dāng)實現(xiàn)并使能了EL2,則在EL1和EL0中N的值是MDCR_EL2.HPMN殿托,否則N是PMCR_EL0.N霹菊。如果N小于31,則[30:N]是WI的支竹。

只寫

op0 op1 CRn CRm op2
0b11 0b011 0b1001 0b1100 0b100

17. PMUSERENR_EL0, Performance Monitors User Enable Register

作用
????決定EL0是否可以訪問性能監(jiān)視器
位圖

image.png

  • RES0
    保留位
  • ER, bit[3]
    Event counter Read旋廷。EL0對事件計數(shù)器的訪問會被trap到EL1或者EL2(實現(xiàn)并使能了EL2,且HCR_EL2.TGE是1)
    0b0 當(dāng)PMUSERENR_EL0.EN也是0時唾戚,EL0讀取PMXEVCNTR_EL0和PMEVCNTR<n>_EL0會被trap柳洋。
    0b1 覆蓋PMUSERENR_EL0.EN并使能:在EL0對PMXEVCNTR_EL0和PMEVCNTR<n>_EL0的只讀功能;在EL0對PMSELR_EL0的讀寫能力叹坦;在EL0對PMSELR的讀寫能力熊镣。
  • CR, bit[2]
    Cycle counter Read。EL0對PMCCNTR的訪問會被trap到EL1或者EL2(實現(xiàn)并使能了EL2募书,且HCR_EL2.TGE是1)
    0b0 當(dāng)PMUSERENR_EL0.EN也是0時绪囱,EL0讀取PMCCNTR會被trap。
    0b1 覆蓋PMUSERENR_EL0.EN并使能:在EL0對PMCCNTR的讀寫能力莹捡。
  • SW, bit[2]
    EL0對軟件自增的寫操作會被trap到EL1或者EL2(實現(xiàn)并使能了EL2鬼吵,且HCR_EL2.TGE是1)
    0b0 當(dāng)PMUSERENR_EL0.EN也是0時,EL0寫PMSWINC_EL0會被trap篮赢。
    0b1 覆蓋PMUSERENR_EL0.EN并使能:在EL0對PMSWINC_EL0的寫能力齿椅。
  • EN, bit[0]
    0b0 制EL0訪問寄存器會被trap琉挖,除非被PMUSERENR_EL0.{ER, CR, SW}覆蓋
    0b1 在EL0,軟件可以訪問所有指定的寄存器涣脚。

讀寫

op0 op1 CRn CRm op2
0b11 0b011 0b1001 0b1110 0b000

18. PMXEVCNTR_EL0, Performance Monitors Selected Event Count Register

作用
????讀或者寫某個計數(shù)器示辈,計數(shù)器是由PMSELR_EL0.SEL的值決定的
位圖
????如果實現(xiàn)了FEAT_PMUv3p5

image.png

????否則為
image.png

  • RES0
    保留位
  • PMEVCNTR<n>
    對應(yīng)于由PMSELR_EL0.SEL決定的計數(shù)器的值

讀寫

op0 op1 CRn CRm op2
0b11 0b011 0b1001 0b1101 0b010

19. PMXEVTYPER_EL0, Performance Monitors Selected Event Type Register

作用
????讀或者寫PMEVTYPER<n>_EL0或者PMCCFILTR_EL0,由PMSELR_EL0.SEL選擇的計數(shù)器決定遣蚀。
位圖

image.png

  • RES0
    保留位
  • Event type register or PMCCFILTR_EL0
    值為0-30矾麻,此寄存器映射的是PMEVTYPER<n>_EL0
    值為31,此寄存器映射的是PMCCFILTR_EL0

讀寫

op0 op1 CRn CRm op2
0b11 0b011 0b1001 0b1101 0b001
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末芭梯,一起剝皮案震驚了整個濱河市险耀,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌玖喘,老刑警劉巖甩牺,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異芒涡,居然都是意外死亡柴灯,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進(jìn)店門费尽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赠群,“玉大人,你說我怎么就攤上這事旱幼〔槊瑁” “怎么了?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵柏卤,是天一觀的道長冬三。 經(jīng)常有香客問我,道長缘缚,這世上最難降的妖魔是什么勾笆? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮桥滨,結(jié)果婚禮上窝爪,老公的妹妹穿的比我還像新娘。我一直安慰自己齐媒,他們只是感情好蒲每,可當(dāng)我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著喻括,像睡著了一般邀杏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上唬血,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天望蜡,我揣著相機(jī)與錄音唤崭,去河邊找鬼。 笑死泣特,一個胖子當(dāng)著我的面吹牛浩姥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播状您,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼兜挨!你這毒婦竟也來了膏孟?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤拌汇,失蹤者是張志新(化名)和其女友劉穎柒桑,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體噪舀,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡魁淳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了与倡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片界逛。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖纺座,靈堂內(nèi)的尸體忽然破棺而出息拜,到底是詐尸還是另有隱情,我是刑警寧澤净响,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布少欺,位于F島的核電站,受9級特大地震影響馋贤,放射性物質(zhì)發(fā)生泄漏赞别。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一配乓、第九天 我趴在偏房一處隱蔽的房頂上張望仿滔。 院中可真熱鬧,春花似錦扰付、人聲如沸堤撵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽实昨。三九已至,卻和暖如春盐固,著一層夾襖步出監(jiān)牢的瞬間荒给,已是汗流浹背丈挟。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留志电,地道東北人曙咽。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像挑辆,于是被迫代替她去往敵國和親例朱。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容