IRQ(Interrupt Request)的作用就是在我們所用的電腦中,執(zhí)行硬件中斷請求的動作,用來停止其相關硬件的工作狀態(tài)。比如我們要打印一份文件,在打印結束時就需要由系統(tǒng)對打印機提出相應的中斷請求,來以此結束這個打印的操作。
產生中斷請求的設備或者事件被稱為中斷源,中斷源可分為兩類:一類是CPU內部中斷,即執(zhí)行軟件中斷指令INT或遇到軟件陷阱而產生的中斷,它們的中斷類型號已由CPU規(guī)定好;另一類中斷是由CPU以外的I/O設備產生的中斷,又稱硬件中斷,硬件中斷可分為不可屏蔽中斷NMI和可屏蔽中斷INTR,NMI用于緊急情況的故障處理,如RAM奇偶校驗錯等,INTR則用于外部依靠中斷來工作的硬件設備。網卡使用的就是INTR,下面我們對IRQ進行更深入的了解。
一、中斷類型號和IRQ
外部設備的中斷請求是通過中斷控制器8259A的INT引腳輸入到CPU的INTR引腳向CPU提出中斷申請的,并送去一個中斷類型號,這是一個8位的二進制數。
一片8259A能負責整個外部設備的中斷請求(1RQ0-IRQ7),每個外設對應一個中斷請求號。
圖為:中斷類型號與中斷請求號
二、IRQ的優(yōu)先級和默認配置
一般計算機只能支持16個IRQ,也就是提供16個硬件設備的中斷請求,16個IRQ是用兩個8259A通過級聯來實現的。
圖為:主從8259A連接圖
主中斷控制器8259A的IRQ2與從中斷控制器8259A的INT引腳相連,因此從8259A上的中斷請求優(yōu)先級(Priority)享受主8259AIRQ2上的優(yōu)先分級。所謂優(yōu)先級是指當有多個中斷源提出中斷請求時,CPU先為優(yōu)先權高的中斷請求服務。再為優(yōu)先權低的中斷服務。主8259A中IRQ0~IRQ7中的IRQ0優(yōu)先權最高,IRQ7最低;從8259A中以IRQ8最高,IRQl5最低。
由于兩個8259A的連接關系,從8259A的IRQ8~IRQ15的優(yōu)先權低于主8259A的IRQ0~IRQl,而高于主8259A的IRQ3~IRQ7。
圖為:中斷優(yōu)先級順序
計算機中有些IRQ有默認的配置,這些默認的配置都是些常用設備,一般的默認配置。
圖為:1RQ的默認配置使用情況
現在的Windows操作系統(tǒng)已經運用PNP技術,這種“即插即用”的功能可以將中斷進行自動分配,大大簡化了用戶的操作。不過這種PNP技術也有它的弱點,那就是如果不能認出要安裝的新設備,那么自動分配中斷時就會產生沖突。我們日常所用的硬件對于IRQ的設置也不盡相同,所以在安裝新硬件的時候,系統(tǒng)往往并不能自動檢測正確的IRQ來分配給所有調用的硬件,這就會造成此硬件設備或是原來的舊硬件出現不能正常工作的現象。現在新的硬件產品層出不窮,各種產品又相互兼容,功能類似,這就導致了操作系統(tǒng)常常不能正確檢測出新設備,中斷沖突也就不可避免了。其實這是因為系統(tǒng)自動將該硬件的IRQ分配給了其他與此IRQ相同的硬件上,從而發(fā)生沖突使硬件不能正常工作。一般如果遇到這種情況,只要將新舊兩個硬件的IRQ配置手動調開就可以解決了。手動配置IRQ時,最好檢查有無保留中斷(IRQ),不要讓其他設備使用該中斷號,以免引起新的中斷沖突,造成系統(tǒng)死機。另外從表2還可以看出,COM1端口設置為IRQ4,而COM2端口設置為IRQ3,即COM2比COMl中斷優(yōu)先權高,所以為保持通信的傳輸質量通常將COM2端口接調制解調器,而把COM1留給鼠標使用。利用相同的原理,合理分配各硬件設備的中斷號,將使你的系統(tǒng)性能佳。