下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第二章 Cortex-M3處理器 Cortex-M3處理器基本結(jié)構(gòu) Cortex-M3中央內(nèi)核基于哈佛架構(gòu),指令和數(shù)據(jù)各使用一條總線(圖 2-1)。與Cortex-M3不同,ARM7系列處理器使用馮諾依曼架構(gòu),指令和數(shù)據(jù)共用信號(hào)總線以及存儲(chǔ)器。由于指令和數(shù)據(jù)可以從存儲(chǔ)器中同時(shí)讀取,所以Cortex-M3處理器對(duì)多個(gè)操作并行執(zhí)行,加快了應(yīng)用程序的執(zhí)行速度。圖 2-1 Cortex-M3處理器架構(gòu)Cortex-M3 處理器集成了內(nèi)核和高級(jí)系統(tǒng)外設(shè)的分級(jí)處理器 Cortex-M3 內(nèi)核哈佛體系結(jié)構(gòu)擁有分支預(yù)測(cè)功能的三級(jí)流水線 Thumb-2 指令集和傳統(tǒng)的 Thumb指令集帶有 硬件除法和 單信號(hào)周
2、期乘法的ALUCortex-M3 處理器Cortex-M3 內(nèi)核可配置的中斷控制器 總線矩陣先進(jìn)的調(diào)試組件 可選擇的 MPU & ETMCortex-M3的應(yīng)用,主要包括:價(jià)格敏感的設(shè)備通用MCU、智能玩具、個(gè)人電子設(shè)備小的核可以降低硅片面積緊密結(jié)合系統(tǒng)外設(shè)可縮小面積、降低開發(fā)成本Thumb-2代碼可減小指令存儲(chǔ)器達(dá)30%SWD允許使用較小的引腳數(shù)和封裝在ISR、Boot代碼中無需匯編代碼單周期的Read/Modify/Write,更緊湊的數(shù)據(jù)打包確定的中斷處理系統(tǒng)更新時(shí)的修補(bǔ)能力(ROM到Flash、SRAM)低功耗設(shè)備Zigbee、PAN(BlueTooth)、醫(yī)療電子設(shè)備低功耗內(nèi)核:0.
3、047mW/MHz(0.13um,ARM Metro Lab,50MHz)高級(jí)時(shí)鐘選通技術(shù)降低功耗集成的睡眠模式系統(tǒng)部件的功耗控制高效率允許較低的時(shí)鐘源快速完成任務(wù)、增加睡眠時(shí)間,降低總的功耗高性能設(shè)備超低價(jià)格手機(jī)、汽車應(yīng)用、大容量存儲(chǔ)設(shè)備;性能可達(dá)1.25 DMIPS/MHz執(zhí)行Thumb指令時(shí),比ARM7處理器性能高70%執(zhí)行ARM指令時(shí),比ARM7處理器性能高35%硬件除法更好的算法實(shí)現(xiàn)快速中斷處理可選的MPU針對(duì)特定應(yīng)用調(diào)試與跟蹤能力Cortex M3處理器結(jié)構(gòu)框透視圖 嵌套向量中斷控制器(NVIC) NVIC為低延遲實(shí)現(xiàn)異常處理提供了方便。主要有以下特征:可配置1240個(gè)外部中斷???/p>
4、配置優(yōu)先級(jí)位數(shù)38位。支持電平和脈沖(邊沿)中斷??梢詣?dòng)態(tài)重新分配中斷優(yōu)先級(jí)。優(yōu)先級(jí)分組。支持尾鏈(tail-chaining)中斷。進(jìn)入中斷時(shí),處理器狀態(tài)自動(dòng)保存,退出中斷時(shí)狀態(tài)自動(dòng)恢復(fù),無額外指令開銷 總線矩陣Cortex-M3處理器集成了一個(gè)AMBA AHB-Lite總線來連接系統(tǒng)外設(shè),并降低系統(tǒng)集成的復(fù)雜性??偩€矩陣支持不對(duì)齊的數(shù)據(jù)訪問,使不同的數(shù)據(jù)類型可以在存儲(chǔ)器中緊密銜接可顯著降低SRAM的需求和系統(tǒng)成本??偩€矩陣將處理器、調(diào)試接口連接到外部總線。 總線矩陣連接到以下外部總線:ICode總線。這是一條32位的AHB-Lite總線,主要用于從指令空間中取指和取向量。DCode總線。這
5、是一條32位的AHB-Lite總線,主要用于從指令空間的數(shù)據(jù)讀寫和調(diào)試訪問。系統(tǒng)總線。這是一條32位的AHB-Lite總線,主要用于從系統(tǒng)空間中取指、取向量、讀寫數(shù)據(jù)和調(diào)試訪問。PPB。這是一條32位的APB (v2.0)總線,主要用于從PPB空間讀寫數(shù)據(jù)和調(diào)試訪問。 調(diào)試接口硬件調(diào)試解決方案,通過一個(gè)傳統(tǒng)的JTAG口或一個(gè)適合小封裝器件的2線串行調(diào)試口(SWD),可以獲得很高的處理器系統(tǒng)可視度。對(duì)于系統(tǒng)跟蹤,處理器在數(shù)據(jù)觀察點(diǎn)基礎(chǔ)上集成了一個(gè)可選的ETM(嵌入式跟蹤宏單元),它可以被配置為特定的系統(tǒng)事件觸發(fā)。為了簡(jiǎn)化這些系統(tǒng)事件的處理,一個(gè)串行觀測(cè)器(Serial Wire Viewer,S
6、WV)可以通過一個(gè)引腳輸出標(biāo)準(zhǔn)的ASCII數(shù)據(jù)流。Flash修補(bǔ)技術(shù),使器件和系統(tǒng)開發(fā)者在調(diào)試或運(yùn)行過程中,可以修補(bǔ)從ROM到SRAM或Flash的代碼錯(cuò)誤,可避免昂貴的重定制 上圖向我們展示了設(shè)計(jì)的 RTL 層次。其中的兩條外設(shè)總線:一條72MHZ,一條36MHZ由于 ETM、TPIU、SW/JTAG-DP 和 ROM 表4個(gè)組件是可選的,或者它們的實(shí)現(xiàn)和使用具有靈活性,因此這 4 個(gè)組件位于Cortex-M3 處理器的外面。設(shè)計(jì)實(shí)現(xiàn)可能與圖中顯示的有所不同??赡艿南到y(tǒng)實(shí)現(xiàn)的選項(xiàng)見下面的 3 個(gè)部分:TPIU的實(shí)現(xiàn)選項(xiàng): 如果您的系統(tǒng)中有 ETM,則會(huì)含有 TPIU格式程序,否則就不包含該格
7、式程序。 一個(gè)多內(nèi)核的實(shí)現(xiàn)可使用單個(gè)或多個(gè) TPIU來跟蹤。 ARM TPIU模塊可以用兼容 TPIU的指定合作伙伴的 CoreSight 取代。 在生產(chǎn)設(shè)備中,TPIU可以移除。 注:如果將 TPIU移除,則 Cortex-M3 不具有跟蹤功能。 SW/JTAG-DP的實(shí)現(xiàn)選項(xiàng): 設(shè)計(jì)實(shí)現(xiàn)可以含有 SW-DP 或 JTAG-DP中的任一個(gè)或兩者都有。 ARM SW-DP 可以被兼容 SW-DP的指定合作伙伴的 CoreSight 取代。ARM JTAG-DP可以被兼容 JTAG-DP 的指定合作伙伴的 CoreSight 取代。 SW-DP 或 JTAG-DP可以包含指定合作伙伴的測(cè)試接口。
8、 ROM 表 如果系統(tǒng)中添加了附加的調(diào)試元件,則 ROM 存儲(chǔ)器表中的描述需進(jìn)行修改。寄存器Cortex-M3寄存器:13個(gè)通用寄存器(R0-R12)分組的堆棧指針SP鏈接寄存器R14程序計(jì)數(shù)器R15特殊用途程序狀態(tài)寄存器xPSR1、通用寄存器 通用目的寄存器R0-R12都是32位通用寄存器,用于數(shù)據(jù)操作。注意:絕大多數(shù)16位Thumb指令只能訪問R0-R7,而32位Thumb-2指令可以訪問所有寄存器。 復(fù)位后的初始值是不可預(yù)料的堆棧指針R13:Cortex-M3擁有兩個(gè)堆棧指針,然而它們是banked,因此任一時(shí)刻只能使用其中的一個(gè)。 主堆棧指針(MSP):復(fù)位后缺省使用的堆棧指針,用于操
9、作系統(tǒng)內(nèi)核以及異常處理例程(包括中斷服務(wù)例程) 進(jìn)程堆棧指針(PSP):由用戶的應(yīng)用程序代碼使用。 堆棧是一種存儲(chǔ)器的使用模型。它由一塊連續(xù)的內(nèi)存和一個(gè)棧頂指針組成,用于實(shí)現(xiàn)“后進(jìn)先出”的緩沖區(qū)。其最典型的應(yīng)用,就是在數(shù)據(jù)處理前先保存寄存器的值,再在處理任務(wù)完成后從中恢復(fù)先前保護(hù)的這些值。 堆棧指針用于訪問堆棧,并且PUSH指令和POP指令默認(rèn)使用SP。 在執(zhí)行PUSH和POP操作時(shí),通常被稱為SP的地址寄存器,會(huì)由硬件自動(dòng)調(diào)整它的值,以避免后續(xù)操作破壞先前的數(shù)據(jù)。連接寄存器R14:當(dāng)呼叫一個(gè)子程序時(shí),由R14存儲(chǔ)返回地址 程序計(jì)數(shù)寄存器R15:指向當(dāng)前的程序地址。如果修改它的值,就能改變程序
10、的執(zhí)行流2、特殊功能寄存器 Cortex-M3還在內(nèi)核水平上搭載了若干特殊功能寄存器,包括: 程序狀態(tài)字寄存器組(PSRs) 中斷屏蔽寄存器組(PRIMASK, FAULTMASK, BASEPRI) 控制寄存器(CONTROL) 特殊寄存器及其功能 通過MRS/MSR指令,這3個(gè)PSRs即可以單獨(dú)訪問,也可以組合訪問(2個(gè)組合,3個(gè)組合都可以)。當(dāng)使用三合一的方式訪問時(shí),應(yīng)使用名字“xPSR”或者“PSR”。應(yīng)用PSR應(yīng)用 PSR(APSR)包含條件代碼標(biāo)志。在進(jìn)入異常之前,Cortex-M3 處理器將條件代碼標(biāo)志保存在堆棧內(nèi)。您可以使用 MSR(2)和 MRS(2)指令來訪問 APSR。
11、APSR 的位分配如圖所示。應(yīng)用程序狀態(tài)寄存器的位分配其中:中斷 PSR 中斷 PSR(IPSR)包含當(dāng)前激活的異常的 ISR 編號(hào)。 IPSR 的位分配如圖所示。 中斷程序狀態(tài)寄存器的位分配執(zhí)行 PSR 執(zhí)行 PSR(EPSR)包含兩個(gè)重疊的區(qū)域: 可中斷-可繼續(xù)(interruptible-continuable)指令(ICI)區(qū),用于被打斷的多寄存器加載和存儲(chǔ)指令。用于 If-Then(IT)指令的執(zhí)行狀態(tài)區(qū),以及 T位(Thumb 狀態(tài)位) ??芍袛?可繼續(xù)指令(ICI)區(qū) 多寄存器加載(LDM)和存儲(chǔ)(STM)操作是可中斷的。EPSR 的 ICI區(qū)用來保存從產(chǎn)生中斷的點(diǎn)繼續(xù)執(zhí)行多寄存
12、器加載和存儲(chǔ)操作時(shí)所必需的信息。 If-then狀態(tài)區(qū) EPSR 的 IT 區(qū)包含了 If-Then 指令的執(zhí)行狀態(tài)位。注:ICI 區(qū)和 IT 區(qū)是重疊的,因此,If-Then 模塊內(nèi)的多寄存器加載或存儲(chǔ)操作不具有可中斷-可繼續(xù)功能。 EPSR 的位分配如圖所示。不能直接訪問 EPSR,若想修改 EPSR 必須發(fā)生以下兩個(gè)事件之一: 在執(zhí)行 LDM或 STM 指令時(shí)產(chǎn)生一次中斷 執(zhí)行 If-Then指令 下表描述了 EPSR 的位分配。 控制寄存器(CONTROL) 控制寄存器有兩個(gè)用途:一用于定義特權(quán)級(jí)別,二用于選擇當(dāng)前使用哪個(gè)堆棧指針。由兩個(gè)比特來行使這兩個(gè)職能。 Cortex-M3的CO
13、NTROL寄存器CONTROL1 在Cortex-M3的 handler模式中,CONTROL1總是 0。在線程模式中則可以為 0或1。 因此,僅當(dāng)處于特權(quán)級(jí)的線程模式下,此位才可寫,其它場(chǎng)合下禁止寫此位。改變處理器的模式也有其它的方式:在異常返回時(shí),通過修改 LR 的位 2,也能實(shí)現(xiàn)模式切換。這是 LR 在異常返回時(shí)的特殊用法,顛覆了對(duì) LR 的傳統(tǒng)使用方式,將后面章節(jié)展開論述。 CONTROL0 僅當(dāng)在特權(quán)級(jí)下操作時(shí)才允許寫該位。一旦進(jìn)入了用戶級(jí),唯一返回特權(quán)級(jí)的途徑,就是觸發(fā)一個(gè)(軟)中斷,再由服務(wù)例程改寫該位存儲(chǔ)格式Cortex-M3 處理器將存儲(chǔ)器看作從 0開始向上編號(hào)的字節(jié)的線性集
14、合。例如: 字節(jié) 0-3 存放第一個(gè)被保存的字 字節(jié) 4-7 存放第二個(gè)被保存的字Cortex-M3 處理器能夠以小端格式或大端格式訪問存儲(chǔ)器中的數(shù)據(jù)字,而訪問代碼時(shí)始終使用小端格式。注意: 小端格式是 ARM 處理器默認(rèn)的存儲(chǔ)器格式。 在小端格式中,一個(gè)字中最低地址的字節(jié)為該字的最低有效字節(jié),最高地址的字節(jié)為最高有效字節(jié)。存儲(chǔ)器系統(tǒng)地址 0 的字節(jié)與數(shù)據(jù)線 7-0 相連。 在大端格式中,一個(gè)字中最低地址的字節(jié)為該字的最高有效字節(jié),而最高地址的字節(jié)為最低有效字節(jié)。存儲(chǔ)器系統(tǒng)地址 0的字節(jié)與數(shù)據(jù)線 31-24 相連。Cortex-M3 處理器有一個(gè)配置管腳 BIGEND,您能夠使用它來選擇小端格
15、式或 BE-8 大端格式。該管腳在復(fù)位時(shí)被采樣,結(jié)束復(fù)位后存儲(chǔ)器格式不能修改。 注意: 對(duì)系統(tǒng)控制空間(SCS)的訪問始終采用小端格式。 在非復(fù)位的狀態(tài)下試圖改變存儲(chǔ)器格式的操作將被忽略。 PPB 空間只能為小端格式,BIGEND 的設(shè)置無效。小端數(shù)據(jù)格式大端數(shù)據(jù)格式指令集Cortex-M3 處理器不支持 ARM 指令。 Cortex-M3 處理器支持所有的 ARMv6 Thumb 指令,下表 2-4 中列出的除外。 Cortex-M3 支持的 Thumb-2 指令續(xù)上表(1)續(xù)上表(2)續(xù)上表(2)存儲(chǔ)器映射Cortex-M3 處理器只有一個(gè)單一固定的存儲(chǔ)器映射。這一點(diǎn)極大地方便了軟件在各種
16、CM3單片機(jī)間的移植。如各款CM3單片機(jī)的NVIC和MPU都在相同的位置布設(shè)寄存器,使得它們變得與具體器件無關(guān)。雖然CM3定出的條條框框是粗線條的,但它依然允許芯片制造商靈活細(xì)膩地分配存儲(chǔ)器空間,以制造出各具特色的單片機(jī)產(chǎn)品。 存儲(chǔ)器組織存儲(chǔ)空間的一些位置用于調(diào)試組件等私有外設(shè),這個(gè)地址段被稱為“私有外設(shè)區(qū)”。私有外設(shè)區(qū)的組件包括:閃存地址重載及斷點(diǎn)單元(FPB) 數(shù)據(jù)觀察點(diǎn)單元(DWT) 儀器化跟蹤宏單元(ITM) 嵌入式跟蹤宏單元(ETM) 跟蹤端口接口單元(TPIU) lROM表 CM3的地址空間是4GB, 程序可以在代碼區(qū),內(nèi)部SRAM區(qū)以及外部RAM區(qū)中執(zhí)行。但是因?yàn)橹噶羁偩€與數(shù)據(jù)總
17、線是分開的,最理想的是把程序放到代碼區(qū),從而使取指和數(shù)據(jù)訪問各自使用自總線 具體4GB的粗線條劃分如下圖:內(nèi)部SRAM區(qū)的大小是512MB,用于讓芯片制造商連接片上的SRAM,這個(gè)區(qū)通過系統(tǒng)總線來訪問。在這個(gè)區(qū)的下部,有一個(gè)1MB的區(qū)間,被稱為“位帶區(qū)”。該位帶區(qū)還有一個(gè)對(duì)應(yīng)的32MB的 “位帶別名(alias)區(qū)”,容納了8M個(gè)“位變量”(對(duì)比8051的只有128個(gè)位變量)。位帶區(qū)對(duì)應(yīng)的是最低的1MB地址范圍,而位帶別名區(qū)里面的每個(gè)字對(duì)應(yīng)位帶區(qū)的一個(gè)比特。位帶操作只適用于數(shù)據(jù)訪問,不適用于取指。通過位帶的功能,可以把多個(gè)布爾型數(shù)據(jù)打包在單一的字中,卻依然可以從位帶別名區(qū)中,像訪問普通內(nèi)存一樣
18、地使用它們。位帶別名區(qū)中的訪問操作是原子的,消滅了傳統(tǒng)的“讀改寫”三步曲。位帶操作的細(xì)節(jié)待會(huì)還要講到。 地址空間的另一個(gè)512MB范圍由片上外設(shè)(的寄存器)使用。這個(gè)區(qū)中也有一條32MB的位帶別名,以便于快捷地訪問外設(shè)寄存器,用法與內(nèi)部SRAM區(qū)中的位帶相同。如可以方便地訪問各種控制位和狀態(tài)位。要注意的是,外設(shè)區(qū)內(nèi)不允許執(zhí)行指令。 還有兩個(gè)1GB的范圍,分別用于連接外部RAM和外部設(shè)備,它們之中沒有位帶。兩者的區(qū)別在于外部RAM區(qū)允許執(zhí)行指令,而外部設(shè)備區(qū)則不允許。 最后還剩下0.5GB的隱秘地帶,CM3內(nèi)核的閨房就在這里面,包括了系統(tǒng)級(jí)組件,內(nèi)部私有外設(shè)總線s,外部私有外設(shè)總線s,以及由提供
19、者定義的系統(tǒng)外設(shè)。私有外設(shè)總線有兩條: AHB私有外設(shè)總線,只用于CM3內(nèi)部的AHB外設(shè),它們是:NVIC, FPB, DWT和ITM。APB私有外設(shè)總線,既用于CM3內(nèi)部的APB設(shè)備,也用于外部設(shè)備( “外部”是對(duì)內(nèi)核而言)。CM3允許器件制造商再添加一些片上APB外設(shè)到APB私有總線上,它們通過APB接口來訪問。 NVIC所處的區(qū)域叫做“系統(tǒng)控制空間(SCS)”,在SCS里的除了NVIC外,還有SysTick、MPU以及代碼調(diào)試控制所用的寄存器,如圖所示:位段支持了位段操作后,可以使用普通的加載/存儲(chǔ)指令來對(duì)單一的比特進(jìn)行讀寫。在CM3中,有兩個(gè)區(qū)中實(shí)現(xiàn)了位段。一是SRAM區(qū)的最低1MB范
20、圍,二則是片內(nèi)外設(shè)區(qū)的最低1MB范圍。這兩個(gè)位段中的地址除了可以像普通的RAM一樣使用外,它們還都有自己的“位帶別名區(qū)”,位帶別名區(qū)把每個(gè)比特膨脹成一個(gè)32位的字。當(dāng)通過位帶別名區(qū)訪問這些字時(shí),就可以達(dá)到訪問原始比特的目的。映射公式顯示如何將別名區(qū)中的字與 bit-band 區(qū)中的對(duì)應(yīng)位或目標(biāo)位關(guān)聯(lián)。映射公式如下:bit_word_offset=(byte_offset32)+(bit_number4)bit_word_addr=bit_band_base+bit_word_offset這里:Bit_word_offset 為bit-band 存儲(chǔ)區(qū)中的目標(biāo)位的位置。Bit_word_addr
21、 為別名存儲(chǔ)區(qū)中映射為目標(biāo)位的字的地址。Bit_band_base 是別名區(qū)的開始地址。Bit_offset 為bit-band 區(qū)中包含目標(biāo)位的字節(jié)的編號(hào)。Bit_number 為目標(biāo)位的位位置(0-7) 上式中,“*4”表示一個(gè)字為4個(gè)字節(jié),“*32”表示一個(gè)字節(jié)中有32個(gè)比特。位段區(qū)與位段別名區(qū)的膨脹關(guān)系A(chǔ)圖位段區(qū)與位段別名區(qū)的膨脹關(guān)系B圖上圖圖顯示了SRAM bit-band 別名區(qū)和SRAMbit-band 區(qū)之間的bit-band 映射的例子:地址 0 x23FFFFE0 的別名字映射為0 x200FFFFC 的bit-band 字節(jié)的位0:0 x23FFFFE0=0 x22000
22、000+(0 xFFFFF*32)+0*4地址0 x23FFFFEC 的別名字映射為0 x200FFFFC 的bit-band 字節(jié)的位7:0 x23FFFFEC=0 x22000000+(0 xFFFFF*32)+7*4地址0 x22000000 的別名字映射為0 x20000000 的bit-band 字節(jié)的位0:0 x22000000=0 x22000000+(0*32)+0*4地址0 x220001C 的別名字映射為0 x20000000 的bit-band 字節(jié)的位0:0 x2200001C=0 x22000000+(0*32)+7*4例:欲設(shè)置地址0 x2000_0000中的比特2
23、,則使用位帶操作的設(shè)置過程如下圖所示:寫數(shù)據(jù)到位段別名區(qū) 從位段別名區(qū)中讀取比特存儲(chǔ)器訪問屬性CM3在定義了存儲(chǔ)器映射之外,還為存儲(chǔ)器的訪問規(guī)定了4種屬性,分別是: 可否緩沖(Bufferable) 可否緩存(Cacheable) 可否執(zhí)行(Executable) 可否共享(Sharable) 2.6異常異常是指由于執(zhí)行指令時(shí)的一個(gè)錯(cuò)誤條件而產(chǎn)生的故障。出現(xiàn)故障后可以同步或不同步地向引起故障的指令報(bào)告,但通常還是會(huì)同步報(bào)告。不精確的總線故障是ARMv7-M 性能分析(performance profiling)支持的一種不同步故障。同步故障總是和引起該故障的指令一同被報(bào)告。不同步故障不能保證與
24、引起該故障的指令相關(guān)的方式報(bào)告。異常模型Cortex-M3 處理器和嵌套向量中斷控制器(NVIC)對(duì)所有異常按優(yōu)先級(jí)進(jìn)行排序并處理。所有異常都在處理模式中操作。出現(xiàn)異常時(shí),自動(dòng)將處理器狀態(tài)保存到堆棧中,并在中斷服務(wù)程序(ISR)結(jié)束時(shí)自動(dòng)從堆棧中恢復(fù)。在狀態(tài)保存的同時(shí)取出向量快速地進(jìn)入中斷。處理器支持末尾連鎖(tail-chaining)中斷技術(shù),它能夠在沒有多余的狀態(tài)保存和恢復(fù)指令的情況下執(zhí)行背對(duì)背中斷(back-to-back interrupt)。異常類型異常處理占先:新的異常比當(dāng)前的異?;蚓€程的優(yōu)先級(jí)更高并打斷當(dāng)前的流程,這是對(duì)掛起中斷的響應(yīng)。如果掛起中斷的優(yōu)先級(jí)比當(dāng)前的ISR 或線程
25、的優(yōu)先級(jí)更高,則進(jìn)入掛起中斷的ISR。如果一個(gè)ISR 搶占了另一個(gè)ISR,則產(chǎn)生了中斷嵌套。在進(jìn)入異常時(shí),處理器自動(dòng)保存其狀態(tài),將狀態(tài)壓棧。與此同時(shí),取出相應(yīng)的中斷向量。當(dāng)處理器狀態(tài)被保存并且ISR 的第一條指令進(jìn)入處理器流水線的執(zhí)行階段時(shí),開始執(zhí)行ISR 的第一條指令。狀態(tài)保存在系統(tǒng)總線上執(zhí)行。取向量操作根據(jù)向量表所在位置可以在系統(tǒng)總線或DCode 總線上執(zhí)行。末尾連鎖末尾連鎖(Tail-chain)是處理器用來加速中斷響應(yīng)的一種機(jī)制。在結(jié)束ISR 時(shí),如果存在一個(gè)掛起中斷,其優(yōu)先級(jí)高于正在返回的ISR 或線程,那么就會(huì)跳過出棧操作,轉(zhuǎn)而將控制權(quán)讓給新的ISR。返回在沒有掛起(pending
26、)異?;驔]有比被壓棧的ISR 優(yōu)先級(jí)更高的掛起異常時(shí),處理器執(zhí)行出棧操作,并返回到被壓棧的ISR 或線程模式。在響應(yīng) ISR 之后,處理器通過出棧操作自動(dòng)將處理器狀態(tài)恢復(fù)為進(jìn)入ISR 之前的狀態(tài)。如果在狀態(tài)恢復(fù)過程中出現(xiàn)一個(gè)新的中斷,并且該中斷的優(yōu)先級(jí)比正在返回的ISR 或線程更高,則處理器放棄狀態(tài)恢復(fù)操作并將新的中斷作為tail-chain 來處理。遲來遲來是處理器用來加速占先的一種機(jī)制。如果在保存前一個(gè)占先的狀態(tài)時(shí)出現(xiàn)一個(gè)優(yōu)先級(jí)更高的中斷,則處理器轉(zhuǎn)去處理優(yōu)先級(jí)更高的中斷,開始該中斷的取向量操作。狀態(tài)保存不會(huì)受到遲來的影響。因?yàn)楸槐4娴臓顟B(tài)對(duì)于兩個(gè)中斷都是一樣的,狀態(tài)保存繼續(xù)執(zhí)行不會(huì)被打斷。處理器對(duì)遲來中斷進(jìn)行管理,直到ISR 的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年手機(jī)電視行業(yè)當(dāng)前發(fā)展現(xiàn)狀及增長(zhǎng)策略研究報(bào)告
- 2025年礦業(yè)開采模塊項(xiàng)目提案報(bào)告模范
- 發(fā)言稿 感謝 感動(dòng) 感恩
- 童謠兒歌教學(xué)課件
- 探索的插畫課件
- 時(shí)序InSAR數(shù)據(jù)處理培訓(xùn)課件
- 二零二五年度離婚股票處理及市場(chǎng)波動(dòng)風(fēng)險(xiǎn)規(guī)避合同
- 二零二五年度健康體檢服務(wù)合同
- 2025版果園農(nóng)業(yè)科技研發(fā)與應(yīng)用承包合同范本
- 二零二五年度離婚撫養(yǎng)協(xié)議范本(含子女全面發(fā)展保障)
- 福建事業(yè)單位考試反腐倡廉試題及答案
- TCESE 3-2024 青少年人工智能技術(shù)水平測(cè)試技術(shù)技能標(biāo)準(zhǔn)
- 2025年中國(guó)參茸滋補(bǔ)品行業(yè)市場(chǎng)調(diào)查研究及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 意向房屋買賣合同書
- DB52-T 1626-2021 水利工程調(diào)整概算報(bào)告編制導(dǎo)則
- 輸液泵與微量泵的使用
- 2025年一建市政記憶口訣
- GB/T 1346-2024水泥標(biāo)準(zhǔn)稠度用水量、凝結(jié)時(shí)間與安定性檢驗(yàn)方法
- 川味創(chuàng)新菜品的研發(fā)與市場(chǎng)推廣
- 《醫(yī)療損害糾紛的責(zé)任認(rèn)定研究》3500字(論文)
- 如何提高醫(yī)藥行業(yè)客戶服務(wù)水平與滿意度
評(píng)論
0/150
提交評(píng)論