主要產(chǎn)品系列 |
解決方案 |
PDA開發(fā) |
開發(fā)工具 |
新產(chǎn)品 |
數(shù)據(jù)通訊接口 |
電源管理 |
IMP 半導(dǎo)體 |
Automotive |
RFID |
Logic |
Microcontrollers |
中斷控制是計(jì)算機(jī)發(fā)展中一種重要的技術(shù)。最初它是為克服對(duì)I/O接口控制采用程序查詢所帶來的處理器低效率而產(chǎn)生的。中斷控制的主要優(yōu)點(diǎn)是只有在I/O需要服務(wù)時(shí)才能得到處理器的響應(yīng),而不需要處理器不斷地進(jìn)行查詢。由此,最初的中斷全部是對(duì)外部設(shè)備而言的,即稱為外部中斷(或硬件中斷)。但隨著計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的不斷改進(jìn)以及應(yīng)用技術(shù)的提高,中斷的適用范圍也擴(kuò)大,出現(xiàn)了所謂的內(nèi)部中斷(或異常),是為解決機(jī)器運(yùn)行時(shí)所出現(xiàn)的某些隨機(jī)事件及編程方便而出現(xiàn)的。因而形成了一個(gè)完整的中斷系統(tǒng)。中斷控制是所有計(jì)算機(jī)系統(tǒng)的一個(gè)核心模塊,不同的硬件平臺(tái),有不同的中斷機(jī)制.不管怎樣,中斷機(jī)制最核心的部分是中斷向量表,每一種硬件體系根據(jù)自己的實(shí)現(xiàn)提供一張中斷向量表。
此向量表提供了所有支持的中斷定義以及相應(yīng)的中斷服務(wù)程序,當(dāng)發(fā)生異常時(shí),首先要保存當(dāng)前的處理器狀態(tài),然后進(jìn)入到相應(yīng)的異常向量地址,一般來說在異常向量地址是一個(gè)跳轉(zhuǎn)指令,使程序進(jìn)入相應(yīng)的異常處理過程。
X86中,中斷向量表存儲(chǔ)于存儲(chǔ)器的前1024字節(jié)中,它包括256種不同的4字節(jié)中斷向量。
ARM中,中斷向量表存儲(chǔ)于存儲(chǔ)器的低端或者高端地址的前0x1c(依賴于硬件的具體配置),它支持7種類型的異常,其中第一個(gè)中斷向量是復(fù)位中斷向量,當(dāng)系統(tǒng)復(fù)位后,從此開始重新執(zhí)行。
在Motorola的68K中,中斷向量表占用存儲(chǔ)器的1024字節(jié)中,它包括256種不同的中斷向量。其地址根據(jù)VBR的配置的不同而不同,其中第一個(gè)中斷向量是復(fù)位中斷向量,當(dāng)系統(tǒng)復(fù)位后,從此開始重新執(zhí)行。
根據(jù)中斷向量表,可以把這些中斷具體分為同步中斷,異步中斷,軟中斷:
同步中斷(exception),也即是我們通常所說的異常(),是在CPU執(zhí)行特定指令時(shí)出現(xiàn)的非法情況,它的產(chǎn)生是由于前面的CPU操作引起的,是同步發(fā)生的。比較典型的異常有:除零異常。一些體系結(jié)構(gòu)下的復(fù)位中斷也可以算是一種異常。
異步中斷(interrupt):主要是由外部事件觸發(fā)的,這就是我們常說的中斷,它的發(fā)生不可預(yù)料的,是異步的。比如說,鍵盤中斷等。在不同的體系結(jié)構(gòu)中,中斷機(jī)制也不一樣。一般可以分為可屏蔽中斷和非屏蔽中斷。
軟中斷(software interrupt ):在大多數(shù)硬件體系結(jié)構(gòu)中,都提供軟中斷的功能,主要用于進(jìn)入管理模式等的手段。
X86中,除前32個(gè)作為Intel專用中斷向量外,其他224作為用戶自定義中斷。0~31的向量對(duì)應(yīng)于異常和非屏蔽中斷。32~47的向量(即由I/O設(shè)備引起的中斷)分配給屏蔽中斷。48~255的向量用來標(biāo)識(shí)軟中斷。Linux只用了其中的一個(gè)(即128或0x80向量)用來實(shí)現(xiàn)系統(tǒng)調(diào)用。
ARM中,除了定義的5個(gè)異常外,有2個(gè)專門用于中斷,這2個(gè)中斷被分為快中斷和慢中斷。由于快中斷有專門的寄存器保存上下文,避免了許多上下文切換開銷,所以快中斷能夠比慢中斷快,而且在處理快中斷時(shí),慢中斷會(huì)被屏蔽掉。這2個(gè)中斷提供了系統(tǒng)的所有中斷入口,系統(tǒng)查詢相應(yīng)的中斷控制器來區(qū)分具體的中斷。
在Motorola的68K中,中斷向量表提供了7個(gè)中斷優(yōu)先級(jí)和192個(gè)可分配的中斷向量,其中7級(jí)是不可屏蔽中斷。
相關(guān)閱讀:
聲明:本站部分內(nèi)容根據(jù)互聯(lián)網(wǎng)資料整理而成,若侵犯您的權(quán)益,請(qǐng)聯(lián)系我們,我們會(huì)盡快處理。
© 2006
WeBoch.Com.cn 版權(quán)所有:深圳市偉博創(chuàng)科技有限公司 地址:深圳市福田區(qū)振華路蘇發(fā)大廈305棟405 電話:0755-83240703 傳真:0755-83240724 |