ARM基礎知識

基礎知識

1、ARM處理器的工作模式及其特點

ARM 處理器有7種工作模式,其特點如下:
快速中斷模式(fiq):支持高速數據傳輸或通道處理,外部中斷fiq信號有效且CPSR的F=0時進入。
中斷模式(irq):用於通用中斷處理,外部中斷irq信號有效CPSR的I=0時進入。
管理員模式(svc):操作系統的保護模式,復位,軟件中斷進入該模式。主要用於SWI(軟件中斷)和OS(操作系統)。這個模式有額外的特權,允許你進一步控制計算機。
中止模式(abt):支持虛擬內存和/或內存保護預取指令中止/數據中止進入
未定義模式(und):支持硬件協處理器的軟件仿真(浮點、向量運算)未定義指令進入
系統模式(sys):支持操作系統的特殊用戶模式(運行操作系統任務)
用戶模式(usr):正常的程序執行模式,此模式應用程序不能訪問受操作系統保護的資源,不能改變模式,除非異常發生。

2、ARM處理器總共有多少個寄存器,這些寄存器按其在用戶編程中的功能是如何劃分的?這些寄存器在使用中各有何特殊之處?

ARM微處理器共有37個32位的寄存器,其中31個爲通用寄存器,6個爲狀態寄存器。
31個通用寄存器根據其編程特點可分爲如下幾種類型:
a.不分組寄存器R0-R7,爲所有模式共享;
b.分組寄存器R8-R12,R8_fiq-R12_fiq,FIQ模式下的寄存器,R8-R12,其它模式共享
c.分組寄存器R13-R14分爲6組,用戶、系統一組,其他每種模式一組:
R13_通常用作堆棧指針SP,R14_通常用作子程序鏈接寄存器,當進入子程序時,常用來保存PC的返回值其中,mode爲以下幾種模式之一:usr、fiq、irq、svc、abt、und。
d.程序寄存器R15(PC),爲所有模式共享
6個狀態寄存器:
一個CPSR當前程序狀態寄存器,保存當前程序狀態。五個程序狀態備份寄存器SPSR(svc,abt,und,irq,frq),只有在異常模式下,才能被訪問,各異常模式都擁有屬於自己的SPSR,當發生異常時,SPSR用來保存CPSR的值,從異常退出時則可由SPSR來恢復CPSR。

3、ARM處理器對異常中斷的響應過程
當一個異常出現以後,ARM微處理器執行完當前指令後(復位異常除外)會執行以下幾步操作:
a.將下一條指令的地址存入相應連接寄存器LR(R14_XXX),以便程序在處理異常返回時能從正確的位置重新開始執行;
b.將CPSR複製到相應的SPSR中;
c.根據異常類型,強制設置CPSR的運行模式位;
d.強制PC從相關的異常向量地址取一條指令執行,從而跳轉到相應的異常處理程序處。

4、從異常中斷處理程序中返回以及需要注意的問題
異常處理完畢之後,ARM微處理器會執行以下幾步操作從異常返回:
a.將連接寄存器LR(R14_XXX)的值減去相應的偏移量後送到PC中;
b.將SPSR複製回CPSR中,恢復原處理器工作模式;
c.若在進入異常處理時設置了中斷禁止位,要在此清除。
注意問題:
異常處理返回時,IRQ和FIQ必須返回前一條指令,以便執行因進入異常而被“佔據”的指令。預取指中止必須返回前一條指令,以便執行在初次請求訪問時造成存儲器故障的指令。數據中止必須返回前面第二條指令,以便重新執行因進入異常而被佔據的指令之前的數據傳送指令。

5、ARM處理器版本的變化主要體現在內核的變化和內核的擴展哪些方面
ARM處理器版本的變化主要體現在內核的擴展和擴充。ARM內核的擴展主要是增加ARM核外圍的組件,以改善ARM性能,提供資源管理等功能。主要有3種硬件擴展:
a.ARM內核擴展cache和緊耦合存儲器;
b.擴展存儲管理;
c.擴展協處理器接口(控制cache、TCM和存儲管理)
ARM內核擴充主要是增加ARM核功能,通常將具有某些特殊功能的ARM內核稱爲它的某種變種,到目前爲止ARM定義瞭如下變種:
a.T變種,Thumb指令集;
b.M變種,長乘指令;
c.E變種,增強型DSP指令;
d.J變種,java加速器Jazelle

6、處理器啓動時的模式轉換過程
處理器啓動時,首先進入管理員模式(svc),此後進入除用戶模式之外的其他模式,主要完成各模式的堆棧設置,最後進入用戶模式,運行用戶程序。

7、ARM存儲器的存儲週期有幾種類型,對應於cache訪問和存儲器訪問是何存儲週期
ARM存儲器的存儲週期有4種類型,它們分別是:空閒週期、順序週期、協處理器寄存器傳送週期和非順序週期,對應於cache訪問的存儲週期是空閒週期和順序週期,對應於存儲器訪問的存儲週期是非順序週期。

8、何謂cache?簡述cache的工作原理。
答8:Cache即高速緩衝存儲器是位於CPU與內存之間的高速存儲器,它的容量比內存小但交換速度快。在cache存儲系統當中,把主存儲器和cache都劃分成相同大小的塊。主存地址由塊號M和塊內地址N兩部分組成。同樣,cache的地址也由塊號m和塊內地址n組成。然而cache 是相連存儲器,裝入時,通過地址變換部件把主存地址中的塊號M變成cache的塊號m,塊號M保存在塊號爲m 的cache塊的標記區,數據塊裝入cache緩衝區。當CPU要訪問cache時,CPU送來主存地址,放到主存地址寄存器中。然後通過地址變換部件把主存地址中的塊號M變成cache的塊號m,並放到cache地址寄存器當中。同時將主存地址中的塊內地址N直接作爲cache的塊內地址n裝入到cache地址寄存器中。如果地址變換成功(通常稱爲cache命中),就用得到的cache地址去訪問cache,從cache中取出數據送到CPU中。如果地址變換不成功,則產生cache失效信息,並且接着使用主存地址直接去訪問主存儲器。

9、簡述全相聯cache、直接映象cache、組相聯cache其主存地址至cache地址的變換過程和數據檢索過程。
全相聯cache地址的變換過程和數據檢索過程:
把內存地址的塊號與cache目錄區的主存塊號比較,若相同則命中,然後塊內地址檢索cache塊/行的某字;否則訪問內存。
直接映象cache地址的變換過程和數據檢索過程:
1、根據內存地址的塊號找到cache的對應塊。
2、把內存地址的區號與cache塊的標記比較,若兩者相等且有效位爲1,則爲命中,以塊內地址訪問Cache數據區。若兩者不相等或有效位不爲1,則訪問內存。
組相聯cache地址的變換過程和數據檢索過程:
1、首先以內存地址的組號q找到cache中的組。如:物理地址的組號爲1,則對應cache第1組。
2、由於主存與cache其組內的塊之間採用全相連映射,因此把內存地址的區號、組內塊號與cache目錄區所存的區號、組內塊號比較,若有相同者則爲命中。
3、若命中,以物理地址的塊內地址查找某字,否則訪問內存。

10、何謂寫通cache和寫回cache,兩者有何區別?
採用寫通法進行數據更新的cache稱爲寫通cache。寫通法是指CPU在執行寫操作時,必須把數據同時寫入cache和主存。
採用寫回法進行數據更新的cache稱爲寫回cache。寫回法是指CPU在執行寫操作時,被寫的數據只寫入cache,不寫入主存。僅當需要替換時,才把已經修改的cache塊寫回到主存中。
寫通cache和寫回cache的區別主要體現在執行寫操作時數據是否同時寫入主存,寫通cache的欲寫數據同時寫入cache和主存;寫回cache的欲寫數據只寫入cache,不寫入主存,僅當需要替換時,才把已經修改的cache塊寫回到主存中。

11、arm的MMU主要主要實現何功能。
MMU主要主要實現功能是:
1、 虛擬存儲空間到物理存儲空間的映射。在ARM中採用了頁式虛擬存儲管理,通過兩級頁表實現虛擬地址到物理地址的映射。
2、 存儲器訪問權限的控制。
3、 設置虛擬存儲空間的緩衝的特性,主要包括Cache、write buffer的配置。

12、協處理器cp15主要主要實現何功能
協處理器cp15用於處理、控制ARM的特殊性能,包括:
1、 片上存儲器管理單元(MMU)的特性。
2、 指令、數據緩存的特性。
3、 寫緩衝器的特性。
爲控制這些特性, CP15提供了16 個額外寄存器。

13、簡述MMU使能時存儲訪問過程 (設chach爲一級cache)
使能MMU時存儲訪問過程 : 通過配置cp15寄存器,設置爲MMU使能:
(1) 若cache使能,根據arm輸出的虛擬地址在CACHE中搜索;若cache命中, arm處理器與cache交換數據。
(2) 若cache禁止或cache未命中,首先訪問TLB,根據arm輸出的虛擬地址在TLB中搜索,若TLB命中,將TLB中的物理頁地址與虛擬地址的頁內偏移量拼接成物理地址,訪問主存並把該塊數據讀取到cache(使能時)中。
(3) 若cache且TLB均未命中,訪問主存中的頁表。

14、ARM支持的物理頁有幾種類型,其容量爲何值?
ARM支持的物理頁有四種類型,分別是:1m的頁,64k的大頁,4k的小頁,1k的微頁或極小頁。

15、簡述採用單步頁表搜索過程。
(若一級頁表的頁表項爲1M的段,採用單步頁表搜索;若爲細頁表或粗頁表的頁表項則採用兩步搜索。)
搜索步驟:
1、首先由c2寄存器的高18位和邏輯地址的高12位拼接成段描述符的物理地址。
2、根據上述地址檢索一級頁表找到段描述符,把段描述符中的高12位和虛擬地址的低20位拼接成32位物理地址,並由此地址訪問主存物理頁及相應存儲單元。

16、簡述使用粗頁表和4k頁的二級虛實地址轉換過程
1、首先把c2寄存器中的18位頁表基址作爲粗頁表描述符的地址的高18位,虛擬地址的高12位作爲粗頁表描述符的地址的中間部分,00作爲粗頁表描述符的地址的最低2位,由此得到粗頁表描述符的物理地址。根據粗頁表描述符的物理地址,檢索一級頁表,找到粗頁表描述符。
2、把粗頁表描述符22位二級頁表基址與虛擬地址的中間8位和00拼接成4k頁描述符的物理地址,根據4k頁描述符的物理地址,檢索二級頁表,找到4k頁表描述符。
3、將4k頁表描述符中的高20位物理地址與虛擬地址的低12位拼接成主存物理地址,並由此訪問某存儲單元。

17、微處理器及嵌入式系統的總線一般由幾部分組成,arm中實現存儲器及外設讀、寫操作的控制信號是什麼?
微處理器及嵌入式系統的總線一般由3部分組成,其分別是:
1、數據總線:傳送數據信息的信號線,通常爲雙向、三態總線。
地址總線:用來傳送地址信息的信號線,通常爲單向、三態總線
3、控制總線:傳送控制信息的信號線。

18、何謂總線主控設備、總線從設備,並舉例說明之。
何謂主控設備是指能控制總線並啓動數據傳送的任何設備稱做主控器或主設備,如CPU和DMA控制器 。總線從設備則是指能夠響應總線主設備發出的總線命令的任何設備,如存儲器。

19、什麼是系統總線,微機和arm使用何系統總線?
系統總線是指把微機系統內各部件的相互連接的總線,例,微機的 ISA、EISA、VESA、PCI等微機標準總線,arm的片上總線。
簡述總線週期的四個階段。
一個總線週期的四個階段:
1.總線請求和仲裁階段 由需要使用總線的主控設備向總線仲裁機構提出使用總線的請求,經總線仲裁機構仲裁確定,把下一個傳送週期的總線使用權分配給哪一個請求源。
2、尋址階段 取得總線使用權的主控設備,通過地址總線發出本次要訪問的從屬設備的存儲器地址、或I/O端口地址及有關命令,通過譯碼使參與本次傳送操作的從屬設備被選中,並開始啓動。
3、數據傳送階段 主控設備和從屬設備進行數據交換。
4、結束階段 主控設備、從屬設備的有關信息均從系統總線上撤除,讓出總線,以便其他模塊能繼續使用。

20、簡述主設備和從設備之間的三種數據傳輸方式。
主設備和從設備之間的數據傳輸方式:
一、同步式傳輸
使用一個同步時鐘作爲控制數據的傳輸。主設備與從設備進行一次傳輸所需的時間是固定的,其中每一步驟的起止時刻,也都有嚴格的規定,都以系統時鐘來統一。
二、異步式傳輸
異步傳輸是採取應答式傳輸技術來實現的,用請求REQ和應答ACK兩種信號來協調傳輸過程。
三、半同步傳輸
半同步傳輸是綜合同步和異步傳輸方式的優點設計出來的混合式的總線結構。 這種總線有兩個控制信號:由主設備來的CLOCK和從設備來的WAIT信號。 若從設備傳輸速度足夠快,則不發WAIT等待信號,以同步方式傳輸數據。如果從設備不能在一個週期內作出響應,則使WAIT信號變高而使主設備暫停。只要WAIT信號高電平有效,其後的時鐘週期內主設備處於等待狀態直到WAIT變低。
8、AMBA規範定義了哪三種總線,arm7實現了AHB還是ASB。
AMBA規範定義了三種總線:
1. AHB(Advanced High-performance Bus):用於連接高性能系統模塊。它支持突發數據傳輸方式及單個數據傳輸方式,所有時序參考同一個時鐘沿;
2. ASB(Advanced System Bus):用於連接高性能系統模塊,它支持突發數據傳輸模式;在不需要AHB的高速特性的場合,可選擇ASB作爲系統總線 。
3. APB(Advance Peripheral Bus外圍總線):是一個簡單接口支持低性能的外圍接口。

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