




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
不同CPU中斷技術(shù)對比專題研究下面是本小組對不同CPU中斷技術(shù)的研究列表。CPU類型包括:ARM,8051和x86。比較的方向包括:中斷源中斷申請方式、中斷優(yōu)先級管理方式、中斷的處理過程、中斷向量等。ARM8051x86中斷源中斷申請方式中斷源中斷申請方式續(xù)(1)中斷的狀態(tài)有3種:Inactive(不激活):沒有被激活或掛起的中斷Pending(掛起):這個中斷可以被硬件識別或是由軟件產(chǎn)生的,正處于等待處理器處理。Active(激活):這個中斷被處理器從通用中斷控制器中的中斷源中識別了出來,并且正在處理這個中斷,且沒有處理完成。Activeandpending(激活和掛起):處理器正在處理某個中斷,且通用中斷控制器有一個掛起的中斷,這兩個中斷是屬于同一個中斷源的。(2)內(nèi)部中斷寄存器中斷控制器中有5個中斷控制寄存器。各個中斷控制寄存器及其每一位的具體用法,限于篇幅,不在表格里闡述,詳見附錄1。(3)外部中斷寄存器a.外部中斷控制寄存器(EXTINTn)arm920t有24個外部中斷有幾種中斷觸發(fā)方式,EXTINTn配置外部中斷的觸發(fā)類型是電平觸發(fā)、邊沿觸發(fā)及觸發(fā)的極性。8個外部中斷可以由多種信號觸發(fā)方式所請求。EXTINT寄存器為外部中斷配制信號觸發(fā)方式為電平觸發(fā)或邊沿觸發(fā),同時還配制信號觸發(fā)極性。為了確認電平中斷,由于噪聲濾波必須保持EXTINTn引腳上有效邏輯電平至少40ns。b.外部中斷屏蔽寄存器(EINTMASK)EXTMASK[23:4]分別對應(yīng)外部中斷23~4,等于1,對應(yīng)的中斷被屏蔽;等于0,允許外部中斷。EXTMASK[3:0]保留。c.外部中斷掛起寄存器(EINTPEND)中斷掛起寄存器INTPND共有32位,前4位保留(因為EINT0—EINT3對應(yīng)的掛起位在寄存器INTPND中),4~23位對應(yīng)著一個中斷源,當(dāng)中斷請求被響應(yīng)的時候,相應(yīng)的位會被設(shè)置為1。在中斷服務(wù)子程序中可以通過判斷EINTPND來判斷哪個中斷在提起申請。8051有5個中斷源:2個外部中斷INT0、INT1;3個內(nèi)部中斷T0、T1、串行口。以及2個優(yōu)先級:高級中斷和低級中斷,由用戶定義。中斷源入口地址INT00003HT0000BHINT10013HT1001BH串行口0023H(1)中斷請求:每一個中斷設(shè)置一個中斷請求觸發(fā)器,記錄中斷源的請求標(biāo)志。當(dāng)中斷源有請求時,該觸發(fā)器置“1”;CPU響應(yīng)中斷請求后,該觸發(fā)器清除。(2)中斷識別:不同的計算機系統(tǒng)中,中斷源的識別方式不同。例如:在Intel80X86CPU系統(tǒng)中,采用向量中斷的方式來識別中斷源。中斷事件在提出中斷請求的同時,通過硬件向CPU提供中斷向量(即中斷服務(wù)程序的入口地址)。每個外設(shè)都預(yù)先指定一個中斷向量號,當(dāng)CPU識別出某個設(shè)備請求中斷并予以響應(yīng)時,中斷控制邏輯就將請求設(shè)備的中斷向量號送給CPU,由中斷向量號自動地引導(dǎo)到中斷服務(wù)程序。中斷優(yōu)先級管理方式ARM處理器中有7種類型的異常,按優(yōu)先級從高到低的排列如下:復(fù)位異常(Reset)、數(shù)據(jù)異常(DataAbort)、快速中斷異常(FIQ)、外部中斷異常(IRQ)、預(yù)取異常(PrefetchAbort)、軟件中斷(SWI)、未定義指令異常(Undefinedinstruction)。關(guān)于各種異常的具體介紹,詳見附錄2。1.低優(yōu)先級中斷請求不能打斷高優(yōu)先級的中斷服務(wù);但高優(yōu)先級中斷請求可以打斷低優(yōu)先級的中斷服務(wù),從而實現(xiàn)中斷嵌套。2.如果一個中斷請求已被響應(yīng),則同級的其他中斷響應(yīng)將被禁止。3.如果同級的多個請求同時出現(xiàn),則按CPU查詢次序確定哪個中斷請求被響應(yīng)。其查詢次序為:外部中斷0;定時中斷0;外部中斷1;定時中斷1;串行中斷。當(dāng)CPU接收到中斷請求信號后,執(zhí)行判優(yōu)查詢程序,逐個檢測外設(shè)的中斷請求標(biāo)志位狀態(tài),檢測的順序是按優(yōu)先級的大小排列的,最先檢測到的中斷源具有最高的優(yōu)先級。中斷的處理過程中斷的處理過程續(xù)當(dāng)異常中斷發(fā)生時,系統(tǒng)執(zhí)行完當(dāng)前指令后,將跳轉(zhuǎn)到相應(yīng)的異常中斷處理程序處執(zhí)行。當(dāng)異常中斷處理程序執(zhí)行完成后,程序返回到發(fā)生中斷的指令的下一條指令處執(zhí)行。在進入異常中斷處理程序時,要保存被中斷的程序的執(zhí)行現(xiàn)場。從異常中斷處理程序退出時,要恢復(fù)被中斷的程序的執(zhí)行現(xiàn)場。ARM體系中通常在存儲地址的低端固化了一個32字節(jié)的硬件中斷向量表,用來指定各異常中斷及其處理程序的對應(yīng)關(guān)系。當(dāng)一個異常出現(xiàn)以后,ARM微處理器會執(zhí)行以下幾步操作:1)保存處理器當(dāng)前狀態(tài)、中斷屏蔽位以及各條件標(biāo)志位;設(shè)置當(dāng)前程序狀態(tài)寄存器CPSR中相應(yīng)的位;將寄存器lr_mode設(shè)置成返回地址;將程序計數(shù)器(PC)值設(shè)置成該異常中斷的中斷向量地址,從而跳轉(zhuǎn)到相應(yīng)的異常中斷處理程序處執(zhí)行。在接收到中斷請求以后,ARM處理器內(nèi)核會自動執(zhí)行以上四步,程序計數(shù)器PC總是跳轉(zhuǎn)到相應(yīng)的固定地址。從異常中斷處理程序中返回包括下面兩個基本操作:恢復(fù)被屏蔽的程序的處理器狀態(tài);返回到發(fā)生異常中斷的指令的下一條指令處繼續(xù)執(zhí)行。當(dāng)異常中斷發(fā)生時,程序計數(shù)器PC所指的位置對于各種不同的異常中斷是不同的,同樣,返回地址對于各種不同的異常中斷也是不同的。例外的是,復(fù)位異常中斷處理程序不需要返回,因為整個應(yīng)用系統(tǒng)是從復(fù)位異常中斷處理程序開始執(zhí)行的。1.中斷源提出申請,并建立相應(yīng)的中斷標(biāo)志(由硬件置位標(biāo)志位);2.CPU結(jié)束當(dāng)前指令,響應(yīng)該中斷申請,同時把主程序斷點處地址(程序計數(shù)器PC當(dāng)前值)壓入堆棧,即保護斷點;3.保護現(xiàn)場。把斷點處的有關(guān)信息(如工作寄存器、累加器、標(biāo)志位的內(nèi)容),壓入堆棧;執(zhí)行中斷服務(wù)程序;4.恢復(fù)現(xiàn)場。把保存的現(xiàn)場內(nèi)容從堆棧彈出,以恢復(fù)寄存器和存儲單元的原有內(nèi)容;5.返回主程序(或調(diào)用程序),執(zhí)行中斷返回指令,把斷點處地址從棧頂彈出,從斷點處繼續(xù)執(zhí)行主程序(或調(diào)用程序)。然而,中斷響應(yīng)后,如果不及時清除中斷請求標(biāo)志,會引起中斷的混亂。下面按中斷請求的類型說明中斷請求的撤除方法。(1)定時中斷由硬件自動撤除定時中斷響應(yīng)后,硬件自動把標(biāo)志位(TFx)清零。(2)外部中斷的自動與強制撤除若外部中斷以脈沖方式觸發(fā),則由硬件自動地把標(biāo)志位(IEx)清零。若以電平方式觸發(fā),則需由外部電路和軟件配合撤除。(3)串行中斷軟件撤除串行中斷的標(biāo)志位是TI和RI,但對這兩個中斷標(biāo)志位不進行自動清零。因為在中斷響應(yīng)后,還需測試這兩個標(biāo)志位的狀態(tài),以判定是接收操作還是發(fā)送操作,然后才能清除。所以串行中斷請求的撤除應(yīng)使用軟件方法。即:CLRTI;TI0CLRRI;RI0通常由中斷申請、中斷響應(yīng)、中斷處理、中斷返回四個過程完成。1.中斷申請:當(dāng)外設(shè)需要中斷服務(wù)時,由硬件產(chǎn)生一個中斷請求信號INTR發(fā)送給CPU;CPU在當(dāng)前指令結(jié)束時檢測INTR引腳,判斷是否有中斷請求。2.中斷響應(yīng)當(dāng)檢測到有中斷請求且IF=1時,總線周期信號M/IOD/CW/R為000,通過總線控制邏輯發(fā)中斷響應(yīng)信號INTA給中斷請求設(shè)備表示應(yīng)答;中斷請求設(shè)備將中斷號送上數(shù)據(jù)總線;系統(tǒng)自動進入中斷響應(yīng)周期,由硬件完成關(guān)中斷、保存斷點、取中斷服務(wù)的入口地址(N*4)等一系列操作,而后轉(zhuǎn)向中斷服務(wù)程序執(zhí)行中斷處理。3.中斷處理執(zhí)行中斷服務(wù)程序中規(guī)定的操作。4.中斷返回將壓棧的斷點從堆棧中彈出,開中斷,CPU轉(zhuǎn)向被中斷的主程序繼續(xù)執(zhí)行。中斷向量復(fù)位異常FFFF000000000000未定義指令異常FFFF000400000004軟件中斷FFFF000800000008預(yù)取異常FFFF000C0000000C數(shù)據(jù)異常FFFF001000000010外部中斷異常FFFF001800000018快速中斷異常FFFF001C0000001C與中斷控制有關(guān)的寄存器有4個:TCON:定時控制寄存器SCON:串行口控制寄存器IE:中斷允許寄存器IP:中斷優(yōu)先級寄存器限于表格篇幅,有關(guān)8051中斷控制相關(guān)寄存器的詳細說明,詳見附錄3。有關(guān)8051中斷管理主程序,詳見附錄4。中斷矢量表是存放中斷服務(wù)程序入口地址的存儲空間。實模式下,存放于存儲器的低端000H--3FFH,共1K字節(jié),每一個中斷號占據(jù)4字節(jié)的空間,低2字節(jié)存放對應(yīng)中斷入口子程序的偏移地址,高2字節(jié)存放對應(yīng)中斷入口子程序的段基址。
保護模式下,除了2字節(jié)的段描述符,偏移量用4字節(jié)表示,因此中斷向量表中的表項由8字節(jié)組成,中斷向量表也稱中斷描述符表,可存放于存儲器的任意位置,由中斷描述符表寄存器IDTR標(biāo)識其在物理存儲器中的位置。附錄1ARM內(nèi)部中斷寄存器詳解中斷控制器中有5個中斷控制寄存器。各個中斷控制寄存器及其每一位的具體用法,限于篇幅,不在表格里闡述,詳見附錄1。a.源掛起寄存器,SOURCEPENDING(SRCPND)REGISTER中斷控制寄存器INTCON共有32位,每一位對應(yīng)著一個中斷源,當(dāng)中斷源發(fā)出中斷請求的時候,就會置位源掛起寄存器的相應(yīng)位。反之,中斷的掛起寄存器的值為0。該寄存器中的每一位對應(yīng)特定的中斷源,當(dāng)該位的值為:0,表示這個中斷源中沒有中斷被請求;1,表示該中斷源中有中斷被請求。b.中斷模式寄存器,INTERRUPTMODE(INTMOD)REGISTER中斷模式寄存器INTMOD共有32位,每一位對應(yīng)著一個中斷源,當(dāng)中斷源的模式位設(shè)置為1時,對應(yīng)的中斷會由ARM920T內(nèi)核以FIQ模式來處理。相反,當(dāng)模式位設(shè)置為0時,中斷會以IRQ模式來處理。默認為IRQ模式。(注意:如果中斷模式為FIQ模式,INTPND和INTOFFSET寄存器是無效的,也就是說,這兩個寄存器只在IRQ模式下有效。)該寄存器中的每一位對應(yīng)特定的中斷源。當(dāng)該位的值為:0,表示這個中斷源中的中斷為IRQ模式;1,表示該中斷源中的中斷為FIQ模式。c.中斷屏蔽寄存器,INTERRUPTMASK(INTMSK)REGISTER這個寄存器有32位,分別對應(yīng)一個中斷源。當(dāng)中斷源的屏蔽位設(shè)置為1時,CPU不響應(yīng)該中斷源的中斷請求,反之,等于0時CPU能響應(yīng)該中斷源的中斷請求。該寄存器中的每一位對應(yīng)特定的中斷源,當(dāng)該位的值為:0,表示這個中斷源沒有被屏蔽,其中的中斷可以被響應(yīng);1,表示該中斷源被屏蔽,該中斷源中的中斷不可以被響應(yīng)。d.中斷優(yōu)先權(quán)寄存器,PRIORITYREGISTER(PRIORITY)下面以CPUarm920t為例,其優(yōu)先級判斷分為兩級。①ARBITER6所控制的REQ0,1,2,3,4,5實際上對應(yīng)ARBITER0,1,2,3,4,5②REQ0在任何情況下具有最高優(yōu)先級,REQ5具有最低優(yōu)先級;對ARBITER1-4的仲裁組來說(仲裁組組中的不同的中斷),在任何情況下:對應(yīng)的仲裁組中的中斷REQ0具有最高優(yōu)先級,中斷REQ5具有最低優(yōu)先級,而ARBITER0,ARBITER5仲裁組中并沒有中REQ0,REQ5。對ARBITER6仲裁組來說(不同的中斷仲裁組),在任何情況下:ARBITER0具有最高優(yōu)先級,即仲裁組中的中斷優(yōu)先級是最高的,比別的仲裁組中的中斷優(yōu)先級都要高。ARBITER5具有最低優(yōu)先級,同理。e.中斷掛起寄存器,INTERRUPTPENDING(INTPND)REGISTER中斷掛起寄存器INTPND共有32位,每一位對應(yīng)著一個中斷源,當(dāng)中斷請求被響應(yīng)的時候,相應(yīng)的位會被設(shè)置為1。在某一時刻只有一個位能為1,因此在中斷服務(wù)子程序中可以通過判斷INTPND來判斷哪個中斷正在被響應(yīng),在中斷處理函數(shù)退出前,需要清除源掛起寄存器中對應(yīng)的位,以及中斷掛起寄存器中對應(yīng)的位。附錄2ARM處理器的中斷異常詳解1.復(fù)位異常當(dāng)處理器的復(fù)位引腳有效時,系統(tǒng)產(chǎn)生復(fù)位異常中斷,程序跳轉(zhuǎn)到復(fù)位異常中斷處理程序處執(zhí)行。復(fù)位異常中斷通常用在下面兩種情況下。*系統(tǒng)上電。*系統(tǒng)復(fù)位。復(fù)位異常中斷處理程序的主要功能:*設(shè)置異常中斷向量表。*初始化數(shù)據(jù)棧和寄存器。*初始化存儲系統(tǒng),如系統(tǒng)中的MMU等。*初始化關(guān)鍵的I/O設(shè)備。*使能中斷。*處理器切換到合適的模式。*初始化C變量,跳轉(zhuǎn)到應(yīng)用程序執(zhí)行。2.未定義指令異常當(dāng)ARM處理器執(zhí)行協(xié)處理器指令時,它必須等待一個外部協(xié)處理器應(yīng)答后,才能真正執(zhí)行這條指令。若協(xié)處理器沒有響應(yīng),則發(fā)生未定義指令異常。3.軟中斷SWI軟中斷異常發(fā)生時,處理器進入特權(quán)模式,執(zhí)行一些特權(quán)模式下的操作系統(tǒng)功能。4.預(yù)取指令異常預(yù)取指令異常是由系統(tǒng)存儲器報告的。當(dāng)處理器試圖去取一條被標(biāo)記為預(yù)取無效的指令時,發(fā)生預(yù)取異常。5.?dāng)?shù)據(jù)訪問中止異常數(shù)據(jù)訪問中止異常是由存儲器發(fā)出數(shù)據(jù)中止信號,它由存儲器訪問指令Load/Store產(chǎn)生。當(dāng)數(shù)據(jù)訪問指令的目標(biāo)地址不存在或者該地址不允許當(dāng)前指令訪問時,處理器產(chǎn)生數(shù)據(jù)訪問中止異常。6.外部中斷IRQ當(dāng)處理器的外部中斷請求引腳有效,而且CPSR寄存器的I控制位被清除時,處理器產(chǎn)生外部中斷IRQ異常。系統(tǒng)中各外部設(shè)備通常通過該異常中斷請求處理器服務(wù)。7.快速中斷FIQ當(dāng)處理器的快速中斷請求引腳有效且CPSR寄存器的F控制位被清除時,處理器產(chǎn)生快速中斷請求FIQ異常。附錄38051中斷控制相關(guān)寄存器的詳細說明(1)定時控制寄存器(TCON)TF1TR1TF0TR0IE1IT1IE0IT0IT0(IT1):外中斷請求信號方式控制位IT0(IT1)=1,脈沖方式(后沿負跳變有效);IT0(IT1)=0,電平方式(低電平有效);IE0(IE1):外部中斷請求標(biāo)志位。當(dāng)CPU采樣(S5P2)到INT0或INT1端出現(xiàn)有效。中斷請求時,此位由硬件置1。在中斷響應(yīng)完成后轉(zhuǎn)向中斷服務(wù)程序時,再由硬件自動清零。TF0(TF1):計數(shù)溢出標(biāo)志位。當(dāng)計數(shù)器產(chǎn)生計數(shù)溢出時,此位由硬件置位。當(dāng)轉(zhuǎn)向中斷服務(wù)程序時,再由硬件自動清0。計數(shù)溢出標(biāo)志位的使用有兩種情況:采用中斷方式時,做中斷請求標(biāo)志位來使用;采用查詢方式時,作查詢狀態(tài)位來使用。(2)串口控制寄存器(SCON)其中與中斷有關(guān)的控制位共有兩位:TI和RI,分別為串口發(fā)送和接收中斷請求標(biāo)志位。當(dāng)串口發(fā)送(或接收)完一幀數(shù)據(jù)后,由硬件置位;在轉(zhuǎn)向中斷服務(wù)程序后,用軟件清零。SM0SM1SM2RENTB8RB8TIRI(3)中斷允許寄存器(IE)EA//ESET1EX1ET0EX0EA:中斷允許總控制位。EA=0,禁止所有中斷;EA=1,開放所有中
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)隔離機(卡)項目安全風(fēng)險評價報告
- 遵義師范學(xué)院《中國通史古代》2023-2024學(xué)年第二學(xué)期期末試卷
- 江蘇省南京市瑯琊路小學(xué)明發(fā)濱江分校2025屆小升初復(fù)習(xí)數(shù)學(xué)模擬試卷含解析
- 贛南醫(yī)學(xué)院《空間構(gòu)成與表現(xiàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 溫州科技職業(yè)學(xué)院《城鄉(xiāng)規(guī)劃設(shè)計基礎(chǔ)1》2023-2024學(xué)年第二學(xué)期期末試卷
- 三峽大學(xué)《流行音樂配器法(1)》2023-2024學(xué)年第二學(xué)期期末試卷
- 河北地質(zhì)大學(xué)華信學(xué)院《民航服務(wù)禮儀》2023-2024學(xué)年第二學(xué)期期末試卷
- 甘肅林業(yè)職業(yè)技術(shù)學(xué)院《藥理學(xué)及實驗》2023-2024學(xué)年第二學(xué)期期末試卷
- 鹽城師范學(xué)院《口述史實踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 吉林省延邊重點中學(xué)2024-2025學(xué)年初三校際聯(lián)合檢測試題(二模)化學(xué)試題含解析
- 第二單元“中華傳統(tǒng)文化經(jīng)典研習(xí)”說課稿 2024-2025學(xué)年統(tǒng)編版高中語文選擇性必修上冊001
- 2024年德州市人民醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 訂單與合同管理制度
- 【MOOC期末】《英美文學(xué)里的生態(tài)》(北京林業(yè)大學(xué))期末中國大學(xué)慕課MOOC答案
- 外科患者疼痛護理與管理
- 《家校社協(xié)同育人“教聯(lián)體”工作方案》專題培訓(xùn)
- 2024年六西格瑪黃帶認證考試練習(xí)題庫(含答案)
- 兒童牙齒分齡護理方案
- 2023-2024學(xué)年廣東省深圳市寶安區(qū)七年級(下)期中英語試卷
- DB43T 2558-2023 城鎮(zhèn)低效用地識別技術(shù)指南
- 中國心力衰竭診斷和治療指南2024解讀(完整版)
評論
0/150
提交評論