Arm Shadow Register


這其實是個和硬件有關的概念。

有些register是2層的,第一層是供CPU訪問,第二層供Hw訪問。


CPU訪問

Hw訪問


其中Hw訪問的這層register稱之爲Shadow Register
CPU在寫Register的時候,會先寫在上層的Shadow Register,隨後硬件update之後纔會在下層供Hw訪問的Register開始執行。

這是同一個Register,不是2個Register,只不過分了2層。形象的講上層是下層的Shadow。

因爲真正生效的執行Hw動作的是下面這層,而上面這層只是將CPU(也就是將軟件)的信息獲取到,等下個硬件週期纔會執行。

 

那麼這有什麼用呢?哪裏用到了這點呢?

這樣做可以加快程序的相應和信息的處理。

其中ARM的FIQ有用到,也就是fast interrupt,快速中斷的意思。

因爲FIQ是有Shadow Register的,所以你在使用它或者是設置它的時候,指令可以先存在Shadow Register裏面,等到下一個硬件週期就會立即執行。

而沒有Shadow Register的IRQ(interrupt),就要等Register裏面的數據執行完畢後才能寫入,那樣就稍慢一些。

這也就是FIQ比IRQ快的一個原因。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章