版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
《嵌入式系統(tǒng)原理與開發(fā)》
第7講南京大學(xué)計算機(jī)系俞建新主講2008年春季2008年6月21日1南京大學(xué)計算機(jī)系《嵌入式系統(tǒng)原理與開發(fā)》
第7講2008年春季2008年6月第4章ARM體系結(jié)構(gòu)本章主要介紹以下內(nèi)容:ARM體系結(jié)構(gòu)版本ARM處理器系列ARM流水線ARM工作模式和工作狀態(tài)ARM寄存器組織ARM存儲器組織ARM的異常中斷AMBA和ARM7TDMI2008年6月21日2南京大學(xué)計算機(jī)系第4章ARM體系結(jié)構(gòu)本章主要介紹以下內(nèi)容:2008年6月214.6ARM存儲器組織介紹以下內(nèi)容:數(shù)據(jù)類型和存儲格式ARM的存儲體系片上存儲器的用法 協(xié)處理器CP15存儲器管理單元MMU保護(hù)單元快速上下文切換擴(kuò)展寫緩存器(WriteBuffer)ARM的異常中斷向量表和異常中斷處理與返回2008年6月21日3南京大學(xué)計算機(jī)系4.6ARM存儲器組織介紹以下內(nèi)容:2008年6月21日4.6.1數(shù)據(jù)類型和存儲格式ARM存儲器中的數(shù)據(jù)類型有6種有符號數(shù)8位(字節(jié))、16位(半字)、32位(字)無符號數(shù)8位(字節(jié))、16位(半字)、32位(字)缺省端序設(shè)置為小端序2008年6月21日4南京大學(xué)計算機(jī)系4.6.1數(shù)據(jù)類型和存儲格式ARM存儲器中的數(shù)據(jù)類型有64.6.2ARM的存儲體系參看下圖,抽象成一個呈金字塔型的存儲結(jié)構(gòu)注重研究第2層2008年6月21日5南京大學(xué)計算機(jī)系4.6.2ARM的存儲體系參看下圖,抽象成一個呈金字塔型4.6.3片上存儲器的用法多數(shù)ARM處理器芯片內(nèi)部集成了存儲器它們統(tǒng)稱為片上存儲器用途有:片上Cache、片上SRAM、緊耦合存儲器(TCM)、寫緩存片上存儲器的存儲空間可以通過指令進(jìn)行配置,定義成片上Cache,或者片上SRAM,或者一部分片上Cache加一部分片上SRAM。緊耦合存儲器和寫緩存均需要編程使能或者硬件接線使能按照具體應(yīng)用情況決定片上存儲器配置方法2008年6月21日6南京大學(xué)計算機(jī)系4.6.3片上存儲器的用法多數(shù)ARM處理器芯片內(nèi)部集成了存片上存儲器用作緊耦合存儲器緊耦合存儲器的英文原文如下:TightlyCoupledMemory,TCM彌補(bǔ)Cache訪問的不確定性而增加的片上存儲器。除了片上緊耦合存儲器外,還有緊耦合存儲器接口,它能夠提供低延時的外存儲器訪問。有的處理器含有分立的指令TCM和數(shù)據(jù)TCM。TCM包含在存儲器地址映射空間中,可以作為快速存儲器來訪問。除了不得包含讀敏感地址之外,對TCM接口上連接的存儲器類型沒有其他限制。TCM使用物理地址,對TCM的寫訪問受到MMU內(nèi)部保護(hù)信息的控制。2008年6月21日7南京大學(xué)計算機(jī)系片上存儲器用作緊耦合存儲器緊耦合存儲器的英文原文如下:200TCM在ARMv6處理器核的位置ARMv6處理器包括:ARM1136J-S、ARM1156T22008年6月21日8南京大學(xué)計算機(jī)系TCM在ARMv6處理器核的位置ARMv6處理器包括:ARM片內(nèi)的TCM存儲器ARM926EJ-S核心內(nèi)置32KB指令緩存、16KB數(shù)字緩存和8KB數(shù)據(jù)-TCM(緊密耦合內(nèi)存)和8KB指令-TCM(緊密耦合內(nèi)存);2008年6月21日9南京大學(xué)計算機(jī)系片內(nèi)的TCM存儲器ARM926EJ-S核心內(nèi)置32KB指令緩Cortex-R4F方框圖—含TCM接口注意圖的右側(cè)含有一個TCM仲裁和接口模塊2008年6月21日10南京大學(xué)計算機(jī)系Cortex-R4F方框圖—含TCM接口注意圖的右側(cè)含有一個ARM1136的TCM支持DMA傳輸參看ARM1136的方框圖2008年6月21日11南京大學(xué)計算機(jī)系A(chǔ)RM1136的TCM支持DMA傳輸參看ARM1136的方框ARM966E-S核的TCM地址映射2008年6月21日12南京大學(xué)計算機(jī)系A(chǔ)RM966E-S核的TCM地址映射2008年6月21日12ARM966E-S的TCM別名地址空間物理存儲塊可以通過TCM接口映射在片內(nèi)的TCM存儲區(qū)2008年6月21日13南京大學(xué)計算機(jī)系A(chǔ)RM966E-S的TCM別名地址空間物理存儲塊可以通過TCARM966E-S的TCM特點TheARM966E-SprocessorsupportsbothinstructionanddataTCMs.YoucanusetheDTCMandITCMtostorereal-timeandperformance-criticalcode.TheTCMsareinstantiatedexternallytotheARM966E-Smacrocellprovidingforflexibilityinthedesignofthememorysubsystem.Thesystemdesignercanselectmemorytypeandoptimizethememorysubsystemforpowerorspeed.2008年6月21日14南京大學(xué)計算機(jī)系A(chǔ)RM966E-S的TCM特點TheARM966E-SpARM966E-S的TCM接口特點(續(xù)1)ThefeaturesoftheTCMinterfaceinclude:
independentITCMandDTCMsizesof0KBor1KB-64MBinpower-of-twoincrements
softwarevisibilityandprogrammabilityofTCMsizeandenable
bootcontrolforITCM
dataaccesstotheITCMforliteralpoolaccessesincode
simpleSRAM-styleinterfacesupportingbothreadsandwrites
variableTCMwaitstatecontrolforITCMandDTCM
abilitytoindicatesequentialandnonsequentialaccesses.2008年6月21日15南京大學(xué)計算機(jī)系A(chǔ)RM966E-S的TCM接口特點(續(xù)1)ThefeatuARM966E-S的TCM特點接口(續(xù)2)TheARM966E-SprocessorcontainsaTCMcontrollerthat:
schedulesrequeststotheTCMinterface
handshakeswiththeARM966E-Smemorysystemcontrollertoacknowledgewhenrequestshavebeenserviced
returnsTCMreaddatabacktotheARM9E-Score.TheTCMsarelocatedintheTCMaddressspace.
2008年6月21日16南京大學(xué)計算機(jī)系A(chǔ)RM966E-S的TCM特點接口(續(xù)2)TheARM96AT91SAM9261處理器的TCMAT91SAM9261的獨立指令和數(shù)據(jù)緩存能支持WinCE和Linux操作系統(tǒng)。而其基于TCM構(gòu)架的SRAM區(qū)塊則是“確定過程式”實時操作系統(tǒng)的理想安排。另一方面,160K字節(jié)的片上SRAM可劃分成多個16K字節(jié)的區(qū)塊,作為“指令TCM”、“數(shù)據(jù)TCM”或片上外設(shè)的緩沖,從而讓編程人員靈活地優(yōu)化系統(tǒng)的性能和功耗。2008年6月21日17南京大學(xué)計算機(jī)系A(chǔ)T91SAM9261處理器的TCMAT91SAM9261的TCM的使能操作通過二種方式進(jìn)行TCM的使能操作使用處理器芯片的INITRAM引腳使用CP15的c1控制寄存器2008年6月21日18南京大學(xué)計算機(jī)系TCM的使能操作通過二種方式進(jìn)行TCM的使能操作2008年6S3C44B0X和S3C4510B的三種片上存儲器的配置用法S3C44B0X和S3C4510B都有8KB的片上存儲器它們有三種配置用法8KB的SRAM8KB的Cache4KB的SRAM加上4KB的Cache較多采用片內(nèi)RAM配置而非片內(nèi)Cache配置。2008年6月21日19南京大學(xué)計算機(jī)系S3C44B0X和S3C4510B的三種片上存儲器的配置用法4.6.4協(xié)處理器CP15CP15即所謂的系統(tǒng)控制協(xié)處理器SystemControlCoprocessor在基于ARM的嵌入式系統(tǒng)中,諸如MMU、Cache配置、緊耦合處理器、寫緩存配置之類的存儲系統(tǒng)管理工作由協(xié)處理器CP15完成。CP15可以包含16個32位寄存器編號為CP0~CP15。實際運(yùn)用中寫為C0~C15。2008年6月21日20南京大學(xué)計算機(jī)系4.6.4協(xié)處理器CP15CP15即所謂的系統(tǒng)控制協(xié)處理CP15寄存器的訪問用戶只能夠在特權(quán)模式下使用MRC和MCR指令來訪問CP15寄存器。2008年6月21日21南京大學(xué)計算機(jī)系CP15寄存器的訪問用戶只能夠在特權(quán)模式下使用MRC和MCR4.6.5存儲器管理單元MMUARM的MMU部件的用途:
完成虛擬存儲空間到物理存儲空間的映射。
管理方式:頁式虛擬存儲器。
頁的大小有兩種:粗粒度和細(xì)粒度。
存儲器訪問權(quán)限的控制。
設(shè)置虛擬存儲空間的緩沖特性。2008年6月21日22南京大學(xué)計算機(jī)系4.6.5存儲器管理單元MMUARM的MMU部件的用途:24.6.6保護(hù)單元保護(hù)單元PU,ProtectionUnit也稱為:MPU,MemoryProtectionUnit為了消除術(shù)語的二義性,我們統(tǒng)一使用術(shù)語PU保護(hù)單元提供了一個相當(dāng)簡單的替代MMU的方法來管理存儲器。對于不需要PU的嵌入式系統(tǒng)而言,PU簡化了硬件和軟件,主要表現(xiàn)在不使用轉(zhuǎn)換表,這樣免去了硬件遍歷轉(zhuǎn)換表和軟件建立與維護(hù)轉(zhuǎn)換表。2008年6月21日23南京大學(xué)計算機(jī)系4.6.6保護(hù)單元保護(hù)單元2008年6月21日23南京大學(xué)保護(hù)單元的工作原理和作用ARM核的PU使用區(qū)域(region)來管理系統(tǒng)保護(hù)。區(qū)域是一個存儲空間相關(guān)聯(lián)的一組屬性,處理器核將這些屬性保存在協(xié)處理器CP15的一些寄存器里,并用0-7的號碼標(biāo)識每一個區(qū)域(它也是一個具有特定屬性的邏輯存儲空間)。區(qū)域的存儲邊界通過兩個屬性進(jìn)行配置:起始地址和大小。區(qū)域的大小可以是4KB~4MB的任何2的乘冪。2008年6月21日24南京大學(xué)計算機(jī)系保護(hù)單元的工作原理和作用ARM核的PU使用區(qū)域(region受保護(hù)區(qū)域的屬性操作系統(tǒng)可以為受保護(hù)區(qū)域分配更多的屬性,包括:訪問權(quán)限、Cache和寫緩存器策略訪問權(quán)限可以是:讀/寫、只讀和不可訪問基于處理器模式的權(quán)限管理模式、用戶模式等Cache寫策略寫直達(dá)Cache操作、無Cache操作、無寫緩存器操作。2008年6月21日25南京大學(xué)計算機(jī)系受保護(hù)區(qū)域的屬性操作系統(tǒng)可以為受保護(hù)區(qū)域分配更多的屬性,包括含PU的ARM處理器主存訪問過程當(dāng)處理器訪問主存的一個區(qū)域時,PU比較該區(qū)域的訪問權(quán)限屬性和當(dāng)時的處理器模式。如果請求符合區(qū)域訪問標(biāo)準(zhǔn),則PU允許內(nèi)核讀/寫主存;如果存儲器請求導(dǎo)致存儲器訪問違例,則PU產(chǎn)生一個異常信號。異常信號被傳到處理器核,處理器核判斷是出異常是預(yù)取指令中止還是數(shù)據(jù)中止,然后跳轉(zhuǎn)到對應(yīng)的異常處理例程。2008年6月21日26南京大學(xué)計算機(jī)系含PU的ARM處理器主存訪問過程當(dāng)處理器訪問主存的一個區(qū)域時區(qū)域?qū)傩杂嘘P(guān)區(qū)域的屬性如下:區(qū)域可以相互重疊每一個區(qū)域有一個優(yōu)先級,該優(yōu)先級與分配給區(qū)域的權(quán)限無關(guān)當(dāng)區(qū)域重疊時,具有最高優(yōu)先權(quán)的區(qū)域的屬性可以覆蓋其他區(qū)域的屬性,優(yōu)先權(quán)僅作用于重疊部分的地址。區(qū)域的起始地址必須是其大小的倍數(shù)。區(qū)域的大小是2的乘冪,2的12次方到32次方。2008年6月21日27南京大學(xué)計算機(jī)系區(qū)域?qū)傩杂嘘P(guān)區(qū)域的屬性如下:2008年6月21日27南京大學(xué)訪問受保護(hù)區(qū)域時產(chǎn)生的異常訪問所定義區(qū)域外的存儲器將產(chǎn)生異常。如果是內(nèi)核預(yù)取指令,則PU產(chǎn)生一個預(yù)取指令中止異常。如果是存儲器數(shù)據(jù)請求,則PU產(chǎn)生數(shù)據(jù)中止異常。2008年6月21日28南京大學(xué)計算機(jī)系訪問受保護(hù)區(qū)域時產(chǎn)生的異常訪問所定義區(qū)域外的存儲器將產(chǎn)生異常帶PU的ARM核概要以下給出了四種帶PU的ARM核概要屬性ARM核區(qū)域數(shù)目指令區(qū)域和數(shù)據(jù)區(qū)域是否分離指令和數(shù)據(jù)區(qū)域配置是否分離ARM740T8否否ARM940T16是是ARM946E-S8否是ARM1026EJ-S8否是2008年6月21日29南京大學(xué)計算機(jī)系帶PU的ARM核概要以下給出了四種帶PU的ARM核概要屬性A在帶PU的ARM系統(tǒng)中創(chuàng)建區(qū)域要實現(xiàn)一個受PU控制主存的嵌入式系統(tǒng),需要對主存中的不同塊定義若干區(qū)域。一個區(qū)域可以被創(chuàng)建一次,然后一直用到嵌入式系統(tǒng)運(yùn)行結(jié)束;也可以臨時創(chuàng)建一個區(qū)域來滿足一個特殊操作的需要,用完之后就加以刪除。2008年6月21日30南京大學(xué)計算機(jī)系在帶PU的ARM系統(tǒng)中創(chuàng)建區(qū)域要實現(xiàn)一個受PU控制主存的嵌入含有PU的ARM核含有8個受保護(hù)區(qū)域的ARM核ARM740TARM946E-SARM1026EJ-S含有16個受保護(hù)區(qū)域的ARM核ARM940T2008年6月21日31南京大學(xué)計算機(jī)系含有PU的ARM核含有8個受保護(hù)區(qū)域的ARM核2008年6月初始化PU、Cache和寫緩沖器為了初始化PU、Cache和寫緩沖器,控制系統(tǒng)必須定義在操作目標(biāo)平臺時所需要的保護(hù)區(qū)域。功能主存儲器次存儲器系統(tǒng)控制C1C0區(qū)域的cache屬性C2C0區(qū)域的寫緩沖器屬性C3C0區(qū)域的訪問權(quán)限屬性C5C0區(qū)域的大小和位置C6C0~C72008年6月21日32南京大學(xué)計算機(jī)系初始化PU、Cache和寫緩沖器為了初始化PU、Cache和帶保護(hù)單元和MMU的系統(tǒng)框圖2008年6月21日33南京大學(xué)計算機(jī)系帶保護(hù)單元和MMU的系統(tǒng)框圖2008年6月21日33南京大學(xué)4.6.7ARM處理器的CacheARM處理器均帶有Cache或者可以將片上存儲器配置成Cache。當(dāng)然,在不需要時也可以通過配置操作關(guān)閉Cache。ARM處理器的Cache地址映射均采用組相聯(lián)映射。2008年6月21日34南京大學(xué)計算機(jī)系4.6.7ARM處理器的CacheARM處理器均帶有Cac4.6.8快速上下文切換擴(kuò)展快速上下文切換擴(kuò)展FCSE,F(xiàn)astContextSwitchExtensionFCSE是ARM存儲系統(tǒng)的修正機(jī)構(gòu)。它修改系統(tǒng)中不同進(jìn)程的虛擬地址,避免在進(jìn)行進(jìn)程間切換時造成的虛擬地址到物理地址的重映射,從而提高系統(tǒng)的性能。為了理解ARM處理器的FCSE功能,我們首先考察當(dāng)虛擬存儲器中任務(wù)切換時,主存中頁表和物理存儲器的隨動切換。2008年6月21日35南京大學(xué)計算機(jī)系4.6.8快速上下文切換擴(kuò)展快速上下文切換擴(kuò)展2008年6ARM虛擬存儲器
用戶任務(wù)上下文切換示例-1任務(wù)1正在執(zhí)行2008年6月21日36南京大學(xué)計算機(jī)系A(chǔ)RM虛擬存儲器
用戶任務(wù)上下文切換示例-1任務(wù)1正在執(zhí)行2ARM虛擬存儲器
用戶任務(wù)上下文切換示例-2任務(wù)2正在執(zhí)行2008年6月21日37南京大學(xué)計算機(jī)系A(chǔ)RM虛擬存儲器
用戶任務(wù)上下文切換示例-2任務(wù)2正在執(zhí)行2ARM虛擬存儲器
用戶任務(wù)上下文切換示例-3任務(wù)3正在執(zhí)行2008年6月21日38南京大學(xué)計算機(jī)系A(chǔ)RM虛擬存儲器
用戶任務(wù)上下文切換示例-3任務(wù)3正在執(zhí)行23個任務(wù)的多任務(wù)環(huán)境中
快速上下文切換擴(kuò)展的舉例:切換前任務(wù)1正在運(yùn)行2008年6月21日39南京大學(xué)計算機(jī)系3個任務(wù)的多任務(wù)環(huán)境中
快速上下文切換擴(kuò)展的舉例:切換前任務(wù)3個任務(wù)的多任務(wù)環(huán)境中
快速上下文切換擴(kuò)展的舉例:(續(xù))切換后任務(wù)2正在運(yùn)行2008年6月21日40南京大學(xué)計算機(jī)系3個任務(wù)的多任務(wù)環(huán)境中
快速上下文切換擴(kuò)展的舉例:(續(xù))切換4.6.9寫緩存器(WriteBuffer)寫緩存器是一個容量很小的片內(nèi)的先進(jìn)先出(FIFO)存儲器,位于處理器核與主存之間。寫緩存器的主要用途是:當(dāng)CPU輸出數(shù)據(jù)時,總線恰好被占用而無法輸出,此時,CPU可以把輸出數(shù)據(jù)寫入到寫緩存器。當(dāng)總線上沒有比寫緩存區(qū)優(yōu)先級更高的掌控者時,寫緩存區(qū)可以通過總線將數(shù)據(jù)寫入內(nèi)存。CPU由于不需要等待寫操作的完成而增強(qiáng)了性能。寫緩存區(qū)中的FIFO存儲器在存儲層次中與L1Cache處于相同的層次。2008年6月21日41南京大學(xué)計算機(jī)系4.6.9寫緩存器(WriteBuffer)寫緩存器是一S3C44B0X處理器的寫緩存區(qū)由4個寫緩存寄存器構(gòu)成。每一個寫緩存寄存器包括一個32位數(shù)據(jù)字段,一個28位地址字段和一個2位狀態(tài)字段??梢酝ㄟ^指令對控制寄存器SYSCFG的WE位置1或者置0來使能或者禁能寫緩存器。參看下圖。2008年6月21日42南京大學(xué)計算機(jī)系S3C44B0X處理器的寫緩存區(qū)由4個寫緩存寄存器構(gòu)成。每一4.7ARM的異常中斷ARM異常與中斷不做嚴(yán)格意義上的區(qū)別ARM的中斷向量表內(nèi)存放的是響應(yīng)異常和中斷的轉(zhuǎn)移指令而不是中斷向量地址。在ARM處理器中,當(dāng)異常發(fā)生時,完成當(dāng)前指令后跳轉(zhuǎn)到相應(yīng)的異常中斷處理程序入口執(zhí)行異常中斷處理。異常處理完畢后返回原來的程序斷點繼續(xù)執(zhí)行原來的程序。2008年6月21日43南京大學(xué)計算機(jī)系4.7ARM的異常中斷ARM異常與中斷不做嚴(yán)格意義上的區(qū)異常中斷分類ARM異常按照起因的不同分為3類: ①指令執(zhí)行引起的直接異常軟件中斷、未定義指令和預(yù)取指令中止屬于這一類 ②指令執(zhí)行引起的間接異常數(shù)據(jù)中止(在讀取和存儲數(shù)據(jù)時的存儲器故障)屬于這一類。 ③外部產(chǎn)生的與指令流無關(guān)的異常復(fù)位、IRQ和FIQ屬于這一類。2008年6月21日44南京大學(xué)計算機(jī)系異常中斷分類ARM異常按照起因的不同分為3類:2008年6月ARM中斷向量表中斷向量表中存放了各個異常中斷以及處理程序的對應(yīng)關(guān)系。在ARM體系結(jié)構(gòu)中,異常中斷向量表的大小只有32個字節(jié)。其中,每個異常中斷向量占4個字節(jié)。系統(tǒng)初始化時,中斷向量表從0號存儲單元開始存放。2008年6月21日45南京大學(xué)計算機(jī)系A(chǔ)RM中斷向量表中斷向量表中存放了各個異常中斷以及處理程序的ARM中斷向量表(續(xù))中斷向量地址異常中斷類型異常中斷模式優(yōu)先級(6級最低)0x0復(fù)位管理模式,SVC10x4未定義指令未定義指令中止,UND60x8軟件中斷管理模式,SVC60xC指令預(yù)取中止中止模式,ABT50x10數(shù)據(jù)訪問中止中止模式,ABT20x14保留未使用未使用0x18外部中斷請求,IRQ外部中斷模式,IRQ40x1C快速中斷請求,F(xiàn)IQ快速中斷模式,F(xiàn)IQ32008年6月21日46南京大學(xué)計算機(jī)系A(chǔ)RM中斷向量表(續(xù))中斷向量異常中斷類型異常中斷模式優(yōu)先級ARM異常中斷響應(yīng)當(dāng)發(fā)生異常時,ARM處理器對異常中斷的響應(yīng)過程如下:①將CPSR的內(nèi)容保存到將要執(zhí)行的異常中斷模式的SPSR中。例如:如果異常類型是FIQ,則SPSR_FIQ=CPSR②設(shè)置當(dāng)前程序狀態(tài)寄存器CPSR中的模式字段位。③將異常發(fā)生時程序的下一條指令地址保存到新的異常模式的R14寄存器。注意:異常發(fā)生時異常模式R14的定義是PC-4。2008年6月21日47南京大學(xué)計算機(jī)系A(chǔ)RM異常中斷響應(yīng)當(dāng)發(fā)生異常時,ARM處理器對異常中斷的響應(yīng)ARM異常中斷響應(yīng)④強(qiáng)制對程序計數(shù)器賦值。使程序從異常所對應(yīng)的向量地址開始執(zhí)行中斷服務(wù)子程序。 ARM處理器對異常的響應(yīng)過程可用偽代碼描述如下: R14_<exception_mode>=returnlink SPSR_<exception_mode>=CPSR CPSR[4:0]=exceptionmodenumber CPSR[5]=0/*當(dāng)運(yùn)行于ARM狀態(tài)時*/ if<exception_mode>==ResetorFIQthen CPSR[6]=1/*禁止新的FIQ中斷*/ CPSR[7]=1/*禁止新的IRQ中斷*/ PC=exceptionvectoraddress2008年6月21日48南京大學(xué)計算機(jī)系A(chǔ)RM異常中斷響應(yīng)④強(qiáng)制對程序計數(shù)器賦值。使程序從異常所對應(yīng)響應(yīng)異常處理時的斷點地址計算中斷向量號異常類型異常類型PC是否已被更新LR寄存器值返回地址返回時LR值傳送返回到PC前調(diào)整①復(fù)位SVC清零清零不返回②未定義指令UND未更新X+4X+4不需要③軟件中斷SWISVC未更新X+4X+4不需要④指令預(yù)取中止ABT未更新X+4XLR-4⑤數(shù)據(jù)訪問中止ABT已經(jīng)更新X+8XLR-8保留⑦外部中斷請求,IRQ已經(jīng)更新X+8X+4LR-4⑧快速中斷請求,F(xiàn)IQ已經(jīng)更新X+8X+4LR-42008年6月21日49南京大學(xué)計算機(jī)系響應(yīng)異常處理時的斷點地址計算中斷異常類型異常PC是否LR寄IRQ、FIQ和ABT異常中斷處理程序的返回發(fā)生IRQ或者FIQ異常中斷時,指令已經(jīng)執(zhí)行完畢,PC指向當(dāng)前指令后面的第3條指令。因此IRQ或者FIQ的異常中斷發(fā)生時,處理器將程序計數(shù)器的計算值(PC-4)保存到LR_IRQ或者LR_FIQ寄存器中。這時LR_IRQ或者LR_FIQ寄存器的值指向當(dāng)前指令后的第2條指令。參看下面幻燈片的圖解。2008年6月21日50南京大學(xué)計算機(jī)系IRQ、FIQ和ABT異常中斷處理程序的返回發(fā)生IRQ或者FIRQ、FIQ和ABT異常中斷處理程序的返回(續(xù)1)在指令預(yù)取時如果目標(biāo)地址是非法的,該指令將被標(biāo)記成有問題的指令,處理器產(chǎn)生指令預(yù)取ABT異常。此刻PC的值還沒有更新,它指向當(dāng)前指令后的第2條指令。指令預(yù)取ABT異常中斷發(fā)生時,處理器將程序計數(shù)器的計算值(PC-4)保存到異常模式LR_ABT。這時LR_ABT寄存器的值指向當(dāng)前指令后的第1條指令。2008年6月21日51南京大學(xué)計算機(jī)系IRQ、FIQ和ABT異常中斷處理程序的返回(續(xù)1)在指令預(yù)IRQ、FIQ和ABT異常中斷處理程序的返回(續(xù)2)當(dāng)IRQ、FIQ和ABT異常中斷處理程序退出時,前兩種情況下應(yīng)該執(zhí)行斷點的下一條指令,后一種情況下程序應(yīng)該返回到有問題的指令處(即斷點指令),重新讀取并執(zhí)行。無論上述三種情況的那一種,返回操作都應(yīng)該通過SUBSPC,LR,#4指令實現(xiàn)。該指令將寄存器LR中的值復(fù)制到程序計數(shù)器PC中,實現(xiàn)程序返回,同時將SPSR_SVC或者SPSR_UND寄存器的內(nèi)容復(fù)制到CPSR中。2008年6月21日52南京大學(xué)計算機(jī)系IRQ、FIQ和ABT異常中斷處理程序的返回(續(xù)2)當(dāng)IRQ全部異常中斷的四種返回方式圖解2008年6月21日53南京大學(xué)計算機(jī)系全部異常中斷的四種返回方式圖解2008年6月21日53南京第7講重點嵌入式處理器片上存儲器的用法ARM的協(xié)處理器CP15ARM的存儲管理單元(MMU)ARM的存儲器保護(hù)單元ARM處理器的CacheARM的快速上下文切換ARM中斷向量表ARM寫緩存器ARM異常中斷響應(yīng)處理與返回方式2008年6月21日54南京大學(xué)計算機(jī)系第7講重點嵌入式處理器片上存儲器的用法2008年6月21日5第7講復(fù)習(xí)題與思考題請給出幾個采用哈佛結(jié)構(gòu)分離型Cache的處理器具體案例(此題不限于嵌入式處理器)怎樣配置ARM處理器的片上存儲器為好試描述ARM的MMU分頁功能和處理流程ARM的存儲器保護(hù)單元起什么作用?ARM的CP15協(xié)處理器起什么作用?ARM的邏輯Cache和物理Cache是怎么一回事?ARM處理器中的寫緩存起什么作用?請闡述ARM異常中斷向量表的結(jié)構(gòu)。異常處理結(jié)束后,CPU是如何返回到主程序斷點的?2008年6月21日55南京大學(xué)計算機(jī)系第7講復(fù)習(xí)題與思考題請給出幾個采用哈佛結(jié)構(gòu)分離型Cache第3次習(xí)題布置題1,片上存儲器的用法有哪幾種?分別用于什么場合為宜?題2,ARM異常中斷的返回有哪幾種情況?對應(yīng)的中斷服務(wù)子程序分別要做哪些處理?2008年6月21日56南京大學(xué)計算機(jī)系第3次習(xí)題布置題1,片上存儲器的用法有哪幾種?分別用于什么場第7講結(jié)束謝謝大家的使用!歡迎大家提出寶貴意見和建議!2008年6月21日57南京大學(xué)計算機(jī)系第7講結(jié)束謝謝大家的使用!2008年6月21日57南京大學(xué)計《嵌入式系統(tǒng)原理與開發(fā)》
第7講南京大學(xué)計算機(jī)系俞建新主講2008年春季2008年6月21日58南京大學(xué)計算機(jī)系《嵌入式系統(tǒng)原理與開發(fā)》
第7講2008年春季2008年6月第4章ARM體系結(jié)構(gòu)本章主要介紹以下內(nèi)容:ARM體系結(jié)構(gòu)版本ARM處理器系列ARM流水線ARM工作模式和工作狀態(tài)ARM寄存器組織ARM存儲器組織ARM的異常中斷AMBA和ARM7TDMI2008年6月21日59南京大學(xué)計算機(jī)系第4章ARM體系結(jié)構(gòu)本章主要介紹以下內(nèi)容:2008年6月214.6ARM存儲器組織介紹以下內(nèi)容:數(shù)據(jù)類型和存儲格式ARM的存儲體系片上存儲器的用法 協(xié)處理器CP15存儲器管理單元MMU保護(hù)單元快速上下文切換擴(kuò)展寫緩存器(WriteBuffer)ARM的異常中斷向量表和異常中斷處理與返回2008年6月21日60南京大學(xué)計算機(jī)系4.6ARM存儲器組織介紹以下內(nèi)容:2008年6月21日4.6.1數(shù)據(jù)類型和存儲格式ARM存儲器中的數(shù)據(jù)類型有6種有符號數(shù)8位(字節(jié))、16位(半字)、32位(字)無符號數(shù)8位(字節(jié))、16位(半字)、32位(字)缺省端序設(shè)置為小端序2008年6月21日61南京大學(xué)計算機(jī)系4.6.1數(shù)據(jù)類型和存儲格式ARM存儲器中的數(shù)據(jù)類型有64.6.2ARM的存儲體系參看下圖,抽象成一個呈金字塔型的存儲結(jié)構(gòu)注重研究第2層2008年6月21日62南京大學(xué)計算機(jī)系4.6.2ARM的存儲體系參看下圖,抽象成一個呈金字塔型4.6.3片上存儲器的用法多數(shù)ARM處理器芯片內(nèi)部集成了存儲器它們統(tǒng)稱為片上存儲器用途有:片上Cache、片上SRAM、緊耦合存儲器(TCM)、寫緩存片上存儲器的存儲空間可以通過指令進(jìn)行配置,定義成片上Cache,或者片上SRAM,或者一部分片上Cache加一部分片上SRAM。緊耦合存儲器和寫緩存均需要編程使能或者硬件接線使能按照具體應(yīng)用情況決定片上存儲器配置方法2008年6月21日63南京大學(xué)計算機(jī)系4.6.3片上存儲器的用法多數(shù)ARM處理器芯片內(nèi)部集成了存片上存儲器用作緊耦合存儲器緊耦合存儲器的英文原文如下:TightlyCoupledMemory,TCM彌補(bǔ)Cache訪問的不確定性而增加的片上存儲器。除了片上緊耦合存儲器外,還有緊耦合存儲器接口,它能夠提供低延時的外存儲器訪問。有的處理器含有分立的指令TCM和數(shù)據(jù)TCM。TCM包含在存儲器地址映射空間中,可以作為快速存儲器來訪問。除了不得包含讀敏感地址之外,對TCM接口上連接的存儲器類型沒有其他限制。TCM使用物理地址,對TCM的寫訪問受到MMU內(nèi)部保護(hù)信息的控制。2008年6月21日64南京大學(xué)計算機(jī)系片上存儲器用作緊耦合存儲器緊耦合存儲器的英文原文如下:200TCM在ARMv6處理器核的位置ARMv6處理器包括:ARM1136J-S、ARM1156T22008年6月21日65南京大學(xué)計算機(jī)系TCM在ARMv6處理器核的位置ARMv6處理器包括:ARM片內(nèi)的TCM存儲器ARM926EJ-S核心內(nèi)置32KB指令緩存、16KB數(shù)字緩存和8KB數(shù)據(jù)-TCM(緊密耦合內(nèi)存)和8KB指令-TCM(緊密耦合內(nèi)存);2008年6月21日66南京大學(xué)計算機(jī)系片內(nèi)的TCM存儲器ARM926EJ-S核心內(nèi)置32KB指令緩Cortex-R4F方框圖—含TCM接口注意圖的右側(cè)含有一個TCM仲裁和接口模塊2008年6月21日67南京大學(xué)計算機(jī)系Cortex-R4F方框圖—含TCM接口注意圖的右側(cè)含有一個ARM1136的TCM支持DMA傳輸參看ARM1136的方框圖2008年6月21日68南京大學(xué)計算機(jī)系A(chǔ)RM1136的TCM支持DMA傳輸參看ARM1136的方框ARM966E-S核的TCM地址映射2008年6月21日69南京大學(xué)計算機(jī)系A(chǔ)RM966E-S核的TCM地址映射2008年6月21日12ARM966E-S的TCM別名地址空間物理存儲塊可以通過TCM接口映射在片內(nèi)的TCM存儲區(qū)2008年6月21日70南京大學(xué)計算機(jī)系A(chǔ)RM966E-S的TCM別名地址空間物理存儲塊可以通過TCARM966E-S的TCM特點TheARM966E-SprocessorsupportsbothinstructionanddataTCMs.YoucanusetheDTCMandITCMtostorereal-timeandperformance-criticalcode.TheTCMsareinstantiatedexternallytotheARM966E-Smacrocellprovidingforflexibilityinthedesignofthememorysubsystem.Thesystemdesignercanselectmemorytypeandoptimizethememorysubsystemforpowerorspeed.2008年6月21日71南京大學(xué)計算機(jī)系A(chǔ)RM966E-S的TCM特點TheARM966E-SpARM966E-S的TCM接口特點(續(xù)1)ThefeaturesoftheTCMinterfaceinclude:
independentITCMandDTCMsizesof0KBor1KB-64MBinpower-of-twoincrements
softwarevisibilityandprogrammabilityofTCMsizeandenable
bootcontrolforITCM
dataaccesstotheITCMforliteralpoolaccessesincode
simpleSRAM-styleinterfacesupportingbothreadsandwrites
variableTCMwaitstatecontrolforITCMandDTCM
abilitytoindicatesequentialandnonsequentialaccesses.2008年6月21日72南京大學(xué)計算機(jī)系A(chǔ)RM966E-S的TCM接口特點(續(xù)1)ThefeatuARM966E-S的TCM特點接口(續(xù)2)TheARM966E-SprocessorcontainsaTCMcontrollerthat:
schedulesrequeststotheTCMinterface
handshakeswiththeARM966E-Smemorysystemcontrollertoacknowledgewhenrequestshavebeenserviced
returnsTCMreaddatabacktotheARM9E-Score.TheTCMsarelocatedintheTCMaddressspace.
2008年6月21日73南京大學(xué)計算機(jī)系A(chǔ)RM966E-S的TCM特點接口(續(xù)2)TheARM96AT91SAM9261處理器的TCMAT91SAM9261的獨立指令和數(shù)據(jù)緩存能支持WinCE和Linux操作系統(tǒng)。而其基于TCM構(gòu)架的SRAM區(qū)塊則是“確定過程式”實時操作系統(tǒng)的理想安排。另一方面,160K字節(jié)的片上SRAM可劃分成多個16K字節(jié)的區(qū)塊,作為“指令TCM”、“數(shù)據(jù)TCM”或片上外設(shè)的緩沖,從而讓編程人員靈活地優(yōu)化系統(tǒng)的性能和功耗。2008年6月21日74南京大學(xué)計算機(jī)系A(chǔ)T91SAM9261處理器的TCMAT91SAM9261的TCM的使能操作通過二種方式進(jìn)行TCM的使能操作使用處理器芯片的INITRAM引腳使用CP15的c1控制寄存器2008年6月21日75南京大學(xué)計算機(jī)系TCM的使能操作通過二種方式進(jìn)行TCM的使能操作2008年6S3C44B0X和S3C4510B的三種片上存儲器的配置用法S3C44B0X和S3C4510B都有8KB的片上存儲器它們有三種配置用法8KB的SRAM8KB的Cache4KB的SRAM加上4KB的Cache較多采用片內(nèi)RAM配置而非片內(nèi)Cache配置。2008年6月21日76南京大學(xué)計算機(jī)系S3C44B0X和S3C4510B的三種片上存儲器的配置用法4.6.4協(xié)處理器CP15CP15即所謂的系統(tǒng)控制協(xié)處理器SystemControlCoprocessor在基于ARM的嵌入式系統(tǒng)中,諸如MMU、Cache配置、緊耦合處理器、寫緩存配置之類的存儲系統(tǒng)管理工作由協(xié)處理器CP15完成。CP15可以包含16個32位寄存器編號為CP0~CP15。實際運(yùn)用中寫為C0~C15。2008年6月21日77南京大學(xué)計算機(jī)系4.6.4協(xié)處理器CP15CP15即所謂的系統(tǒng)控制協(xié)處理CP15寄存器的訪問用戶只能夠在特權(quán)模式下使用MRC和MCR指令來訪問CP15寄存器。2008年6月21日78南京大學(xué)計算機(jī)系CP15寄存器的訪問用戶只能夠在特權(quán)模式下使用MRC和MCR4.6.5存儲器管理單元MMUARM的MMU部件的用途:
完成虛擬存儲空間到物理存儲空間的映射。
管理方式:頁式虛擬存儲器。
頁的大小有兩種:粗粒度和細(xì)粒度。
存儲器訪問權(quán)限的控制。
設(shè)置虛擬存儲空間的緩沖特性。2008年6月21日79南京大學(xué)計算機(jī)系4.6.5存儲器管理單元MMUARM的MMU部件的用途:24.6.6保護(hù)單元保護(hù)單元PU,ProtectionUnit也稱為:MPU,MemoryProtectionUnit為了消除術(shù)語的二義性,我們統(tǒng)一使用術(shù)語PU保護(hù)單元提供了一個相當(dāng)簡單的替代MMU的方法來管理存儲器。對于不需要PU的嵌入式系統(tǒng)而言,PU簡化了硬件和軟件,主要表現(xiàn)在不使用轉(zhuǎn)換表,這樣免去了硬件遍歷轉(zhuǎn)換表和軟件建立與維護(hù)轉(zhuǎn)換表。2008年6月21日80南京大學(xué)計算機(jī)系4.6.6保護(hù)單元保護(hù)單元2008年6月21日23南京大學(xué)保護(hù)單元的工作原理和作用ARM核的PU使用區(qū)域(region)來管理系統(tǒng)保護(hù)。區(qū)域是一個存儲空間相關(guān)聯(lián)的一組屬性,處理器核將這些屬性保存在協(xié)處理器CP15的一些寄存器里,并用0-7的號碼標(biāo)識每一個區(qū)域(它也是一個具有特定屬性的邏輯存儲空間)。區(qū)域的存儲邊界通過兩個屬性進(jìn)行配置:起始地址和大小。區(qū)域的大小可以是4KB~4MB的任何2的乘冪。2008年6月21日81南京大學(xué)計算機(jī)系保護(hù)單元的工作原理和作用ARM核的PU使用區(qū)域(region受保護(hù)區(qū)域的屬性操作系統(tǒng)可以為受保護(hù)區(qū)域分配更多的屬性,包括:訪問權(quán)限、Cache和寫緩存器策略訪問權(quán)限可以是:讀/寫、只讀和不可訪問基于處理器模式的權(quán)限管理模式、用戶模式等Cache寫策略寫直達(dá)Cache操作、無Cache操作、無寫緩存器操作。2008年6月21日82南京大學(xué)計算機(jī)系受保護(hù)區(qū)域的屬性操作系統(tǒng)可以為受保護(hù)區(qū)域分配更多的屬性,包括含PU的ARM處理器主存訪問過程當(dāng)處理器訪問主存的一個區(qū)域時,PU比較該區(qū)域的訪問權(quán)限屬性和當(dāng)時的處理器模式。如果請求符合區(qū)域訪問標(biāo)準(zhǔn),則PU允許內(nèi)核讀/寫主存;如果存儲器請求導(dǎo)致存儲器訪問違例,則PU產(chǎn)生一個異常信號。異常信號被傳到處理器核,處理器核判斷是出異常是預(yù)取指令中止還是數(shù)據(jù)中止,然后跳轉(zhuǎn)到對應(yīng)的異常處理例程。2008年6月21日83南京大學(xué)計算機(jī)系含PU的ARM處理器主存訪問過程當(dāng)處理器訪問主存的一個區(qū)域時區(qū)域?qū)傩杂嘘P(guān)區(qū)域的屬性如下:區(qū)域可以相互重疊每一個區(qū)域有一個優(yōu)先級,該優(yōu)先級與分配給區(qū)域的權(quán)限無關(guān)當(dāng)區(qū)域重疊時,具有最高優(yōu)先權(quán)的區(qū)域的屬性可以覆蓋其他區(qū)域的屬性,優(yōu)先權(quán)僅作用于重疊部分的地址。區(qū)域的起始地址必須是其大小的倍數(shù)。區(qū)域的大小是2的乘冪,2的12次方到32次方。2008年6月21日84南京大學(xué)計算機(jī)系區(qū)域?qū)傩杂嘘P(guān)區(qū)域的屬性如下:2008年6月21日27南京大學(xué)訪問受保護(hù)區(qū)域時產(chǎn)生的異常訪問所定義區(qū)域外的存儲器將產(chǎn)生異常。如果是內(nèi)核預(yù)取指令,則PU產(chǎn)生一個預(yù)取指令中止異常。如果是存儲器數(shù)據(jù)請求,則PU產(chǎn)生數(shù)據(jù)中止異常。2008年6月21日85南京大學(xué)計算機(jī)系訪問受保護(hù)區(qū)域時產(chǎn)生的異常訪問所定義區(qū)域外的存儲器將產(chǎn)生異常帶PU的ARM核概要以下給出了四種帶PU的ARM核概要屬性ARM核區(qū)域數(shù)目指令區(qū)域和數(shù)據(jù)區(qū)域是否分離指令和數(shù)據(jù)區(qū)域配置是否分離ARM740T8否否ARM940T16是是ARM946E-S8否是ARM1026EJ-S8否是2008年6月21日86南京大學(xué)計算機(jī)系帶PU的ARM核概要以下給出了四種帶PU的ARM核概要屬性A在帶PU的ARM系統(tǒng)中創(chuàng)建區(qū)域要實現(xiàn)一個受PU控制主存的嵌入式系統(tǒng),需要對主存中的不同塊定義若干區(qū)域。一個區(qū)域可以被創(chuàng)建一次,然后一直用到嵌入式系統(tǒng)運(yùn)行結(jié)束;也可以臨時創(chuàng)建一個區(qū)域來滿足一個特殊操作的需要,用完之后就加以刪除。2008年6月21日87南京大學(xué)計算機(jī)系在帶PU的ARM系統(tǒng)中創(chuàng)建區(qū)域要實現(xiàn)一個受PU控制主存的嵌入含有PU的ARM核含有8個受保護(hù)區(qū)域的ARM核ARM740TARM946E-SARM1026EJ-S含有16個受保護(hù)區(qū)域的ARM核ARM940T2008年6月21日88南京大學(xué)計算機(jī)系含有PU的ARM核含有8個受保護(hù)區(qū)域的ARM核2008年6月初始化PU、Cache和寫緩沖器為了初始化PU、Cache和寫緩沖器,控制系統(tǒng)必須定義在操作目標(biāo)平臺時所需要的保護(hù)區(qū)域。功能主存儲器次存儲器系統(tǒng)控制C1C0區(qū)域的cache屬性C2C0區(qū)域的寫緩沖器屬性C3C0區(qū)域的訪問權(quán)限屬性C5C0區(qū)域的大小和位置C6C0~C72008年6月21日89南京大學(xué)計算機(jī)系初始化PU、Cache和寫緩沖器為了初始化PU、Cache和帶保護(hù)單元和MMU的系統(tǒng)框圖2008年6月21日90南京大學(xué)計算機(jī)系帶保護(hù)單元和MMU的系統(tǒng)框圖2008年6月21日33南京大學(xué)4.6.7ARM處理器的CacheARM處理器均帶有Cache或者可以將片上存儲器配置成Cache。當(dāng)然,在不需要時也可以通過配置操作關(guān)閉Cache。ARM處理器的Cache地址映射均采用組相聯(lián)映射。2008年6月21日91南京大學(xué)計算機(jī)系4.6.7ARM處理器的CacheARM處理器均帶有Cac4.6.8快速上下文切換擴(kuò)展快速上下文切換擴(kuò)展FCSE,F(xiàn)astContextSwitchExtensionFCSE是ARM存儲系統(tǒng)的修正機(jī)構(gòu)。它修改系統(tǒng)中不同進(jìn)程的虛擬地址,避免在進(jìn)行進(jìn)程間切換時造成的虛擬地址到物理地址的重映射,從而提高系統(tǒng)的性能。為了理解ARM處理器的FCSE功能,我們首先考察當(dāng)虛擬存儲器中任務(wù)切換時,主存中頁表和物理存儲器的隨動切換。2008年6月21日92南京大學(xué)計算機(jī)系4.6.8快速上下文切換擴(kuò)展快速上下文切換擴(kuò)展2008年6ARM虛擬存儲器
用戶任務(wù)上下文切換示例-1任務(wù)1正在執(zhí)行2008年6月21日93南京大學(xué)計算機(jī)系A(chǔ)RM虛擬存儲器
用戶任務(wù)上下文切換示例-1任務(wù)1正在執(zhí)行2ARM虛擬存儲器
用戶任務(wù)上下文切換示例-2任務(wù)2正在執(zhí)行2008年6月21日94南京大學(xué)計算機(jī)系A(chǔ)RM虛擬存儲器
用戶任務(wù)上下文切換示例-2任務(wù)2正在執(zhí)行2ARM虛擬存儲器
用戶任務(wù)上下文切換示例-3任務(wù)3正在執(zhí)行2008年6月21日95南京大學(xué)計算機(jī)系A(chǔ)RM虛擬存儲器
用戶任務(wù)上下文切換示例-3任務(wù)3正在執(zhí)行23個任務(wù)的多任務(wù)環(huán)境中
快速上下文切換擴(kuò)展的舉例:切換前任務(wù)1正在運(yùn)行2008年6月21日96南京大學(xué)計算機(jī)系3個任務(wù)的多任務(wù)環(huán)境中
快速上下文切換擴(kuò)展的舉例:切換前任務(wù)3個任務(wù)的多任務(wù)環(huán)境中
快速上下文切換擴(kuò)展的舉例:(續(xù))切換后任務(wù)2正在運(yùn)行2008年6月21日97南京大學(xué)計算機(jī)系3個任務(wù)的多任務(wù)環(huán)境中
快速上下文切換擴(kuò)展的舉例:(續(xù))切換4.6.9寫緩存器(WriteBuffer)寫緩存器是一個容量很小的片內(nèi)的先進(jìn)先出(FIFO)存儲器,位于處理器核與主存之間。寫緩存器的主要用途是:當(dāng)CPU輸出數(shù)據(jù)時,總線恰好被占用而無法輸出,此時,CPU可以把輸出數(shù)據(jù)寫入到寫緩存器。當(dāng)總線上沒有比寫緩存區(qū)優(yōu)先級更高的掌控者時,寫緩存區(qū)可以通過總線將數(shù)據(jù)寫入內(nèi)存。CPU由于不需要等待寫操作的完成而增強(qiáng)了性能。寫緩存區(qū)中的FIFO存儲器在存儲層次中與L1Cache處于相同的層次。2008年6月21日98南京大學(xué)計算機(jī)系4.6.9寫緩存器(WriteBuffer)寫緩存器是一S3C44B0X處理器的寫緩存區(qū)由4個寫緩存寄存器構(gòu)成。每一個寫緩存寄存器包括一個32位數(shù)據(jù)字段,一個28位地址字段和一個2位狀態(tài)字段??梢酝ㄟ^指令對控制寄存器SYSCFG的WE位置1或者置0來使能或者禁能寫緩存器。參看下圖。2008年6月21日99南京大學(xué)計算機(jī)系S3C44B0X處理器的寫緩存區(qū)由4個寫緩存寄存器構(gòu)成。每一4.7ARM的異常中斷ARM異常與中斷不做嚴(yán)格意義上的區(qū)別ARM的中斷向量表內(nèi)存放的是響應(yīng)異常和中斷的轉(zhuǎn)移指令而不是中斷向量地址。在ARM處理器中,當(dāng)異常發(fā)生時,完成當(dāng)前指令后跳轉(zhuǎn)到相應(yīng)的異常中斷處理程序入口執(zhí)行異常中斷處理。異常處理完畢后返回原來的程序斷點繼續(xù)執(zhí)行原來的程序。2008年6月21日100南京大學(xué)計算機(jī)系4.7ARM的異常中斷ARM異常與中斷不做嚴(yán)格意義上的區(qū)異常中斷分類ARM異常按照起因的不同分為3類: ①指令執(zhí)行引起的直接異常軟件中斷、未定義指令和預(yù)取指令中止屬于這一類 ②指令執(zhí)行引起的間接異常數(shù)據(jù)中止(在讀取和存儲數(shù)據(jù)時的存儲器故障)屬于這一類。 ③外部產(chǎn)生的與指令流無關(guān)的異常復(fù)位、IRQ和FIQ屬于這一類。2008年6月21日101南京大學(xué)計算機(jī)系異常中斷分類ARM異常按照起因的不同分為3類:2008年6月ARM中斷向量表中斷向量表中存放了各個異常中斷以及處理程序的對應(yīng)關(guān)系。在ARM體系結(jié)構(gòu)中,異常中斷向量表的大小只有32個字節(jié)。其中,每個異常中斷向量占4個字節(jié)。系統(tǒng)初始化時,中斷向量表從0號存儲單元開始存放。2008年6月21日102南京大學(xué)計算機(jī)系A(chǔ)RM中斷向量表中斷向量表中存放了各個異常中斷以及處理程序的ARM中斷向量表(續(xù))中斷向量地址異常中斷類型異常中斷模式優(yōu)先級(6級最低)0x0復(fù)位管理模式,SVC10x4未定義指令未定義指令中止,UND60x8軟件中斷管理模式,SVC60xC指令預(yù)取中止中止模式,ABT50x10數(shù)據(jù)訪問中止中止模式,ABT20x14保留未使用未使用0x18外部中斷請求,IRQ外部中斷模式,IRQ40x1C快速中斷請求,F(xiàn)IQ快速中斷模式,F(xiàn)IQ32008年6月21日103南京大學(xué)計算機(jī)系A(chǔ)RM中斷向量表(續(xù))中斷向量異常中斷類型異常中斷模式優(yōu)先級ARM異常中斷響應(yīng)當(dāng)發(fā)生異常時,ARM處理器對異常中斷的響應(yīng)過程如下:①將CPSR的內(nèi)容保存到將要執(zhí)行的異常中斷模式的SPSR中。例如:如果異常類型是FIQ,則SPSR_FIQ=CPSR②設(shè)置當(dāng)前程序狀態(tài)寄存器CPSR中的模式字段位。③將異常發(fā)生時程序的下一條指令地址保存到新的異常模式的R14寄存器。注意:異常發(fā)生時異常模式R14的定義是PC-4。2008年6月21日104南京大學(xué)計算機(jī)系A(chǔ)RM異常中斷響應(yīng)當(dāng)發(fā)生異常時,ARM處理器對異常中斷的響應(yīng)ARM異常中斷響應(yīng)④強(qiáng)制對程序計數(shù)器賦值。使程序從異常所對應(yīng)的向量地址開始執(zhí)行中斷服
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 場地驗收合同范例
- 大樓商鋪轉(zhuǎn)租合同范例
- 2024年度XX環(huán)保工程承包合同
- 2024年建筑工程安全文明施工承諾協(xié)議
- 2024年度原材料采購合同(銑刨料)
- 代理店合同模板
- 2024年全新版家具定制購銷合同
- 分期車購車合同模板
- 辦事委托合同范例
- 外企員工聘用合同模板
- 汽車美容裝潢技術(shù)電子教案 2.2-汽車內(nèi)部清洗護(hù)理
- 職業(yè)教育國家在線課程申報書
- 國開2024年秋《機(jī)電控制工程基礎(chǔ)》形考任務(wù)2答案
- DL-T5434-2021電力建設(shè)工程監(jiān)理規(guī)范
- (高清版)TDT 1055-2019 第三次全國國土調(diào)查技術(shù)規(guī)程
- 自行招用保安員單位備案申請材料
- 正射數(shù)據(jù)處理操作步驟
- 彎管機(jī)系統(tǒng)設(shè)計
- 鄉(xiāng)鎮(zhèn)紀(jì)委書記個人三年工作總結(jié)
- 電氣控制柜出廠檢驗報告
- (完整)二年級乘除法豎式計算(2)
評論
0/150
提交評論