星期二, 2月 19, 2013
認識 IRQ 及資源分配問題
轉載自:http://elb.tyai.tyc.edu.tw/text/IRQ/IRQ.htm
認識 IRQ 及資源分配問題
常見的問題
你要求任何一個電腦技術人員列舉所
有常見的電腦問題,其中資源(PC' system resources,電腦系統資源)衝突定必是這個問題清單的頭一二位。這些令人煩惱的衝突主要是由於電腦系統資源不足而最終導致死機、間歇性系統故障及資料流失等情 況。
要解決這些問題,其中一個要辦法就是從IRQ 〈Interrupt Request Lines,中斷請求線)入手。當然,你要知道甚麼是 IRQ 及 IRQ 如何運作。認識以後,便能一步步地解決 IRQ 的衝突及電腦系統的問題。
甚麼是電腦系統資源
電腦系統資源可被理解成為電腦系統內的一部份,但不是指物理層次上的(因為我們眼不能見,手也觸摸不到),而是概念上的。這些資源對電腦系統非常重要,必須小心地分配給系統內各驅動器使用。這些資源的主要用途有二:第一,用作驅動器之間的溝通及訊息傳送;第二,用作管理各驅動器如何存取記憶體。某些電腦資源是供不應求的, 換句話說,不斷增加電腦系統的週邊設備,只會令這些資源更顯缺乏,無法滿足所有設備的要求。這些資源主要有四種,第一當然是IRQ,其餘三個分別是直接記憶體取存通道(Direct Memory Access (DMA) Channels)、輸入輸出地址 (Input/output(I/O)Addresses)及記憶體地址 ( Memory Address)。
多工處理
中央處理器是電腦系統的心臟,本是被設計成為只能在一個時間處理一個工作。但大家的經驗都是,我們可以同時要求電腦處理超過一個工作,特別是使用到一些能夠多工處理(multitasking 〉的操作系統(operating system),例如WIN95或以上等,我們確是可以一邊下載軟件、一邊聽音樂、一 邊使用文書處理器。是何道理呢?那是因為處理器 不停地快速轉換工作而造成的錯覺,或是速度之高使我們未能察覺。最終,處理器還是只能"專注地工作"。
對於電腦各部份不停地發出對處理器的要求又如何排遣?就好像地方各區不斷地要求中央政府工作,怎樣的安排才能平衡各界呢?這就是中斷(intcrrupt)的基本概念。
當一個裝置要求做資料的傳輸,它就會發出一個中斷訊號給處理器,比方說:“我需要你的注意。”這時處理器就會停止手頭上的工作,處理新的要求。
中斷的運作
電腦各裝置就是利用IRQ產生中斷訊號要求被處理器注意。每一個裝置會有一個或更多的IRQ。當裝置要求被注意時,它就會將中斷訊號放進IRQ,然後中斷控制器(interrupt controller,下稱控制器)會識別這些中斷訊號並將之傳送到處理器。 控制器同時會告訴處理器這些訊號的優先次序,好讓處理器再安排工作,這叫做“中斷服務”。
IRQ分配至控制器
最早期的個人電腦,只有一個控制器,管理八個IRQ。後來、IBM於1984年在PC/AT的機種中加多一個控制器,為連接起兩個控制器,第二個控制器的記號將會透過IRQ2連接到第一個控制器,至於原使用IRQ2的訊號則會在主機板上“被導向”改用IRQ9,此格式一直沿用至今。所以今日電腦最多有 16個lIRQ,平均分配給兩個控制器負責。即第一個控制器負責IRQ0至IRQ7,第二個控制器負責IRQ8至IRQ15。
IRQ的優先次序
不同IRQ的用途與優先次序使得電腦系統內的不同裝置不重復地產生中斷訊號。各IRQ的優次由高至低分別是0、1、8、9、 10、 11、12、 13、 14、 15、3、4、5、6及7。
因為第二個控制器使用IRQ2傳送訊號至第一個控制器,所以它所負責的IRQ8至IRQ15的優次介乎IRQ1至IRQ3中間。
IRQ的分享
傳統的中斷訊號是單一裝置所發出。因為系統總線(system bus)的設計所限,多於一個裝置同時使用同一條IRQ是不可能的。這只會令處理器混亂造成錯誤的回應。不過,多於一個裝置分享同一條IRQ在有限制的條件下卻是可能的,例如兩個裝置很少使用或同時使用,實例是電腦系統內的四個通訊連接端口(communications port,COM)共分享二個IRQ(IRQ4及IRQ3〉。但這做法只會傾向產生問題多於解決問題,不是最好的。新一代的電 腦,多個週邊元件互連(Peripheral Component Interconnect,PCI)透過PCI總線及個別元件的控制器,則能夠有效他分享IRQ避免衝突。
IRQ的工作
因為IRQ的數量有限,所以IRQ的工作分配一定要清晰及準確。正常情況下,每一個IRQ都有內設或標準的用途,其中部份的IRQ是保留給電腦系統內部使用,包括IRQO、1、8及13。而大家不是善忘的話,該記得IRQ2是已不復存在的了。
更改IRQ的設定
某些週邊器材會指定使用哪一條IRQ及其用途,是無法更改的。但其餘大部份的IRQ仍可按用戶需要更改選擇,避免衝突。以下就是其中五個可使用的方法:
a. 更改硬件設定。
某些較舊的硬件可透過設定跨接線(jumpers)及開關(switch)更改IRQ的選擇,但由於此方法並不方便、所以新的硬件已不備有這個功能。
b. 使用配置程式。
不少新的裝置會備有個別獨特的配置程式,用戶可以透過這些程式更改IRQ的選擇。
c. 使用視窗的裝置管理員。
有些裝置是可以透過視窗的裝置管理員更改資源運用。
d. 隨插隨用。
在備有隨插隨用特性的操作系統及特定的裝置,用戶或可在安裝時選擇IRQ的安排。
e. 檢查系組內IRQ的使用。
視窗95或以上的操作系統,可以簡單地檢查關於IRQ的使用分配。 用戶可循以下途徑找到: 控制台→系統→裝置管理員→內容(選取電腦的情況下)→確定是IRQ的選項。
衝突與病徵
現在我們算是初步認識了IRQ,接著就是認識關於IRQ的衝突。當兩個或以上的裝置嘗試同時使用同一個資源時就會發生資源衝突。而當上述所指的資源是 IRQ時,就是IRQ衝突了。有些衝突是容易被識別,但有些衝突因為故障的出現不直接甚至出現一些不似是由裝置問題造成的“症狀”,故難以被發現及更正,以下就是部份常見的“病徵”:
1. 當使用某些裝置時“當機”;
2. 音效卡出現雜音;
3. 打印時輸出不正確或出現其他圖文;
4. 滑鼠的指標拒絕移動或出現“口吃”;
5. 視窗顯示錯誤訊息又或突然以安全模式(safe mode)運作;
6. 應用程式衝突並沒有提供原因;
7. 新的週邊加入以後,電腦系統出現奇怪行徑。
當然發生IRQ衝突時會出現以上情況,但有以上情況的又未必一定是IRQ衝突。而且“病發”與被病毒感染的情況很相似,所以當你懷疑是電腦資源衝突時,宜先檢查電腦系統內有沒有病毒。
如何解決衝突呢
IRQ衝突通常是意外的錯誤設定所造成。所以要解決衝突,理論上,就只是以下二個簡單的步驟: ヾ
a. 檢視lIRQ與裝置之間的合作情況; ヾ
b. 確定哪個是衝突的裝置及 ヾ
c. 改變資源設定,解決衝突。
第一步可以按上文所示從控制台內的系統檢視。第二步就需要做一點研究的功夫。除了解IRQ的使用情況外,用戶可以到裝置管理員,有沒有裝置出現“黃圈內的感嘆號”,那些裝置就是最大的“嫌疑犯”。用戶當然可以請教朋友,哪些是常見的資源衝突。其中IRQ2、3、4、5、7、9、 12及15是比較多出現問題的。最後,當然是更改資源設定。但這不是易做而且冒險的工作,有些裝置是不容許你更改設定的,你要首先取消“使用自動的設定” 一項的選擇。以下是一些解決衝突的意見,不妨參考參考:
a. 使用一些電腦系統的診斷工具,例如Norton Diagnostics,這些軟件會提供資源運用的分析。 但這並不是代表完美的解決方法。 ヾ
b. 如上文所述,IRQ2與IRQ9最好不要同時使用,或當作是一個IRQ看待。 ヾ
c. 新增Modem同時而系統又擁有COM2,衝突就會出現,除非更改Modem的設定。如果只是單單由 COM2改用COM 4、問題仍未解決,必須從IRQ 著手。
d. 音效卡與第二個並聯端口(second parallel port) 內設同是使用IRQ5,所以必先更改其中一個設定。小心別將第一個並聯端口改用IRQ5。
沒有留言:
張貼留言