專利名稱:在一個(gè)計(jì)算機(jī)系統(tǒng)中配置多個(gè)媒體的方法和設(shè)備的制作方法
背景技術(shù):
發(fā)明領(lǐng)域本發(fā)明涉及計(jì)算機(jī)系統(tǒng)。更為特別地說(shuō)本發(fā)明是關(guān)于在一個(gè)計(jì)算機(jī)系統(tǒng)內(nèi)無(wú)跳線配置多個(gè)媒體(agent)。
背景現(xiàn)代計(jì)算機(jī)系統(tǒng)常常包括連接到系統(tǒng)總線上的多個(gè)媒體。這些媒體可能包括像微處理器、存儲(chǔ)器設(shè)備、輸入/輸出(I/O)設(shè)備等這樣的設(shè)備。為使計(jì)算機(jī)系統(tǒng)適當(dāng)運(yùn)行,這些媒體必須一起作用來(lái)執(zhí)行它們各自的任務(wù)。
保證計(jì)算機(jī)系統(tǒng)中的媒體一起作用的一種方式是建立一組配置值。這些配置值通常包括所有媒體必須一致認(rèn)同的項(xiàng)目,像錯(cuò)誤檢查協(xié)議等。因此,當(dāng)這些配置值對(duì)系統(tǒng)中的每一媒體都相同時(shí),系統(tǒng)中的媒體可適當(dāng)?shù)匾黄鹱饔谩?br>
除了需要媒體之間對(duì)配置值一致認(rèn)同的要求外,所有媒體應(yīng)該對(duì)一定的配置值在同一時(shí)間達(dá)到一致。例如,一個(gè)通常的配置值定義在系統(tǒng)總線上傳輸?shù)腻e(cuò)誤檢查協(xié)議;如果對(duì)該協(xié)議未達(dá)到一致,則一個(gè)目的媒體將不能向源媒體指示發(fā)生了一個(gè)錯(cuò)誤。另外,每一媒體應(yīng)該在同一時(shí)間對(duì)錯(cuò)誤檢查協(xié)議達(dá)到一致;如果未在同一時(shí)間達(dá)到一致,則存在一段時(shí)期,在該時(shí)期內(nèi)媒體使用不同的錯(cuò)誤檢查協(xié)議。在該時(shí)間期間內(nèi)媒體不能適當(dāng)?shù)乇舜酥甘境鲥e(cuò)誤。
建立這些配置值(也就是說(shuō),所有媒體必須在同一時(shí)間達(dá)成一致的那些配置值)的通常的方法是為每一媒體設(shè)立一個(gè)跳線。使用跳線時(shí),系統(tǒng)中的每一媒體有一組系統(tǒng)用戶可夠到的針,用跳線連接適當(dāng)?shù)尼樀慕M合,系統(tǒng)用戶能夠?yàn)樵撁襟w設(shè)定合適的配置值。通過(guò)把跳線適當(dāng)?shù)胤旁诿恳幻襟w上,系統(tǒng)用戶能夠?yàn)槊恳幻襟w設(shè)置同樣的配置值。于是,當(dāng)系統(tǒng)加電時(shí),每一媒體具有合適的配置值,且它們都在同一時(shí)間設(shè)定(也就是說(shuō),在系統(tǒng)加電時(shí))。
為改變一個(gè)特定媒體的配置值,用戶必須改變跳線的設(shè)置。于是,為改變所有媒體在總線上的配置值,一般需要對(duì)每一媒體的每一個(gè)跳線進(jìn)行手工操作。另外,一般跳線的改變必須在系統(tǒng)關(guān)斷后進(jìn)行。雖然在系統(tǒng)運(yùn)行時(shí)可能手工改變跳線,但是這樣的行動(dòng)并不能同時(shí)改變所有的配置值。另外,在系統(tǒng)運(yùn)行時(shí)改變跳線可能產(chǎn)生不可預(yù)測(cè)的系統(tǒng)行為。
另外,跳線的使用在兩方面增加了系統(tǒng)成本。第一,針和跳線的存在是額外的材料和制造成本。第二,在制造時(shí)要花時(shí)間配置系統(tǒng)(也就是說(shuō)放置跳線),這也增加了成本。雖然第二種成本在終端用戶而非制造商配置系統(tǒng)時(shí)可能不存在,但需要用戶進(jìn)行這樣的操作增加了用戶的不便。
隨著現(xiàn)代計(jì)算機(jī)系統(tǒng)的性能持續(xù)增長(zhǎng),計(jì)算機(jī)系統(tǒng)的使用也持續(xù)擴(kuò)展。因此,提供一種容易改變以適應(yīng)廣泛應(yīng)用和多種用途的計(jì)算機(jī)系統(tǒng)是有益的。然而,為改變用途,需要改變存儲(chǔ)在系統(tǒng)中的配置值。因此,提供一種系統(tǒng),其允許系統(tǒng)用戶容易地修改它的配置值以適應(yīng)不同用途是有益的。本發(fā)明提供這樣的解決方案。
另外,在一些領(lǐng)域中,計(jì)算機(jī)系統(tǒng)的使用需要在系統(tǒng)運(yùn)行時(shí)改變。在這樣的情況下,可能需要改變配置值。因此,提供一種系統(tǒng),它允許在系統(tǒng)運(yùn)行時(shí)可以迅速而方便地改變它的配置值是有益的。本發(fā)明提供這樣的解決方案。
發(fā)明總結(jié)本發(fā)明包括在一個(gè)計(jì)算機(jī)系統(tǒng)中配置多個(gè)媒體的一種方法和設(shè)備。
在一個(gè)實(shí)施例中,計(jì)算機(jī)系統(tǒng)有一條總線和一個(gè)設(shè)備,該設(shè)備具有第一存儲(chǔ)設(shè)備用以存儲(chǔ)一組配置值。配置值由在該設(shè)備中的接口邏輯驅(qū)向總線。該設(shè)備還包括一個(gè)第二存儲(chǔ)設(shè)備,用以從總線上捕獲該組配置值。當(dāng)在該裝置中的一個(gè)寄存器被激活時(shí),接口邏輯驅(qū)動(dòng)配置值到總線。
在系統(tǒng)加電時(shí),第一存儲(chǔ)設(shè)備取第一組值為缺省值。然后這些值被驅(qū)向總線并且被總線上的每一媒體捕獲。該第一組值給系統(tǒng)提供必需的參量以訪問(wèn)和執(zhí)行某些初始化程序。這些初始化程序可以修改存儲(chǔ)在第一存儲(chǔ)設(shè)備中的配置值,從而以希望的配置值設(shè)置該第一存儲(chǔ)設(shè)備供系統(tǒng)使用。
在初始化程序修改第一存儲(chǔ)設(shè)備后,激活在本發(fā)明的設(shè)備中的一個(gè)寄存器。該寄存器引起接口邏輯驅(qū)動(dòng)存儲(chǔ)在第一存儲(chǔ)設(shè)備中的值到系統(tǒng)總線。總線上的每一媒體,包括本發(fā)明的設(shè)備,捕獲這些值。本發(fā)明的設(shè)備把這些值存儲(chǔ)在第二存儲(chǔ)設(shè)備中,并按照存儲(chǔ)在第二存儲(chǔ)設(shè)備中的值繼續(xù)運(yùn)行。
在系統(tǒng)運(yùn)行時(shí)可以用軟件對(duì)系統(tǒng)的配置值進(jìn)行后繼的修改。這些修改是通過(guò)對(duì)第一存儲(chǔ)設(shè)備中的值修改而實(shí)現(xiàn)的。一旦完成這些修改,該軟件激活該設(shè)備內(nèi)的寄存器,從而引起總線上的所有媒體從總線上捕獲新的配置值。
附圖的簡(jiǎn)要說(shuō)明本發(fā)明以示例方式說(shuō)明而不局限于附圖中的圖形,圖中相同的數(shù)字表示相似的元件,其中
圖1是表示本發(fā)明的示例多處理器計(jì)算機(jī)系統(tǒng)的總圖;圖2是表示本發(fā)明的示例總線群集系統(tǒng)的框圖;圖3是表示本發(fā)明的一個(gè)實(shí)施例的設(shè)備的框圖;圖4表示驅(qū)動(dòng)本發(fā)明的一個(gè)實(shí)施例中的初始化配置值的定時(shí)圖;圖5是表示在本發(fā)明的一個(gè)實(shí)施例中更新媒體配置值的步驟的流程圖。
在下面的詳細(xì)說(shuō)明中,敘述了大量特別的細(xì)節(jié),以便提供對(duì)本發(fā)明的徹底理解。然而對(duì)熟悉本技術(shù)領(lǐng)域的人來(lái)說(shuō)應(yīng)該理解,本發(fā)明可以不要這些特別的細(xì)節(jié)而實(shí)現(xiàn)。在其它的例子中,公知的方法、過(guò)程、元件和電路未詳細(xì)敘述,以便不致搞混本發(fā)明的方面。
下面詳細(xì)說(shuō)明的一些部分是根據(jù)在計(jì)算機(jī)存儲(chǔ)器內(nèi)對(duì)數(shù)據(jù)位操作的算法和符號(hào)描述介紹的。這些算法說(shuō)明和敘述由在數(shù)據(jù)處理技術(shù)領(lǐng)域熟悉的人員使用,它是最有效地對(duì)該技術(shù)領(lǐng)域其他熟練人員表達(dá)他們工作實(shí)質(zhì)的方法。在這里,通常一個(gè)算法被表達(dá)為引向一個(gè)希望的結(jié)果的一系列自身一致的步驟。這些步驟是需要手工操縱物理量的那一些。雖然不一定必須,但通常這些數(shù)量采取電子或磁信號(hào)形式,能夠被存儲(chǔ)、傳輸、結(jié)合、比較以及其它操作。已經(jīng)證明,有時(shí)特別是在為公共使用時(shí)稱這些信號(hào)為位、值、元素、符號(hào)、字符、術(shù)語(yǔ)、數(shù)字或其它是方便的。
然而應(yīng)該記住,所有這些和類似的術(shù)語(yǔ)是與適當(dāng)?shù)奈锢砹肯嚓P(guān)聯(lián)的,并且僅僅是應(yīng)用于這些數(shù)量方便的標(biāo)簽。除非特別指出,否則如同下面的討論中明顯看出的,可以理解,在整個(gè)本發(fā)明當(dāng)中使用像“處理”或“計(jì)算”或“運(yùn)算”或“確定”或“顯示”之類的術(shù)語(yǔ)指的是計(jì)算機(jī)系統(tǒng)或類似的電子計(jì)算設(shè)備的動(dòng)作和處理,這些設(shè)備將描述為在該計(jì)算機(jī)系統(tǒng)的寄存器和存儲(chǔ)器中的物理(電子)量的數(shù)據(jù)操作和轉(zhuǎn)換為其它相似地描述為在該計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器或寄存器內(nèi)或其它這樣的信息存儲(chǔ)、傳輸或顯示的設(shè)備內(nèi)的數(shù)據(jù)。
圖1是表示本發(fā)明的一個(gè)示例多處理器計(jì)算機(jī)系統(tǒng)的總圖。該計(jì)算機(jī)系統(tǒng)通常包括一個(gè)處理器-存儲(chǔ)器總線或其它通信設(shè)備101,以便在一個(gè)或多個(gè)處理器102、103、104和105之間交換信息。處理器-存儲(chǔ)器總線101包括地址、數(shù)據(jù)和控制總線。處理器102到105可以包括一個(gè)小的、極快的內(nèi)部高速緩沖存儲(chǔ)器,一般稱為本地(L1)高速緩沖存儲(chǔ)器,用于臨時(shí)存儲(chǔ)數(shù)據(jù)和指令到芯片。另外,一個(gè)較大的、較慢的第二(L2)高速緩沖存儲(chǔ)器106可以連接到一個(gè)處理器,像處理器105,以臨時(shí)存儲(chǔ)數(shù)據(jù)和指令供處理器105使用。一種方式是,本發(fā)明包括英特爾(Intel)結(jié)構(gòu)微處理器,如處理器102到105;然而本發(fā)明也可以使用任何類型的微處理器結(jié)構(gòu),或任何數(shù)字信號(hào)處理器的主機(jī)。
處理器102、103和104包括一個(gè)并行處理器,例如一個(gè)相似于或相同于處理器105的處理器??蛇x的另外的方案為,處理器102、103和104包括一個(gè)協(xié)處理器,例如一個(gè)數(shù)字信號(hào)處理器。另外,處理器102到105可以包括不同類型的處理器。
處理器-存儲(chǔ)器總線101提供對(duì)存儲(chǔ)器和輸入/輸出(I/O)子系統(tǒng)的系統(tǒng)存取。一個(gè)存儲(chǔ)器控制器122與處理器-存儲(chǔ)器總線101連接,以控制對(duì)一個(gè)隨機(jī)存取存儲(chǔ)器(RAM)或其它動(dòng)態(tài)存儲(chǔ)設(shè)備121(通常稱為主存儲(chǔ)器)的存取,以便為處理器102到105存儲(chǔ)信息和指令。用以存儲(chǔ)信息和指令的一個(gè)海量數(shù)據(jù)存儲(chǔ)設(shè)備125,諸如一個(gè)磁盤和磁盤驅(qū)動(dòng)器,和用以顯示信息給計(jì)算機(jī)用戶的一個(gè)顯示設(shè)備123,諸如陰極射線管(CRT)、液晶顯示器(LCD)等可以連接到處理器存儲(chǔ)器總線101上。
一個(gè)輸入/輸出(I/O)橋124可以連接到處理器-存儲(chǔ)器總線101和系統(tǒng)I/O總線131上,為在處理器-存儲(chǔ)器總線101或者I/O總線131上的設(shè)備提供通信路徑,以便在其它總線上的設(shè)備之間存取和傳輸數(shù)據(jù)。本質(zhì)上,橋124是系統(tǒng)I/O總線131和處理器-存儲(chǔ)器總線101之間的一個(gè)內(nèi)部接口。
I/O總線131在計(jì)算機(jī)系統(tǒng)的外圍設(shè)備之間交換信息??梢赃B接到系統(tǒng)總線131上的設(shè)備包括顯示設(shè)備,諸如陰極射線管、液晶顯示器等;字母數(shù)字輸入設(shè)備133,包括字母數(shù)字和其它鍵等,以便把信息和命令選擇傳輸給計(jì)算機(jī)系統(tǒng)中的其它設(shè)備(例如處理器102)和用于控制光標(biāo)的運(yùn)動(dòng)光標(biāo)控制設(shè)備。此外,提供計(jì)算機(jī)圖像的視覺(jué)描述的硬拷貝設(shè)備135,像繪圖儀或打印機(jī),和存儲(chǔ)信息和指令的海量存儲(chǔ)設(shè)備136,像磁盤和磁盤驅(qū)動(dòng)器也可以連接到系統(tǒng)總線131上。
另外,一個(gè)I/O總線142可以通過(guò)橋140連接到處理器-存儲(chǔ)器總線101上。I/O總線142可以連接到另外的外圍設(shè)備上,像連接到系統(tǒng)I/O總線131的設(shè)備132到136。
在本發(fā)明的一個(gè)實(shí)施例中I/O總線146通過(guò)橋145連接到系統(tǒng)I/O總線131上。I/O總線可以連接到另外的外圍設(shè)備上,例如連接到系統(tǒng)I/O總線131上的設(shè)備132到136。一種方式是,I/O總線146以和系統(tǒng)I/O總線131(例如PCI)不同的標(biāo)準(zhǔn)(例如EISA)運(yùn)行。
在某些裝置中,也許不需要提供顯示設(shè)備來(lái)顯示信息。本發(fā)明的某些裝置可以包括另外的處理器或其它的部件。另外,本發(fā)明的某些裝置也許不需要包括所有上述部件。例如,處理器102到104、顯示設(shè)備123、I/O總線142、或海量存儲(chǔ)設(shè)備125可以不連接到處理器-存儲(chǔ)器總線101。另外,如圖所示連接到系統(tǒng)I/O總線131上的一些外圍設(shè)備可以連接到處理器存儲(chǔ)器總線101上;另外,在一些裝置中,僅有單一總線存在,處理器102到105、存儲(chǔ)器控制器122、和外圍設(shè)備132到136都連接到該單一總線上。
圖2是表示本發(fā)明的一個(gè)示例總線群集系統(tǒng)的框圖。本發(fā)明可以應(yīng)用于具有一個(gè)或多個(gè)處理器群的多處理器計(jì)算機(jī)系統(tǒng)。圖2表示兩個(gè)這樣的群201和202。每個(gè)這樣的群包括一些媒體。例如群201由4個(gè)媒體203-206和一個(gè)群管理器207組成,它可以包括連接到總線212上的另一高速緩沖存儲(chǔ)器(未示出)。媒體203-206可以包括微處理器、協(xié)處理器、數(shù)字信號(hào)處理器等;例如媒體203到206可以與在圖1中所示的處理器105相同。群管理器207及其高速緩沖存儲(chǔ)器在這四個(gè)媒體203-206之間共享。每一群連接到一個(gè)存儲(chǔ)器-系統(tǒng)總線208上,其在一個(gè)實(shí)施例中是圖1的處理器-存儲(chǔ)器總線101。這些群201-202通過(guò)一個(gè)系統(tǒng)接口209連接到該計(jì)算機(jī)系統(tǒng)的各種其它的部件上。系統(tǒng)接口209包括一個(gè)I/O接口210作為該計(jì)算機(jī)系統(tǒng)對(duì)外部世界的接口,和一個(gè)存儲(chǔ)器接口211,它提供對(duì)像DRAM存儲(chǔ)器陣列的主存儲(chǔ)器的存取。在一個(gè)實(shí)施例中,I/O接口210是圖1中的橋124,而存儲(chǔ)器接口211是圖1中的存儲(chǔ)器控制器122。
在一個(gè)實(shí)施例中,每一群也包括一個(gè)本地存儲(chǔ)器控制器和/或一個(gè)本地I/O橋。例如,群201可以包括一個(gè)連接到處理器總線212上的局部存儲(chǔ)器控制器265。局部存儲(chǔ)器控制器265管理對(duì)RAM或在群201內(nèi)包含的其它局部存儲(chǔ)器設(shè)備266的存取。群201也可以包括一個(gè)連接到處理器總線212上的I/O橋267。局部I/O橋267管理對(duì)群內(nèi)I/O設(shè)備的存取,像顯示設(shè)備270或連接到局部I/O總線268上的海量存儲(chǔ)設(shè)備271。一種方式為,每一群201和202包括一個(gè)連接到本地I/O總線上的本地I/O橋,其連接到圖1中示出的外圍設(shè)備132到136上。
本發(fā)明的某些設(shè)備也許既不需要也不包括所有上述部件。例如,群201或202可以包括少于4個(gè)媒體。另外,本發(fā)明的某些設(shè)備可以包括另外的處理器或其它部件。
在本發(fā)明的一個(gè)實(shí)施例中,圖1和圖2的計(jì)算機(jī)系統(tǒng)是個(gè)人計(jì)算機(jī)系統(tǒng)。這些系統(tǒng)可以是,例如,桌上型或便攜式計(jì)算機(jī)系統(tǒng)。
圖3是表示本發(fā)明的一個(gè)實(shí)施例的設(shè)備的框圖。圖中所示的橋300包括配置寄存器305、總線接口310、初始化值315、橋ID320、橋邏輯323和總線接口325。橋300通過(guò)接口310連接到處理器總線302和通過(guò)接口325連接到I/O總線303??偩€302和總線303兩者都包括一個(gè)地址總線、數(shù)據(jù)總線、和控制總線,像在該技術(shù)領(lǐng)域中熟知的那樣。在一個(gè)實(shí)施例中,橋300是圖1中的橋124。在一個(gè)可選的另外實(shí)施例中,橋300是圖2中的I/O接口210。
在后面的討論和例子中,本發(fā)明是結(jié)合在一個(gè)總線橋中說(shuō)明的。然而,對(duì)熟悉本技術(shù)領(lǐng)域的人員來(lái)說(shuō)很明顯,本發(fā)明同樣可以應(yīng)用于連接到計(jì)算機(jī)系統(tǒng)的總線上的任何其它媒體。另外,在一種操作方式中,本發(fā)明在總線上包括它自己的獨(dú)立設(shè)備。
總線接口325以傳統(tǒng)的方式在I/O總線303和橋邏輯323之間傳輸?shù)刂?、?shù)據(jù)和控制信號(hào)。相似地,總線接口310以傳統(tǒng)的方式在處理器總線302和橋邏輯323之間傳輸?shù)刂?、?shù)據(jù)和控制信號(hào)。橋邏輯323是橋300的內(nèi)部控制邏輯。橋邏輯323以傳統(tǒng)方式運(yùn)行,在處理器總線302和I/O總線303之間傳輸請(qǐng)求。
總線接口310還在處理器總線302和配置寄存器305之間傳輸?shù)刂?、?shù)據(jù)和控制信號(hào)。在一條總線和接在總線上的一個(gè)媒體之間這種信號(hào)的傳輸在計(jì)算機(jī)技術(shù)中已經(jīng)公知,因此不再說(shuō)明。
配置寄存器305包括三個(gè)設(shè)備一個(gè)復(fù)位寄存器330,一個(gè)捕獲系統(tǒng)配置值(CSCV)寄存器333和一個(gè)配置值驅(qū)動(dòng)復(fù)位(CVDR)寄存器336。應(yīng)該注意,雖然配置寄存器305是作為寄存器討論的,但是也可以使用任何其它傳統(tǒng)的存儲(chǔ)設(shè)備。在本發(fā)明的一個(gè)實(shí)施例中,復(fù)位寄存器330是一個(gè)8位寄存器的一位,而CSCV寄存器333和CVDR寄存器336都是16位的寄存器。
CSCV寄存器333包含由橋300定義它自己的操作而使用的一組配置值。例如,橋300使用的按序隊(duì)列深度就是由在CSCV寄存器333中存儲(chǔ)的配置值確定的。在一種方式中,連接在處理器總線302上的所有媒體都包含一個(gè)CSCV寄存器333,或它的等價(jià)體,它帶有一個(gè)總線接口,該接口從總線檢索配置值。和在橋300的場(chǎng)合一樣,在其它的媒體中的CSCV寄存器333也都由那些媒體用于定義自己的操作。于是,通過(guò)改變系統(tǒng)中所有其它媒體的CSCV寄存器333的值,也就改變了所有媒體的配置值。
表1表示本發(fā)明的一個(gè)實(shí)施例中存儲(chǔ)在CSCV寄存器333中的配置值。
表1位 功能1514 保留13 輸出三態(tài)許可,該位指示處理器是否允許三態(tài)輸出。當(dāng)該位置位時(shí),處理器為三態(tài)輸出。如果該位未置位,處理器為非三態(tài)輸出。1211 高級(jí)可編程中斷控制器(APIC)群ID。這些位為連接在總線上的處理器指示APIC群ID。10報(bào)告BINIT輸入。該位指示是否允許BINIT邏輯。
如果該位置位,那么當(dāng)它測(cè)定出一種阻止將來(lái)信息可靠交換的總線條件時(shí),媒體就確立一個(gè)BINIT#信號(hào)。如果該位未置位,則總線上的所有媒體,除中心媒體外,忽略BINIT#信號(hào)的確立。9 報(bào)告BERR輸入。該位指示是否允許BERR#報(bào)告。當(dāng)該位置位時(shí),由測(cè)知一個(gè)不可恢復(fù)錯(cuò)誤的媒體確立一個(gè)BERR#信號(hào),并且不引起總線規(guī)程擾亂。如果該位未置位,總線上的媒體將不確立BERR#信號(hào)。8 使用AERR#的地址總線錯(cuò)誤報(bào)告。該位指示是否允許使用AERR#信號(hào)的地址奇偶校驗(yàn)報(bào)告。當(dāng)該位置位時(shí),一個(gè)AERR#信號(hào)的確立指示一個(gè)地址奇偶校驗(yàn)錯(cuò)誤。如果該位未置位,則除了中心媒體外,在總線上的所有媒體忽略AERR#信號(hào)的確立。7 按序隊(duì)列深度1。該位指示在總線上的媒體的按序隊(duì)列深度。按序隊(duì)列深度是一個(gè)事務(wù)處理號(hào)碼,其可以凸出于管線處理器總線上。當(dāng)該位置位時(shí),隊(duì)列深度為1。如果該位未置位,則隊(duì)列深度為8。6 1M通電復(fù)位矢量。該位指示適當(dāng)復(fù)位矢量,根據(jù)該矢量處理器在復(fù)位后開始執(zhí)行。當(dāng)該位置位時(shí),復(fù)位矢量為0FFF0H(1兆-16)。如果該位未置位,則復(fù)位矢量為0FFFFFFF0H(4千兆-16)。5 功能冗余檢驗(yàn)(FRC)方式允許。當(dāng)該位置位,系統(tǒng)在FRC方式運(yùn)行。如果該位未置位,則系統(tǒng)不在FRC方式下運(yùn)行。40 保留CVDR寄存器336在通電時(shí)以一組缺省配置值初始編程。這些缺省值是初始化值315。在本發(fā)明的一個(gè)實(shí)施例中,初始化值315是系統(tǒng)在最低水平上運(yùn)行所必需的最小一組的配置值,通過(guò)提供一個(gè)最小組的值,計(jì)算機(jī)系統(tǒng)能夠合適地運(yùn)行,雖然也許不能使其打算的使用運(yùn)行在最優(yōu)水平上。然而,一旦建立起一最小組的值,就可以以一組新的參量重新為配置寄存器編程,下面將詳細(xì)敘述。
在一個(gè)實(shí)施例中,初始化值315是在系統(tǒng)中預(yù)先規(guī)定的。也就是說(shuō),系統(tǒng)在通電時(shí)以特別的初始化值預(yù)先配置。這些初始化值可以以大量傳統(tǒng)的任何方式預(yù)先確定,例如在系統(tǒng)中使用硬件。
該初始化值315也在通電時(shí)輸入CSCV寄存器333。因而,CSCV寄存器333和CVDR寄存器336在起始時(shí)都含有同一組值(亦即初始化值315)。如同下面將要詳細(xì)敘述的那樣,這些值在系統(tǒng)運(yùn)行時(shí)可以改變。
表2表示本發(fā)明的一個(gè)實(shí)施例的初始化值315和相應(yīng)的CVDR位及其功能。在位已被置位或未被置位之處,用“1”指示該位置位,用“0”指示該位未置位。
表2位 功能 初始值1514 保留 N/A13 輸出三態(tài)允許 01211 APIC群ID 0010 報(bào)告BINIT輸入 09報(bào)告BERR輸入 08使用AERR#的地址總線錯(cuò)誤報(bào)告07按序隊(duì)列深度1 061M通電復(fù)位矢量 05FRC方式允許040 保留 N/A當(dāng)復(fù)位寄存器330被激活時(shí),總線接口310驅(qū)動(dòng)包含在CVDR寄存器336中的值到處理器總線302。在一種方式中,這些值經(jīng)由總線302的地址總線驅(qū)動(dòng)。在一個(gè)實(shí)施例中,復(fù)位寄存器330由軟件寫操作而被激活。復(fù)位寄存器330被激活,還引起總線接口310在總線302上確立一個(gè)PROC_RESET#信號(hào)。在一種方式中,PROC_RESET#信號(hào)是總線302的控制總線的部分。
PROC_RESET#信號(hào)由所有連接在處理器總線上的媒體接收,并引起它們執(zhí)行“復(fù)位”操作。該復(fù)位操作包括從總線檢索配置值并把這些配置值存儲(chǔ)在等價(jià)于CSCV寄存器333的配置寄存器中。然后,每一個(gè)媒體都使用這些新的值執(zhí)行所有總線上的后繼的事務(wù)處理。
除把CVDR寄存器336中的值驅(qū)動(dòng)到總線302以外,總線接口310還存儲(chǔ)這些值到CSCV寄存器333中。這允許橋300隨著接在總線上的所有媒體更新它自己的配置值。
圖4表示本發(fā)明的一個(gè)實(shí)施例中驅(qū)動(dòng)初始配置值的一個(gè)示例定時(shí)圖。在該實(shí)施例中,I/O總線303運(yùn)行在著名的PCI標(biāo)準(zhǔn)上。如圖3中所示,一個(gè)PWR_GD信號(hào)輸入到CVDR寄存器336。PWR_GD是一個(gè)由計(jì)算機(jī)系統(tǒng)的電源產(chǎn)生的信號(hào)。在一種方式中,在電源的所有電壓穩(wěn)定1毫秒后,該電源確立一個(gè)PWR_GD信號(hào)。如圖4中所示,PWR_GD信號(hào)異步輸入到橋300。
在一個(gè)實(shí)施例中,橋300通過(guò)確立一個(gè)PCI_RST#信號(hào)復(fù)位I/O總線303。在一種方式中,每當(dāng)測(cè)知PWR_GD撤銷時(shí)則確立一個(gè)PCI_RST#信號(hào)。PCI_RST#信號(hào)確立保留到PWR_GD確立后1毫秒。以這種方式,當(dāng)PCI_RST#從0過(guò)渡到1時(shí),在I/O總線303上接的所有其它媒體將復(fù)位自身。
在PWR_GD的上升緣,橋300捕獲它的橋ID,其為在圖3中的橋ID320。它作為橋ID輸入表示在圖4中。在一個(gè)實(shí)施例中,橋300在系統(tǒng)運(yùn)行時(shí)維持同樣的橋ID;也就是說(shuō),PROC_RESET#信號(hào)不改變橋ID。橋ID用于判定在包含多個(gè)橋的系統(tǒng)中哪一個(gè)橋應(yīng)該驅(qū)動(dòng)配置值到總線,對(duì)此下面將作更詳細(xì)地?cái)⑹觥?br>
同樣在PWR_GD的上升緣,初始化值315寫到CSCV寄存器333和CVDR寄存器336。這提供CVDR寄存器336適當(dāng)?shù)呐渲弥狄则?qū)動(dòng)總線302,下面將要敘述。
一旦接收到PWR_GD,橋300以PROC_RESET#信號(hào)復(fù)位處理器總線302。PROC_RESET#在PWR_GD從0過(guò)渡到1后和時(shí)鐘同步確立。于是,如圖4所示,PWR_GD在CLK2異步確立,而PROC_RESET#在CLK3異步確立。在本發(fā)明的一個(gè)實(shí)施例中,PROC_RESET#保持確立1毫秒。
在PROC_RESET#確立時(shí),配置值從CVDR寄存器336被驅(qū)動(dòng)到處理器總線302。橋300在判定是“兼容橋”后確立配置值;兼容橋是負(fù)責(zé)配置系統(tǒng)的橋,其在下面將詳細(xì)敘述。這些值作為配置值表示在圖4中,并由總線302上的每一個(gè)媒體在PROC_RESET#信號(hào)的上升緣檢索。于是,在PROC_RESET#被撤銷時(shí),連接在總線302上的所有媒體都包含同樣的配置值。
圖4表示系統(tǒng)通電時(shí)初始配置值的驅(qū)動(dòng)。在系統(tǒng)通電后在一定的預(yù)定條件下也可以執(zhí)行其它的復(fù)位。例如,可以由系統(tǒng)用戶驅(qū)動(dòng)一個(gè)物理復(fù)位開關(guān)。在這樣的條件下,PROC_RESET#信號(hào)在復(fù)位開關(guān)驅(qū)動(dòng)時(shí)確立,而在CVDR寄存器336中的值被驅(qū)動(dòng)到總線,如上面所述。
在一個(gè)實(shí)施例中,物理復(fù)位開關(guān)的驅(qū)動(dòng)引起初始化值315加載到CVDR寄存器336中。以另一可選擇的方式,初始化值315不加載到CVDR寄存器336中。在這種可選方式中,在復(fù)位開關(guān)被驅(qū)動(dòng)時(shí)存儲(chǔ)在CVDR寄存器336中的配置值被驅(qū)動(dòng)到總線302。
在本發(fā)明的一個(gè)實(shí)施例中,系統(tǒng)也可以由寫入復(fù)位寄存器330而復(fù)位。在該實(shí)施例中,PROC_RESET#信號(hào)和配置值輸入像圖4所示確立。初始化值315不置換存儲(chǔ)在CVDR寄存器336中的值。而不管復(fù)位寄存器330被寫入時(shí)在CVDR寄存器中存儲(chǔ)的是什么值,它都被驅(qū)動(dòng)到總線。
于是,可以看到,新配置值可以存儲(chǔ)在CVDR寄存器336中并接著在復(fù)位期間被驅(qū)動(dòng)到總線。這種復(fù)位是由對(duì)復(fù)位寄存器330寫操作而控制的。
如圖1和圖2所示,一個(gè)計(jì)算機(jī)系統(tǒng)可以包括多于一個(gè)的總線橋。在一個(gè)實(shí)施例中,每一橋都等同于圖3中的橋300。于是,每一橋包含配置寄存器305。為使在該實(shí)施例中多個(gè)橋適當(dāng)作用,只允許一個(gè)橋去復(fù)位處理器總線。是否允許一個(gè)橋復(fù)位處理器總線是由橋ID320決定的。
在一個(gè)實(shí)施例中,橋ID320是一兩字節(jié)值,其在系統(tǒng)加電時(shí)建立。橋ID320由IO_GNT#和IO_REQ#信號(hào)決定,它們作為圖4的橋ID輸入被驅(qū)動(dòng)。一種方式為,IO_GNT#和IO_REQ#信號(hào)還由橋300在系統(tǒng)加電后用于仲裁處理器總線302。IO_GNT#和IO_REQ#在加電時(shí)固定為高或低,因此指示1或0。這可以以大量傳統(tǒng)的任何方式實(shí)現(xiàn),例如使用拉上/拉下電阻器或跳線。通過(guò)為每一橋固定適當(dāng)?shù)腎O_GNT#和IO_REQ#信號(hào)為高或低,可以看到,可以產(chǎn)生四個(gè)唯一的橋ID。對(duì)熟悉本技術(shù)領(lǐng)域的人員來(lái)說(shuō),可以理解,只要給定合適數(shù)目的輸入信號(hào),就可以提供任何數(shù)目的唯一橋ID。
橋ID用于判定多個(gè)橋中的哪一個(gè)負(fù)責(zé)復(fù)位總線;負(fù)責(zé)復(fù)位總線的橋稱為“兼容橋”。在一個(gè)實(shí)施例中,每一個(gè)橋預(yù)先規(guī)定帶特定橋ID的橋是兼容橋。一種方式為,兼容橋ID是“01”,包括從IO_GNT#信號(hào)來(lái)的“0”和從IO_REQ#信號(hào)來(lái)的“1”。
在收到PWR_GD信號(hào)時(shí),每一橋開始確立PROC_RESET#信號(hào),如圖4所示。因此,當(dāng)在一個(gè)系統(tǒng)中存在多個(gè)橋時(shí),每一個(gè)橋都確立一個(gè)PROC_RESET#信號(hào)。然而,每一橋也接收指示它的橋ID的信號(hào)。如果一個(gè)橋被判定為兼容橋,則它繼續(xù)確立PROC_RESET#信號(hào),并且驅(qū)動(dòng)在其CVDR寄存器中的值到總線,如上面所述。然而,如果判定一個(gè)橋不是兼容橋,則該橋撤銷PROC_RESET#信號(hào)。這些非兼容橋不驅(qū)動(dòng)在其CVDR寄存器中的值到總線。相反地,這些橋表現(xiàn)為同連接在總線上的其它媒體一樣,亦即這些橋在PROC_RESET#信號(hào)的上升緣從總線捕獲它們的配置值。
應(yīng)該注意,在多橋系統(tǒng)中的每一橋的橋ID判定哪一個(gè)橋是兼容橋。于是,橋ID只判定哪一個(gè)橋負(fù)責(zé)復(fù)位總線,和哪一個(gè)橋可以驅(qū)動(dòng)它的CVDR寄存器到總線。哪一個(gè)橋執(zhí)行這些功能并不影響系統(tǒng)通過(guò)修改兼容橋的CVDR寄存器來(lái)修改所有媒體的配置值的能力。
在一個(gè)多橋系統(tǒng)中,兼容橋的CVDR寄存器336可以由系統(tǒng)中的其它媒體(以及兼容橋自身)寫入。為做到這一點(diǎn),一個(gè)媒體發(fā)布一個(gè)發(fā)往兼容橋(通過(guò)兼容橋的橋ID)的命令。由于每一個(gè)橋有唯一的橋ID,而兼容橋的橋ID是預(yù)先規(guī)定的,則系統(tǒng)中的其它媒體可以合適地找到兼容橋的CVDR寄存器336。
雖然上面給出的是在一個(gè)多橋系統(tǒng)中為每一橋建立一個(gè)橋ID的特殊細(xì)節(jié),但是這些細(xì)節(jié)并不意味著限制本發(fā)明的范圍??梢砸源罅總鹘y(tǒng)的任何方式確定橋ID。
圖5表示根據(jù)本發(fā)明的一個(gè)實(shí)施例更新配置值的步驟。最初,計(jì)算機(jī)系統(tǒng)加電,初始配置值驅(qū)向總線,步驟510。這一點(diǎn)的實(shí)現(xiàn)和上面圖4所示一樣。
給定初始配置值,處理器總線302上的媒體有必需的參量允許它們?cè)L問(wèn)系統(tǒng)基本輸入輸出(BIOS),步驟520。一種方式為,BIOS存儲(chǔ)在一個(gè)連接在總線303上的外部設(shè)備中,像海量存儲(chǔ)設(shè)備??蛇x的另外方案為,BIOS可以存儲(chǔ)在連接在總線302上的設(shè)備中,像只讀存儲(chǔ)器(ROM)或其它連接在總線302上的海量存儲(chǔ)設(shè)備。
不管BIOS位于何處,初始配置值允許總線上的媒體訪問(wèn)BIOS。BIOS一般包含一組軟件程序,其在系統(tǒng)起動(dòng)時(shí)由總線上的處理器執(zhí)行,如同在該技術(shù)領(lǐng)域所熟知的那樣。在一個(gè)實(shí)施例中,這些BIOS程序修改圖3中的橋300的CVDR寄存器336的配置值。
在完成修改CVDR寄存器336的配置值后,BIOS程序執(zhí)行對(duì)復(fù)位寄存器330的寫操作,步驟540。如上所述,這引起總線接口310驅(qū)動(dòng)CVDR寄存器336中的值到總線302,步驟550??偩€上的媒體隨即檢索和存儲(chǔ)這些值,并根據(jù)這些值運(yùn)行。
配置值可以在系統(tǒng)運(yùn)行期間再次改變,如步驟560所示。如果未做進(jìn)一步的修改,則沒(méi)有另外的配置值驅(qū)動(dòng)到總線。不過(guò),后繼的軟件程序可以修改CVDR寄存器中的配置值,步驟570。如上所述,CVDR寄存器中的值的修改不改變包括橋300的系統(tǒng)的配置值,直到復(fù)位寄存器330被寫入。在修改CVDR寄存器336之后,軟件重復(fù)步驟540和550,亦即軟件寫入復(fù)位寄存器330,引起CVDR寄存器336中新的配置值被驅(qū)動(dòng)到總線。
這種配置值的修改可以在系統(tǒng)運(yùn)行期間繼續(xù),如步驟560所示。任何時(shí)間,當(dāng)軟件希望修改系統(tǒng)配置值時(shí),可以修改CVDR寄存器,并把其值驅(qū)向總線。
因此,可以看到,系統(tǒng)中每一個(gè)媒體所用的配置值通過(guò)使用復(fù)位寄存器330、CSCV寄存器333和CVDR寄存器336同時(shí)更新。這些配置值可以在系統(tǒng)運(yùn)行期間通過(guò)預(yù)編程合適的寄存器改變?nèi)我獯?;不需跳線或類似設(shè)備的物理操作。
應(yīng)該注意,雖然上面的敘述討論了修改和驅(qū)動(dòng)一組配置值,但是本發(fā)明并不限于這些數(shù)值。對(duì)熟悉本技術(shù)領(lǐng)域的人員來(lái)說(shuō)應(yīng)該理解本發(fā)明同樣可以應(yīng)用于可以在計(jì)算機(jī)系統(tǒng)中設(shè)定的大量的任何值。
鑒于熟悉本技術(shù)領(lǐng)域的人員在閱讀上述說(shuō)明后能夠領(lǐng)會(huì)對(duì)本發(fā)明的許多改變和修正,所以應(yīng)該理解,本說(shuō)明表示和敘述的該特定實(shí)施例決不打算限制本發(fā)明的范圍。因此,對(duì)特定實(shí)施例的細(xì)節(jié)的參考并不打算限制權(quán)利要求的范圍,這些權(quán)利要求僅敘述涉及到本發(fā)明的基本點(diǎn)的特征。
權(quán)利要求
1.在具有總線的計(jì)算機(jī)系統(tǒng)中用一組值配置多個(gè)媒體的設(shè)備,所述設(shè)備包括(a)存儲(chǔ)所述一組值的第一存儲(chǔ)設(shè)備;(b)驅(qū)動(dòng)所述一組值到所述總線的接口邏輯;(c)存儲(chǔ)所述一組值的第二存儲(chǔ)設(shè)備;和(d)判定所述接口邏輯何時(shí)驅(qū)動(dòng)所述一組值到所述總線和所述第二存儲(chǔ)設(shè)備何時(shí)存儲(chǔ)所述一組值的第一寄存器。
2.如權(quán)利要求1所述的設(shè)備,其特征在于所述接口邏輯在驅(qū)動(dòng)所述一組值到所述總線時(shí),存儲(chǔ)所述一組值到所述第二存儲(chǔ)設(shè)備中,所述設(shè)備使用所述一組值定義所述設(shè)備的操作參量。
3.如權(quán)利要求1所述的設(shè)備,其特征在于所述第一存儲(chǔ)設(shè)備和所述第二存儲(chǔ)設(shè)備分別包括一個(gè)第二寄存器和一個(gè)第三寄存器。
4.如權(quán)利要求1所述的設(shè)備,其特征在于所述接口邏輯在對(duì)所述第一寄存器寫操作時(shí)驅(qū)動(dòng)所述一組值到所述總線。
5.在具有總線的計(jì)算機(jī)系統(tǒng)中用一組值同時(shí)配置多個(gè)媒體的方法,所述方法包括的步驟有(a)驅(qū)動(dòng)第二組值到所述總線;(b)訪問(wèn)第一存儲(chǔ)設(shè)備判定所述第一組值;(c)存儲(chǔ)所述第一組值到第二存儲(chǔ)設(shè)備;和(d)驅(qū)動(dòng)所述第一組值到所述總線。
6.如權(quán)利要求5所述的方法,其特征在于所述訪問(wèn)步驟包括根據(jù)所述第二組值判定訪問(wèn)所述第一存儲(chǔ)設(shè)備的方法的步驟。
7.如權(quán)利要求5所述的方法,其特征在于所述步驟(d)包括啟動(dòng)一個(gè)寄存器使得所述第一組值被驅(qū)動(dòng)到總線上去的步驟。
8.如權(quán)利要求7所述的方法,其特征在于所述啟動(dòng)包括寫入所述寄存器的步驟。
9.同時(shí)給多個(gè)媒體提供一組值的方法,所述多個(gè)媒體連接在計(jì)算機(jī)系統(tǒng)的一條總線上,所述方法包括(a)存儲(chǔ)所述組值到第一存儲(chǔ)設(shè)備;(b)啟動(dòng)第一寄存器;(c)響應(yīng)第一寄存器的啟動(dòng)而驅(qū)動(dòng)所述組值到所述總線;(d)從所述總線上檢索所述的一組值;和(e)存儲(chǔ)所述的一組值。
10.如權(quán)利要求9所述的方法,其特征在于所述啟動(dòng)步驟包括對(duì)所述第一寄存器執(zhí)行寫操作的步驟。
11.一個(gè)計(jì)算機(jī)系統(tǒng),包括第一總線和第二總線;連接在所述第一總線上的第一組媒體;連接在所述第二總線上的第二組媒體;和第一媒體是第一組媒體中之一和第二組媒體中之一,其中所述第一媒體包括,存儲(chǔ)一組值的第一存儲(chǔ)設(shè)備,驅(qū)動(dòng)所述組值到所述第二總線的接口邏輯,存儲(chǔ)所述組值的第二存儲(chǔ)設(shè)備,和判定所述接口邏輯何時(shí)驅(qū)動(dòng)所述組值到所述第二總線和所述第二存儲(chǔ)設(shè)備何時(shí)存儲(chǔ)所述組值的第一寄存器。
12.如權(quán)利要求11所述的計(jì)算機(jī)系統(tǒng),其特征在于所述第二組媒體的一個(gè)第二媒體包括一個(gè)存儲(chǔ)來(lái)自所述總線的所述組值的第三存儲(chǔ)設(shè)備。
13.如權(quán)利要求11所述的計(jì)算機(jī)系統(tǒng),其特征在于所述第二組媒體的一個(gè)第二媒體包括根據(jù)所述第一組值從所述第一組媒體的一個(gè)第三媒體檢索第二組值的邏輯。
14.在具有總線的計(jì)算機(jī)系統(tǒng)中用一組值配置多個(gè)媒體的設(shè)備,所述設(shè)備包括(a)存儲(chǔ)所述組值的第一設(shè)備;(b)驅(qū)動(dòng)所述組值到所述總線的設(shè)備;(c)在所述驅(qū)動(dòng)所述組值到所述總線的設(shè)備驅(qū)動(dòng)所述組值到所述總線后存儲(chǔ)所述組值的第二設(shè)備;和(d)判定所述驅(qū)動(dòng)設(shè)備何時(shí)驅(qū)動(dòng)所述組值到所述總線的設(shè)備。
15.如權(quán)利要求14所述的設(shè)備,其特征在于所述驅(qū)動(dòng)設(shè)備進(jìn)一步包括存儲(chǔ)所述組值到所述第二存儲(chǔ)設(shè)備的設(shè)備。
16.如權(quán)利要求14所述的設(shè)備,其特征在于所述第二存儲(chǔ)設(shè)備存儲(chǔ)所述組值,所述設(shè)備使用所述組值確定所述設(shè)備的操作參量。
17.如權(quán)利要求14所述的設(shè)備,其特征在于所述驅(qū)動(dòng)設(shè)備在所述判定設(shè)備被寫操作時(shí)驅(qū)動(dòng)所述組值到所述總線上。
全文摘要
在計(jì)算機(jī)系統(tǒng)中配置多個(gè)媒體的設(shè)備(300),包括存儲(chǔ)一組配置值的第一存儲(chǔ)設(shè)備(315)和從總線(302)上捕獲該組配置值的第二存儲(chǔ)設(shè)備(333)。這些配置值被驅(qū)動(dòng)到總線(302)上,并由在本設(shè)備(300)內(nèi)的接口邏輯(310)從總線(302)檢索。當(dāng)本設(shè)置(300)中的一個(gè)寄存器(336)被激活時(shí),接口邏輯(310)驅(qū)動(dòng)配置值到總線(302)。在系統(tǒng)加電時(shí)第一存儲(chǔ)設(shè)備(315)取第一組值為缺省值。然后這些值被驅(qū)動(dòng)到總線(302)上,并由總線(302)上的每一媒體(203-206)檢索。該第一組值提供系統(tǒng)為訪問(wèn)和執(zhí)行一定的初始化程序的必需的參數(shù)。這些初始化程序可以修改存儲(chǔ)在第一存儲(chǔ)設(shè)備(315)中的配置值。在初始化程序修改第一存儲(chǔ)設(shè)備(315)之后,它們激活本設(shè)備(300)中的一個(gè)寄存器(336)。該寄存器(336)引起接口邏輯(310)驅(qū)動(dòng)在第一存儲(chǔ)設(shè)備(315)中存儲(chǔ)的值到系統(tǒng)總線(302)上??偩€(302)上的每一個(gè)媒體(203-206),包括本設(shè)備(300)檢索這些值。本設(shè)備(300)存儲(chǔ)這些值到第二存儲(chǔ)設(shè)備(333)中并根據(jù)存儲(chǔ)在第二存儲(chǔ)設(shè)備(333)中的值繼續(xù)運(yùn)行。
文檔編號(hào)G06F15/177GK1163006SQ95193125
公開日1997年10月22日 申請(qǐng)日期1995年4月18日 優(yōu)先權(quán)日1994年5月18日
發(fā)明者S·S·梅力迪思 申請(qǐng)人:英特爾公司