一、了解IRQ家族
??IRQ全稱為Interrupt Request,即是“中斷請求”的意思(以下使用IRQ稱呼)。IRQ的作用就是在我們所用的電腦中,執行硬件中斷請求的動作,用來停止其相關硬件的工作狀態,比如我們在打印一份圖片,在打印結束時就需要由系統對打印機提出相應的中斷請求,來以此結束這個打印的操作。在每臺電腦的系統中,是由一個中斷控制器8259或是8259A的芯片(現在此芯片大都集成到其它的芯片內)來控制系統中每個硬件的中斷控制。目前共有16組IRQ,去掉其中用來作橋接的一組IRQ,實際上只有15組IRQ可供硬件調用。這16組IRQ的主要用途如下表:
IRQ編號 | 設備名稱 | 用途 |
IRQ0 | Time | 電腦系統計時器 |
IRQ1 | KeyBoard | 鍵盤 |
IRQ2 | Redirect IRQ9 | 與IRQ9相接,MPU-401 MDI使用該IRQ |
IRQ3 | COM2 | 串口設備 |
IRQ4 | COM1 | 串口設備 |
IRQ5 | LPT2 | 建議聲卡使用該IRQ |
IRQ6 | FDD | 軟驅傳輸控制用 |
IRQ7 | LPT1 | 打印機傳輸控制用 |
IRQ8 | CMOS Alert | 即時時鐘 |
IRQ9 | Redirect IRQ2 | 與IRQ2相接;可設定給其它硬件使用 |
IRQ10 | Reversed | 建議保留給網卡使用該IRQ |
IRQ11 | Reversed | 建議保留給AGP顯卡使用 |
IRQ12 | PS/2Mouse | 接PS/2鼠標,若無也可設定給其他硬件使用 |
IRQ13 | FPU | 協處理器用,例如FPU(浮點運算器) |
IRQ14 | Primary IDE | 主硬盤傳輸控制用 |
IRQ15 | Secondary Ide | 從硬盤傳輸控制用 |
??現在的windows操作系統已經運用PNP技術,這種“即插即用”的功能可以將中斷進行自動分配,大大簡化了用戶的操作。不過這種PNP技術也有它的弱點,那就是如果不能認出要安裝的新設備,那么自動分配中斷時就會產生沖突。我們日常所用的,對于IRQ的設置也不盡相同,所以在安裝新硬件的時候,系統往往并不能自動檢測正確的IRQ來分配給所用調用的硬件,這就會造成此硬件設備或是原來的舊硬件出現不能正常工作的現象。現在新的硬件產品層出不窮,各種產品又相互兼容,功能類似,這就導致了操作系統常常不能正確檢測出新設備,中斷沖突也就不可避免了。其實這是因為系統自動將該硬件的IRQ分配給了其它與此IRQ相同的硬件上,從而發生沖突使硬件不能正常工作。一般如果遇到這種情況,只要將新舊兩個硬件的IRQ配置手動調開就可以解決了。手動配置IRQ時,最好檢查有無保留中斷(IRQ),不要讓其他設備使用該中斷號,以免引起新的中斷沖突,造成系統死機。
??以下使用目前比較受歡迎的KT266A主板Epox 8KHA+為例,介紹IRQ家族的和平相處之道。我從一些外國網站的論壇知道有關Epox 8KHA+在Bios 將Set PnP OS選項設定為 NO的時候,IRQ的自動配置情況:
??從以上默認的IRQ自動配置可以得出以下配件最佳安裝方法一覽表:
配件 | 安裝位置 | 默認的IRQ自動配置 |
AGP顯卡 | AGP插槽 | 與PCI 插槽 1共享IRQ |
PCI顯卡 | PCI 插槽1 | 與AGP插槽共享IRQ |
IDE RAID 卡 | PCI 插槽2 | 獨立使用IRQ(不共享IRQ) |
聲卡 | PCI 插槽 3或插槽 5 | 與主板上的AC97聲卡共享IRQ |
網卡、內置貓 | PCI 插槽 4或插槽 6 | 與主板上的USB控制器共享IRQ |
??只要我們把配件安裝正確,BIOS按照出廠時的設置,這時系統會自動設置IRQ,使得各個IRQ合理分配,使系統工作正常。
三、解決IRQ沖突
??常見的IRQ沖突現象有系統不能正確檢測出新設備、有些硬件工作不正常(如聲卡不發聲),嚴重的會出現死機。這往往沒有正確安裝硬件或手動調整IRQ不當引起的。
??要解決中斷沖突,首先我們要知道系統中沖突的設備,做法是在控制面板中雙擊“系統”圖標,查看設備管理器中的各設備。一般有“?”和“!”的設備要注意了,有問題的設備就是它們了。解決方法有分兩步做:
??第一步、先刪去有“?”和“!”的設備,然單擊刷新,讓計算機自己再認一遍這些設備。這樣做是因為部分有“?”和“!”的設備可能是驅動程序安裝有誤,再重裝一遍或升級驅動程序可解決問題。
??第二步、如果上面一步還是不能解決問題,現在多半是中斷沖突了,那我們只能手動調整來解決中斷沖突。在系統=>設備管理器=>屬性 中我們可以看到系統資源分配的情況,通過查看此項就可從中了解到哪些系統資源被占用,哪些系統資源還沒有用,用戶做相應的調整即可(通常換另外一條插槽再手動配置IRQ,問題就解決了)。
??以下使用Epox 8KHA+ KT266A主板為例,介紹手動配置硬件IRQ時的安裝方法和最優的設置方法:
1、開機,進入CMOS設置界面,它是AWARD公司的BIOS,進入“PNP/PCI CONFIGURATION”
2、將“PNP OS Installed”改為Yes,將“Resources controlled By”改為Auto,利用方向箭頭和+,-符號鍵來設置INT Pin X(x=1,2,3,4)。在菜單左邊的INT Pin X的新設置值(紅色部分),在右邊顯示設置的設備。例如INT Pin 1設定為11,對應IRQ為11的設備(顯卡)在右邊幫助欄顯示出來(見圖二)。完成對INT Pin X的設置后保存(按F10)后重啟動。啟動后計算機檢測正常,Windows的PNP功能會找到并且安裝新硬件。.以下是手動配置硬件IRQ時的安裝方法和最優IRQ值的設置一覽表:
配件 | 安裝位置 | BIOS設置項 | 設置IRQ值 | 備注 |
AGP顯卡 | AGP插槽 | INT-Pin1 | 11 | ? |
PCI顯卡 | PCI 插槽1 | INT-Pin1 | 11 | 不能與AGP顯卡共同使用 |
聲卡 | PCI 插槽 3或插槽 5 | INT-Pin2 | 5 | 不要忘記把在bios菜單中屏蔽主板自帶的聲卡 |
USB | ? | INT-Pin3 | 9 | ? |
網卡、內置modem | PCI 插槽 4或插槽 6 | INT-Pin4 | 10或9 | 采用IRQ10比采用IRQ9快 |
四、設置IRQ時注意的問題
??筆者的電腦在bios的設定如下:
PnP OS -> NO
Modem use IRQ -> N/A
Unika GeForce Mx200-> IRQ 11
SB live! Value -> IRQ 5
Star Internal Modem ->IRQ 10
onboard sound??->DISABLED
game??port -> DISABLED
midi?? port -> DISABLED
??但事實上在windows的系統信息中顯示以下配置:
Unika GeForce Mx200 -> 11
SB Live! Value -> IRQ 10
Star Internal Modem -> IRQ 3
USB controller -> IRQ 3
ACPI -> IRQ 9
??為什么會出現這種情況呢?原來如果手動配置INT Pin 4(控制PCI插槽4和6,并且控制主板上的USB)分配中斷點9,那么當你安裝支持ACPI的Windows操作系統時, PCI插槽4和6和主板上的USB控制器的實際中斷點會被分配其他空閑的中斷資源。因為安裝時Windows默認打開ACPI功能,并且會占用IRQ 9或7 或11其中一個IRQ,通常Windows操作系統的ACPI中斷點默認是9。如果關閉ACPI,你的系統會減少一點發熱并可以提高3 D的性能。但如果在打開ACPI功能時一切運作正常,我建議不要改動這項設置。因為如果關閉ACPI,就不能使用即插即用功能,這時會出現Windows不能探測任何新安裝的硬件,也可能會出現多個設備一起使用同一個IRQ(例如聲卡,內置modem,顯卡都使用IRQ 11)。
??一些VIA KT133A 芯片主板在安裝支持ACPI 的Windows 2000 或Win XP時,會使主板自帶的modem(或內置modem)的IRQ自動設為 9,和ACPI功能共享中斷。如果你不使用主板自帶的modem或內置modem, 那么要將Modem Use IRQ" 設為 N/A (默認中斷請求是3 )。你將"Integrated Peripheral \ Super IO Device\Onboard Serial Port 2"設為 DISABLED 并且在Power Management Setup\Modem Use IRQ設為DISABLED來屏蔽com1通信口 (com1的默認中斷請求是3), 這樣Epox 8KHA+主板(其他VIA KT266A芯片主板也一樣)會根據bios里的設置而自動合理分配各個中斷。這時PCI插槽4和6和主板上的USB控制器的實際中斷點自動分配為3 。
??另外創新的一些聲卡如SBLive是需要2個IRQ,其中一個對當前的聲卡的支持(IRQ 10),而另一個IRQ (IRQ 5)用于對那些仍然需要聲霸卡(Sound Blaster)兼容模式的老游戲的支持。用戶可以在設備管理器中,展開聲音視頻游戲控制器中看見Legacy Audio Drivers,雙擊進入看它是否占用任何IRQ,如果用戶不玩老游戲(如比較舊的DOS游戲)你可以在Legacy Audio Drivers的屬性框中選擇禁用該設備。
五、其他技巧
1.刪除設備的驅動程序,關機后將外設拔出,置重新安裝,讓系統重新檢測。
2.如果你使用內置調制解調器,可以在bois菜單中關閉com2,這可以節省出IRQ3,供內置調制解調器使用。
3.屏蔽那些暫時不需要使用的硬件,例如USB控制器,節省出IRQ以供其他急需使用的重要設備。
- 逐步認識(5164)
- 求IRQ(4793)
相關推薦
什么是中斷響應次序?什么是中斷處理次序?

如何在特權模式下用arm匯編指令使能和禁止irq中斷?

IRQ domain支持幾種映射方式


arm中斷是怎么實現的

介紹SPMC75F2413A 的中斷系統
StarterWare開發環境下的按鍵中斷控制實現


DSP操作教程:按鍵中斷輸入實驗


MAX3420E中斷系統


CW32L083系列MCU中斷系統介紹


單片機C語言函數之中斷函數(中斷服務程序)

控制IRQ和FIQ中斷的編譯器內部函數 - 基于Keil MDK

實際中斷處理

x86處理器如何處理MSI-X中斷請求

STM32學習筆記--中斷系統

6.分析request_irq和free_irq函數如何注冊注銷中斷(詳解)

中斷

中斷系統的基本知識

STM32公用中斷源時的中斷分配

定時器與中斷詳解

單片機學習#中斷系統(1)

藍橋杯MCU:IAP15F2K61S2中斷

#STC89C51# #STC89C52# #AT89S51# #AT89C52#--8051內核單片機原理及匯編(七):中斷系統

C51 interrupt 中斷

外部中斷控制LED燈開關

51單片機小白速成之中斷請求(三)

單片機中斷系統(51為例)

51單片機外部中斷實驗 設置中斷優先級寄存器,當有外部中斷0請求中斷時,中斷程序執行發光二極管程序,

51單片機外部中斷

STM32單片機專業術語縮寫

單片機(AT89C51)中斷系統詳解和中斷系統應用實驗

51單片機學習記錄(9) “中斷相關知識“

AT89C51單片機外部中斷

單片機之中斷篇

處理器中異常和中斷解決

教大家如何處理x86處理器中MSI-X中斷請求

簡述MSI和MSI-X中斷機制

簡述PCI總線的中斷機制

ARM中斷體系和ZYNQ中斷體系詳解


系統休眠過程中,如何suspend設備中斷(IRQ)?


當ARM異常中斷發生時的處理措施

單片機中斷如何撤除


ARM7的定時器中斷和外部中斷與串口中斷的原理詳細說明

51單片機的中斷系統詳細資料概述

51單片機中斷系統的詳細資料和程序免費下載

使用51單片機的定時器設計精度為0.01的秒表資料和程序免費下載

使用51單片機進行中斷設置的詳細資料說明

AT89S51單片機擴充外部中斷源系統的設計


如何進行Linux內核的中斷和異常分析資料說明

linux中斷處理之IRQ中斷

需要了解的Linux的IRQ中斷子系統

51單片機外部中斷請求源與內部中斷請求源的用法解析

什么是單片機的中斷響應時間


一個簡單的PCI總線INTx中斷實現流程

ARM Linux各種驅動的中斷服務程序工作在ARM的IRQ模式嗎?


基于AT89S51下的中斷系統解析

LM4F232按鍵輸入與中斷控制的詳細中文資料概述

PCI總線的中斷信號與中斷控制器的連接關系

一種支持多個FIQ的向量中斷控制器設計

單片機外部中斷請求源實現方法

MCS-51中斷系統中的復位問題


基于STR7 ARM微控制器的IRQ中斷防御體系

什么是IRQ

PCI中斷機制分析

MAX3420E中斷系統


評論