專利名稱:通過自動(dòng)改變索引來訪問配置寄存器的制作方法
通過自動(dòng)改變索引來訪問配置寄存器
背景
下文描述的本發(fā)明的實(shí)施例涉及訪問用于配置計(jì)算機(jī)系統(tǒng),包括一個(gè)或多個(gè) 其集成電路組件的功能的軟件可訪問寄存器。
計(jì)算機(jī)系統(tǒng)由若干主要的集成電路(ic)組件構(gòu)成,這些IC組件通常包括諸
如加利福尼亞州圣克拉拉市的Intel公司的PENTIUM處理器等處理器以及主存儲(chǔ) 器。在許多情況下,也使用系統(tǒng)接口組件(也稱為系統(tǒng)芯片組),以允許處理器與 各種各樣的其它IC組件和外圍設(shè)備通信,諸如圖形子系統(tǒng)、網(wǎng)絡(luò)接口控制器以及
大容量存儲(chǔ)設(shè)備。每一IC組件被設(shè)計(jì)成實(shí)現(xiàn)共同工作以幫助系統(tǒng)實(shí)現(xiàn)其總體目的 的某些功能。
對(duì)于上述的主要IC組件,系統(tǒng)芯片組可具有要支持的最大數(shù)量的不同功能。 這是因?yàn)樵谠S多情況下,系統(tǒng)芯片組不僅擔(dān)當(dāng)處理器和其它IC組件之間的通信橋, 而且有時(shí)也擔(dān)當(dāng)外圍設(shè)備和主存儲(chǔ)器之間的通信橋。為更有效地使用IC制造資源, 通常將單個(gè)系統(tǒng)芯片組設(shè)計(jì)得足夠靈活以支持不同類型的處理器、存儲(chǔ)器和外圍設(shè) 備組合。這一靈活性是通過對(duì)具有可配置的內(nèi)部硬件的系統(tǒng)芯片組進(jìn)行設(shè)計(jì)來實(shí)現(xiàn) 的,這些內(nèi)部硬件的配置和功能是依照多個(gè)內(nèi)部軟件可訪問寄存器(也稱為配置寄 存器)的內(nèi)容來設(shè)置的。在向給定計(jì)算機(jī)系統(tǒng)通電之后,系統(tǒng)芯片組中的配置寄存 器(以及諸如處理器和存儲(chǔ)器等其它主要IC組件中的配置寄存器)用其期望的值 來寫入,這通常是在操作系統(tǒng)程序的控制下完成的。
在Intel公司的82443BX主機(jī)橋/控制器芯片組的情況下,對(duì)配置寄存器的編 程(也稱為配置空間中的編程)可如下進(jìn)行。存在兩種可從主機(jī)/中央處理單元 (CPU) I/O地址空間訪問的控制寄存器,即配置地址寄存器(CONFADD,按照 其十六進(jìn)制地址也稱為CF8),以及配置數(shù)據(jù)寄存器(CONFDATA,按照其十六 進(jìn)制地址也稱為CFC)。對(duì)配置寄存器的任一個(gè)的訪問是通過首先訪問CONFADD 并標(biāo)識(shí)選中的寄存器(通過適當(dāng)?shù)貙懭隒ONFADD以"指向"選中寄存器)來完 成的。接著,執(zhí)行對(duì)包含選中寄存器的當(dāng)前值的CONFDATA的訪問以寫入新值。 選中的寄存器然后被相應(yīng)地更新。為了對(duì)另一配置寄存器編程,重復(fù)該同一雙重訪
問操作以首先指向下一寄存器(通過寫入CONFADD),然后請(qǐng)求對(duì)其的更新(通 過將新值寫入CONFDATA)。
附圖簡(jiǎn)述
本發(fā)明的實(shí)施例是作為說明而非限制在附圖中示出的,附圖中,相同的參考 標(biāo)號(hào)指示類似的元件。應(yīng)當(dāng)注意,本公開內(nèi)容中對(duì)本發(fā)明的"一個(gè)"實(shí)施例的引用 不必是針對(duì)同一實(shí)施例,而是它們意味著至少一個(gè)。
圖1是用于訪問配置寄存器的序列的方法的流程圖,該方法可加速初始化計(jì) 算機(jī)系統(tǒng)的過程。
圖2示出了從"發(fā)射器",例如已編程的主機(jī)/CPU的觀點(diǎn)來看用于訪問配置
寄存器的兩個(gè)不同的方法。
圖3示出了可以用塊模式單獨(dú)編程的三個(gè)配置寄存器組。
圖4是允許對(duì)配置寄存器的自動(dòng)索引的IC組件的部分的邏輯圖。
圖5描繪了其中可通過自動(dòng)索引來對(duì)芯片組組件的配置寄存器編程的計(jì)算機(jī)
系統(tǒng)的框圖。
詳細(xì)描述
據(jù)發(fā)現(xiàn),對(duì)未來的計(jì)算機(jī)體系結(jié)構(gòu),計(jì)算機(jī)系統(tǒng)的主要IC組件中,尤其是系 統(tǒng)芯片組中的配置寄存器的數(shù)量可能顯著地增長(zhǎng)。例如,在支持點(diǎn)對(duì)點(diǎn)鏈路(到多 個(gè)處理器、其它IC組件以及外圍設(shè)備)的系統(tǒng)互連的芯片組中,在每次系統(tǒng)初始 化時(shí)可能有上百個(gè)寄存器要驗(yàn)證和/或編程。另外,這些寄存器在將來可能變得更 廣闊,從而甚至可能需要對(duì)更大量的配置數(shù)據(jù)編程。最后,在大多數(shù)情況下,傳統(tǒng) 上被定義為訪問配置寄存器的總線協(xié)議和總線周期與以訪問存儲(chǔ)器為目標(biāo)的那些 相比是相當(dāng)慢的,例如,這是由于對(duì)快速配置過程沒有察覺到的需求。這些因素共 同被認(rèn)為會(huì)顯著放慢未來計(jì)算機(jī)系統(tǒng)中的初始化過程。
現(xiàn)在轉(zhuǎn)向圖1,示出了用于訪問配置寄存器的序列的方法的流程圖,該方法可 加速初始化計(jì)算機(jī)系統(tǒng)的過程。圖1描繪了可以由"接收器",例如其中定位了配 置寄存器以及用于對(duì)它們編程的相關(guān)聯(lián)硬件的系統(tǒng)芯片組組件,來執(zhí)行的操作。相 對(duì)地,以下描述的圖2涉及從"發(fā)射器",例如已編程的主機(jī)/CPU的觀點(diǎn)來看用 于訪問配置寄存器的方法。從圖1開始,操作可以接收關(guān)于已作出訪問地址寄存器 的嘗試的指示開始(操作104)。該地址寄存器可以是例如上述十六進(jìn)制地址CF8
處的CONFADD。訪問可以是寫入指向序列的給定配置寄存器的給定索引值的嘗 試?;蛘?,嘗試可以是從地址寄存器中讀取索引值。在任一情況下,操作都前迸到 框亂
在框108,接收已作出訪問另一寄存器,此處稱為數(shù)據(jù)寄存器的嘗試的指示。 例如,該嘗試可以是寫入作為給定配置寄存器的內(nèi)容的部分的給定內(nèi)容值的嘗試。 接著,操作前進(jìn)以將索引變量改為指向序列的另一配置寄存器(框112)。這是在 無需等待另一訪問地址寄存器的嘗試的情況下完成的。換言之,索引被自動(dòng)改為指 向另一配置寄存器。這有助于加速配置寄存器的總體編程過程,因?yàn)樗苊饬藢?duì)每 一后續(xù)的配置寄存器訪問地址寄存器的額外的嘗試。對(duì)集成電路(IC)組件的這一 操作模式此處也被稱為特殊或塊操作模式。
對(duì)上述過程有若干變體。首先,可對(duì)分別被寫入地址和數(shù)據(jù)寄存器的給定索 引和內(nèi)容值的一個(gè)或兩者進(jìn)行編碼。以下將結(jié)合圖4所示的計(jì)算機(jī)系統(tǒng)給出一個(gè)示 例,在該計(jì)算機(jī)系統(tǒng)中,從地址寄存器的若干字段的組合中提取或?qū)С鏊饕?。?外,可允許索引變量的自動(dòng)改變,例如,僅當(dāng)先前進(jìn)入了用于通過自動(dòng)索引對(duì)寄存 器序列編程的塊操作模式時(shí)。正常和塊模式過程的示例在圖2中示出。又一變體是 索引變量中的改變可以是固定的增量或減量,使得序列的寄存器是依照遞增或遞減 的地址來順序地編程的。最后,索引變量可以由與地址寄存器分離的邏輯結(jié)構(gòu)(例 如,計(jì)數(shù)器或寄存器)來實(shí)現(xiàn)。其它變體也是可能的。
如圖1所示,上述用于訪問兩個(gè)或更多配置寄存器的序列的訪問方法以接收 訪問數(shù)據(jù)寄存器的另一嘗試的指示繼續(xù)(框114)。接著,響應(yīng)于在框114接收進(jìn) 一步的指示,且在接收訪問地址寄存器的又一嘗試之前,索引變量改為指向序列中 又一配置寄存器(框11S)???14和118中的操作可在接收到訪問數(shù)據(jù)寄存器的 其它嘗試的指示時(shí)重復(fù),以指向序列中的其它配置寄存器。
注意,上述過程適用于編程,包括將新的內(nèi)容值實(shí)際寫入選中的配置寄存器 (基于數(shù)據(jù)寄存器的內(nèi)容)。另外,盡管上述過程涉及接收關(guān)于已作出訪問地址或 數(shù)據(jù)寄存器的嘗試的指示,然而這應(yīng)當(dāng)被理解為不僅包括例如檢測(cè)某些類型的總線 事件(例如,以地址和/或數(shù)據(jù)寄存器為目標(biāo)的特殊總線事務(wù)),但也包括例如對(duì) 于框104,檢測(cè)地址寄存器實(shí)際上已用新的索引值寫入。類似地,對(duì)于框108,接 收關(guān)于已作出訪問數(shù)據(jù)寄存器的嘗試的指示可以是檢測(cè)到以數(shù)據(jù)寄存器為目標(biāo)的 特定總線事件,或者是已向數(shù)據(jù)寄存器寫入新的內(nèi)容值。可使用接收關(guān)于已作出訪 問寄存器的嘗試的指示的其它方法。
現(xiàn)在轉(zhuǎn)向圖2,從發(fā)射器(例如,主機(jī)/CPU)的觀點(diǎn)示出了對(duì)配置寄存器編 程的方法的流程圖。實(shí)際上描述了兩個(gè)不同的過程,其中取決于是否啟用了塊模式 (框202),可執(zhí)行一個(gè)或另一個(gè)過程。在該示例中,在兩個(gè)過程中對(duì)同一組配置 寄存器編程。在圖2的左側(cè)描述的過程中(正常操作模式),依照塊204-224對(duì)索 引值Ol、 02和03處的三個(gè)配置寄存器編程。應(yīng)當(dāng)理解,在該過程中,對(duì)每一寄存 器執(zhí)行雙階段操作。例如,為對(duì)索引值Ol處的寄存器編程,在該序列中執(zhí)行塊204 和208,其中首先將索引值寫入地址寄存器(本實(shí)施例中出現(xiàn)在十六進(jìn)制地址CF8 處),然后將配置數(shù)據(jù)或內(nèi)容值讀或?qū)懙綌?shù)據(jù)寄存器(在十六進(jìn)制地址CFC處)。
與圖2左側(cè)的過程相對(duì),右側(cè)的過程通過本質(zhì)上在該實(shí)施例中消除框212和 220所述的操作,并用對(duì)下一順序索引的自動(dòng)遞增來替換它們(框210和218), 以利用自動(dòng)索引。當(dāng)要對(duì)相對(duì)大量的配置寄存器編程時(shí),對(duì)于與消除對(duì)地址寄存器 CF8的整個(gè)寫操作相關(guān)聯(lián)的時(shí)間有實(shí)質(zhì)性的節(jié)省。
注意,支持圖2所述的方法的IC組件可具有用于對(duì)配置寄存器編程的兩種操 作模式,其中一種是如圖2的右側(cè)流程圖中所例示的塊模式,而另一種是該圖的左 側(cè)所示的正常模式。由此,IC組件可用對(duì)軟件可訪問的另一寄存器來編程,以在 編程上啟用或禁用塊操作模式。這允許以不同的模式對(duì)不同的配置寄存器組編程, 從而實(shí)質(zhì)上節(jié)省了時(shí)間。例如,以塊模式順序地對(duì)相對(duì)較大的第一組寄存器編程。 IC組件然后可以返回到正常模式,以跳至下一組(不是順序地在第一組之后)的 第一寄存器。這一能力在圖3中描述,其中首先對(duì)具有索引或地址1-6的組以塊模 式編程;然后將IC組件置于正常模式中以對(duì)地址21處的寄存器編程;然后以塊模 式對(duì)地址54-59處的寄存器編程;然后進(jìn)入正常模式以對(duì)地址104處的獨(dú)立寄存器 編程,之后以塊模式順序地對(duì)寄存器174-180編程。
現(xiàn)在轉(zhuǎn)向圖4,示出了允許對(duì)配置寄存器的自動(dòng)索引的IC組件的部分的邏輯 圖。IC組件可以是計(jì)算機(jī)系統(tǒng)的系統(tǒng)芯片組、處理器或其它主要IC組件。在IC 組件中提供了多個(gè)配置寄存器304例如具有IC組件的某些核心邏輯的片上寄存器 (未示出)。這些寄存器304的每一個(gè)可以由多路復(fù)用器邏輯308的輸出來索引。 一旦被索引或選中,所選中的寄存器的某些或全部?jī)?nèi)容(在該圖中稱為"數(shù)據(jù)") 可在硬件控制信號(hào)CFC讀命令的控制下被傳送到數(shù)據(jù)寄存器(CFC,未示出)。 或者,數(shù)據(jù)可在硬件控制信號(hào)CFC寫命令的控制下被寫入選中的寄存器。CFC讀 和寫命令是指示接收到(例如,從IC組件的外部)分別寫和讀數(shù)據(jù)寄存器(CFC) 的請(qǐng)求的信號(hào)的示例。
多路復(fù)用器邏輯308可具有兩個(gè)輸入。第一個(gè)輸入可從計(jì)數(shù)器312接收索引, 而第二個(gè)輸入可接收(在本實(shí)施例中)直接從地址寄存器(CF8)導(dǎo)出的索引值, 該索引值先前被寫入到該地址寄存器(CF8)中。多路復(fù)用器邏輯308是依照指示 IC組件的操作模式的塊模式啟用控制信號(hào),在來自計(jì)數(shù)器312的索引值與從地址 寄存器(CF8)獲得的索引值之間選擇的。
由計(jì)數(shù)器312提供的索引值可例如通過自動(dòng)遞增或遞減計(jì)數(shù)器312來改變。 遞增或遞減信號(hào)可由檢測(cè)邏輯316提供。
在操作中,當(dāng)IC組件處于其正常模式中時(shí),提供給配置寄存器304的索引可 從如由軟件所寫入的CF8的內(nèi)容中導(dǎo)出。然而,當(dāng)啟用了塊模式時(shí),索引是從計(jì) 數(shù)器312獲得的。聲明塊模式啟用信號(hào)允許用從CF8獲得的值來加載計(jì)數(shù)器312, 該計(jì)數(shù)器隨后提供當(dāng)由檢測(cè)邏輯316命令時(shí)自動(dòng)遞增的索引值。只要檢測(cè)邏輯316 確定接收到訪問配置寄存器的請(qǐng)求(例如,從IC組件的外部),且特別是檢測(cè)到 CFC寫或讀命令的時(shí)候,寄存器312就被遞增以指向下一配置寄存器??墒褂糜?于實(shí)現(xiàn)自動(dòng)索引能力的其它邏輯設(shè)計(jì)。
現(xiàn)在參考圖5,描繪了其中可通過自動(dòng)索引來對(duì)芯片組組件的配置寄存器編程 的計(jì)算機(jī)系統(tǒng)的框圖。本實(shí)施例中的芯片組組件被稱為I/O集線器416。 I/O集線 器416擔(dān)當(dāng)一側(cè)上的處理器和主存儲(chǔ)器組合404與另一側(cè)上的一個(gè)或多個(gè)I/O組件 408、 412之間的橋。在本實(shí)施例中,1/O組件408是網(wǎng)絡(luò)接口控制器,而組件412 是圖形控制器/子系統(tǒng)。1/0集線器416可以配備有用于與其它組件(未示出)通信 的附加端口。
在本實(shí)施例中,示出了四個(gè)處理器一主存儲(chǔ)器組合404,盡管一般可以有一個(gè) 或多個(gè)。這些處理器一主存儲(chǔ)器組合的每一個(gè)在通信上通過單獨(dú)的高速數(shù)據(jù)點(diǎn)對(duì)點(diǎn) 鏈路彼此耦合,如圖所示。點(diǎn)對(duì)點(diǎn)鏈路可具有一個(gè)或多個(gè)"道(lane)",其中每 一道可以由印刷線路板上的單個(gè)跡線以及相關(guān)聯(lián)的I/O緩沖器電路(未示出)組成, 用于在兩個(gè)處理器一主存儲(chǔ)器組合404之間的主要的單向通信。另外,點(diǎn)對(duì)點(diǎn)鏈路 也可用于在通信上耦合I/0集線器416和IC組件408、 412。點(diǎn)對(duì)點(diǎn)鏈路可以被設(shè) 計(jì)成依照PCI Express Base Specification 1.0a (PCI Express基本規(guī)范)(2003年4 月15日)來操作。
在i/o集線器416中提供了一組配置寄存器424和一對(duì)地址和數(shù)據(jù)寄存器420。 作為一個(gè)示例,配置地址寄存器(CF8)可以用以下字段來定義端口號(hào)、功能號(hào) 以及寄存器號(hào)。這些字段點(diǎn)的內(nèi)容可能通過某一形式的編碼被寫入配置寄存器424
中選中的一個(gè)中。該選中寄存器424的內(nèi)容將在配置數(shù)據(jù)寄存器(CFC)中得到反 映。
至少某些配置寄存器424可指示在由I/O集線器416實(shí)現(xiàn)的橋的一端上接收到 的事務(wù)請(qǐng)求如何被傳送到該橋的另一端。寄存器424可被設(shè)計(jì)成配置其它功能,包 括例如設(shè)備識(shí)別、廠商識(shí)別、定時(shí)器、存儲(chǔ)器控制和定時(shí)、出錯(cuò)狀態(tài)、暫存區(qū)等等。 另外,盡管未示出,但I(xiàn)/0集線器416也可包括實(shí)現(xiàn)上述自動(dòng)索引能力所需的邏輯 電路,諸如圖4所示的邏輯設(shè)計(jì)。
用于使用圖5的系統(tǒng)以塊模式對(duì)寄存器424編程的方法可描述如下。首先, 檢測(cè)到以訪問指向寄存器424之一的索引變量為目標(biāo)的預(yù)定類型的總線事件。例 如,索引變量可在可被映射到系統(tǒng)的主機(jī)中央處理單元(CPU) 1/0地址空間的配 置地址寄存器(CF8)中得到反映,使得CF8可由處理器一主存儲(chǔ)器組合404的任 一個(gè)來訪問。I/O集線器416中的邏輯然后可被設(shè)計(jì)成監(jiān)視鏈路405或407的任一 個(gè)上以訪問CF8為目標(biāo)的總線事件。
在檢測(cè)到這一總線事件之后,該邏輯然后可期望以更新索引變量所指向的寄 存器424之一為目標(biāo)的隨后的總線事件。該總線事件可以是以CFC為目標(biāo)的事務(wù), 以讀或?qū)懸赃x中的/索引的配置寄存器424為目標(biāo)或從中導(dǎo)出的內(nèi)容值。接著,由 于I/0集線器416被置于塊模式中,只要檢測(cè)到后一總線事件,邏輯電路仍可在不 等待以訪問索引變量為目標(biāo)的另一總線事件的情況下,將索引變量改為指向配置寄 存器424的另一個(gè)。注意,索引變量的這一改變也可在地址寄存器(CF8)中得到 反映,其中對(duì)該寄存器有隨后的讀。另外,索引變量所指向的配置寄存器的當(dāng)前內(nèi) 容在對(duì)該寄存器有隨后的讀時(shí)可在數(shù)據(jù)寄存器(CFC)中得到反映。只要塊模式保 持被啟用,邏輯電路就可繼續(xù)在每次檢測(cè)到以訪問數(shù)據(jù)寄存器(CFC)為目標(biāo)的總 線事件時(shí),改變索引變量(以指向配置寄存器的另一個(gè)),而無需更新地址寄存器 (CF8)的總線事件。
作為概括,描述了用于通過自動(dòng)改變索引來訪問配置寄存器的方法和裝置的 各種實(shí)施例。在以上說明書中,本發(fā)明是參考其具體示例性實(shí)施例來描述的。然而, 很顯然,可對(duì)其作出各種修改和改變而不脫離所附權(quán)利要求書中所述的本發(fā)明的更 寬泛的精神和范圍。例如,盡管圖5示出了配置和控制寄存器424、 420在I/O集 線器416中且通過"前端"鏈路405、 407來訪問,然而其它組件可位于處理器一 存儲(chǔ)器組合404中或甚至在IC組件408、 412中,且經(jīng)由平臺(tái)管理系統(tǒng)416通過低 速總線(未示出)來訪問。因此,本說明書和附圖應(yīng)當(dāng)在說明性而非限制性的意義
上考慮o
權(quán)利要求
1.一種用于訪問配置寄存器的方法,包括a)接收關(guān)于已作出訪問第一寄存器的嘗試的指示,所述第一寄存器反映指向配置寄存器的索引變量;以及然后b)接收關(guān)于已作出訪問第二寄存器的嘗試的指示,所述第二寄存器反映所述索引變量所指向的配置寄存器的內(nèi)容的部分;以及然后c)響應(yīng)于b),且在不等待訪問第一寄存器的另一嘗試的情況下,將所述索引變量改為指向另一配置寄存器。
2. 如權(quán)利要求l所述的方法,其特征在于,所述訪問第一寄存器的嘗試是寫 入指向給定配置寄存器的給定索引值的嘗試,并且其中,所述訪問第二寄存器的嘗試是寫入作為所述給定配置寄存器的內(nèi) 容的部分的給定內(nèi)容值的嘗試。
3. 如權(quán)利要求2所述的方法,其特征在于,分別被寫入所述第一和第二寄存 器的所述給定索弓I和內(nèi)容值之一被編碼。
4. 如權(quán)利要求3所述的方法,其特征在于,分別被寫入所述第一和第二寄存 器的所述給定索弓I和內(nèi)容值兩者被編碼。
5. 如權(quán)利要求2所述的方法,其特征在于,還包括,在c)之后-d) 接收關(guān)于訪問第二寄存器的另一嘗試的指示;以及然后e) 響應(yīng)于d),且在接收關(guān)于訪問第一寄存器的又一嘗試的指示之前,將所述 索引變量改為指向又一配置寄存器;以及然后重復(fù)d)-e),以指向再一配置寄存器。
6. 如權(quán)利要求l所述的方法,其特征在于,在c)中,所述索引變量?jī)H當(dāng)進(jìn)入 用于通過自動(dòng)索引對(duì)配置寄存器編程的特殊操作模式時(shí)才改變。
7. —種用于對(duì)多個(gè)配置寄存器編程的方法,包括a) 對(duì)集成電路(IC)組件啟用第一操作模式,其中,多個(gè)配置寄存器將依照 b) - e)進(jìn)行編程;b) 寫入所述IC組件的第一控制寄存器以啟用對(duì)所述寄存器的選中的一個(gè)的 訪問;以及然后c) 將所述寄存器中選中的一個(gè)寄存器的內(nèi)容值寫入所述IC組件中的第二控制寄存器;以及然后d) 將所述寄存器中選中的另一個(gè)寄存器的又一內(nèi)容值寫入所述第二控制寄存 器,而不再次寫入所述第一控制寄存器;以及然后e) 重復(fù)d),直到對(duì)所有的寄存器編程。
8. 如權(quán)利要求7所述的方法,其特征在于,還包括 通過以下步驟對(duì)另外的多個(gè)配置寄存器編程f) 禁用所述第一操作模式;以及然后g) 寫入所述第一控制寄存器以啟動(dòng)對(duì)所述另外的寄存器中選中的一個(gè)寄存器 的訪問;以及然后h) 將所述另外的寄存器中的選中的一個(gè)的內(nèi)容值寫入所述第二控制寄存器; 以及然后重復(fù)g)-h),直到對(duì)所有的另外的寄存器編程。
9. 如權(quán)利要求8所述的方法,其特征在于,所述多個(gè)寄存器是順序地編程的。
10. —種集成電路(IC)組件,包括 多個(gè)配置寄存器;計(jì)數(shù)器,用于提供可通過自動(dòng)遞增或遞減所述計(jì)數(shù)器來改變的第一索引值; 多路復(fù)用器邏輯,具有接收所述第一索引值的第一輸入、接收第二索引值的第二輸入、以及被耦合以對(duì)所述多個(gè)寄存器進(jìn)行索引的輸出,所述多路復(fù)用器邏輯接收指示所述IC組件的操作模式的控制信號(hào),所述模式是其中寄存器是通過自動(dòng)遞增或遞減所述計(jì)數(shù)器來索引的模式;以及檢測(cè)邏輯,具有接收第一硬件控制信號(hào)的輸入,所述第一硬件控制信號(hào)指示已從所述IC組件接收到訪問配置寄存器的請(qǐng)求;以及對(duì)所述計(jì)數(shù)器提供遞增或遞減信號(hào)的輸出。
11. 如權(quán)利要求10所述的IC組件,其特征在于,所述第一硬件控制信號(hào)指 示已接收到寫所述IC組件的配置數(shù)據(jù)寄存器的請(qǐng)求,且其中,所述檢測(cè)邏輯還具 有接收第二硬件控制信號(hào)的另外的輸入,所述第二硬件控制信號(hào)指示已接收到讀所 述配置數(shù)據(jù)寄存器的請(qǐng)求,所述遞增或遞減信號(hào)是響應(yīng)于聲明所述第一和第二硬件 控制信號(hào)的任一個(gè)來聲明的。
12. 如權(quán)利要求10所述的IC組件,其特征在于,所述計(jì)數(shù)器具有用第一索 引值來加載其自身的另外的輸入,所述第一索引值是從接收自所述IC組件外部的、 寫入所述IC組件的配置地址寄存器的請(qǐng)求中獲得的。
13. —種計(jì)算機(jī)系統(tǒng),包括 第一處理器和主存儲(chǔ)器組合; 圖形子系統(tǒng);以及I/O集線器,所述I/O集線器經(jīng)由第一點(diǎn)對(duì)點(diǎn)鏈路在通信上耦合到所述第一組 合,并經(jīng)由第二點(diǎn)對(duì)點(diǎn)鏈路在通信上耦合到所述圖形子系統(tǒng),所述i/o集線器擔(dān)當(dāng)所述第一組合和所述圖形子系統(tǒng)組件之間的橋,所述I/O集線器具有多個(gè)配置寄存器,其中某一些的內(nèi)容指示在所述橋的一端 上接收到的事務(wù)請(qǐng)求如何被傳送到所述橋的另一端,并且其中,所述I/0集線器還包括提供第一索引值的計(jì)數(shù)器;多路復(fù)用器邏輯,所述多路 復(fù)用器邏輯具有接收所述第一索引值的第一輸入、接收第二索引值的第二輸入、被 耦合以對(duì)所述多個(gè)寄存器進(jìn)行索引的輸出,所述多路復(fù)用器邏輯接收指示所述1/0 集線器的操作模式的控制信號(hào),所述模式是其中通過遞增或遞減所述計(jì)數(shù)器來索引 寄存器的模式;以及檢測(cè)邏輯,所述檢測(cè)邏輯具有接收第一硬件控制信號(hào)的輸入以 及向所述計(jì)數(shù)器提供遞增或遞減信號(hào)的輸出,所述第一硬件控制信號(hào)指示已從1/0 集線器的外部接收到訪問配置寄存器的請(qǐng)求。
14. 如權(quán)利要求13所述的系統(tǒng),其特征在于,還包括第二處理器和主存儲(chǔ)器 的組合,所述組合經(jīng)由第三點(diǎn)對(duì)點(diǎn)鏈路通信上耦合到所述I/0集線器,并經(jīng)由第四 點(diǎn)對(duì)點(diǎn)鏈路通信上耦合到所述第一組合,且其中,所述i/o集線器擔(dān)當(dāng)所述第二組 合和所述圖形子系統(tǒng)之間的另外的橋。
15. 如權(quán)利要求14所述的系統(tǒng),其特征在于,還包括經(jīng)由第五點(diǎn)對(duì)點(diǎn)鏈路通 信上耦合到所述I/O集線器的網(wǎng)絡(luò)接口控制器。
16. 如權(quán)利要求13所述的系統(tǒng),其特征在于,所述I/O集線器還包括配置地 址寄存器,它包含端口號(hào)、功能號(hào)以及寄存器號(hào),它們共同指向所述寄存器中選中 的一個(gè)寄存器;以及配置數(shù)據(jù)寄存器,它反映所述寄存器中選中的一個(gè)寄存器的內(nèi)容的部分。
17. —種用于對(duì)軟件可訪問寄存器編程的方法,包括a) 檢測(cè)計(jì)算機(jī)系統(tǒng)中以訪問指向所述系統(tǒng)的多個(gè)軟件可訪問寄存器之一的索 引變量為目標(biāo)的第一總線事件、以及以訪問所述索引變量所指向的寄存器的內(nèi)容為目標(biāo)的第二總線事件;以及然后b) 改為用于對(duì)所述軟件可訪問寄存器中的某一些編程的塊模式;以及然后c) 檢測(cè)所述系統(tǒng)中以更新所述索引變量所指向的寄存器之一為目標(biāo)的第三總 線事件;以及然后d) 響應(yīng)于c),且在不等待以訪問所述索引變量為目標(biāo)的另一總線事件的情況 下,將所述索引變量改為指向所述多個(gè)寄存器的另一個(gè)。
18. 如權(quán)利要求17所述的方法,其特征在于,所述第一總線事件是將給定索 引值寫入所述系統(tǒng)的第一寄存器,所述給定索引值指向所述多個(gè)軟件可訪問寄存器 的給定的一個(gè),以及其中,所述第二總線事件是將給定內(nèi)容值寫入所述系統(tǒng)的第二寄存器, 所述系統(tǒng)然后將所述給定內(nèi)容值寫入所述給定軟件可訪問寄存器。
19. 如權(quán)利要求18所述的方法,其特征在于,分別被寫入所述第一和第二寄 存器的所述給定索弓I和內(nèi)容值被編碼。
20. 如權(quán)利要求17所述的方法,其特征在于,還包括,在d)之后-e) 檢測(cè)更新所述多個(gè)寄存器的另一個(gè)的第四總線事件;以及然后f) 響應(yīng)于e),且在接收更新所述索引變量的又一總線事件之前,將所述索引 變量改為指向所述多個(gè)寄存器的又一個(gè)。
21. 如權(quán)利要求18所述的方法,其特征在于,所述第一和第二寄存器被映射 到所述系統(tǒng)的主機(jī)CPU I/O地址空間。
22. —種制品,包括-具有數(shù)據(jù)的機(jī)器可讀介質(zhì),當(dāng)所述數(shù)據(jù)由機(jī)器訪問時(shí),啟動(dòng)a)其中要依照以 下b) -d)來對(duì)多個(gè)第一配置寄存器編程的塊操作模式,以及然后b)訪問第一控制 寄存器的總線事務(wù),以及然后c)訪問第二控制寄存器的另一總線事務(wù),以及然后 d)各自訪問所述第二控制寄存器,而無需訪問所述第一控制寄存器的任何另外的 總線事務(wù)的多個(gè)另外的總線事務(wù)。
23. 如權(quán)利要求22所述的制品,其特征在于,所述介質(zhì)還具有數(shù)據(jù),當(dāng)所述 數(shù)據(jù)由機(jī)器訪問時(shí),使得從所述塊模式返回到正常模式,在所述正常模式中,通過 啟動(dòng)訪問所述第一控制寄存器的總線事務(wù)以及然后訪問所述第二控制寄存器的另 一總線事務(wù)來對(duì)第二配置寄存器編程。
24. 如權(quán)利要求23所述的制品,其特征在于,所述數(shù)據(jù)將所述第一和第二控 制寄存器作為映射到主機(jī)/CPU I/O地址空間來對(duì)待。
全文摘要
本發(fā)明的實(shí)施例針對(duì)用于訪問配置寄存器的方法。接收關(guān)于已作出訪問第一寄存器的嘗試的指示。該第一寄存器反映指向配置寄存器的索引變量。接著,接收已作出訪問第二寄存器的嘗試的指示。該第二寄存器反映索引變量所指向的配置寄存器的內(nèi)容的部分。接著,在不等待訪問第一寄存器的另一嘗試的情況下,將索引變量改為指向另一配置寄存器。也描述和要求保護(hù)其它實(shí)施例。
文檔編號(hào)G06F9/00GK101189577SQ200480027132
公開日2008年5月28日 申請(qǐng)日期2004年9月23日 優(yōu)先權(quán)日2003年9月25日
發(fā)明者R·達(dá)夫塔瑞, T·考齊 申請(qǐng)人:英特爾公司