原文:
在aarch64中,系統配置是通過使用msr和mrs指令來控制的(通過msr和mrs指令訪問系統暫存器)。 這與armv7-a不同,在armv7-a中通常通過協處理器15(cp15)作業系統暫存器。
暫存器的名稱通常暗示著它能被訪問的最低的異常級別。 例如:
具有字尾_eln的暫存器在一些或所有級別上都有單獨的儲存副本,el0除外。 只有很少的系統暫存器可以從el0訪問,比如快取型別暫存器(ctr_el0)就可以。
訪問系統暫存器的**採用以下形式:
mrs x0,ttbr0_el1 //將ttbr0_el1移入x0
msr ttbr0_el1,x0 //將x0移入ttbr0_el1
arm架構的之前版本使用協處理器來進行系統配置。 但是,aarch64不支援協處理器。
下表顯示了異常級別,這些異常級別具有每個暫存器的單獨副本。 例如,單獨的輔助控制暫存器(actlr)以actlr_el1,actlr_el2和actlr_el3的形式存在。
名稱暫存器
說明n的允許值
actlr_eln
輔助控制暫存器
控制處理器特定的功能。
1,2,3
ccsidr_eln
當前快取大小id暫存器
提供有關當前所選快取的體系結構的資訊。
1clidr_eln
快取級別id暫存器
在每個級別上實現的單個或多個快取記憶體的型別
快取層次結構的一致性級別和統一級別。
1,2,3
cntfrq_eln
計數器頻率暫存器
報告系統計時器的頻率。
0cntpct_eln
計數器物理計數暫存器
保持64位的當前計數值。
0cntkctl_eln
計數器核心控制暫存器
控制從虛擬計數器生成事件流。還控制從el0訪問物理計數器,虛擬計數器,el1物理計時器和虛擬計時器。
1cntp_cval_eln
計數器物理計時器比較值暫存器
儲存el1物理計時器的比較值。
0cpacr_eln
協處理器訪問控制暫存器
控制對跟蹤,浮點和simd功能的訪問。
1csselr_eln
快取大小選擇暫存器
通過指定所需的快取級別和快取型別(指令或資料快取),選擇當前的快取大小id暫存器ccsidr_el1。
1cntp_ctl_eln
計數器物理控制暫存器
控制el1物理計時器的暫存器。
0ctr_eln
快取型別暫存器
有關整合快取體系結構的資訊。
0dczid_eln
資料快取零id暫存器
指示資料快取零根據虛擬位址(dczva)系統指令寫入位元組值為0的塊大小。
0elr_eln
異常鏈結暫存器
儲存導致異常的指令的位址。
1,2,3
esr_eln
異常綜合特徵暫存器
包括有關異常原因的資訊。
1,2,3
far_eln
故障位址暫存器
儲存虛擬錯誤位址。
1,2,3
fpcr
浮點控制暫存器
控制浮點擴充套件行為。該暫存器中的字段對映到aarch32 fpscr中的等效字段。
.fpsr
浮點狀態暫存器
提供浮點系統狀態資訊。該暫存器中的字段對映到aarch32 fpscr中的等效字段。
.hcr_eln
hypervisor 配置暫存器
控制虛擬化設定,並將異常情況捕獲到el2。
2mair_eln
儲存器屬性間接暫存器
在eln的階段1翻譯的long-descriptor格式轉換表項中,提供對應於可能值的儲存器屬性編碼。
1,2,3
midr_eln
主id暫存器
**執行的處理器型別(部件號和版本)。
1mpidr_eln
多處理器密切關係的暫存器
處理器和群集id,在多核或群集系統中。
1rvbar_eln
基於位址暫存器的重置向量
儲存重置向量的基位址,以便傳送給eln的任何異常。
1,2,3
scr_eln
安全配置暫存器
控制安全狀態和el3的異常情況。
3sctlr_eln
系統控制暫存器
控制架構功能,例如mmu,快取和對齊檢查。
0,1,2,3
spsr_eln
儲存的程式狀態暫存器
當發生異常時,保持已儲存的處理器狀態。
abt,fiq,irq,und,1,2,3
tcr_eln
轉換控制暫存器
確定哪個轉換表基地暫存器定義了轉換表行走(translation table walk)的基位址,該基位址是eln中,記憶體訪問階段1轉換所需要的。
還控制轉換**式並儲存可快取和可共享的資訊。
1,2,3
tpidr_eln
使用者讀/寫執行緒id暫存器
為了作業系統管理的目的,提供乙個在eln上執行的軟體可以儲存執行緒標識資訊的位置。
0,1,2,3
tpidrro_eln
使用者唯讀執行緒id暫存器
提供在el1或更高版本上執行的軟體可以儲存執行緒標識資訊的位置。為了作業系統管理的目的,在el0上執行的軟體可以看到這些資訊。
0ttbr0_eln
轉換表基址暫存器0
儲存轉換表0的基位址,以及它占用的記憶體的資訊。這是eln內,記憶體訪問階段1轉換的轉換表之一。
1,2,3
ttbr1_eln
轉換表基址暫存器1
儲存轉換表1的基位址,以及它佔據的儲存器的資訊。
這是在el0和el1內,記憶體訪問階段1轉換的轉換表之一
1vbar_eln
基於向量的位址暫存器
儲存異常基位址,以便傳送到eln的任何異常。
1,2,3
vtcr_eln
虛擬化轉換控制暫存器
控制來自非安全el0和el1的記憶體訪問階段2轉換所需的轉換表步行。還儲存訪問的可快取和可共享資訊。
2vttbr_eln
虛擬化轉換表基址暫存器
儲存來自非安全el0和el1的記憶體訪問階段2轉換的轉換表的基位址。2原文
ARMv8 A系列學習筆記 9 GIC
在學習mindshare armv8 a的時候,碰到幾個要點 第一 synchronous v asynchronous 所謂的sync exception的特點是 1.是在執行一條具體的指令的時候產生的 如執行 load store指令的時候,對應的虛擬位址無效,則產生異常 2.異常處理結束,返回...
ARMv8百日談(記憶體管理系統)
1 mmu的作用是啥 進行位址轉換,位址許可權控制,位址屬性定義,以及對pe發起的訪問進行check 2 在不同的el下以及不同的安全狀態下,va到pa的過程是不一樣的,經過的stage轉換階段,如下 a 在轉換系統使能以後,判斷位址會不會因為超出範圍而導致 translation fault b ...
基礎架構之Gitlab Runner
基礎架構之gitlab runner也是常用的基礎設施,我們接著gitlab操作,具體使用gitlabrunner,如果不熟悉可以見官方詳細介紹這篇文章主要介紹安裝及專案使用。一 環境要求 centos 7.5.1804 docker 18.06.1 ce gitlab gitlab ce gitl...