專利名稱:用于在盤驅(qū)動器接口之間共享中斷的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計算機系統(tǒng)領(lǐng)域。更具體而言,本發(fā)明屬于在盤驅(qū)動器控制器之間共享中斷的領(lǐng)域。
背景技術(shù):
計算機系統(tǒng)典型地包括一個或多個盤驅(qū)動器裝置。這些驅(qū)動器裝置通過控制器耦合于系統(tǒng),該控制器典型地被嵌入系統(tǒng)芯片集。通常,兩個驅(qū)動器裝置可由單個控制器來支持。被耦合于控制器的每個驅(qū)動器可通過使中斷線成為確立的(asserted)來發(fā)送(signal)中斷給控制器。被耦合于控制器的兩個驅(qū)動器共享單個中斷線。一旦中斷已被發(fā)送,則在微處理器上運行的中斷處理機例行程序確定哪個驅(qū)動器確立中斷線。
許多計算機系統(tǒng)提供兩個驅(qū)動器控制器,其提供對總共四個驅(qū)動器的支持。一個中斷被提供給每個驅(qū)動器控制器。大多數(shù)計算機系統(tǒng)留出(setaside)兩個中斷用于硬驅(qū)動器支持。為這些系統(tǒng)所寫的軟件預(yù)期僅這兩個中斷將被指定給硬驅(qū)動器控制器。
在提高系統(tǒng)性能并減小系統(tǒng)成本的努力中,新的驅(qū)動器接口技術(shù)正被發(fā)展。新出現(xiàn)的驅(qū)動器接口技術(shù)將需要與上述的當前驅(qū)動器控制器共存。問題在于,為了使較新的技術(shù)與當前的驅(qū)動器控制器共存,驅(qū)動器控制器將需要附加的中斷,或者將需要用于共享所述兩個可用中斷的技術(shù)。為了支持新技術(shù)并避免改變軟件的大的已建立的基礎(chǔ),較為理想的是提供用于在較新和當前的驅(qū)動器控制器之間共享中斷的電路。
附圖簡述從以下給出的詳述和本發(fā)明實施例的附圖將較全面地理解本發(fā)明,然而,該附圖不應(yīng)被用于將本發(fā)明局限于所述特定的實施例,而僅僅是為了說明和理解。
圖1是一個計算機系統(tǒng)的方塊圖,該系統(tǒng)包括被耦合于并行盤驅(qū)動器互連和串行盤驅(qū)動器互連兩種的盤驅(qū)動器控制器單元。
圖2是包括并行盤驅(qū)動器控制器和串行盤驅(qū)動器控制器的盤驅(qū)動器控制器單元的一個實施例的方塊圖。
圖3是中斷調(diào)節(jié)邏輯單元的一個實施例的方塊圖。
圖4是中斷調(diào)節(jié)邏輯單元的附加實施例的方塊圖。
圖5是中斷調(diào)節(jié)邏輯單元的另一個實施例的方塊圖。
圖6是中斷調(diào)節(jié)邏輯單元的進一步實施例的方塊圖。
圖7是用于在兩個盤驅(qū)動器控制器之間共享中斷的方法的一個實施例的流程圖。
詳述用于在并行存儲裝置接口的控制器和串行存儲裝置接口的控制器之間共享中斷的設(shè)備包括中斷調(diào)節(jié)電路,如果沒有存儲裝置被耦合于并行存儲裝置接口,則該電路屏蔽來自并行存儲裝置接口的中斷信號。沒有存儲裝置被耦合于并行存儲裝置接口時對并行存儲裝置接口中斷的屏蔽允許用于串行存儲裝置接口的控制器共享傳統(tǒng)上被指定給并行存儲裝置接口的中斷。
盡管以下實施例描述了硬盤控制器和接口,其它實施例有可能使用用于其它類型的存儲裝置的控制器和接口,所述存儲裝置包括但不局限于光學驅(qū)動器、磁帶驅(qū)動器、軟盤驅(qū)動器等。
圖1是系統(tǒng)100的方塊圖,該系統(tǒng)包括被耦合于系統(tǒng)邏輯裝置120的處理器110。系統(tǒng)邏輯裝置被進一步耦合于圖形控制器130和系統(tǒng)存儲器140。系統(tǒng)邏輯裝置120亦被耦合于系統(tǒng)輸入/輸出集線器150。系統(tǒng)輸入/輸出集線器150包括驅(qū)動器控制器單元200,其將在以下結(jié)合圖2被較全面地討論。驅(qū)動器控制器單元200通過并行盤驅(qū)動器互連165耦合于盤驅(qū)動器160。盤驅(qū)動器控制器單元200亦通過串行盤驅(qū)動器互連175耦合于盤驅(qū)動器170。盤驅(qū)動器160對該示例實施例是任選的。
圖2是包括盤驅(qū)動器控制器單元200的方塊圖。盤驅(qū)動器控制器單元200包括并行盤驅(qū)動器控制器210和串行盤驅(qū)動器控制器220。串行盤驅(qū)動器控制器220借助串行盤驅(qū)動器互連175和串行盤驅(qū)動器接口250耦合于盤驅(qū)動器170。并行盤驅(qū)動器控制器210借助并行盤驅(qū)動器互連165和并行盤驅(qū)動器接口240耦合于盤驅(qū)動器160。并行盤驅(qū)動器互連165包括多個地址/數(shù)據(jù)/控制線166和一個并行盤驅(qū)動器中斷信號167。當盤驅(qū)動器160不將并行盤驅(qū)動器中斷信號167驅(qū)動到邏輯上低的電壓電平時,并行盤驅(qū)動器中斷信號167通過電阻器260提拉到邏輯高的電壓電平VCC。如果盤驅(qū)動器160未被安裝,則并行盤驅(qū)動器中斷信號167被提拉到VCC。
盤驅(qū)動器控制器單元亦包括中斷調(diào)節(jié)邏輯單元(ICL)230。ICL 230從串行盤驅(qū)動器控制器220接收并行盤驅(qū)動器中斷信號167和中斷未決(pending)信號221。在該示例實施例中,串行盤驅(qū)動器互連175不具有專用的中斷線。中斷是通過在串行盤驅(qū)動器互連175上遞送的中斷消息從盤驅(qū)動器170傳送到串行盤驅(qū)動器控制器220的。當在串行盤驅(qū)動器控制器220處接收中斷消息時,串行盤驅(qū)動器控制器220確立中斷未決信號221。
當盤驅(qū)動器160未被安裝時,ICL 230用于阻塞并行盤驅(qū)動器中斷信號167。如果盤驅(qū)動器160被安裝,則并行盤驅(qū)動器中斷信號167被傳遞到并行盤驅(qū)動器控制器中斷輸入231。ICL亦將中斷未決信號221傳遞直到并行盤驅(qū)動器控制器中斷輸入231。當沒有驅(qū)動器被耦合于并行盤驅(qū)動器接口240時,通過阻塞并行盤驅(qū)動器中斷信號167,ICL230允許串行盤驅(qū)動器控制器220共享并行盤驅(qū)動器控制器中斷輸入231。
沒有ICL,則僅當盤驅(qū)動器160和170被安裝時中斷共享是可能的。這是因為當沒有驅(qū)動器被安裝時,并行盤驅(qū)動器中斷信號167被拉到確立的狀態(tài)。通過在系統(tǒng)中斷控制器處屏蔽中斷,典型的現(xiàn)有計算機系統(tǒng)處理在沒有驅(qū)動器被安裝時確立的盤驅(qū)動器中斷信號。然而當多于一個的盤驅(qū)動器控制器共享中斷時,在系統(tǒng)中斷控制器處簡單地屏蔽中斷將使得不可能共享。
圖3是ICL 230的一個實施例的方塊圖。ICL 230包括AND門233、OR門234和屏蔽寄存器232。當計算機系統(tǒng)100被首先啟動時,作為在處理器110上運行的軟件代理(software agent)的系統(tǒng)基本輸入/輸出系統(tǒng)(BIOS)輪詢盤驅(qū)動器接口以確定哪些盤驅(qū)動器被安裝。
盡管當前實施例描述了BIOS輪詢盤驅(qū)動器接口以確定哪些盤驅(qū)動器被安裝,其它實施例也是可能的,其中在硬件中實施的狀態(tài)機進行輪詢操作而無需軟件干預(yù)。
如果沒有發(fā)現(xiàn)驅(qū)動器被耦合于并行盤驅(qū)動器接口240,則BIOS將“1”寫給屏蔽寄存器232。屏蔽寄存器的值被顛倒并被遞送給AND門233的一個輸入。AND門233的另一個輸入接收并行盤驅(qū)動器中斷信號167。當屏蔽寄存器232包含“1”時,AND門233的輸出將總是示出“0”,由此屏蔽并行盤驅(qū)動器中斷167。當屏蔽寄存器232包含“0”時,則由并行盤驅(qū)動器中斷信號167遞送給AND門233的無論什么值被傳遞到OR門234。因此,ICL 230將總是把中斷未決信號221傳遞給并行盤驅(qū)動器控制器中斷輸入231,并且僅當BIOS已檢測到驅(qū)動器被耦合于并行盤驅(qū)動器接口240且屏蔽寄存器未被置位時,將把并行盤驅(qū)動器中斷信號167傳遞給并行盤驅(qū)動器控制器中斷輸入231。
圖4是ICL單元的另一個實施例的方塊圖。該示例實施例可與在以上結(jié)合圖3討論的實施例互換地使用。圖4是ICL 400以八位解碼器410為基礎(chǔ)。解碼器410在其輸入C處從串行盤驅(qū)動器控制器220接收中斷未決信號221。B輸入接收并行盤驅(qū)動器中斷信號167。A輸入接收觸發(fā)器430的反相輸出。如果BIOS未能檢測到被耦合于并行盤驅(qū)動器接口240的盤驅(qū)動器,則“1”通過屏蔽信號431遞送給觸發(fā)器430。在該值在屏蔽信號431上遞送期間寫信號432被用于鐘控。
如果在并行盤驅(qū)動器接口上沒有檢測到驅(qū)動器,則解碼器410的A輸入將從觸發(fā)器430接收“0”。當A輸入接收“0”并且并行盤驅(qū)動器中斷167被確立時,沒有一個被耦合于OR門420的解碼器輸出將成為確立的。因此,并行盤驅(qū)動器中斷167被屏蔽。不論何時當中斷未決信號221被確立時,被耦合于OR門420的解碼器輸出之一被保證成為確立的。以這種方式,來自串行盤驅(qū)動器控制器220的中斷未決信號221總是被傳遞到并行盤驅(qū)動器控制器中斷輸入231,并且僅當BIOS已檢測到并行盤驅(qū)動器接口240上盤驅(qū)動器的存在時,并行盤驅(qū)動器中斷167被轉(zhuǎn)到并行盤驅(qū)動器控制器中斷輸入上。
圖5是ICL單元的附加實施例的方塊圖。圖5的ICL 500以動態(tài)隨機存取存儲器查詢表(LUT)510為基礎(chǔ)。LUT 510包括可通過CPU訪問路徑515訪問處理器110的寫端口512。BIOS可使適當?shù)闹当粚懙絃UT 510中,其中該值基于BIOS是否已檢測到被耦合于并行盤驅(qū)動器接口240的盤驅(qū)動器。在LUT 510中存儲的值通過地址輸入A1和A0來訪問。A1和A0輸入分別被耦合于并行盤驅(qū)動器中斷信號167和中斷未決信號221。被置于輸出513上的值依賴于A1和A0輸入的狀態(tài)。通過用適當?shù)闹祦砭幊蘈UT 510,LUT 510可防止并行盤驅(qū)動器中斷信號167被轉(zhuǎn)到并行盤驅(qū)動器控制器中斷輸入231上,除非已在并行盤驅(qū)動器接口240上檢測到盤驅(qū)動器。此外,LUT 510將允許中斷未決信號221總是被轉(zhuǎn)到并行盤驅(qū)動器控制器中斷輸入231上。
圖6是基于只讀存儲器(ROM)610的ICL的進一步實施例的方塊圖。ICL 600包括ROM 610和觸發(fā)器630。圖6的ICL 600以與圖5的基于LUT的實施例基本上相同的方式工作。然而,由于ROM 610必須在系統(tǒng)操作之前被編程并且因為BIOS不能改變ROM 610的值,觸發(fā)器630被用于操縱提供給ROM 610的地址輸入的值,從而根據(jù)BIOS是否已檢測到被耦合于并行盤驅(qū)動器接口240的盤驅(qū)動器來訪問不同的存儲單元。如果沒有盤驅(qū)動器被檢測到,則BIOS遞送“1”給輸入到觸發(fā)器630的屏蔽631?!?”通過寫信號632被控鐘輸入到觸發(fā)器630中。觸發(fā)器630的輸出與中斷未決信號221和并行盤驅(qū)動器中斷信號167一起被遞送給ROM 610的地址輸入。適當?shù)臄?shù)據(jù)從ROM 610的輸出612被驅(qū)動到并行盤驅(qū)動器控制器中斷輸入231。
圖7是用于在兩個盤驅(qū)動器控制器之間共享中斷的方法的一個實施例的流程圖。在方塊710處,確定盤驅(qū)動器是否被耦合于第一盤驅(qū)動器接口。如果盤驅(qū)動器被檢測到,則在方塊730處,第一中斷從第一盤驅(qū)動器接口被遞送給第一盤驅(qū)動器控制器中斷輸入。如果在方塊710處未檢測到盤驅(qū)動器,則在方塊720處,屏蔽位被設(shè)置。在方塊740處,第一中斷被防止從第一盤驅(qū)動器接口遞送給第一盤控制器中斷輸入。最后,在方塊750處,第二中斷從第二盤驅(qū)動器控制器被遞送給第一盤驅(qū)動器控制器中斷輸入。
在以上說明書中,本發(fā)明已參照其特定的示例實施例被描述。然而,顯然可在如在所附的權(quán)利要求中提出的本發(fā)明較寬廣的精神和范圍內(nèi)對其進行各種修改和變化。因此,說明書和附圖應(yīng)被看做是說明性的,而不是限定性的。
說明書中的參考“實施例”、“一個實施例”、“一些實施例”或“其它實施例”意味著結(jié)合實施例所述的特定特點、結(jié)構(gòu)或特征被包括在本發(fā)明的至少一些實施例中,但不必要是所有的實施例。“實施例”、“一個實施例”或“一些實施例”的各種外部特性不必要都指的是相同的實施例。
權(quán)利要求
1.一種設(shè)備,包括第一存儲裝置接口;第二存儲裝置接口;第一控制器,被耦合于第一存儲裝置接口,第一控制器包括中斷信號輸入;第二控制器,被耦合于第二存儲裝置接口;以及中斷調(diào)節(jié)單元,從第一存儲裝置接口接收第一中斷信號并從第二控制器接收第二中斷信號;該中斷調(diào)節(jié)單元遞送第二中斷信號給第一控制器中斷信號輸入;如果存儲裝置被耦合于第一存儲裝置接口,則該中斷調(diào)節(jié)單元進一步遞送第一中斷信號給第一控制器中斷信號輸入;如果沒有盤驅(qū)動器被耦合于第一存儲裝置接口,則該中斷調(diào)節(jié)單元不遞送第一中斷信號給第一控制器中斷信號輸入。
2.權(quán)利要求1的設(shè)備,其中中斷調(diào)節(jié)單元包括AND門和OR門,AND門具有被耦合于第一中斷信號的第一輸入,并且AND門具有被耦合于屏蔽寄存器的第二輸入,屏蔽寄存器存儲表示存儲裝置是否被耦合于第一存儲裝置接口的值,OR門的第一輸入被耦合于AND門的輸出,并且OR門的第二輸入被耦合于所述第二中斷信號,OR門的輸出被耦合于第一控制器中斷信號輸入。
3.權(quán)利要求2的設(shè)備,其中由屏蔽寄存器指示的值在遞送給AND門的第二輸入之前被顛倒。
4.權(quán)利要求1的設(shè)備,其中第一存儲裝置接口是并行接口。
5.權(quán)利要求4的設(shè)備,其中第二存儲裝置接口是串行接口。
6.權(quán)利要求5的設(shè)備,其中響應(yīng)于從串行接口接收的中斷消息,第二控制器確立第二中斷信號。
7.一種方法,包括確定存儲裝置是否被耦合于第一存儲裝置接口;如果沒有存儲裝置被耦合于第一存儲裝置接口,則設(shè)置屏蔽位;如果屏蔽位未被設(shè)置,則將第一中斷從第一存儲裝置接口遞送給第一控制器中斷輸入;如果屏蔽位被設(shè)置,則防止第一中斷被從第一存儲裝置接口被遞送給第一控制器中斷輸入;以及將第二中斷從第二控制器遞送給第一控制器中斷輸入。
8.權(quán)利要求7的方法,進一步包括將中斷消息從第二存儲裝置接口遞送給第二控制器。
9.權(quán)利要求8的方法,其中將中斷消息從第二存儲裝置接口遞送給第二控制器包括將中斷消息從所述串行接口遞送給第二控制器。
10.一種系統(tǒng),包括處理器;以及被耦合于所述處理器的系統(tǒng)邏輯裝置,該系統(tǒng)邏輯裝置包括第一存儲裝置接口,第二存儲裝置接口,被耦合于第二存儲裝置,第一控制器,被耦合于第一存儲裝置接口,第一控制器包括中斷信號輸入,第二控制器,被耦合于第二存儲裝置接口,以及中斷調(diào)節(jié)單元,從第一存儲裝置接口接收第一中斷信號并從第二控制器接收第二中斷信號;該中斷調(diào)節(jié)單元遞送第二中斷信號給第一控制器中斷信號輸入;如果第一存儲裝置被耦合于第一存儲裝置接口,則該中斷調(diào)節(jié)單元進一步遞送第一中斷信號給第一控制器中斷信號輸入;如果沒有存儲裝置被耦合于第一存儲裝置接口,則該中斷調(diào)節(jié)單元不遞送第一中斷信號給第一控制器中斷信號輸入。
11.權(quán)利要求10的系統(tǒng),其中中斷調(diào)節(jié)單元包括AND門和OR門,AND門具有被耦合于第一中斷信號的第一輸入,并且AND門具有被耦合于屏蔽寄存器的第二輸入,屏蔽寄存器存儲表示存儲裝置是否被耦合于第一存儲裝置接口的值,OR門的第一輸入被耦合于AND門的輸出,并且OR門的第二輸入被耦合于第二中斷信號,OR門的輸出被耦合于第一控制器中斷信號輸入。
12.權(quán)利要求11的系統(tǒng),其中由屏蔽寄存器指示的值在遞送給AND門的第二輸入之前被顛倒。
13.權(quán)利要求10的系統(tǒng),其中第一存儲裝置接口是并行接口。
14.權(quán)利要求13的系統(tǒng),其中第二存儲裝置接口是串行接口。
15.權(quán)利要求14的系統(tǒng),其中響應(yīng)于正從串行接口接收的中斷消息,第二控制器確立第二中斷信號。
全文摘要
用于在并行存儲裝置接口的控制器和串行存儲裝置接口的控制器之間共享中斷的設(shè)備包括中斷調(diào)節(jié)電路,如果沒有存儲裝置被耦合于并行存儲裝置接口,則該電路屏蔽來自并行存儲裝置接口的中斷信號。沒有存儲裝置被耦合于并行存儲裝置接口時對并行存儲裝置接口中斷的屏蔽允許用于串行存儲裝置接口的控制器共享傳統(tǒng)上被指定給并行存儲裝置接口的中斷。
文檔編號G06F13/24GK1494676SQ01822922
公開日2004年5月5日 申請日期2001年12月21日 優(yōu)先權(quán)日2000年12月29日
發(fā)明者D·波伊斯納, T·E·歐伊, D 波伊斯納, 歐伊 申請人:英特爾公司