不同CPU中斷技術對比專題研究_第1頁
不同CPU中斷技術對比專題研究_第2頁
不同CPU中斷技術對比專題研究_第3頁
不同CPU中斷技術對比專題研究_第4頁
不同CPU中斷技術對比專題研究_第5頁
已閱讀5頁,還剩4頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

不同CPU中斷技術對比專題研究下面是本小組對不同CPU中斷技術的研究列表。CPU類型包括:ARM,8051和x86。比較的方向包括:中斷源中斷申請方式、中斷優先級管理方式、中斷的處理過程、中斷向量等。ARM8051x86中斷源中斷申請方式中斷源中斷申請方式續(1)中斷的狀態有3種:Inactive(不激活):沒有被激活或掛起的中斷Pending(掛起):這個中斷可以被硬件識別或是由軟件產生的,正處于等待處理器處理。Active(激活):這個中斷被處理器從通用中斷控制器中的中斷源中識別了出來,并且正在處理這個中斷,且沒有處理完成。Activeandpending(激活和掛起):處理器正在處理某個中斷,且通用中斷控制器有一個掛起的中斷,這兩個中斷是屬于同一個中斷源的。(2)內部中斷寄存器中斷控制器中有5個中斷控制寄存器。各個中斷控制寄存器及其每一位的具體用法,限于篇幅,不在表格里闡述,詳見附錄1。(3)外部中斷寄存器a.外部中斷控制寄存器(EXTINTn)arm920t有24個外部中斷有幾種中斷觸發方式,EXTINTn配置外部中斷的觸發類型是電平觸發、邊沿觸發及觸發的極性。8個外部中斷可以由多種信號觸發方式所請求。EXTINT寄存器為外部中斷配制信號觸發方式為電平觸發或邊沿觸發,同時還配制信號觸發極性。為了確認電平中斷,由于噪聲濾波必須保持EXTINTn引腳上有效邏輯電平至少40ns。b.外部中斷屏蔽寄存器(EINTMASK)EXTMASK[23:4]分別對應外部中斷23~4,等于1,對應的中斷被屏蔽;等于0,允許外部中斷。EXTMASK[3:0]保留。c.外部中斷掛起寄存器(EINTPEND)中斷掛起寄存器INTPND共有32位,前4位保留(因為EINT0—EINT3對應的掛起位在寄存器INTPND中),4~23位對應著一個中斷源,當中斷請求被響應的時候,相應的位會被設置為1。在中斷服務子程序中可以通過判斷EINTPND來判斷哪個中斷在提起申請。8051有5個中斷源:2個外部中斷INT0、INT1;3個內部中斷T0、T1、串行口。以及2個優先級:高級中斷和低級中斷,由用戶定義。中斷源入口地址INT00003HT0000BHINT10013HT1001BH串行口0023H(1)中斷請求:每一個中斷設置一個中斷請求觸發器,記錄中斷源的請求標志。當中斷源有請求時,該觸發器置“1”;CPU響應中斷請求后,該觸發器清除。(2)中斷識別:不同的計算機系統中,中斷源的識別方式不同。例如:在Intel80X86CPU系統中,采用向量中斷的方式來識別中斷源。中斷事件在提出中斷請求的同時,通過硬件向CPU提供中斷向量(即中斷服務程序的入口地址)。每個外設都預先指定一個中斷向量號,當CPU識別出某個設備請求中斷并予以響應時,中斷控制邏輯就將請求設備的中斷向量號送給CPU,由中斷向量號自動地引導到中斷服務程序。中斷優先級管理方式ARM處理器中有7種類型的異常,按優先級從高到低的排列如下:復位異常(Reset)、數據異常(DataAbort)、快速中斷異常(FIQ)、外部中斷異常(IRQ)、預取異常(PrefetchAbort)、軟件中斷(SWI)、未定義指令異常(Undefinedinstruction)。關于各種異常的具體介紹,詳見附錄2。1.低優先級中斷請求不能打斷高優先級的中斷服務;但高優先級中斷請求可以打斷低優先級的中斷服務,從而實現中斷嵌套。2.如果一個中斷請求已被響應,則同級的其他中斷響應將被禁止。3.如果同級的多個請求同時出現,則按CPU查詢次序確定哪個中斷請求被響應。其查詢次序為:外部中斷0;定時中斷0;外部中斷1;定時中斷1;串行中斷。當CPU接收到中斷請求信號后,執行判優查詢程序,逐個檢測外設的中斷請求標志位狀態,檢測的順序是按優先級的大小排列的,最先檢測到的中斷源具有最高的優先級。中斷的處理過程中斷的處理過程續當異常中斷發生時,系統執行完當前指令后,將跳轉到相應的異常中斷處理程序處執行。當異常中斷處理程序執行完成后,程序返回到發生中斷的指令的下一條指令處執行。在進入異常中斷處理程序時,要保存被中斷的程序的執行現場。從異常中斷處理程序退出時,要恢復被中斷的程序的執行現場。ARM體系中通常在存儲地址的低端固化了一個32字節的硬件中斷向量表,用來指定各異常中斷及其處理程序的對應關系。當一個異常出現以后,ARM微處理器會執行以下幾步操作:1)保存處理器當前狀態、中斷屏蔽位以及各條件標志位;設置當前程序狀態寄存器CPSR中相應的位;將寄存器lr_mode設置成返回地址;將程序計數器(PC)值設置成該異常中斷的中斷向量地址,從而跳轉到相應的異常中斷處理程序處執行。在接收到中斷請求以后,ARM處理器內核會自動執行以上四步,程序計數器PC總是跳轉到相應的固定地址。從異常中斷處理程序中返回包括下面兩個基本操作:恢復被屏蔽的程序的處理器狀態;返回到發生異常中斷的指令的下一條指令處繼續執行。當異常中斷發生時,程序計數器PC所指的位置對于各種不同的異常中斷是不同的,同樣,返回地址對于各種不同的異常中斷也是不同的。例外的是,復位異常中斷處理程序不需要返回,因為整個應用系統是從復位異常中斷處理程序開始執行的。1.中斷源提出申請,并建立相應的中斷標志(由硬件置位標志位);2.CPU結束當前指令,響應該中斷申請,同時把主程序斷點處地址(程序計數器PC當前值)壓入堆棧,即保護斷點;3.保護現場。把斷點處的有關信息(如工作寄存器、累加器、標志位的內容),壓入堆棧;執行中斷服務程序;4.恢復現場。把保存的現場內容從堆棧彈出,以恢復寄存器和存儲單元的原有內容;5.返回主程序(或調用程序),執行中斷返回指令,把斷點處地址從棧頂彈出,從斷點處繼續執行主程序(或調用程序)。然而,中斷響應后,如果不及時清除中斷請求標志,會引起中斷的混亂。下面按中斷請求的類型說明中斷請求的撤除方法。(1)定時中斷由硬件自動撤除定時中斷響應后,硬件自動把標志位(TFx)清零。(2)外部中斷的自動與強制撤除若外部中斷以脈沖方式觸發,則由硬件自動地把標志位(IEx)清零。若以電平方式觸發,則需由外部電路和軟件配合撤除。(3)串行中斷軟件撤除串行中斷的標志位是TI和RI,但對這兩個中斷標志位不進行自動清零。因為在中斷響應后,還需測試這兩個標志位的狀態,以判定是接收操作還是發送操作,然后才能清除。所以串行中斷請求的撤除應使用軟件方法。即:CLRTI;TI0CLRRI;RI0通常由中斷申請、中斷響應、中斷處理、中斷返回四個過程完成。1.中斷申請:當外設需要中斷服務時,由硬件產生一個中斷請求信號INTR發送給CPU;CPU在當前指令結束時檢測INTR引腳,判斷是否有中斷請求。2.中斷響應當檢測到有中斷請求且IF=1時,總線周期信號M/IOD/CW/R為000,通過總線控制邏輯發中斷響應信號INTA給中斷請求設備表示應答;中斷請求設備將中斷號送上數據總線;系統自動進入中斷響應周期,由硬件完成關中斷、保存斷點、取中斷服務的入口地址(N*4)等一系列操作,而后轉向中斷服務程序執行中斷處理。3.中斷處理執行中斷服務程序中規定的操作。4.中斷返回將壓棧的斷點從堆棧中彈出,開中斷,CPU轉向被中斷的主程序繼續執行。中斷向量復位異常FFFF000000000000未定義指令異常FFFF000400000004軟件中斷FFFF000800000008預取異常FFFF000C0000000C數據異常FFFF001000000010外部中斷異常FFFF001800000018快速中斷異常FFFF001C0000001C與中斷控制有關的寄存器有4個:TCON:定時控制寄存器SCON:串行口控制寄存器IE:中斷允許寄存器IP:中斷優先級寄存器限于表格篇幅,有關8051中斷控制相關寄存器的詳細說明,詳見附錄3。有關8051中斷管理主程序,詳見附錄4。中斷矢量表是存放中斷服務程序入口地址的存儲空間。實模式下,存放于存儲器的低端000H--3FFH,共1K字節,每一個中斷號占據4字節的空間,低2字節存放對應中斷入口子程序的偏移地址,高2字節存放對應中斷入口子程序的段基址。

保護模式下,除了2字節的段描述符,偏移量用4字節表示,因此中斷向量表中的表項由8字節組成,中斷向量表也稱中斷描述符表,可存放于存儲器的任意位置,由中斷描述符表寄存器IDTR標識其在物理存儲器中的位置。附錄1ARM內部中斷寄存器詳解中斷控制器中有5個中斷控制寄存器。各個中斷控制寄存器及其每一位的具體用法,限于篇幅,不在表格里闡述,詳見附錄1。a.源掛起寄存器,SOURCEPENDING(SRCPND)REGISTER中斷控制寄存器INTCON共有32位,每一位對應著一個中斷源,當中斷源發出中斷請求的時候,就會置位源掛起寄存器的相應位。反之,中斷的掛起寄存器的值為0。該寄存器中的每一位對應特定的中斷源,當該位的值為:0,表示這個中斷源中沒有中斷被請求;1,表示該中斷源中有中斷被請求。b.中斷模式寄存器,INTERRUPTMODE(INTMOD)REGISTER中斷模式寄存器INTMOD共有32位,每一位對應著一個中斷源,當中斷源的模式位設置為1時,對應的中斷會由ARM920T內核以FIQ模式來處理。相反,當模式位設置為0時,中斷會以IRQ模式來處理。默認為IRQ模式。(注意:如果中斷模式為FIQ模式,INTPND和INTOFFSET寄存器是無效的,也就是說,這兩個寄存器只在IRQ模式下有效。)該寄存器中的每一位對應特定的中斷源。當該位的值為:0,表示這個中斷源中的中斷為IRQ模式;1,表示該中斷源中的中斷為FIQ模式。c.中斷屏蔽寄存器,INTERRUPTMASK(INTMSK)REGISTER這個寄存器有32位,分別對應一個中斷源。當中斷源的屏蔽位設置為1時,CPU不響應該中斷源的中斷請求,反之,等于0時CPU能響應該中斷源的中斷請求。該寄存器中的每一位對應特定的中斷源,當該位的值為:0,表示這個中斷源沒有被屏蔽,其中的中斷可以被響應;1,表示該中斷源被屏蔽,該中斷源中的中斷不可以被響應。d.中斷優先權寄存器,PRIORITYREGISTER(PRIORITY)下面以CPUarm920t為例,其優先級判斷分為兩級。①ARBITER6所控制的REQ0,1,2,3,4,5實際上對應ARBITER0,1,2,3,4,5②REQ0在任何情況下具有最高優先級,REQ5具有最低優先級;對ARBITER1-4的仲裁組來說(仲裁組組中的不同的中斷),在任何情況下:對應的仲裁組中的中斷REQ0具有最高優先級,中斷REQ5具有最低優先級,而ARBITER0,ARBITER5仲裁組中并沒有中REQ0,REQ5。對ARBITER6仲裁組來說(不同的中斷仲裁組),在任何情況下:ARBITER0具有最高優先級,即仲裁組中的中斷優先級是最高的,比別的仲裁組中的中斷優先級都要高。ARBITER5具有最低優先級,同理。e.中斷掛起寄存器,INTERRUPTPENDING(INTPND)REGISTER中斷掛起寄存器INTPND共有32位,每一位對應著一個中斷源,當中斷請求被響應的時候,相應的位會被設置為1。在某一時刻只有一個位能為1,因此在中斷服務子程序中可以通過判斷INTPND來判斷哪個中斷正在被響應,在中斷處理函數退出前,需要清除源掛起寄存器中對應的位,以及中斷掛起寄存器中對應的位。附錄2ARM處理器的中斷異常詳解1.復位異常當處理器的復位引腳有效時,系統產生復位異常中斷,程序跳轉到復位異常中斷處理程序處執行。復位異常中斷通常用在下面兩種情況下。*系統上電。*系統復位。復位異常中斷處理程序的主要功能:*設置異常中斷向量表。*初始化數據棧和寄存器。*初始化存儲系統,如系統中的MMU等。*初始化關鍵的I/O設備。*使能中斷。*處理器切換到合適的模式。*初始化C變量,跳轉到應用程序執行。2.未定義指令異常當ARM處理器執行協處理器指令時,它必須等待一個外部協處理器應答后,才能真正執行這條指令。若協處理器沒有響應,則發生未定義指令異常。3.軟中斷SWI軟中斷異常發生時,處理器進入特權模式,執行一些特權模式下的操作系統功能。4.預取指令異常預取指令異常是由系統存儲器報告的。當處理器試圖去取一條被標記為預取無效的指令時,發生預取異常。5.數據訪問中止異常數據訪問中止異常是由存儲器發出數據中止信號,它由存儲器訪問指令Load/Store產生。當數據訪問指令的目標地址不存在或者該地址不允許當前指令訪問時,處理器產生數據訪問中止異常。6.外部中斷IRQ當處理器的外部中斷請求引腳有效,而且CPSR寄存器的I控制位被清除時,處理器產生外部中斷IRQ異常。系統中各外部設備通常通過該異常中斷請求處理器服務。7.快速中斷FIQ當處理器的快速中斷請求引腳有效且CPSR寄存器的F控制位被清除時,處理器產生快速中斷請求FIQ異常。附錄38051中斷控制相關寄存器的詳細說明(1)定時控制寄存器(TCON)TF1TR1TF0TR0IE1IT1IE0IT0IT0(IT1):外中斷請求信號方式控制位IT0(IT1)=1,脈沖方式(后沿負跳變有效);IT0(IT1)=0,電平方式(低電平有效);IE0(IE1):外部中斷請求標志位。當CPU采樣(S5P2)到INT0或INT1端出現有效。中斷請求時,此位由硬件置1。在中斷響應完成后轉向中斷服務程序時,再由硬件自動清零。TF0(TF1):計數溢出標志位。當計數器產生計數溢出時,此位由硬件置位。當轉向中斷服務程序時,再由硬件自動清0。計數溢出標志位的使用有兩種情況:采用中斷方式時,做中斷請求標志位來使用;采用查詢方式時,作查詢狀態位來使用。(2)串口控制寄存器(SCON)其中與中斷有關的控制位共有兩位:TI和RI,分別為串口發送和接收中斷請求標志位。當串口發送(或接收)完一幀數據后,由硬件置位;在轉向中斷服務程序后,用軟件清零。SM0SM1SM2RENTB8RB8TIRI(3)中斷允許寄存器(IE)EA//ESET1EX1ET0EX0EA:中斷允許總控制位。EA=0,禁止所有中斷;EA=1,開放所有中

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論