專利名稱:避免存儲器接入延時的系統(tǒng)和方法
避免存儲器接入延時的系統(tǒng)和方法技術領域
概括地說,本發(fā)明涉及高速緩存存儲器領域,具體地說,本發(fā)明涉及保持一個系統(tǒng) 中多個高速緩存存儲器之間的相干性。
背景技術:
相應于計算機系統(tǒng)中處理器要求接入其自身高速緩存存儲器的時間的增長,該處 理器接入系統(tǒng)存儲器的時間已隨之增長。因此,需要一種降低系統(tǒng)性能的這一差異影響的 方法。發(fā)明內容
在一個方面,本發(fā)明提供了一種用于與一個系統(tǒng)總線上的其他代理進行通信的微 處理器。該微處理器包括高速緩存存儲器和總線接口單元,該總線接口單元與高速緩存存 儲器相耦合,并與系統(tǒng)總線相耦合。總線接口單元用于從與系統(tǒng)總線相耦合的另一個代理 接收交易(transaction),以便從存儲器地址讀取數據??偩€接口單元也用于判斷高速緩 存存儲器是否以獨占狀態(tài)將數據保持在存儲器地址??偩€接口單元還用于,當高速緩存存 儲器以獨占狀態(tài)將數據保持在存儲器地址時,在系統(tǒng)總線上聲明選擇修改(hit-modified) 的信號,并在系統(tǒng)總線上將數據提供給其他的代理。
在另一方面,本發(fā)明提供了一種系統(tǒng)。該系統(tǒng)包括系統(tǒng)總線,以及耦合到該系統(tǒng) 總線的多個代理。多個代理中的至少一個是微處理器。該微處理器包括高速緩存存儲器和 總線接口單元,總線接口單元耦合到高速緩存存儲器,并耦合到系統(tǒng)總線。總線接口單元用 于從耦合到系統(tǒng)總線的其他多個代理中的一個接收交易,以便從存儲器地址讀取數據???線接口單元還用于判斷高速緩存存儲器是否以獨占狀態(tài)將數據保持在存儲器地址。總線接 口單元還用于,當高速緩存存儲器以獨占狀態(tài)將數據保持在存儲器地址時,在系統(tǒng)總線上 聲明選擇修改的信號,并且,將數據在系統(tǒng)總線上提供給其他的代理。
在另一方面,本發(fā)明提供了一種避免系統(tǒng)中接入系統(tǒng)存儲器的延時的方法,其中, 該系統(tǒng)包括微處理器,微處理器具有高速緩存存儲器,并且該微處理器用于與系統(tǒng)總線上 的其他代理進行通信。該方法包括微處理器在系統(tǒng)總線上從其他代理中的一個接收交易, 以便從存儲器地址讀取數據。該方法還包括微處理器判斷高速緩存存儲器是否以獨占狀 態(tài)將數據保持在存儲器地址。該方法還包括當高速緩存存儲器以獨占狀態(tài)將數據保持在 存儲器地址時,微處理器在系統(tǒng)總線上聲明選擇修改的信號,并且在系統(tǒng)總線上將數據提 供給其他的代理。
從上文的描述中可以看出,使用本發(fā)明的方法和系統(tǒng),當高速緩存存儲器以獨占 狀態(tài)將數據保持在存儲器地址時,通過在系統(tǒng)總線上聲明選擇修改的信號,一個代理可以 直接從總線讀取由高速緩存提供的高速緩存行,從而,避免了由其他代理接入系統(tǒng)存儲器 造成的延時。
圖1是示出了根據本發(fā)明具有系統(tǒng)總線以及與該系統(tǒng)總線相耦合的多個總線中 控器或者總線代理的計算系統(tǒng)的方框圖。
圖2是示出了圖1中的系統(tǒng)的常規(guī)操作模式的流程圖。
圖3和圖4是示出了本發(fā)明所述圖1中系統(tǒng)的操作模式的流程圖,即根據本發(fā)明 一個實施例降低獲得與常規(guī)操作模式有關的獨有數據或在另一個實施例中為共享數據所 需要的時間量。
具體實施方式
圖1是示出了根據本發(fā)明的計算系統(tǒng)100的方框圖,計算系統(tǒng)100具有系統(tǒng)總線 108,以及與系統(tǒng)總線100相耦合的多個總線中控器102A-D或者總線代理102A-D??偩€代 理102包括一個或多個處理器102A-C以及芯片組102D,在圖1所示的例子中有三個處理 器。每一個總線代理102都具有總線接口單元106,用做處理器102A-C到總線108的接口。 具體地說,總線接口單元106在總線108上生成交易,并在總線108上對交易做出響應。處 理器102A-C共享經由存儲器總線與芯片組102D相耦合的系統(tǒng)存儲器112??偩€控制的外 圍設備114也通過外圍總線耦合到芯片組。外圍設備114可以直接接入系統(tǒng)存儲器112,并 且,芯片組102D在系統(tǒng)總線108上反映這些接入。
每個處理器102都具有高速緩存存儲器104,用于對來自系統(tǒng)存儲器112的數據進 行高速緩存。系統(tǒng)100的代理102使用偵聽協(xié)議(snooping propocol)來保持高速緩存相 干性??偩€108包括對在總線108上發(fā)起交易的總線代理102進行標識的信號??偩€108 還包括HIT信號,如果處理器102A-C以共享或者獨占狀態(tài)將指定的高速緩存行保存在其高 速緩存104中,則處理器102A-C為了響應總線108上的讀取或者讀取無效的交易將會聲明 該HIT信號??偩€108還包括HITM信號,如果處理器102A-C以修改狀態(tài)將指定的高速緩 存行保存在其高速緩存104,則處理器102A-C為了響應總線108上的讀取或者讀取無效的 交易將會聲明該HITM信號。
現在參照圖2,其中示出了圖1中系統(tǒng)100的常規(guī)操作模式。流程開始于步驟202。
在步驟202,一個總線代理102(在圖2的例子中為代理A)在總線108上生成讀取 或者讀取無效的交易。另一個處理器102A-C偵聽該交易。流程推進到步驟204。
在步驟204,高速緩存104中偵聽該交易的高速緩存(在圖2的例子中為高速緩存 B)確定其具有獨占狀態(tài)或者共享狀態(tài)的被監(jiān)聽高速緩存行。過程推進到步驟206。
在步驟206,高速緩存B在總線108上聲明該HIT信號,實際上高速緩存B包括高 速緩存B的處理器102總線接口單元106,以便指示出其具有由交易所指示的受偵聽高速緩 存行。此外,如果交易是讀取無效交易,則高速緩存B使該高速緩存行無效。流程推進到步 驟 208。
在步驟208,代理A接入系統(tǒng)存儲器112,以便讀取由交易指定的數據,流程在方框 208結束。
正如可以從上文的描述中理解到的那樣,常規(guī)模式要求總線代理A接入到系統(tǒng)存 儲器112,以便讀取數據,這樣對于系統(tǒng)的運行速度是不利的,因為接入系統(tǒng)存儲器112要 求相對長的時間來完成,并且可能消耗系統(tǒng)存儲器112本應該有益地由系統(tǒng)100中的其他代理102使用的帶寬。
現在參照圖3,其中示出了根據本發(fā)明所述的圖1中系統(tǒng)100的操作模式的流程 圖,本發(fā)明可以降低獲得與常規(guī)操作模式有關的獨有數據或在另一個實施例中為共享數據 需要的時間量。流程開始于步驟302,流程推進到步驟304。
在步驟304,確定高速緩存B具有獨占狀態(tài)的受偵聽高速緩存行。在一個實施例 中,如果系統(tǒng)100的配置使得在步驟306處不可能有多個處理器102聲明HITM信號,例如 僅有兩個處理器102,并且代理A不會在其循環(huán)中聲明HITM,或者僅在兩個處理器102中的 一個上啟動了存儲器接入延時回避特征,則高速緩存B還可確定其具有共享狀態(tài)的受偵聽 高速緩存行。流程推進到步驟306。
在步驟306,高速緩存B在總線108上聲明HITM信號,以便指示出高速緩存B已經 通過修改狀態(tài)的交易偵聽到高速緩存行。本質上說,高速緩存B “謊稱”高速緩存行處于修 改狀態(tài)。此外,高速緩存B在總線108上將受偵聽的高速緩存行提供給代理A。在一個實施 例中,芯片組102D中的存儲控制器檢測到由高速緩存B寫入了受偵聽的高速緩存行,并作 出響應地將高速緩存行寫入系統(tǒng)存儲器112。最后,如果交易是讀取無效交易,則高速緩存 B使高速緩存行無效。流程推進到步驟308。
在步驟308,代理A直接從總線108讀取由高速緩存B提供的高速緩存行,從而,避 免了為讀取由交易指定的數據而接入系統(tǒng)存儲器112的延時。流程在步驟308結束。
正如可從圖3以及下面的圖4的描述中理解到的那樣,新的操作模式可以有效地 降低了代理A接入系統(tǒng)存儲器的需要,因為其直接從高速緩存B接收高速緩存行。與從系 統(tǒng)存儲器112獲得高速緩存行相比,由于新操作模式可以讓高速緩存行能夠更快地請求代 理,所以,這樣是更有益的。
現在參照圖4,圖4示出了根據本發(fā)明所述的圖1中系統(tǒng)100的操作模式的流程 圖,本發(fā)明可以減少獲得與常規(guī)操作模式有關的獨有數據或者在一個實施例中為共享數據 的時間量,所述共享數據的實施例為在不可能有多個處理器102聲明HITM信號的配置中, 例如,僅存在兩個處理器102,并且代理A不會在其循環(huán)中聲明HITM,或者僅對兩個處理器 102中的一個啟動了存儲器接入延時回避特征。流程開始于步驟402,其與圖2的方框202 類似。流程推進到步驟404,其與圖3的方框304相似。流程推進到判斷模塊405。
在判斷模塊405,高速緩存B判斷其是否對對稱代理進行偵聽,即對另一個處理器 102,而不是對優(yōu)先代理例如芯片組102D進行偵聽,芯片組102D具有與其相耦合的系統(tǒng)存 儲器112或者總線控制的外圍設備114。高速緩存B能夠從對生成代理進行標識的總線108 信號中確定生成交易的代理102。如果高速緩存B正在偵聽另一個處理器102的交易,則流 程推進到步驟406 ;否則,流程推進到步驟412。
圖4的步驟406和408與圖3的步驟306和308相類似。流程在步驟408結束。
在步驟412,高速緩存B在總線108上聲明HIT信號,以便指示出其具有由交易指 示的受偵聽高速緩存行。此外,如果交易是讀取無效交易,則高速緩存B使高速緩存行無 效。流程推進到步驟414。
圖4的步驟414與圖2的步驟208相類似。流程在步驟414結束。
圖4的另一個實施例的可能的優(yōu)點是,盡管其造成芯片組102D接入到存儲器,但 是,其可以更高效地使用總線108,因為使用HIT響應讀取交易比使用HITM響應讀取交易完成得更快,其原因在于,在一些配置中,芯片組102D可以從存儲器112讀取數據,并且將其 寫入總線控制的外圍設備114,而不需要在總線108上進行傳輸。
盡管文中描述了本發(fā)明的一些實施例,但是,應該理解,對它們的描寫是為了舉例 的目的,而不是作為限制。有關計算機領域的技術人員可以理解,可以對它們的形式和細 節(jié)做出多種改變,而不脫離本發(fā)明的范圍。例如,軟件可以啟動本文所述的裝置和方法的 函數、構造、建模、仿真、描述和/或測試。這可以通過使用常規(guī)程序語言(例如,C、C++)、 硬件描述語言(HDL)或者其他可用的程序,其中,硬件描述語言(HDL)包括=Verilog HDL、 VHDL等等。這類軟件可以是任何已知的計算機可用介質,諸如磁帶、半導體、磁盤或光盤 (例如,⑶-R0M、DVD-R0M等等)、網絡、電線、無線或者其他通信介質。本文描述的裝置和方 法的實施例可以包括在半導體知識產權核中,例如,微處理器核(例如,在HDL中實現)并 在集成電路的產品中發(fā)送到硬件。此外,本文描述的裝置和方法可以實現為硬件和軟件的 結合。因此,本發(fā)明不應受到本文描述的任何示例性實施例的限制,而是應該僅根據權利要 求和其等同物來定義。尤其是,本發(fā)明可以實現在可用于通用計算機中的微處理器設備中。 最后,本領域技術人員應該理解,他們可以容易地使用所述的概念和特定實施例作為基礎, 對實現與本發(fā)明相同目的的其他結構進行設計或者修改,而不脫離由權利要求書定義的本 發(fā)明的范圍。
權利要求
1.一種用于與系統(tǒng)總線上的其他代理進行通信的微處理器,所述微處理器是耦合到所 述系統(tǒng)總線上的一個代理,所述微處理器包括高速緩存存儲器;以及總線接口單元,所述總線接口單元與所述高速緩存存儲器相耦合,并與所述系統(tǒng)總線 相耦合,所述總線接口單元用于從與所述系統(tǒng)總線相耦合的另一個代理接收交易,以便從存儲器地址讀取數據; 判斷所述高速緩存存儲器是否以獨占狀態(tài)將數據保持在存儲器地址;以及 當所述高速緩存存儲器以獨占狀態(tài)將所述數據保持在存儲器地址時,在系統(tǒng)總線上聲 明選擇修改的信號,將所述系統(tǒng)總線上的數據提供給其他的代理。
2.根據權利要求1所述的微處理器,其中,當以共享狀態(tài)保持數據時,所述微處理器是 耦合到所述系統(tǒng)總線,在所述交易期間能夠聲明選擇修改的信號的唯一代理,其中所述總 線接口單元還用于判斷所述高速緩存存儲器是否以共享狀態(tài)將數據保持在所述存儲器地址;以及 當所述高速緩存存儲器以共享狀態(tài)將數據保持在所述存儲器地址時,在所述系統(tǒng)總線 上聲明所述選擇修改的信號,并將所述數據在所述系統(tǒng)總線上提供給所述其他的代理。
3.根據權利要求1所述的微處理器,其中,所述總線接口單元還用于從與所述系統(tǒng)總線相耦合的另一個代理接收交易,以便從第二存儲器地址讀取第二數 據,以及使包括所述第二數據的高速緩存行無效;判斷所述高速緩存存儲器是否以獨占狀態(tài)將所述第二數據保持在所述第二存儲器地 址;以及當所述高速緩存存儲器以獨占狀態(tài)將所述第二數據保持在所述第二存儲器地址時,在 所述系統(tǒng)總線上聲明所述選擇修改的信號,并將所述第二數據在所述系統(tǒng)總線上提供給所 述其他的代理以及使所述高速緩存行無效。
4.根據權利要求1所述的微處理器,其中,所述總線接口單元還用于 判斷所述其他的代理是不是優(yōu)先代理;以及當所述高速緩存存儲器以獨占狀態(tài)將所述數據保持在所述存儲器地址并且所述其他 的代理不是優(yōu)先代理時,在所述系統(tǒng)總線上聲明所述選擇修改的信號,并將所述數據在所 述系統(tǒng)總線上提供給所述其他的代理;以及當所述高速緩存存儲器以獨占狀態(tài)將所述數據保持在所述存儲器地址并且所述其他 的代理是優(yōu)先代理時,在所述系統(tǒng)總線上聲明命中信號,并且抑制將所述數據在所述系統(tǒng) 總線上提供給所述其他的代理。
5.根據權利要求4所述的微處理器,其中,所述優(yōu)先代理包括芯片組,所述芯片組更包 括以下設備或其結合與所述優(yōu)先代理相耦合的系統(tǒng)存儲器;以及 與所述優(yōu)先代理相耦合的總線控制的外圍設備。
6.一種系統(tǒng),包括 系統(tǒng)總線;以及多個代理,所述多個代理耦合到所述系統(tǒng)總線,其中,所述多個代理中的至少一個是微 處理器,所述微處理器包括高速緩存存儲器;以及總線接口單元,所述總線接口單元耦合到所述高速緩存存儲器,并耦合到所述系統(tǒng)總 線,所述總線接口單元用于從耦合到所述系統(tǒng)總線的其余多個代理中的一個接收交易,以便從存儲器地址讀取數據;判斷所述高速緩存存儲器是否以獨占狀態(tài)將所述數據保持在所述存儲器地址;以及 當所述高速緩存存儲器以獨占狀態(tài)將所述數據保持在所述存儲器地址時,在系統(tǒng)總線 上聲明選擇修改的信號,將數據在所述系統(tǒng)總線上提供給其他的代理。
7.根據權利要求6所述的系統(tǒng),其中,當以共享狀態(tài)保持數據時,所述微處理器耦合到 所述系統(tǒng)總線,在所述交易期間能夠聲明選擇修改的信號的唯一代理,其中所述總線接口 單元還用于判斷所述高速緩存存儲器是否以共享狀態(tài)將數據保持在所述存儲器地址;以及 當所述高速緩存存儲器以共享狀態(tài)將數據保持在所述存儲器地址時,在所述系統(tǒng)總線 上聲明所述選擇修改的信號,并將所述數據在所述系統(tǒng)總線上提供給所述其他的代理。
8.根據權利要求6所述的系統(tǒng),其中,所述總線接口單元還用于從與所述系統(tǒng)總線相耦合的另一個代理接收交易,以便從第二存儲器地址讀取第二數 據,以及使包括所述第二數據的高速緩存行無效;判斷所述高速緩存存儲器是否以獨占狀態(tài)將所述第二數據保持在所述第二存儲器地 址;以及當所述高速緩存存儲器以獨占狀態(tài)將所述第二數據保持在所述第二存儲器地址時,在 所述系統(tǒng)總線上聲明所述選擇修改的信號,并將所述第二數據在所述系統(tǒng)總線上提供給所 述其他的代理以及使所述高速緩存行無效。
9.根據權利要求6所述的系統(tǒng),其中,所述總線接口單元還用于 判斷所述其他的代理是不是優(yōu)先代理;以及當所述高速緩存存儲器以獨占狀態(tài)將所述數據保持在所述存儲器地址并且所述其他 的代理不是優(yōu)先代理時,在所述系統(tǒng)總線上聲明所述選擇修改的信號,并將所述數據在所 述系統(tǒng)總線上提供給所述其他的代理;以及當所述高速緩存存儲器以獨占狀態(tài)將所述數據保持在所述存儲器地址并且所述其他 的代理是優(yōu)先代理時,在所述系統(tǒng)總線上聲明命中信號,并且抑制將所述數據在所述系統(tǒng) 總線上提供給所述其他的代理。
10.根據權利要求9所述的系統(tǒng),其中,所述優(yōu)先代理包括芯片組,所述芯片組更包括 以下設備或其結合與所述優(yōu)先代理相耦合的系統(tǒng)存儲器;以及 與所述優(yōu)先代理相耦合的總線控制的外圍設備。
11.根據權利要求6所述的系統(tǒng),其中,所述多個代理包括 多個配置為所述微處理器的微處理器。
12.—種避免系統(tǒng)中接入系統(tǒng)存儲器的延時的方法,其中,所述系統(tǒng)包括微處理器,所 述微處理器具有高速緩存存儲器,并且所述微處理器用于在系統(tǒng)總線上與其他代理進行通 信,所述方法包括接收,由所述微處理器在所述系統(tǒng)總線上從其他代理中的一個接收交易,以便從存儲 器地址讀取數據;判斷,由所述微處理器判斷所述高速緩存存儲器是否以獨占狀態(tài)將所述數據保持在所 述存儲器地址;以及聲明,當所述高速緩存存儲器以獨占狀態(tài)將所述數據保持在所述存儲器地址時,由所 述微處理器在系統(tǒng)總線上聲明選擇修改的信號,在所述系統(tǒng)總線上將數據提供給其他的代理。
13.根據權利要求12所述的方法,還包括在所述微處理器知道,以共享狀態(tài)保持數據時,所述微處理器耦合到所述系統(tǒng)總線,在 所述交易期間能夠聲明選擇修改的信號的唯一代理時,判斷所述高速緩存存儲器是否以共 享狀態(tài)將數據保持在所述存儲器地址;以及當所述高速緩存存儲器以共享狀態(tài)將數據保持在所述存儲器地址時,在所述系統(tǒng)總線 上聲明所述選擇修改的信號,并將所述數據在所述系統(tǒng)總線上提供給所述其他的代理。
14.根據權利要求12所述的方法,還包括從與所述系統(tǒng)總線相耦合的另一個代理接收交易,以便從第二存儲器地址讀取第二數 據,以及使包括所述第二數據的高速緩存行無效;判斷所述高速緩存存儲器是否以獨占狀態(tài)將所述第二數據保持在所述第二存儲器地 址;以及當所述高速緩存存儲器以獨占狀態(tài)將所述第二數據保持在所述第二存儲器地址時,在 所述系統(tǒng)總線上聲明所述選擇修改的信號,并將所述第二數據在所述系統(tǒng)總線上提供給其 他的代理以及使所述高速緩存行無效。
15.根據權利要求12所述的方法,還包括判斷所述其他的代理是不是優(yōu)先代理;以及當所述高速緩存存儲器以獨占狀態(tài)將所述數據保持在所述存儲器地址并且所述其他 的代理不是優(yōu)先代理時,在所述系統(tǒng)總線上聲明所述選擇修改的信號,并將所述數據在所 述系統(tǒng)總線上提供給所述其他的代理;以及當所述高速緩存存儲器以獨占狀態(tài)將所述數據保持在所述存儲器地址并且所述其他 的代理是優(yōu)先代理時,在所述系統(tǒng)總線上聲明命中信號,并且抑制將所述數據在所述系統(tǒng) 總線上提供給所述其他的代理。
16.根據權利要求15所述的方法,其中,所述優(yōu)先代理包括芯片組,所述芯片組更包括 以下設備或其結合與所述優(yōu)先代理相耦合的系統(tǒng)存儲器;以及與所述優(yōu)先代理相耦合的總線控制的外圍設備。
全文摘要
一種用于與系統(tǒng)總線上的其他代理進行通信的微處理器,其包括高速緩存存儲器以及耦合到高速緩存存儲器并耦合到系統(tǒng)總線的總線接口單元??偩€接口單元從與系統(tǒng)總線相耦合的另一個代理接收交易,以便從存儲器地址讀取數據,判斷高速緩存存儲器是否以獨占狀態(tài)(或者在特定配置中以共享狀態(tài))將數據保持在存儲器地址,以及,當高速緩存存儲器以獨占狀態(tài)將數據保持在存儲器地址時,在系統(tǒng)總線上聲明選擇修改的信號,并將數據在系統(tǒng)總線上提供給其他代理。從而,避免了由其他代理接入系統(tǒng)存儲器的延時。
文檔編號G06F13/16GK102043739SQ201010545658
公開日2011年5月4日 申請日期2010年11月9日 優(yōu)先權日2009年11月9日
發(fā)明者柯林·艾迪, 羅德尼·E·虎克, 艾伯特·J·婁坡, 達魯斯·D·嘉斯金斯 申請人:威盛電子股份有限公司