專利名稱:設(shè)備資源分配的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及設(shè)備資源分配領(lǐng)域。
背景技術(shù):
在主板上模塊化的獨立磁盤或廉價磁盤冗余陣列(RAID)(MROMB)技術(shù)中,位于電路卡中的MROMB電路例如可被用來獨立于主板上的主處理器來配置并控制同樣位于主板上的輸入/輸出(I/O)控制器。主板上的MROMB硬件執(zhí)行各種操作,這些操作使得電路卡上的MROMB電路能夠獨立于主處理器來配置并控制I/O控制器。
迄今,已經(jīng)由電路卡獨立于主處理器將預(yù)定地址分配給了I/O控制器。結(jié)果,根據(jù)可由主處理器分配給其它設(shè)備的地址,例如在主處理器啟動的配置周期內(nèi),I/O控制器的地址中的一個或多個地址有可能與主處理器分配給這些其它設(shè)備的地址中的一個或多個地址相沖突。
結(jié)合附圖,參考以下詳細(xì)的描述,將會清楚所要求保護(hù)主題的各個實施方案的特點和優(yōu)點,其中相同的標(biāo)號代表相同的部分,其中圖1圖示了所要求保護(hù)主題的實施方案。
圖2更詳細(xì)地圖示了MROMB主板硬件。
圖3是圖示了所要求保護(hù)主題的一個實施方案中所涉及的操作的流程圖。
圖4圖示了根據(jù)所要求保護(hù)主題的一個實施方案的地址分配。
圖5是圖示了根據(jù)所要求保護(hù)主題的實施方案的一種模式的操作中所涉及的操作的流程圖。
應(yīng)當(dāng)理解,雖然以下詳細(xì)的描述中將參考所要求保護(hù)主題的多個示例性實施方案,但是這些實施方案的很多替換、修改和變化對本領(lǐng)域的技術(shù)人員而言都是清楚的。因此,希望將所要求保護(hù)主題的范圍看得更寬廣一些,并且僅由所附權(quán)利要求書來限定。
具體實施例方式
圖1圖示了所要求保護(hù)主題的一個系統(tǒng)實施方案10。系統(tǒng)10可以包括耦合于芯片組14的主處理器12。主處理器12例如可以包括IntelPentiumIII或IV微處理器,該微處理器在商業(yè)上可從本申請的受讓人那里獲得。當(dāng)然,可替換地,主處理器12也可以包括另一種類型的微處理器,例如在不偏離本實施方案的情況下,商業(yè)上從不同于本申請的受讓人的來源處獲得和/或由其制造的微處理器。
芯片組14可以包括主機(jī)橋/集線器(host bridge/hub)系統(tǒng),該系統(tǒng)可以將主處理器12、系統(tǒng)存儲器21和用戶接口系統(tǒng)16相互耦合在一起,并將它們耦合到總線系統(tǒng)22。芯片組14還可以包括I/O橋/集線器系統(tǒng)(未示出),該系統(tǒng)可以將主機(jī)橋/總線系統(tǒng)耦合到總線22。芯片組14可以包括(多個)集成電路芯片,這些芯片比如是從商業(yè)上可從本申請的受讓人那里獲得的集成電路芯片組(例如,圖形存儲器和I/O控制器中心芯片組)中選出的,不過在不偏離這個實施方案的情況下,也可以使用其它集成電路芯片,或者替代性地使用其它集成電路芯片。另外,芯片組14可以包括中斷控制器15,該控制器可對接收自系統(tǒng)100中其它組件的中斷進(jìn)行處理,例如,當(dāng)MROMB電路卡20被正確地插入到電路卡總線擴(kuò)展槽30中時,可對接收自該卡20的中斷進(jìn)行處理,另外還可以對來自I/O控制器26和I/O控制器42的中斷進(jìn)行處理。當(dāng)然,可替換地,這里描述為包括在卡20中的有效(operative)MROMB電路不一定包括在卡20中,相反,在不偏離這一實施方案的前提下,它可以包括在耦合于總線22的其它結(jié)構(gòu)、系統(tǒng)和/或設(shè)備中,并且與系統(tǒng)100的其它組件交換數(shù)據(jù)和/或命令。用戶接口系統(tǒng)16可以包括,例如,鍵盤、指針設(shè)備和顯示系統(tǒng),它可以允許人類用戶向系統(tǒng)100輸入命令,或者監(jiān)控系統(tǒng)100的操作。
總線22可以包括遵循1998年6月8日公開的Peripheral Component Interconnect(PCDLocal Bus Specification(外圍元件互連局部總線規(guī)范)2.2版本的總線,該規(guī)范可從位于美國俄勒岡州波特蘭市的PCI特殊興趣小組(PCI Special Interest Group)處獲得(此后稱為“PCI總線”)?;蛘?,如果適當(dāng)?shù)匦薷南到y(tǒng)100,則總線22也可以包括遵循PCI-X規(guī)范1.0a版本的總線,上述規(guī)范是由上述位于美國俄勒岡州波特蘭市的PCI特殊興趣小組(PCI Special Interest Group)出版并可從該組織獲得的(此后稱為“PCI-X總線”)。但是,應(yīng)當(dāng)理解,如果適當(dāng)?shù)匦薷南到y(tǒng)100,則總線22可以包括其它類型和配置的總線系統(tǒng),而不會偏離本發(fā)明的這一實施方案。
I/O控制器26可以通過MROMB主板硬件機(jī)制24被耦合到芯片組14、PCI總線22和MROMB電路卡槽30。I/O控制器26還可以耦合到一個或多個I/O設(shè)備(此后統(tǒng)稱為或單一地稱為“I/O設(shè)備28”)并控制其操作。I/O設(shè)備28例如可以包括由一個或多個存儲設(shè)備構(gòu)成的組,所述存儲設(shè)備包括,例如,一個或多個磁盤、光盤或固態(tài)存儲設(shè)備。所述一個或多個存儲設(shè)備例如可被配置為一個或多個大容量存儲設(shè)備陣列。
或者,I/O設(shè)備28可改為包括一個或多個網(wǎng)絡(luò)適配器或接口設(shè)備,這些設(shè)備可用來將系統(tǒng)100接口到一個或多個外部計算機(jī)網(wǎng)絡(luò)。根據(jù)這種替換性的設(shè)置,I/O設(shè)備28可被配置為通過所述一個或多個外部計算機(jī)網(wǎng)絡(luò)與外部網(wǎng)絡(luò)設(shè)備(例如,主機(jī)或服務(wù)器計算機(jī)節(jié)點)交換數(shù)據(jù)和命令。
系統(tǒng)100還可以包括另一個I/O控制器42。I/O控制器42可被耦合到總線22。I/O控制器42還可被耦合到一個或多個I/O設(shè)備(此后統(tǒng)稱為或單一地稱為“I/O設(shè)備44”)并控制其操作。I/O設(shè)備44例如可以包括由一個或多個存儲設(shè)備構(gòu)成的組,所述存儲設(shè)備包括,例如,一個或多個磁盤、光盤或固態(tài)存儲設(shè)備。所述一個或多個存儲設(shè)備例如可被配置為一個或多個大容量存儲設(shè)備陣列。
或者,I/O設(shè)備44可改為包括一個或多個網(wǎng)絡(luò)適配器或接口設(shè)備,這些設(shè)備可用來將系統(tǒng)100接口到一個或多個外部計算機(jī)網(wǎng)絡(luò)。根據(jù)這種替換性的設(shè)置,I/O設(shè)備44可被配置為通過所述一個或多個外部計算機(jī)網(wǎng)絡(luò)與外部網(wǎng)絡(luò)設(shè)備(例如,主機(jī)或服務(wù)器計算機(jī)節(jié)點)交換數(shù)據(jù)和命令。
處理器12、系統(tǒng)存儲器21、芯片組14、PCI總線22、MROMB硬件機(jī)制24、MROMB電路卡槽30、I/O控制器26和I/O控制器42可包括在單個電路板中,例如系統(tǒng)主板32中。雖然在圖1中將I/O設(shè)備28和I/O設(shè)備44示為包括在主板32中,但是I/O設(shè)備28和/或I/O設(shè)備44不需要一定包括在主板32中。例如,I/O設(shè)備28和I/O設(shè)備44每一個都可以包括在一個或多個各自的封裝(enclosure)中,這些封裝與主板32以及包括在主板32中的組件被包圍其中的封裝相互獨立。
根據(jù)I/O設(shè)備28的具體配置和操作特性,I/O控制器26可被配置為使用多種不同通信協(xié)議之一來和I/O設(shè)備28交換數(shù)據(jù)和/或命令,所述通信協(xié)議例如包括小型計算機(jī)系統(tǒng)接口(SCSI)、光纖信道(FC)、以太網(wǎng)、串行高級技術(shù)配件(S-ATA)、或傳輸控制協(xié)議/因特網(wǎng)協(xié)議(TCP/IP)通信協(xié)議。當(dāng)然,可替換地,I/O控制器26也可被配置為使用其它通信協(xié)議與I/O設(shè)備28交換數(shù)據(jù)和/或命令,而不會偏離所要求保護(hù)的主題的這一根據(jù)這一實施方案,控制器26可以使用SCSI協(xié)議與I/O設(shè)備28交換數(shù)據(jù)和/或命令,所述SCSI協(xié)議可以遵循在美國國家標(biāo)準(zhǔn)協(xié)會(ANSI)小型計算機(jī)系統(tǒng)接口-2(American National Standard Institute(ANSI)Small Computer Systems Interface-2(SCSI-2))ANSI X3.131-1994規(guī)范(ANSI X3.131-1994 Specification)中所描述的接口/協(xié)議,或與之兼容。如果控制器26使用FC協(xié)議與I/O設(shè)備28交換數(shù)據(jù)和/或命令,那么該協(xié)議可以遵循在ANSI標(biāo)準(zhǔn)光纖信道物理和信號接口-3(ANSI Standard Fibre Channel(FC)Physical and Signaling Interface-3)X3.3031998規(guī)范(X3.3031998 Specification)中所描述的接口/協(xié)議,或與之兼容?;蛘?,如果控制器26使用以太網(wǎng)協(xié)議與I/O設(shè)備28交換數(shù)據(jù)和/或命令,那么該協(xié)議可以遵循在2000年10月20日出版的電氣和電子工程師學(xué)會Std 802.3,2000版本(Institution of Electrical and Electronic Engineers,Inc.(IEEE)Std 802.3,2000 Edition)中所描述的協(xié)議,或與之兼容。此外,可替換地,如果控制器26使用S-ATA協(xié)議與I/O設(shè)備28交換數(shù)據(jù)和/或命令,那么該協(xié)議可以遵循在由串行ATA工作組(Serial ATA Working Group)于2001年8月29日出版的“串行ATA高速串行化高級技術(shù)配件”(“Serial ATAHigh Speed Serialized AT Attachment”)修訂本1.0(Revision1.0)中所描述的協(xié)議,或與之兼容。另外,可替換地,如果控制器26使用TCP/IP協(xié)議與I/O設(shè)備28交換數(shù)據(jù)和/或命令,那么該協(xié)議可以遵循在1981年9月出版的互聯(lián)網(wǎng)工程任務(wù)組請求評論(Internet Engineering Task Force(IETF)Request for Comments(RFC))791和793中所描述的協(xié)議,或與之兼容。另外,根據(jù)這一實施方案,如果I/O設(shè)備28被用來將系統(tǒng)100接口到一個或多個外部計算機(jī)網(wǎng)絡(luò),那么I/O設(shè)備28可以使用例如上述TCP/IP協(xié)議和/或以太網(wǎng)協(xié)議,經(jīng)由一個或多個外部計算機(jī)網(wǎng)絡(luò)與外部主機(jī)和/或服務(wù)器計算機(jī)節(jié)點交換數(shù)據(jù)和/或命令。
同樣,根據(jù)I/O設(shè)備44的具體配置和操作特性,I/O控制器42可以使用可由I/O控制器26(根據(jù)I/O設(shè)備28的具體配置和操作特性)用來與I/O設(shè)備28交換數(shù)據(jù)和/或命令的不同類型的通信協(xié)議中的一種協(xié)議,來和I/O設(shè)備44交換數(shù)據(jù)和/或命令?;蛘撸琁/O控制器42可以使用其它通信協(xié)議與I/O設(shè)備44交換數(shù)據(jù)和/或命令,而不會偏離所要求保護(hù)的主題的這一實施方案。
電路卡槽30可以包括PCI擴(kuò)展槽,所述PCI擴(kuò)展槽包括PCI總線連接器36。連接器36可以在電氣和機(jī)械上與包括在MROMB電路卡20中的PCI總線連接器34相配對。除了包括連接器34之外,電路卡20還可以包括I/O處理器40和計算機(jī)可讀存儲器38。根據(jù)具體的實施方案,存儲器38可以包括以下類型的計算機(jī)可讀存儲器中的一種或多種半導(dǎo)體固件存儲器、可編程存儲器、非易失性存儲器、只讀存儲器、電可編程存儲器、隨機(jī)訪問存儲器、高速緩存存儲器、閃存、磁盤存儲器、和/或光盤存儲器。此外,應(yīng)當(dāng)理解,或者附加地或者替換性地,存儲器38可以包括其它的和/或后來開發(fā)出的類型的計算機(jī)可讀存儲器。處理器40可以包括那些包含在集成電路芯片組中的集成電路芯片(未示出),所述芯片組例如是商業(yè)上可從本申請的受讓人那里獲得的芯片組(例如,Intel80310芯片組)。或者,處理器40可以改為包括其它的集成電路芯片(例如,Intel80960 RM/RN I/O處理器、Intel80321處理器和/或可從本申請的受讓人那里獲得的其它類型的處理器),或者其它類型的處理器/集成電路,而不會偏離所要求保護(hù)主題的這一槽30和卡20被構(gòu)造為使得卡20可被插入到槽30中。當(dāng)卡20被正確地插入到槽30中時,連接器34和36相互之間電耦合并且機(jī)械耦合在一起。當(dāng)連接器34和36如此耦合到一起后,卡20就通過主板MROMB硬件機(jī)制24被電耦合到控制器26和中斷控制器15,同時卡20還電耦合到總線22。
在本發(fā)明的這一實施方案中,主板32中的MROMB硬件機(jī)制24允許在系統(tǒng)100中實現(xiàn)MROMB技術(shù)。例如,硬件機(jī)制24可以包括在IntelSCB2 Sever Board中所使用的那類MROMB電路(商業(yè)上可從本申請的受讓人那里獲得),這種MROMB電路可以在系統(tǒng)100中實現(xiàn)RAID輸入/輸出轉(zhuǎn)向(steering)(RAIDIOS)技術(shù)?;蛘?,硬件機(jī)制24可以包括例如在P3TDDRTM主板(商業(yè)上可從美國加州圣何塞的SUPERMICRO計算機(jī)公司獲得)中所使用的那類嵌入式RAID邏輯(EMRL)MROMB電路,這種MROMB電路可以在系統(tǒng)100中實現(xiàn)EMRL技術(shù)。雖然這里將硬件24描述為可實現(xiàn)RAIDIOS技術(shù)或EMRL技術(shù),但是可替換地,硬件機(jī)制24也可以實現(xiàn)其它類型的MROMB技術(shù),而不會偏離本發(fā)明的這一實施方案。
現(xiàn)在具體參考圖2,取決于硬件機(jī)制24實現(xiàn)了RAIDIOS類或非RAIDIOS類(例如,EMRL MROMB技術(shù))的MROMB技術(shù),硬件機(jī)制24的具體配置和操作可能有所不同。然而,在任何一種情況中,在本發(fā)明的這一實施方案中,MROMB硬件24都可以包括“初始化設(shè)備選擇(IDSEL,Initialization Device Select)”控制機(jī)制200和中斷轉(zhuǎn)向機(jī)制202。IDSEL控制機(jī)制200可被耦合到PCI總線22、電路卡槽30和I/O控制器26。IDSEL控制機(jī)制200可以包括這樣一種電路,所述電路至少部分基于從槽30提供給機(jī)制200的控制信號,可控地將I/O控制器26的IDSEL信號線耦合到PCI總線22,或從中解耦合出該信號線。
正如本領(lǐng)域的技術(shù)人員所公知的那樣,I/O控制器26的IDSEL信號線可被耦合到總線22的地址線中預(yù)定的一條線,并且可通過該線提供給控制器26的IDSEL信號在配置周期內(nèi)(例如,緊跟在系統(tǒng)100重啟動后的周期)可以用作在這些配置周期內(nèi)實現(xiàn)對I/O控制器的配置和/或控制的選擇或使能信號。根據(jù)本發(fā)明的這一實施方案,當(dāng)卡20離開槽30時,從槽30向機(jī)制200提供控制信號,導(dǎo)致機(jī)制200將這條IDSEL信號線耦合到總線22,從而使得主處理器12可在主處理器啟動的配置周期內(nèi)驅(qū)動該線。然而,當(dāng)卡20被正確地插入槽30中時,槽30向機(jī)制200提供控制信號,導(dǎo)致機(jī)制200從總線22上解耦合控制器26的IDSEL線,以在這些周期內(nèi)將控制器26相對于主處理器12“隱藏”起來。此后,通過適當(dāng)?shù)乜刂七@個控制信號,卡20可以在I/O處理器40所啟動的總線22的多次掃描期間,經(jīng)由控制器26的IDSEL線,有選擇地將I/O控制器26耦合到總線22,和/或有選擇地從總線22上解耦合I/O控制器26,從而允許控制器26可被卡20而不是主處理器12發(fā)現(xiàn)、配置和/或控制。雖然在圖中沒有示出,但是除了總線22中用來將IDSEL信號傳播到I/O控制器26的那條預(yù)定的地址線外,在這個實施方案中,PCI總線22的信號線也可以直接耦合到I/O控制器26,從而允許I/O控制器26經(jīng)由總線22與系統(tǒng)100中同樣耦合到總線22的其它設(shè)備交換數(shù)據(jù)和/或命令。
中斷轉(zhuǎn)向機(jī)制202可被耦合到電路卡槽30、I/O控制器26和芯片集14中的中斷控制器15。機(jī)制202可以有選擇地將一條或多條來自I/O控制器26的中斷信號線耦合到卡槽30。機(jī)制202還可以基于從槽30提供給該機(jī)制的控制信號,有選擇地將所述一條或多條中斷信號線耦合到芯片組14中的中斷控制器15。這一控制信號可以使I/O控制器26的所述一條或多條中斷信號線在卡20離開槽30時被耦合到中斷控制器15,并且可以使所述一條或多條中斷信號線在卡20被正確插入槽30中時從中斷控制器15中解耦合出來。于是,當(dāng)卡20離開槽30時,I/O控制器26所生成的中斷信號可由機(jī)制202路由或轉(zhuǎn)向到中斷控制器15,以由中斷控制器15來處理。然而,當(dāng)卡20位于槽30中時,I/O控制器26所生成的中斷信號可由機(jī)制202路由到卡20,以由卡20中的處理器40來處理。槽30可以在卡20被正確插入槽30中時將卡20所生成的中斷信號發(fā)送到中斷控制器15,以允許中斷控制器15來處理這些中斷。
如果硬件機(jī)制24實現(xiàn)了RAIDIOS,則IDSEL控制機(jī)制200可以包括一種基于晶體管的開關(guān)機(jī)制(未示出),該機(jī)制可處于以下兩種狀態(tài)之一中在第一狀態(tài)中,I/O控制器26的IDSEL信號線可被耦合到PCI總線22,在第二狀態(tài)中,該信號線可解耦合出PCI總線22。在一個實施方案中,控制這一開關(guān)機(jī)制的狀態(tài)的控制信號可以是來自PCI總線槽30的“聯(lián)合測試工作組(JTAG)IEEE標(biāo)準(zhǔn)測試接入端口和邊界掃描體系結(jié)構(gòu)測試模式選擇(TMS)”信號。這一TMS信號可以遵循IEEE標(biāo)準(zhǔn)1149.1-1990。即,PCI槽30中的TMS信號插針(pin)可被耦合到控制機(jī)制200,并且通過槽30的這個TMS信號插針而傳播到控制機(jī)制200的信號(此后稱為槽30的“TMS信號”)的狀態(tài)可以控制所述控制機(jī)制200中的開關(guān)機(jī)制的狀態(tài)。槽30可被構(gòu)造為,當(dāng)卡20離開槽30時,這個TMS信號的狀態(tài)可被驅(qū)動為某種邏輯態(tài)(例如,高邏輯態(tài)),該邏輯態(tài)可以使控制機(jī)制200中的開關(guān)機(jī)制將I/O控制器的IDSEL信號連接到總線22。然而,當(dāng)卡20被正確地插入到槽30中時,卡20中的處理器40就可以控制這個TMS信號的邏輯態(tài)。此后,處理器40可以以下述方式來控制這個TMS信號的邏輯態(tài)。
另外,如果硬件24實現(xiàn)了RAIDIOS,那么中斷轉(zhuǎn)向機(jī)制202可以包括多個三態(tài)緩沖器(未示出),它們由通過槽30的JTAG測試數(shù)據(jù)輸入(TDI)插針而傳播的信號(此后稱為來自槽30的“TDI信號”)的邏輯態(tài)來控制。這些三態(tài)緩沖器可以允許來自控制器26的預(yù)定中斷信號在通過槽30的TDI插針而傳播的信號處于預(yù)定的邏輯電平(例如,高邏輯態(tài))時才被中斷控制器15接收。槽30可被構(gòu)造為,當(dāng)卡20離開槽30時,通過槽30的TDI插針而傳播的信號可被驅(qū)動為高邏輯態(tài),相反,當(dāng)卡20被正確地插入到槽30中時,這個信號可被驅(qū)動為低邏輯態(tài),并且來自I/O控制器26的中斷信號可被路由到槽30的預(yù)定中斷信號插針。槽30的中斷信號插針可被耦合到中斷控制器15。
如上所述,根據(jù)可以實現(xiàn)的具體MROMB技術(shù),硬件機(jī)制24的構(gòu)造可能有所不同。因此,如果硬件機(jī)制24實現(xiàn)了一種非RAIDIOS MROMB技術(shù),那么IDSEL控制機(jī)制200、中斷轉(zhuǎn)向機(jī)制202以及從槽30提供給硬件機(jī)制24的控制信號的構(gòu)造和操作都可能與RAIDIOS技術(shù)中的不同。處理器40可以發(fā)出控制信號,所述控制信號可以使得卡20向硬件機(jī)制24提供適當(dāng)?shù)目刂菩盘栆钥刂朴布C(jī)制24,從而實現(xiàn)這種MROMB技術(shù)。在這一實施方案中,卡20可以向硬件機(jī)制24發(fā)出適當(dāng)?shù)目刂菩盘?。更具體地,卡20可以包括存儲在存儲器38中的固件程序指令,這些指令在由處理器40執(zhí)行時,可以使得卡20向硬件24發(fā)出適當(dāng)?shù)目刂菩盘?,以控制?或配置I/O控制器26。
圖3是圖示了根據(jù)一個實施方案,可在系統(tǒng)100中執(zhí)行的這些以及其它操作301的流程圖。例如在系統(tǒng)100重啟動后(例如圖3中的操作301),卡20中的處理器40可以執(zhí)行包括在存儲于存儲器38中的固件程序指令中的一個或多個子例程或過程。這可以使得I/O處理器40基于通過總線22傳播的信號,確定主處理器12是否已啟動了以下設(shè)備的配置周期,所述設(shè)備在(例如圖3中的操作302的)配置周期內(nèi)被耦合到總線22,并且通過總線22是可尋址的和/或可配置的(此后將這些設(shè)備稱為“總線可尋址設(shè)備”,例如I/O控制器26、I/O控制器42和卡20)。正如本領(lǐng)域的技術(shù)人員所能理解的,MROMB主板硬件24包括一個可控接口,I/O控制器26的中斷信號和IDSEL信號可以通過該接口傳播。
在I/O處理器40確定主處理器12已啟動這樣的配置周期后,I/O處理器40可以發(fā)信號通知卡20。這可以使得卡20向主處理器12發(fā)出若干重試(retry),以拖延(hold-off)由主處理器12啟動的這些配置周期(例如在圖3的操作304中)。此后,在主處理器12所啟動的配置周期被拖延的同時,I/O處理器40可以確定系統(tǒng)100中在I/O處理器40所啟動的一個或多個配置周期內(nèi)可由卡20使用硬件機(jī)制24來控制和/或配置的任何可尋址設(shè)備。這里所使用的第一設(shè)備(例如I/O控制器26)可被認(rèn)為是由第二設(shè)備(例如I/O處理器40)“可配置的”,如果該第二設(shè)備能夠至少部分地控制和/或選擇第一設(shè)備的操作的至少一個特點、模式和/或特性的話。I/O處理器40還可以確定那些可被定位的總線可尋址設(shè)備的位置或多個位置,例如總線22上的下述地址,通過這些地址,可以使用硬件機(jī)制24在一個或多個I/O處理器40啟動的配置周期中配置和/或控制所述的總線可尋址設(shè)備,例如參見圖3中的操作306。例如,可以預(yù)先確定任何這種總線可尋址設(shè)備的總線地址,并且可用這些預(yù)先確定的位置來編程處理器40。
或者,處理器40例如可以根據(jù)Paul E.Luse和Dieter E.Massa在以下的美國專利申請中的教導(dǎo),至少部分地基于多次總線掃描的結(jié)果來確定系統(tǒng)100中的任何這種可控和/或可配置設(shè)備的位置或多個位置,所述美國專利申請名稱為“DEVICE DISCOVERYAND DYNAMIC CONFIGURATION OF CONTROL APPLICATION(控制應(yīng)用的設(shè)備發(fā)現(xiàn)和動態(tài)配置)”,其申請序列號尚未指定(代理機(jī)構(gòu)卷號為No.042390.P13491),該申請被轉(zhuǎn)讓給本申請的受讓人,并和本申請同時被提交。這里所使用的“總線掃描”涉及向總線(例如總線22)的一個或多個地址發(fā)出一個或多個請求(例如,配置讀請求),以獲得一個或多個響應(yīng)(例如,配置讀響應(yīng)),該響應(yīng)可以是指示了一個或多個總線可尋址設(shè)備的存在、特性、類型和/或操作的信息,和/或包含有這些信息。
例如,在系統(tǒng)100中,I/O控制器26可以是一個可由處理器40使用硬件24來控制和/或配置的總線可尋址設(shè)備。因此,作為操作306的結(jié)果,處理器40可以確定I/O控制器26是這樣一種總線可尋址設(shè)備,并且處理器40還可以確定總線22上在I/O處理器40所啟動的一個或多個配置周期內(nèi)可通過其使用硬件機(jī)制24來控制和/或配置I/O控制器26的地址。
在處理器40完成了操作306后,處理器40可以基于由處理器40從它確定為可由處理器40使用硬件24來控制和/或配置的任何總線可尋址設(shè)備處獲得的配置信息,部分地向這些設(shè)備提供資源和/或配置這些設(shè)備,如圖3中的操作308所示。即,除了在操作308中處理器不可以對存儲器映射的I/O地址資源進(jìn)行分配外,處理器40可以向任何這些總線可尋址設(shè)備分配資源和/或配置這些設(shè)備。這里所使用的系統(tǒng)“資源”可以包括設(shè)備(facility)、工具(instrumentality)和/或這類設(shè)備和/或工具在系統(tǒng)中的標(biāo)識符,它們可以從一個設(shè)備、工具和/或標(biāo)識符池(pool)中進(jìn)行分配(例如,授予),以由諸如系統(tǒng)100的系統(tǒng)中的一個或多個設(shè)備(即一個或多個存儲器映射I/O地址)來使用和/或與之建立關(guān)聯(lián)。正如本領(lǐng)域的技術(shù)人員所公知的那樣,在存儲器映射I/O尋址方案中,系統(tǒng)總地址空間的子集可被分配給I/O端口和/或由這些端口使用和/或與它們相關(guān)聯(lián)的存儲器位置,并且可以使用和/或指定包括在所述子集中的地址來訪問這些端口和/或存儲器位置。這里所使用的術(shù)語“地址空間”被定義為一組存儲器位置,這些位置例如可以經(jīng)由通過總線的地址線傳播的信號來分別尋址。同樣使用在這里的短語“地址空間的量”和“地址空間的大小”被定義為包括在地址空間中的存儲器位置的數(shù)量。
在這個實施方案中,在操作308中,處理器40可以從I/O控制器26獲得配置信息,該信息可以識別I/O控制器26的具體設(shè)備類型和特性。由處理器40從I/O控制器26獲得的配置信息也可以指示存儲器映射I/O地址空間的大小,所述地址空間在被分配給控制器26中的I/O端口和/或存儲器位置(在圖1中統(tǒng)一地示為標(biāo)號為46的結(jié)構(gòu))時,可以允許處理器40控制和/或監(jiān)視控制器26的操作?;谶@一信息,處理器40然后可以發(fā)信號通知卡20在控制器26和存儲器21中提供并存儲與控制和/或配置相關(guān)的信息,以允許控制器26根據(jù)增強的I/O過程來運行。作為處理器40發(fā)信號通知卡20的結(jié)果,卡20可以經(jīng)由總線22向存儲器21和/或控制器26施加信號。施加這些信號的結(jié)果就是與控制和/或配置相關(guān)的信息被存儲在存儲器21中的位置,對這些位置可預(yù)先進(jìn)行選擇,以不和存儲器21中可能由主處理器12選擇的位置相沖突,其中所述主處理器12為了存儲由主處理器12配置的那些設(shè)備的與控制和配置相關(guān)的信息,在主處理器12啟動和/或執(zhí)行的周期內(nèi)將在存儲器21中選擇一些存儲位置。如果I/O設(shè)備28包括了一個盤式大容量存儲設(shè)備陣列,那么這些I/O過程可以允許I/O控制器26和所述陣列分別被用作RAID存儲控制器和/或RAID陣列。或者,如果I/O設(shè)備28被用于將系統(tǒng)100接口到外部計算機(jī)網(wǎng)絡(luò),則所述I/O過程可允許I/O控制器26被用作服務(wù)器管理控制器,和/或可允許控制器26和設(shè)備28使用附加的通信協(xié)議。
在處理器40已執(zhí)行了操作308后,處理器40可以發(fā)信號通知卡20向硬件24施加控制信號,該控制信號可導(dǎo)致硬件24將可由處理器40使用硬件24來控制和/或配置的任何總線可尋址設(shè)備相對于主處理器12隱藏起來,如圖3中的操作210所示。例如,在這個實施方案100中,處理器40可以發(fā)信號通知卡20向硬件24施加控制信號,該控制信號可導(dǎo)致硬件24將I/O控制器26的IDSEL線解耦合出總線22。此后,處理器40可以發(fā)信號通知卡20停止生成阻攔(hold-up)主處理器的配置周期的重試,并可以允許主處理器的正常啟動過程沒有阻礙地繼續(xù)進(jìn)行,如圖3中的操作312所示。
在主處理器的一個配置周期內(nèi),處理器40可以發(fā)信號通知卡20向主處理器12請求將一定量的系統(tǒng)100的資源分配給卡20。這可能導(dǎo)致卡20經(jīng)由總線22向主處理器12發(fā)出一個請求,即要將這種一定量的資源由主處理器12分配給卡20,如圖3中的操作314所示。
如圖4所示,系統(tǒng)100包括一定總量的存儲器映射I/O地址資源400或者可用池(available pool)的存儲器映射I/O地址資源400。資源400包括可連續(xù)地從預(yù)定的最小地址擴(kuò)展到預(yù)定的最大地址的多個存儲器映射I/O地址401。卡20所請求的資源可包括一定量的存儲器映射I/O地址空間402。響應(yīng)于來自卡20的請求,主處理器12可以向卡20分配一組資源,其中例如可以包括地址空間402,并且可以經(jīng)由總線22發(fā)信號通知卡20這組資源已被分配給卡20,如圖3中的操作316所示。
地址空間402可以包括在空間402中可從最低地址408擴(kuò)展到最高地址410的多個連續(xù)地址???0所請求的地址空間402的量可由I/O處理器40通過將兩個可包括在地址空間402中的地址空間404和406的量相加而計算出來。地址空間404可以從空間402中的最低地址408擴(kuò)展到空間402中高一些的地址412。地址空間406可以從空間402中地址412后的下一個最高地址擴(kuò)展到空間402中的最高地址410。處理器40可以基于由處理器40從它確定(例如圖3中的操作306所示)為可由處理器40使用硬件24來控制和/或配置的總線可尋址設(shè)備處獲得的配置信息(例如圖3中的操作308所示),來確定地址空間406的量。更具體地說,例如在圖3的操作308中所示的由處理器40從這些總線可尋址設(shè)備處獲得的各個配置信息可以指示存儲器映射I/O地址空間的各自大小,所述存儲器映射I/O地址空間在被分配給I/O端口和/或這些設(shè)備的存儲器位置時可以允許處理器40控制和/或監(jiān)視這些設(shè)備的操作。由處理器40確定出的地址空間406的量可以等于這些存儲器映射I/O地址空間的各自大小的和。例如,在系統(tǒng)100中,由處理器40確定的地址空間406的量可以等于處理器40在操作308中從控制器26獲得的配置信息中所指示的存儲器映射I/O地址空間的量。
可以用地址空間404的量來編程處理器40。地址空間404的量可以等于存儲器映射I/O地址空間中在被分配給卡20中的一個或多個I/O端口和/或存儲器位置(在圖1中統(tǒng)一用標(biāo)號52來表示的結(jié)構(gòu))時可以允許系統(tǒng)100中的一個或多個其它設(shè)備(例如主處理器12和/或控制器26)與卡20交換數(shù)據(jù)和/或命令的量。
根據(jù)這一實施方案,在主處理器12向卡20分配了一組資源后,I/O處理器40向卡20并向處理器40使用硬件24可以控制和/或配置的總線可尋址設(shè)備分配所述這組資源中的若干小組。例如,分配給卡20的這組資源可以包括地址空間402。I/O處理器40可以向卡20中的I/O端口和/或存儲器位置52分配包括在空間404中的地址。處理器40還可以將空間406分割成一個或多個小組,這些小組可由處理器40分配給由處理器40確定為可由處理器40使用硬件24來控制和/或配置的總線可尋址設(shè)備中的I/O端口和/或存儲器位置,如操作318所示。處理器40可以在處理器40中的一個或多個存儲器位置48中存儲一個或多個值,這些值可以指定和/或指示空間406中的這些各個小組到這些設(shè)備中的這些I/O端口和/或存儲器位置的映射關(guān)系、以及空間404中的地址到I/O端口和/或存儲器位置52的映射關(guān)系。處理器40可以經(jīng)由總線22向處理器確定為可由處理器40使用硬件24來控制和/或配置的總線可尋址設(shè)備發(fā)送空間406中的這些各個小組到這些設(shè)備的I/O端口和/或存儲器位置的映射關(guān)系。作為響應(yīng),這些總線可尋址設(shè)備可以根據(jù)這些映射關(guān)系,向它們的I/O端口和/或存儲器位置指派存儲器映射I/O地址。在處理器40已向這些總線可尋址設(shè)備發(fā)送了這些映射關(guān)系后,處理器40可以發(fā)信號通知卡20進(jìn)入第一操作模式。作為處理器40向卡20發(fā)信號的結(jié)果,卡20可以進(jìn)入第一操作模式,如圖3中的操作320所示。此后,處理器40可以發(fā)信號通知卡20進(jìn)入第二操作模式,這將導(dǎo)致卡20進(jìn)入第二操作模式,如圖3中的操作322所示。
例如,在系統(tǒng)100中,處理器40可以將空間406中的地址分配給控制器26中的I/O端口和/或存儲器位置46。處理器40可以在處理器40中的一個或多個存儲器位置48中存儲一個或多個值,這些值可以指定和/或指示了空間406中的地址到I/O端口和/或存儲器位置46的映射關(guān)系。處理器40可以經(jīng)由總線22向控制器26發(fā)送空間406中的地址到I/O端口和/或存儲器位置46的映射關(guān)系。作為響應(yīng),控制器26可以在控制器26中的一個或多個存儲器位置50中存儲一個或多個值,這些值可以根據(jù)發(fā)送給控制器26的映射關(guān)系,向I/O端口和/或存儲器位置46指派存儲器映射I/O地址。
圖5圖示了在卡20進(jìn)入第一操作模式后所執(zhí)行的操作500。在卡20進(jìn)入第一操作模式后,處理器40可以發(fā)信號通知卡20沖刷(flush)并禁止包括在存儲器38中的回寫式(write-back)高速緩存(未示出),如圖5中的操作502所示。這可以導(dǎo)致卡20沖刷(例如,清除)這個回寫式高速緩存中將由處理器40確定為可由處理器40使用硬件24來控制和/或配置的一個或多個總線可尋址設(shè)備來執(zhí)行的一個或多個I/O事務(wù)。在這個實施方案中,在從所述高速緩存中沖刷掉這些I/O事務(wù)前,卡20可以在存儲器38中存儲可由處理器40用來在以后重建這些I/O事務(wù)的信息。此后,卡20可以禁止所述回寫式高速緩存記錄將由這種總線可尋址設(shè)備執(zhí)行的新I/O事務(wù)。在完成了操作502后,處理器40可以禁止卡20請求這種總線可尋址設(shè)備執(zhí)行“內(nèi)部生成的I/O請求”,如圖5中的操作504所示。這里所使用的“內(nèi)部生成的I/O請求”是這樣一種I/O請求,它不是由位于卡20之外的某個設(shè)備(例如主處理器12)提供給卡20的先前I/O請求中得來的。
然后,處理器40可以確定(例如基于存儲在存儲器38中的,可以跟蹤由處理器40指派的、將由處理器40確定為可由處理器40使用硬件24來控制和/或配置的一個或多個總線可尋址設(shè)備來執(zhí)行的I/O事務(wù)的信息)是否已由處理器40指派了將由一個或多個這種總線可尋址設(shè)備執(zhí)行的未決I/O事務(wù),如圖5所示。這里所使用的“未決”I/O事務(wù)是這樣一種I/O事務(wù),其中已將該I/O事務(wù)通知給被指派來運行、執(zhí)行和/或啟動該事務(wù)的設(shè)備,但是它的運行、執(zhí)行和/或啟動尚未完成。
如果處理器40確定處理器40未指派過這樣的未決I/O事務(wù),則處理器40可以發(fā)信號通知卡20經(jīng)由總線22發(fā)信號通知這些一個或多個總線可尋址設(shè)備。這可導(dǎo)致這些一個或多個總線可尋址設(shè)備被禁止進(jìn)一步執(zhí)行I/O事務(wù),如圖5中的操作516所示。
相反,如果處理器40確定已由處理器40指派了一個或多個這樣的未決I/O事務(wù),則處理器40可以發(fā)信號通知卡20。結(jié)果,卡20可以經(jīng)由總線22發(fā)信號通知已被指派給這種I/O事務(wù)的一個或多個總線可尋址設(shè)備,告知它們被允許執(zhí)行這種未決I/O事務(wù)。這可使這些一個或多個總線可尋址設(shè)備能夠執(zhí)行這種未決I/O事務(wù),如圖5中的操作510所示,結(jié)果,這些一個或多個總線可尋址設(shè)備可以執(zhí)行這種未決I/O事務(wù),如圖5中的操作512所示。此后,處理器40可以發(fā)信號通知卡20經(jīng)由總線22發(fā)信號通知這些一個或多個總線可尋址設(shè)備。這可導(dǎo)致這些一個或多個總線可尋址設(shè)備被禁止進(jìn)一步執(zhí)行I/O事務(wù),如圖5中的操作516所示。
根據(jù)這個實施方案,在處理器40發(fā)信號通知卡20允許這些一個或多個總線可尋址設(shè)備執(zhí)行這種未決I/O事務(wù)前,處理器40可以確定主處理器12是否已經(jīng)改變了先前由主處理器12分配給卡20的那組資源,如圖5中的操作508所示。如果處理器40確定主處理器12已改變了先前由處理器40分配給卡20的那組資源,則處理器40可以改變處理器40先前分配給它確定為可以使用硬件24來控制和/或配置的總線可尋址設(shè)備的各資源小組,使得分配給這些設(shè)備的資源小組全都包括在已被主處理器12改變的、分配給卡20的資源組中。這如圖5中的操作514所示。
即,在系統(tǒng)100中,在由主處理器12在操作316中向卡20分配了所述資源組后,主處理器12可以改變分配給卡20的資源組,例如包括先前分配給卡20的那組地址資源402。這可以通過主處理器12執(zhí)行操作系統(tǒng)和/或其它程序指令(未示出)來實現(xiàn),上述執(zhí)行過程可以導(dǎo)致主處理器12改變其先前的從資源(包括資源400)到設(shè)備(例如系統(tǒng)100中的卡20)的映射關(guān)系。例如,由主處理器12分配給卡20的資源組中的變化可包括改變后的存儲器映射I/O空間。這個改變后的存儲器映射I/O空間可能和處理器12先前分配給卡20的存儲器映射I/O空間有很大不同,以至于地址空間406中的一個或多個地址不可能包括在改變后的存儲器映射I/O空間中。
在系統(tǒng)100中,當(dāng)主處理器12改變分配給卡20的存儲器映射I/O空間時,主處理器12可以經(jīng)由總線22發(fā)信號給I/O處理器40,以將這個情況通知給I/O處理器40。這可導(dǎo)致I/O處理器40在一個或多個存儲器位置48中存儲一個或多個值,這些值可以指定和/或指示了這個改變后的存儲器映射I/O地址空間中的一部分地址(大小上等于圖4中的地址空間404)到I/O端口和/或存儲器位置52的映射關(guān)系。在一個或多個存儲器位置48中存儲這些一個或多個值之前,處理器40可以發(fā)信號通知卡20將先前存儲在一個或多個存儲器位置48中的一個或多個值存儲在存儲器38中。當(dāng)這種情形進(jìn)行時,處理器40可以比較存儲在存儲器38和一個或多個存儲器位置48中的這些值,并且至少可以部分基于該比較結(jié)果來確定處理器12是否已改變了處理器12先前分配給卡20的存儲器映射I/O地址空間402。如果處理器40確定處理器12已改變了先前分配給卡20的存儲器映射I/O地址空間,則這可以導(dǎo)致處理器40改變它先前的分配,該分配是將存儲器映射I/O地址分配給處理器40確定為可由處理器40使用硬件24來控制和/或配置的總線可尋址設(shè)備中的I/O端口和/或存儲器位置,如圖5中的操作514所示。更具體地,這可以導(dǎo)致處理器40將分配給卡20的改變后存儲器映射I/O地址空間的剩余部分劃分成分配給這些總線可尋址設(shè)備中的I/O端口和/或存儲器位置的各個小組(各自的大小等于在圖3的操作318中從圖4的空間406中分配出的那些大小)。這確保了分配給這些總線可尋址設(shè)備中的I/O端口和/或存儲器位置的存儲器映射I/O地址全都包括在分配給卡20的改變后的存儲器映射I/O地址空間中。處理器40還可以在一個或多個存儲器位置48中存儲一個或多個值,這些值可以指定和/或指示了這些各個小組中的地址到這些總線可尋址設(shè)備中的I/O端口和/或存儲器位置的映射關(guān)系。此后,處理器40可以經(jīng)由總線22向這些總線可尋址設(shè)備發(fā)送這些各個小組中的地址到這些設(shè)備中的I/O端口和/或存儲器位置的所述映射關(guān)系。作為響應(yīng),這些總線可尋址設(shè)備可以根據(jù)這些映射關(guān)系,向它們的I/O端口和/或存儲器位置指派存儲器映射I/O地址。
例如,在系統(tǒng)100中,在操作504中,處理器40可以禁止卡20經(jīng)由總線22發(fā)信號通知控制器26執(zhí)行內(nèi)部生成的I/O請求。此后,處理器40可以確定是否有未決I/O事務(wù)被指派給控制器26,如圖5中的操作506所示。如果處理器40確定未曾向控制器26指派過這種未決I/O事務(wù),則處理器40可以發(fā)信號通知卡20禁止控制器26進(jìn)一步執(zhí)行I/O事務(wù),如圖5中的操作508所示。相反,如果處理器40確定已向控制器26指派了一個或多個未決I/O事務(wù),則處理器40可以例如以上述方式來確定先前分配給卡20的資源組是否已由處理器40改變。如果處理器40確定這組資源已經(jīng)改變,則處理器40可以發(fā)信號通知卡20以上述方式改變它先前對控制器26做出的資源分配,從而確保處理器40分配給控制器26的資源被包括在由主處理器12分配給卡20的改變后的資源組中。例如,如果由主處理器12分配給卡20的改變后的資源組包括改變后的存儲器映射I/O地址空間,則處理器40可以發(fā)信號通知卡20改變它先前對控制器26做出的存儲器映射I/O地址的分配,從而確保由處理器40分配給控制器的I/O端口和/或存儲器位置的存儲器映射I/O地址空間具有和地址空間406一樣的大小,并且被包括在分配給卡20的改變后的存儲器映射I/O地址空間中。在這個實施方案中,處理器40可以通過將分配給卡20的改變后存儲器映射I/O地址空間的起始地址和預(yù)定的偏移值相加在一起,從而計算出它分配給控制器26的改變后存儲器映射I/O地址的起始地址。
在操作516后,處理器40可以確定卡20從其第一操作模式轉(zhuǎn)換到第二操作模式是否正確,如圖5中的操作518所示。處理器40至少可以部分基于系統(tǒng)100中是否發(fā)生了可以指示出主處理器12在系統(tǒng)100中的資源分配已穩(wěn)定下來(例如,在處理器12不太可能進(jìn)一步改變其系統(tǒng)100中的資源分配后,除非和/或直到發(fā)生了諸如系統(tǒng)100接下來重啟等后續(xù)事件)的一個或多個預(yù)定事件,以此來確定模式轉(zhuǎn)換是否正確。這些一個或多個的預(yù)定事件例如可以包括在系統(tǒng)存儲器21中注冊和/或載入一個或多個可被主處理器12用來允許主處理器12執(zhí)行涉及和/或使用卡20的一個或多個I/O事務(wù)的驅(qū)動器程序(driver processes)。處理器40可以發(fā)信號通知卡20掃描存儲器21,以確定一個或多個這樣的驅(qū)動器程序是否已被注冊和/或加載到存儲器21中,并且如果的確如此,則卡20可以發(fā)信號通知處理器40。這可以導(dǎo)致處理器40確定卡20轉(zhuǎn)換和/或進(jìn)入到第二操作模式中是否正確。相反,如果卡20沒有發(fā)信號通知處理器40一個或多個這樣的驅(qū)動器程序已被注冊和/或加載到存儲器21中,則處理器40可以確定卡20轉(zhuǎn)換和/或進(jìn)入到第二操作模式中是不正確的。然后,處理器40可以執(zhí)行操作506,從而繼續(xù)其處理。
如果處理器40確定卡20進(jìn)入第二操作模式是正確的,則處理器40可以確定處理器12先前分配給卡20的資源組是否已被處理器12改變,如圖5中的操作520所示。處理器40至少可以部分基于和前面在執(zhí)行操作508時所采用的相同考慮來做出上述確定。如果在執(zhí)行操作520時,處理器40確定主處理器12已經(jīng)改變了先前由主處理器12分配給卡20的資源組,則處理器40可以改變處理器40先前分配給它確定為可以使用硬件24來控制和/或配置的總線可尋址設(shè)備的各個資源小組,如圖5中的操作521所示??捎商幚砥?0執(zhí)行來實現(xiàn)操作521的操作可以和上述處理器40實現(xiàn)操作514時所執(zhí)行的操作基本相同。
在處理器40在操作520后確定先前分配給它的資源組尚未改變,或者已確定這個資源組已經(jīng)改變并且執(zhí)行了操作521后,處理器40都可以發(fā)信號通知卡20。結(jié)果,卡20可以經(jīng)由總線22發(fā)信號通知一個或多個處理器40確定為可由處理器40使用硬件24來控制和/或配置的總線可尋址設(shè)備。這可導(dǎo)致這些總線可尋址設(shè)備被允許執(zhí)行I/O事務(wù),如圖5中的操作522所示。然后,處理器40可以發(fā)信號通知卡20使能包括在存儲器38中的回寫式高速緩存,如圖5中的操作524所示。在完成了操作524之后,處理器40可以使能卡20發(fā)信號給這些總線可尋址設(shè)備,讓它們執(zhí)行內(nèi)部生成的I/O請求。此后,處理器40可以發(fā)信號通知卡20進(jìn)入和/或運行在第二操作模式中,在該第二操作模式中,處理器40、存儲器38中的回寫式緩存以及這些總線可尋址設(shè)備之間的I/O事務(wù)可被允許。
雖然未在圖中示出,但是卡20可以包括附加的電路,這種電路可能有助于或者允許卡20實現(xiàn)這里所描述的操作和/或其它操作。例如,卡20中的這種附加電路可以包括以下邏輯,該邏輯阻止卡20來斷言(assertion)TMS信號,除非總線22的PCI GNT信號(未示出)也被斷言。這可以使得卡20在停止向處理器12發(fā)出重試和/或在向處理器12發(fā)出這種重試之前承擔(dān)和/或繼續(xù)用于發(fā)現(xiàn)和/或配置總線可尋址設(shè)備的操作,所述總線可尋址設(shè)備例如是控制器26,所述控制器26可由處理器40使用硬件24來控制和/或配置。
系統(tǒng)100已被描述為包括單個可由卡20使用硬件24來控制和/或配置的總線可尋址設(shè)備,例如控制器26。然而,系統(tǒng)100可以包括多個可由卡20使用硬件24來控制和/或配置的總線可尋址設(shè)備。
因此,總的來說,在所要求保護(hù)主題的一個實施方案中,所提供的電路卡包括了可用于將該卡耦合到主板上的總線的連接器。所述主板還可以包括主處理器、MROMB主板硬件以及耦合于該總線的至少一個總線可尋址設(shè)備。當(dāng)該卡耦合到所述總線時,卡中的電路也可以耦合到該總線,并且可以使用所述MROMB主板硬件來控制和/或配置所述至少一個總線可尋址設(shè)備。該電路可以包括I/O處理器以及相關(guān)的固件存儲器。當(dāng)卡中的所述電路耦合到所述總線時,該電路中的I/O處理器就能夠由主處理器分配給它一組資源。該電路可以向所述至少一個設(shè)備分配這組資源中的至少一個小組。如果該資源組被改變,則卡中的電路也能夠改變所述的至少一個小組,使得改變后的至少一個資源小組可被包括在改變后的資源組中。有利地,本發(fā)明的這一實施方案的這些特點可以減少發(fā)生沖突的可能性,所述沖突可能發(fā)生在由主處理器分配給所述至少一個總線可尋址設(shè)備的一個或多個資源(例如存儲器映射I/O地址)和由卡中的電路分配給所述至少一個總線可尋址設(shè)備的一個或多個資源之間。
這里所采用的術(shù)語和表達(dá)都只是描述性的而非限制性的,在使用這些術(shù)語和表達(dá)時,并不想把所示出和描述的特點(或其中一部分)的等同物排除在外,可以認(rèn)識到,在權(quán)利要求的范圍內(nèi)能夠做出各種修改。因此,權(quán)利要求書想要覆蓋所有這些等同物。
權(quán)利要求
1.一種方法,包括分配第一組資源給第一設(shè)備;由所述第一設(shè)備分配第二組資源給第二設(shè)備,所述第一組資源包括所述第二組資源;以及如果所述第一組資源被改變,則由所述第一設(shè)備改變所述第二組資源。
2.如權(quán)利要求1所述的方法,其中所述第一組資源包括一個地址空間;以及所述第二組資源包括另一個地址空間。
3.如權(quán)利要求1所述的方法,還包括如果所述第一組資源被改變,并且改變后的所述第一組資源不再包括所述第二組資源,則改變所述第二組資源,以使其包括在改變后的所述第一組資源中。
4.如權(quán)利要求1所述的方法,還包括由所述第一設(shè)備向第三設(shè)備請求包括在所述第一組資源中的一定量的資源。
5.一種方法,包括由第一設(shè)備允許第二設(shè)備執(zhí)行一個或多個未決操作;以及在允許所述第二設(shè)備執(zhí)行所述一個或多個未決操作之前,由所述第一設(shè)備確定與所述第一設(shè)備相關(guān)聯(lián)的第一組資源是否發(fā)生了改變,所述第二設(shè)備與包括在所述第一組資源中的第二組資源相關(guān)聯(lián)。
6.如權(quán)利要求5所述的方法,還包括如果所述第一設(shè)備確定所述第一組資源已經(jīng)改變,則由所述第一設(shè)備改變與所述第二設(shè)備相關(guān)聯(lián)的所述第二組資源。
7.如權(quán)利要求5所述的方法,還包括在所述第二設(shè)備已執(zhí)行了所述的一個或多個未決操作后,由所述第一設(shè)備禁止所述第二設(shè)備執(zhí)行附加的操作;以及如果發(fā)生了預(yù)定的事件,則允許所述第二設(shè)備執(zhí)行所述附加的操作。
8.一種裝置,包括被分配了第一組資源的第一設(shè)備,所述第一設(shè)備向第二設(shè)備分配包括在所述第一組資源中的第二組資源,并且如果所述第一組資源被改變,則改變所述第二組資源。
9.如權(quán)利要求8所述的裝置,其中所述第一組資源包括一個地址空間;以及所述第二組資源包括另一個地址空間。
10.如權(quán)利要求8所述的裝置,其中如果所述第一組資源被改變,并且改變后的所述第一組資源不再包括所述第二組資源,則所述第一設(shè)備也要改變所述第二組資源,以使其包括在改變后的所述第一組資源中。
11.如權(quán)利要求8所述的裝置,其中所述第一設(shè)備還要向第三設(shè)備請求包括在所述第一組資源中的一定量的資源。
12.一種裝置,包括與第一組資源相關(guān)聯(lián)的第一設(shè)備,所述第一設(shè)備允許第二設(shè)備執(zhí)行一個或多個未決操作,并且在允許所述第二設(shè)備執(zhí)行所述的一個或多個未決操作前,確定所述第一組資源是否已發(fā)生了改變,所述第二設(shè)備與包括在所述第一組資源中的第二組資源相關(guān)聯(lián)。
13.如權(quán)利要求12所述的裝置,其中如果所述第一設(shè)備確定所述第一組資源已發(fā)生了改變,則所述第一設(shè)備在允許所述第二設(shè)備執(zhí)行所述的一個或多個未決操作前,能夠改變與所述第二設(shè)備相關(guān)聯(lián)的所述第二組資源。
14.如權(quán)利要求12所述的裝置,其中在所述第二設(shè)備已執(zhí)行了所述的一個或多個未決操作后,所述第一設(shè)備也能夠禁止所述第二設(shè)備執(zhí)行附加的操作;以及如果發(fā)生了預(yù)定的事件,則所述第一設(shè)備也能夠允許所述第二設(shè)備執(zhí)行所述附加操作。
15.一種產(chǎn)品,包括存儲介質(zhì),所述存儲介質(zhì)具有存儲在其上的指令,所述指令在由機(jī)器執(zhí)行時導(dǎo)致由第一設(shè)備分配第一組資源給第二設(shè)備,所述第一組資源是分配給所述第一設(shè)備的第二組資源的一個小組;以及如果所述第二組資源被改變,則由所述第一設(shè)備改變所述第一組資源。
16.如權(quán)利要求15所述的產(chǎn)品,其中所述第一組資源包括一個地址空間;以及所述第二組資源包括另一個地址空間。
17.如權(quán)利要求15所述的產(chǎn)品,其中所述指令在被執(zhí)行時還導(dǎo)致如果所述第二組資源被改變,并且改變后的所述第二組資源不再包括所述第一組資源,則改變所述第一組資源,以使其包括在改變后的所述第二組資源中。
18.如權(quán)利要求15所述的產(chǎn)品,其中所述指令在被執(zhí)行時還導(dǎo)致由所述第一設(shè)備向第三設(shè)備請求包括在所述第二組資源中的一定量的資源。
19.一件產(chǎn)品,包括存儲介質(zhì),所述存儲介質(zhì)具有存儲在其上的指令,所述指令在由機(jī)器執(zhí)行時導(dǎo)致由第一設(shè)備允許第二設(shè)備執(zhí)行一個或多個未決操作;以及在允許所述第二設(shè)備執(zhí)行所述一個或多個未決操作之前,由所述第一設(shè)備確定與所述第一設(shè)備相關(guān)聯(lián)的第一組資源是否發(fā)生了改變,所述第二設(shè)備與包括在所述第一組資源中的第二組資源相關(guān)聯(lián)。
20.如權(quán)利要求19所述的產(chǎn)品,其中所述指令在被執(zhí)行時還導(dǎo)致如果所述第一設(shè)備確定所述第一組資源已經(jīng)改變,則由所述第一設(shè)備改變與所述第二設(shè)備相關(guān)聯(lián)的所述第二組資源。
21.如權(quán)利要求19所述的產(chǎn)品,其中所述指令在被執(zhí)行時還導(dǎo)致在所述第二設(shè)備已執(zhí)行了所述的一個或多個未決操作后,由所述第一設(shè)備禁止所述第二設(shè)備執(zhí)行附加的操作;以及如果發(fā)生了預(yù)定的事件,則由所述第一設(shè)備允許所述第二設(shè)備執(zhí)行所述附加的操作。
22.一種系統(tǒng),包括總線;耦合到所述總線的至少一個設(shè)備;以及能夠被耦合到所述總線的電路,并且當(dāng)所述電路被耦合到所述總線時,所述電路還能夠被分配給一個資源組,向所述的至少一個設(shè)備分配所述資源組中的至少一個小組,并且如果所述資源組被改變,則改變所述的至少一個小組。
23.如權(quán)利要求22所述的系統(tǒng),還包括包括所述總線和所述至少一個設(shè)備在內(nèi)的電路板;以及包括所述電路在內(nèi)的電路卡。
24.如權(quán)利要求22所述的系統(tǒng),其中所述至少一個設(shè)備包括數(shù)據(jù)存儲控制器、網(wǎng)絡(luò)數(shù)據(jù)通信控制器和服務(wù)器管理控制器中的至少一個;以及所述電路包括輸入/輸出處理器。
25.一種系統(tǒng),包括總線;耦合到所述總線的至少一個設(shè)備;和能夠耦合到所述總線的電路,并且當(dāng)所述電路耦合到所述總線時,所述電路還能夠允許所述至少一個設(shè)備執(zhí)行一個或多個未決操作;以及在允許所述至少一個設(shè)備執(zhí)行所述一個或多個未決操作之前,確定與所述電路相關(guān)聯(lián)的一個資源組是否發(fā)生了改變,所述至少一個設(shè)備與所述資源組中的至少一個小組相關(guān)聯(lián)。
26.如權(quán)利要求25所述的系統(tǒng),其中所述資源組包括由處理器分配給所述電路的地址空間。
27.如權(quán)利要求25所述的系統(tǒng),其中所述至少一個小組包括由所述電路分配給所述至少一個設(shè)備的至少一個地址空間;以及所述至少一個設(shè)備包括用于存儲指定了所述至少一個地址空間的信息的存儲器。
28.如權(quán)利要求25所述的系統(tǒng),其中所述系統(tǒng)還包括耦合到所述總線的處理器;以及當(dāng)所述電路耦合到所述總線時,所述電路還能夠向所述處理器發(fā)出資源分配請求,所述請求至少部分地基于被確定為將由所述電路分配給所述至少一個設(shè)備的一定量的資源。
29.如權(quán)利要求25所述的系統(tǒng),還包括包括所述總線、所述至少一個設(shè)備以及主板上模塊化的廉價磁盤冗余陣列機(jī)制在內(nèi)的電路板;以及包括用于至少部分地控制所述機(jī)制的處理器在內(nèi)的電路。
30.如權(quán)利要求25所述的系統(tǒng),其中所述系統(tǒng)還包括能夠改變所述資源組的處理器;所述電路包括用于存儲至少部分地指定了所述資源組的信息的存儲器;以及當(dāng)所述電路耦合到所述總線時,如果所述處理器改變所述資源組,則所述電路還能夠至少部分基于所述信息,來確定所述資源組已經(jīng)改變。
全文摘要
在一個實施方案中,提供了一種方法。這一實施方案的方法可以包括將第一組資源分配給第一設(shè)備,并且由所述第一設(shè)備將第二組資源分配給第二設(shè)備。所述第一組資源可以包括所述第二組資源。如果所述第一組資源被改變,則這一實施方案的方法還可以包括由所述第一設(shè)備改變所述第二組資源。當(dāng)然,很多不偏離這個實施方案的修改、變化和替換都是可能的。
文檔編號G06F13/12GK1742260SQ03811442
公開日2006年3月1日 申請日期2003年3月19日 優(yōu)先權(quán)日2002年3月28日
發(fā)明者保羅·盧斯, 迪特爾·馬薩, 諾伯特·萊瓦爾斯基-布雷赫特爾 申請人:英特爾公司