專利名稱:用于提供事務處理存儲器的高速緩沖存儲器系統和方法
技術領域:
本發明涉及提供事務處理存儲器的高速緩沖存儲器系統和提供事 務處理存儲器方法。
背景技術:
很久以來,在一個計算機系統內使用多個并行執行操作的處理器 已經被認為是增加系統的計算性能和吞吐量的方法。然而,為了在這 種系統中生成正確和可重復的結果,在不同的處理器之間的通信必須 以可控制的方式出現。為了方便這種通信,所述處理器經常訪問位于 一個共享存儲空間的相同的數據存儲器以便在它們之間轉移消息或其 它數據,以及訪問和可能修改在處理器之間被共享的其它數據。在一 個例子中,所述處理器中的每一個可以要求"原子的"讀-修改-寫 訪問這些存儲器位置中的一個或多個以避免破壞或損害在這些位置內 的數據。換句話說,在不允許通過另一個處理器訪問這些相同的位置 的情況下,所述處理器中的每一個可能必須在特殊的數據上執行多個 操作。
在一些計算機系統中,諸如二進制信號燈、計算鎖和旋轉鎖的被 稱為"鎖"的硬件密集的構造已經被用于提供對于處理器之間共享的 數據的可控的訪問。通常,成功訪問一個鎖或類似的構造的處理器已 經可以不間斷訪問被所述鎖保護的一個或多個存儲器位置直到所述處 理器決定解除該鎖。盡管鎖有效控制了訪問處理器之間共享的數據, 但是鎖主要實現一種阻塞方案,意味著要求訪問相同數據的其它處理 器被臨時停止,同時另一個處理器占用該鎖,因此,負面地影響系統 性能。阻塞數量還受被一個或多個鎖保護的被共享數據的間隔尺寸程 度的影響。例如,在高間隔尺寸中,其中每個鎖保護相對小量的數據, 與鎖有關的開銷數量被增加,但是任何單一的鎖爭用的數量被減少。 相反,低間隔尺寸,其中每個鎖保護更多數據,導致較少的鎖被實現, 但是還導致每個鎖更多的爭用。如果具有鎖的處理器失效,則這種阻 塞或爭用被加劇。諸如死鎖、活鎖、和優先反轉的與鎖有關的其它眾 所周知的弊病也是有問題的。而且,鎖的使用經常明顯增加不必要的
開銷,這是因為在任一 時間兩個或多個處理器訪問相同的被共享的存 儲器位置的幾率在大多數計算機系統中相對是低的。
為解決這些問題,事務處理存儲器的概念被發展。替代使用硬件 阻塞方案,事務處理存儲器利用一種更有利的、面向軟件的方法。通 常, 一個處理器在一個或多個存儲器位置上不考慮其它處理器的行動 試驗性地執行一系列操作,被稱為"事務處理,,,這樣,在該點沒有 阻塞出現。同時,所述處理器在系統日志中記錄所述操作。在所述必 要的操作之后,所述處理器隨后"確認,,,或驗證其它處理器未訪問 所述相同的被共享的數據。如果不是這樣,則"提交"對所述數據進 行的全部改變,或者使其成為永久的。否則, 一種沖突可能已經出現, 因此,要求所述處理器反轉全部有關的存儲器改變并且異常終止所述 事務處理。在這種情況中,所述處理器通常能夠立即自由地再嘗試所 述事務處理。
盡管基于軟件的事務處理存儲器被相信是對于現在的基于硬件的 阻塞方案的積極和有效的替代,但是,通常招致大量的軟件開銷,因 此,降低了事務處理存儲器提供的一些好處。
發明內容
根據本發明的第一方面,提供了一種用于提供事務處理存儲器的
方法,包括在一個包括第一高速緩沖存儲器線的高速緩沖存儲器上 實施一種高速緩沖存儲器相干性協議,其中,每個第一高速緩沖存儲 器線在修改的狀態、自身擁有狀態、專用狀態、共享狀態、和無效狀 態之一中;訪問所述第一高速緩沖存儲器線中的至少一個的第一事務 處理一啟動,就確保每個第一高速緩沖存儲器線處于共享狀態和無效 狀態之一中;在所述第一事務處理期間,響應于對于在修改的狀態、 自身擁有狀態、和專用狀態中的任一第一高速緩沖存儲器線的第一外 部請求在沒有將所述第一高速緩沖存儲器線寫入主存儲器的情況 下,使在修改的狀態或自身擁有狀態中的每個第一高速緩沖存儲器線 無效;將在專用狀態中的每個第一高速緩沖存儲器線降級到共享狀態 和無效狀態之一中;以及異常終止所述第一事務處理。
根據本發明的第二方面,提供了一種用于提供事務處理存儲器的 高速緩沖存儲器系統,包括 一個包括第一高速緩沖存儲器線的高速
緩沖存儲器;以及一個高速緩沖存儲器控制器,被配置來在所述高 速緩沖存儲器上實施高速緩沖存儲器相干性協議,其中,每一個第一 高速緩沖存儲器線在修改的狀態、自身擁有狀態、專用狀態、共享狀 態、和無效狀態之一中;訪問所述第一高速緩沖存儲器線中的至少一 個的第一事務處理一啟動,就確保每個第一高速緩沖存儲器線在共享 狀態和無效狀態之一中;以及在所述第一事務處理期間,響應于對于 在修改的狀態、自身擁有狀態或專用狀態中的任一笫一高速緩沖存儲 器線的第一外部請求在沒有將所述第一高速緩沖存儲器線寫入一個 主存儲器的情況下,使在修改的狀態和自身擁有狀態中的每個第一高 速緩沖存儲器線無效;將在專用狀態中的每個第一高速緩沖存儲器線 降級到共享狀態和無效狀態之一中;以及異常終止所述第一事務處 理。
圖1是一個根據本發明的一個實施方案用于提供事務處理存儲器 的高速緩沖存儲器系統的框圖。
圖2描述在現有技術中典型的高速緩沖存儲器中的高速緩沖存儲 器線的可能的狀態。
圖3是一個根據本發明的一個實施方案提供事務處理存儲器的方 法的流程圖。
圖4是一個根據本發明的另一個實施方案在提供事務處理存儲器 的方法中可使用的數據結構的框圖。
圖5是一個根據本發明的另一個實施方案使用圖4的數據結構提 供事務處理存儲器的方法的流程圖。
具體實施例方式
圖1表示本發明的一個實施方案 一個高速緩沖存儲器系統100 包括一個高速緩沖存儲器104和一個相關的高速緩沖存儲器控制器 102。高速緩沖存儲器104包括多個高速緩沖存儲器線106,它們中的 每一個可以保留駐留在主存儲器(未被顯示)的一部分中的數據的復 制品。典型地,高速緩沖存儲器104是一種比所述主存儲器小和快的 存儲器,允許被耦合到高速緩沖存儲器104的處理器更快并且更有效 地訪問數據。在一個實施方案中,每條高速緩沖存儲器線106占有容
量以便保留所述主存儲器的幾個可尋址的存儲器位置。如將在下面更
詳細被描述的,高速緩沖存儲器控制器102被配置控制高速緩沖存儲 器104以便將高速緩沖存儲器線106中的一個或多個用作一個事務處 理存儲器。
高速緩沖存儲器系統100可以在任何數量的計算機系統結構中被 使用。例如,幾個處理器中的每一個可以包括一個高速緩沖存儲器104 和相關的高速緩沖存儲器控制器102,其中,所述處理器中的每一個通 過它的高速緩沖存儲器104被耦合到一個主存儲器。在另一個實現中, 一種對稱多處理器(SMP)系統可以包括幾個處理器,它們中的每一個 包括一個高速緩沖存儲器104、一個高速緩沖存儲器控制器102和一個 主存儲器。每個主存儲器構成所述SMP系統中的任何一個處理器可訪 問的主存儲器的一部分。其中每個處理器結合一個高速緩沖存儲器的 很多其它的多處理器系統,也可以受益于下面更詳細被描述的高速緩 沖存儲器系統和方法的應用。
高速緩沖存儲器控制器102在所述高速緩沖存儲器104上實施一 種高速緩沖存儲器相干性協議。根據所述高速緩沖存儲器相干性協 議,每個高速緩沖存儲器線106駐留在可以根據對于在相關的高速緩 沖存儲器線106內的數據的訪問隨時間改變的一種特殊的"狀態"中。 在一個實施方案中,所述高速緩沖存儲器相干性協議是一種修改的-自身擁有-專用-共享-無效(MOESI)協議,被命名用于所述高速緩 沖存儲器線106中的每一個可以達到的不同的狀態。
來自現有技術的MOESI高速緩沖存儲器相干性協議的狀態設置 200在圖2中用圖表的形式被顯示。不同的狀態(即,無效狀態202、 共享狀態2 04、專用狀態206、自身擁有狀態2 08、以及^"改的狀態210) 以指示所述高速緩沖存儲器線的內容的分級順序被排列。將高速緩沖 存儲器線106從較低級狀態轉移到較高級狀態被稱為"晉級,,,而將 高速緩沖存儲器線106從較高級狀態轉移到較低級狀態是"降級,,。
最低級狀態是無效狀態202。如果線106不包括來自與它相關的主 存儲器的任何有效的數據,則高速緩沖存儲器線106是無效的。結果, 這個高速緩沖存儲器線106可用于存儲從所述主存儲器被讀入的數 據,通常作為請求讀訪問來自與所述高速緩沖存儲器104耦合的處理 器的數據的結果。
如果線106占有被存儲在所述主存儲器的相關存儲位置中的數據 的有效的(即,最近的)復制品,則高速緩沖存儲器線106駐留在所 述共享狀態204中。在所述共享狀態204中,與其它處理器有關的其 它高速緩沖存儲器104也可以保留相同的數據的最近的復制品。
如果高速緩沖存儲器線106包括只在當前的高速緩沖存儲器104 中并且不在所述系統的任何其它高速緩沖存儲器104中被發現的數 據,并且該數據匹配主存儲器中相應的數據值,則高速緩沖存儲器線 106可以駐留在所述專用狀態206中。
在自身擁有狀態208中,高速緩沖存儲器線106包括來自所述主 存儲器的相關數據的最近的復制品。在所述系統內的其它高速緩沖存 儲器104也可以包括相同的被更新的復制品。然而,和所述共享狀態 204不同,在一種自身擁有的高速緩沖存儲器線106中的數據可能不匹 配在所述主存儲器相應的存儲位置中的數據。換句話說,在所述主存 儲器中被保留的相關的數據值是老的,或"陳舊的"。通常,只有一 個高速緩沖存儲器104在自身擁有狀態208中保留所述數據;所有保 留相同的所述數據的復制品剩余的高速緩沖存儲器104將它們有關的 高速緩沖存儲器線106維持在所述共享狀態204中。
在所述高速緩沖存儲器相干性協議狀態設置200頂上是所述修改 的狀態210。在所述修改的狀態210中的高速緩沖存儲器線106保留 相關的數據的最近的復制品,并且在所述主存儲器中相應的存儲位置 是陳舊的。而且,在所述系統中沒有其它的高速緩沖存儲器104在任 一它們的高速緩沖存儲器線106中保留所述數據的復制品。
通常由與所述高速緩沖存儲器104耦合的處理器發起的在高速緩 沖存儲器線106上的各種讀寫操作經常根據所述高速緩沖存儲器相干 性協議改變所述高速緩沖存儲器線106的特殊狀態。所述協議允許不 同的高速緩沖存儲器104增強所述系統處理器并行訪問所述主存儲器 中的數據,同時防止所述處理器使用用于所述相同的數據的不同的數 值。在不同的高速緩沖存儲器104內的數據值的這種實施部分地通過 上面被描述的高速緩沖存儲器線狀態200發生,其中沒有一個允許在 一個高速緩沖存儲器104中的數據的復制品與被存儲在另一個高速緩 沖存儲器104中的相同的數據不一致。如稍后被描述的,這種性質被 采用以便使用所述高速緩沖存儲器線106中的至少一部分作為事務處
理存儲器。
假定使用一種典型的M0ESI高速緩沖存儲器相干性協議,下面的 討論提供了關于所述高速緩沖存儲器104和相關的控制器102如何操 作,以及每個高速緩沖存儲器線106的狀態在操作期間如何可以被晉 級或降級的幾個細節。這些細節中的一部分從實施方案到實施方案可 以改變。
通常,根據這些特殊的M0ESI狀態200,只要目標數據駐留在所 述高速緩沖存儲器104中,高速緩沖存儲器104就可以滿足來自它相 應的處理器的讀取請求;換句話說,保留數據的特殊高速緩沖存儲器 線106可以處于除了所述無效狀態202的任一狀態中。然而,只有所 述目標數據存在于在修改的狀態210、自身擁有狀態208、或專用狀態 206中的高速緩沖存儲器線106之一中,從所述處理器到它的高速緩沖 存儲器104的寫入才可能出現。而且,具有在自身擁有狀態208中的 高速緩沖存儲器線106的高速緩沖存儲器系統100通常通知其它高速 緩沖存儲器104所述寫入操作,這樣所述數據的復制品可以被更新或 者也被無效。
如果高速緩沖存儲器104不能滿足來自它的處理器的讀取請求, 則高速緩沖存儲器控制器102促使從所述主存儲器讀取所請求的數 據,并且將該數據存儲到高速緩沖存儲器線106中。典型地,如果可 利用,則所述數據被讀入到一個無效的高速緩沖存儲器線106中。否 則,一個有效的高速緩沖存儲器線106首先可以從高速緩沖存儲器104 被"驅逐"或者被消除,以便為新數據提供空間。在這種情況中,被 影響的高速緩沖存儲器線被(至少臨時地)返回到無效狀態202。通常, 在共享狀態204和專用狀態206中的高速緩沖存儲器線106可以在任 何時間被驅逐,而在自身擁有狀態208和修改的狀態210中的高速緩 沖存儲器線106被寫回到保留所述數據的過時的復制品的主存儲器 中。
在一種實現中,這種從所述主存儲器讀入到高速緩沖存儲器104 可以在一種"共享模式"或一種"專用模式"下被執行。在所述共享 模式下,接收所述新數據的高速緩沖存儲器線106經常進入共享狀態 204。如果與高速緩沖存儲器104有關的處理器短期沒有必要改變所述 數據,或者如果所述線的復制品已經被存儲在另一個高速緩沖存儲器
中,則所述共享模式可以被使用。作為替代,如果所述處理器計劃為 被高速緩存的數據寫入一個新值,則所述數據可以在所述專用模式下 從所述主存儲器被讀取,因此,允許接收所述數據的高速緩沖存儲器
線106達到專用狀態206。在專用模式下,通常使與剩余的高速緩沖存 儲器104的每一個有關的高速緩沖存儲器控制器102知道所述專用模 式由所述請求高速緩沖存儲器控制器102發起。
這種一個高速緩沖存儲器控制器102被通知另一個的操作的情況 在通過由其它的高速緩沖存儲器控制器102啟動的"探聽 (snooping),,或監控總線活動性的例子中出現。在其它的情況中, 通過"廣播"消息,高速緩沖存儲器控制器102發起將它的活動性通 知其它的控制器102,或者通過其它的控制器102請求行動。在一些實 施方案中,根據要被執行的特殊操作,探聽請求和廣播消息的混合被 使用,因為一些情況通過一個或另一個被最好地解決。在另一個例子 中,通常每個高速緩沖存儲器控制器102可訪問的被存儲在主存儲器 或另一個存儲器中的高速緩沖存儲器相干性目錄可以保留對于保持高 速緩沖存儲器相干性必要的全部信息。
例如,高速緩沖存儲器控制器102可以探聽讀訪問以便確定是否 另一個高速緩沖存儲器控制器102正試圖從駐留在它的相關的高速緩 沖存儲器104的修改的高速緩沖存儲器線106中的主存儲器讀取數 據。如果是,則高速緩沖存儲器控制器102通常有責任拖延所述特殊 的讀取操作,這樣,高速緩沖存儲器控制器102可以將在修改的高速 緩沖存儲器線106中的數據寫回到所述主存儲器。在這種情況下,高 速緩沖存儲器線106被降級到共享狀態204或無效狀態202。
在另一個例子中,高速緩沖存儲器控制器102可以請求寫入到它 當前保留在共享狀態204中的高速緩沖存儲器線106。這樣做,高速緩 沖存儲器控制器102必須將線106晉級到專用狀態206或自身擁有狀 態208。在晉級到專用狀態206之前,高速緩沖存儲器控制器102可 以發布一個"無效"廣播到其它的高速緩沖存儲器控制器102,這樣, 它們可以將它們相應的高速緩沖存儲器線106降級到無效狀態202。
在另一種情況下,保留在專用狀態210中的一個或多個高速緩沖 存儲器線106的高速緩沖存儲器控制器102可以探聽從其它的控制器 102到所述主存儲器的讀取操作。如果這些讀取操作之一涉及專用高速
緩沖存儲器線106之一,則控制器102通常將所述高速緩沖存儲器線 106降級到共享狀態204。在高速緩沖存儲器104和它的導致在所述高 速緩沖存儲器104和其它高速緩沖存儲器104內的高速緩沖存儲器線 106的狀態改變的控制器102內的操作的其它例子存在。
雖然前面的討論主要集中在MOESI高速緩沖存儲器,但是利用在 圖2中所示的狀態200子集的其它高速緩沖存儲器相干性協議經常被 使用。例如,修改的-共享-無效(MSI)協議、修改的-專用-共享 -無效(MESI )協議、或修改的-自身擁有-共享-無效(M0SI )協 議可以被結合到本發明的其它實施方案中,導致一種用于高速緩沖存 儲器控制器102的更簡單的設計,但是可能付出的代價是與所述MOESI 協議相比較低效率的操作。例如,M0ESI協議的自身擁有狀態208允 許高速緩沖存儲器控制器102延遲反寫任何它對于所述高速緩沖存儲 器線106進行的修改,同時允許其它的高速緩沖存儲器104共享所述 數據。同樣地,在沒有首先使被保留在其它高速緩沖存儲器104中的 數據的其它復制品無效的情況下,MOESI和MESI協議的專用狀態206 允許高速緩沖存儲器控制器102修改一個專用高速緩沖存儲器線 106。
這些高速緩沖存儲器相干性協議的任何之一可以在本發明的不同 的實施方案中被使用,諸如提供事務處理存儲器的方法300,它在圖3 的流程示意圖中被描述。在此,方法300關于圖1的高速緩沖存儲器 系統100被描述,但是其它的高速緩沖存儲器系統配置可以在其它的 實施方案中被使用。在方法300中,高速緩沖存儲器控制器102在包 括高速緩沖存儲器線106的高速緩沖存儲器104上實施一種高速緩沖 存儲器相干性協議,所述高速緩沖存儲器線106中的每一個駐留在圖2 的狀態200 (即,無效狀態202、共享狀態204、專用狀態206、自身 擁有狀態208、或修改的狀態210)之一中(操作302 )。因此,上面 被描述的協議(即,MOESI、 MESI、 MOSI、或MSI )中的任何一個,或 者使用這些狀態的其它可能的協議可以被實施。
當與高速緩沖存儲器104有關的處理器啟動涉及所述高速緩沖存 儲器線106中的至少一個的事務處理時,高速緩沖存儲器控制器102 確保高速緩沖存儲器線106中的每一個在共享狀態204或無效狀態202 中(操作304 )。因此,在一個實施方案中,高速緩沖存儲器控制器 102降級在^f務改的狀態210、自身擁有狀態208、或專用狀態206中的 任何一個高速緩沖存儲器線106。在修改的狀態210或自身擁有狀態 208的情況中,高速緩沖存儲器控制器102可以清除或者反寫在所述高 速緩沖存儲器線106中的數據以便更新主存儲器中相應的位置。
在所述事務處理期間,對于在修改的狀態210、自身擁有狀態208、 或專用狀態206中的任一高速緩沖存儲器線106的外部請求(即,不 是所述事務處理發起的請求)(操作306 )可以出現,因此,需要被影 響的高速緩沖存儲器線106降級。例如,未被直接耦合到高速緩沖存 儲器104的另一個處理器可以試圖從主存儲器讀取被高速緩存在這些 模式之一中的高速緩沖存儲器線106之一中的數據。因此,高速緩沖 存儲器控制器102可以通過探聽請求來檢測所述讀取嘗試。在另一個 例子中,所述外部請求可以是一種由于高速緩沖存儲器104中自由空 間的消耗造成的容量故障,因此,需要驅逐高速緩沖存儲器線106之 一。結果,在沒有寫高速緩沖存儲器線106到所述主存儲器的情況下, 高速緩沖存儲器控制器102使在修改的狀態210或自身擁有狀態208 中的高速緩沖存儲器線106中的每一個無效(即,降級到無效狀態 202 )(操作308 )。而且,高速緩沖存儲器控制器102將在專用狀態 206中的每個笫一高速緩沖存儲器線106降級到共享狀態204或無效 狀態202 (操作310)。最后,所述事務處理被異常終止(操作312)。 如果在沒有異常終止的情況下所述事務處理成功地完成,則高速緩沖 存儲器控制器102根據正常的高速緩沖存儲器相干性協議規則繼續操 作高速緩沖存儲器104。
因此,在方法300的各種可能的實施方案下,高速緩沖存儲器控 制器102結合所述高速緩沖存儲器相干性政策使用高速緩沖存儲器 104在所述事務處理期間主要延遲反寫對于在高速緩沖存儲器線106 中的數據的任何改變至少直到所述事務處理被完成。
在一個實施方案中,由所述處理器執行的軟件為全部高速緩沖存 儲器104維持一種單一的事務處理的狀態。在這種情況中,通過設置 所述事務處理狀態,所述處理器指示高速緩沖存儲器102 —個事務處 理的開始。同樣地,如果高速緩沖存儲器控制器102到所述處理器已 經完成所述事務處理時未異常終止所述事務處理,則所述處理器清除 所述事務處理狀態以便向所述控制器102指示該事實。作為替代,如
果高速緩沖存儲器控制器102必須異常終止所述事務處理,則控制器 102可以發布一個中斷信號或陷阱到所述處理器來宣告所述事務處理 的異常終止。在另一個實現中, 一個或多個處理器指令的預測比特可 以被設置來指示是否所述指令要被執行。在這個實施方案中,與高速 緩沖存儲器104有關的處理器每次只執行一個事務處理。在另一個實 現中,如果所述事務處理完全獨立使得一個事務處理的執行在被另一 個處理的數據上沒有影響,則每次可以進行超過一個的事務處理。
在另一個實施方案中,所述處理器可以同時處理多個事務處理, 同時在所述事務處理之間實施數據獨立性。圖4提供了一個表示在一
個實施方案中可使用的在逐個高速緩沖存儲器線的基礎上追蹤事務處 理的一組數據結構400的框圖。更特別地,數據結構400通常包括一 個與高速緩沖存儲器104有關的事務處理標識符(ID)矢量410。在 圖4的特殊實施方案中,矢量410的每個比特412代表一個特殊的事 務處理ID。因此, 一個特殊的事務處理ID比特412被設置指示被標識 的事務處理當前是使用中的。因此,在任何一個時間可能使用中的事 務處理數量等于在所述事務處理ID矢量410中的比特412的數量。
數據結構400還包括一個駐留在與所述高速緩沖存儲器104的每 一個高速緩沖存儲器線106有關的高速緩沖存儲器線狀態矢量414內 的事務處理ID字段416。所述高速緩沖存儲器線狀態矢量414可以包 括用于它的相應的高速緩沖存儲器線106的其它狀態信息,諸如所述 高速緩沖存儲器線的當前高速緩沖存儲器相干性狀態200、和指示來自 所述主存儲器的哪個數據被存儲在所述線106中的用于所述線106的 高速緩沖存儲器標簽。在圖4的特殊的實施方案中,事務處理ID字段 416提供一個事務處理ID的二進制編碼值,所述高速緩沖存儲器線106 與它相關聯。因此,每個高速緩沖存儲器線106每次最多與一個事務 處理相關聯。如果所述事務處理ID字段416是零,則所述高速緩沖存 儲器線106不與任何事務處理相關聯。
圖5表示一種方法500,用于提供事務處理存儲器,假定使用在圖 1的高速緩沖存儲器系統內的圖4的數據結構400。在一個實施方案 中, 一個事務處理首先將所述事務處理與一個事務處理ID相關聯(操 作502 )并且在所述事務處理ID矢量410中設置相應的事務處理ID 比特412 (操作504 )。在所述事務處理中要被涉及的高速緩沖存儲器
線106中的每一個被用在相應的高速緩沖存儲器線狀態矢量414的事 務處理ID字段416中的事務處理ID標記(操作506 )。
每個事務處理隨后如上面被描述的被處理,其中只有與所述事務 處理ID相關聯的高速緩沖存儲器線106被涉及。例如, 一旦所述事務 處理啟動,與所述事務處理ID有關的高速緩沖存儲器線106中的每一 個被確保在無效狀態202或共享狀態204中(操作508 );在所述高 速緩沖存儲器104中的其它高速緩沖存儲器線106的狀態200不必被 修改。
在所述事務處理期間,對于具有相同的事務處理ID的在修改的狀 態210、自身擁有狀態208或專用狀態206中的任何一個高速緩沖存 儲器線106的外部請求可能出現,因此,需要所請求的高速緩沖存儲 器線106降級。作為響應,在沒有將這些高速緩沖存儲器線106的內 容反寫到所述主存儲器的情況下,所述高速緩沖存儲器控制器102可 以使具有所述事務處理ID的在修改的狀態210或自身擁有狀態208中 的高速緩沖存儲器線106的每一個無效(即,降級到無效狀態202 )(操 作512)。如前所述,未被直接耦合到所述高速緩沖存儲器104的另一 個處理器可以嘗試從所述主存儲器讀取被高速緩存在這些模式之一中 的高速緩沖存儲器線106之一中的數據。換句話說,所述高速緩沖存 儲器控制器102可以檢測或探聽另一個處理器的讀取嘗試。而且,在 相同的處理器上被執行的不同的事務處理也可以進行被所述高速緩沖 存儲器102檢測的外部請求。可替代地,如上面被描述的,所述外部 請求可以是一種容量故障。同樣響應于所述外部請求,所述高速緩沖 存儲器控制器102可以將在專用狀態206中的這些高速緩沖存儲器線 106的每一個降級到共享狀態204或無效狀態202 (操作514 )。隨后, 所述高速緩沖存儲器控制器102異常終止用所述事務處理ID標識的事 務處理(操作516)。為此目的,所述高速緩沖存儲器控制器102可以 隨同正被異常終止的事務處理的事務處理ID—起發布一個中斷到所述 處理器。在其它的實施方案中,陷阱或預測比特可以被用于同樣的目 的。否則,如果所述事務處理成功地完成,則所述高速緩沖存儲器控 制器102繼續在正常的高速緩沖存儲器相干性協議規則下操作所述高 速緩沖存儲器104。
無論所述事務處理成功地終止還是被異常終止,所述事務處理ID
矢量410的相關聯的事務處理ID比特412都被清除(操作518)。因 此,所述高速緩沖存儲器控制器102為與所述特殊的事務處理ID相關 聯的每個高速緩沖存儲器線106清除所述高速緩沖存儲器線狀態矢量 412的事務處理ID字段416 (操作520 )。
如上面被描述的,本發明的各種實施方案利用與高速緩沖存儲器 相關聯的控制器邏輯提供事務處理存儲器,在過去,這幾乎專門地在 軟件中被實現。因此, 一個或多個這些實施方案的應用可以明顯減少 與純軟件事務處理存儲器有關的開發時間和費用,同時通過減少通常 與事務處理存儲器有關的開銷來提供更有效的解決方法。
盡管在此已經討論了本發明的幾個實施方案,但是本發明的范圍 包含的其它實施方案也是可能的。例如,盡管上面參考SMP計算系統 結構描述了本發明的一些實施方案,但是使用多處理系統和高速緩存 系統的其它系統也可以受益于本發明的其它實施方案。而且,其它實 施方案可以被用于一個被耦合到執行多處理和線程并且因此執行多事 務處理的單一的高速緩存系統的單一的處理器。而且, 一個實施方案 的多個方面可以被與可替代的實施方案的多個方面結合來建立更多的 本發明的實現。因此,盡管在特殊的實施方案的上下文中已經描述了 本發明,但是這種描述只是被提供用于說明而不是限制目的。因此, 只能通過所附權利要求書確定本發明的適當范圍。
權利要求
1.一種用于提供事務處理存儲器的方法(300),包括在一個包括第一高速緩沖存儲器線的高速緩沖存儲器上實施(302)一種高速緩沖存儲器相干性協議(200),其中,每個第一高速緩沖存儲器線在修改的狀態(210)、自身擁有狀態(208)、專用狀態(206)、共享狀態(204)、和無效狀態(202)之一中;訪問所述第一高速緩沖存儲器線中的至少一個的第一事務處理一啟動,就確保(304)每個第一高速緩沖存儲器線處于共享狀態(204)和無效狀態(202)之一中;在所述第一事務處理(306)期間,響應于對于在修改的狀態(210)、自身擁有狀態(208)、和專用狀態(206)中的任一第一高速緩沖存儲器線的第一外部請求在沒有將所述第一高速緩沖存儲器線寫入主存儲器的情況下,使在修改的狀態(210)或自身擁有狀態(208)中的每個第一高速緩沖存儲器線無效(308);將在專用狀態(206)中的每個第一高速緩沖存儲器線降級(310)到共享狀態(204)和無效狀態(202)之一中;以及異常終止(312)所述第一事務處理。
2. 根據權利要求1中所述的方法(300 ),其中,確保(304 )所 述第一高速緩沖存儲器線中的每一個處于共享狀態(204 )和無效狀態(202 )之一中包括從所述高速緩沖存儲器清除在修改的狀態(210)或自身擁有狀態 (208 )中的每個第一高速緩沖存儲器線;以及將在專用狀態(206 )中的每個第一高速緩沖存儲器線降級到共享 狀態(204 )和無效狀態(202 )之一。
3. 根據權利要求1中所述的方法(300 ),其中,第一個外部事 件包括一個發自所述第一事務處理外邊的探聽請求和一個容量故障之
4. 根據權利要求1中所述的方法(300 ),還包括 通過與所述第一高速緩沖存儲器線相關聯的第一事務處理標識符接收所述第一事務處理的的執行的指示;指示所述第一事務處理的異常終止;通過與所述第二高速緩沖存儲器線相關聯的第二事務處理標識符 接收訪問所述高速緩沖存儲器的第二高速緩沖存儲器線中的至少一個 的第二事務處理的執行的指示;以及指示所述第二事務處理的異常終止。
5. 根據權利要求4中所述的方法(300 ),其中, 接收所述第一事務處理的執行的指示包括檢測事務處理標識符矢量(410)的第一個比特被設置,以及檢測用于所述第一高速緩沖存儲 器線中的每一個的高速緩沖存儲器線狀態矢量(414)的事務處理標識 符字段(416)被利用所述第一事務處理標識符而設置;并且接收所述第二事務處理的執行的指示包括檢測事務處理標識符矢 量(410)的第二個比特被設置,以及檢測用于所述第二高速緩沖存儲 器線中的每一個的高速緩沖存儲器線狀態矢量(414)的事務處理標識 符字段(416)被利用所述第二事務處理標識符而設置。
6. —種用于提供事務處理存儲器的高速緩沖存儲器系統(100), 包括一個包括第一高速緩沖存儲器線(106 )的高速緩沖存儲器(104 );以及一個高速緩沖存儲器控制器(102),被配置來在所述高速緩沖存儲器(104 )上實施高速緩沖存儲器相干性協議(200 ),其中,每一個第一高速緩沖存儲器線(106)在修改的狀態(210)、自身擁有狀態(208 )、專用狀態(206 )、共享狀態(204 )、和無效狀態(202 )之一中;訪問所述第一高速緩沖存儲器線(106)中的至少一個的笫一事務處理一啟動,就確保每個第一高速緩沖存儲器線(106)在共享狀態(204 )和無效狀態(202 )之一中;以及在所述第一事務處理期間,響應于對于在修改的狀態(210)、自身擁有狀態(208 )或專用狀態(206 )中的任一第一高速緩沖存儲器線(106)的第一外部請求在沒有將所述第一高速緩沖存儲器線寫入一個主存儲器 的情況下,使在修改的狀態(210)和自身擁有狀態(208 ) 中的每個第一高速緩沖存儲器線(106)無效;將在專用狀態(206 )中的每個第一高速緩沖存儲器線 (106)降級到共享狀態(204 )和無效狀態(202 )之一中; 以及異常終止所述第一事務處理。
7. 根據權利要求6中所述的高速緩沖存儲器系統(100),其中, 為確保所述第一高速緩沖存儲器線(106)中的每一個處于共享狀態(204 )和無效狀態(202 )之一中,所述高速緩沖存儲器控制器(102 ) 被配置來從所述高速緩沖存儲器(104)清除在修改的狀態(210)或自身 擁有狀態(208 )中的每個第一高速緩沖存儲器線(106);以及將在專用狀態(206 )中的每個笫一高速緩沖存儲器線(106)降 級到共享狀態(2(M)和無效狀態(202 )之一中。
8. 根據權利要求6中所述的高速緩沖存儲器系統(100),其中, 所述第一個外部請求包括一個發自所述第一事務處理外邊的探聽請求和一個容量故障之一。
9. 根據權利要求6中所述的高速緩沖存儲器系統(100),其中,所述高速緩沖存儲器控制器(102)還被配置來通過與所述笫一高速緩沖存儲器線(106 )相關聯的第一事務處理 標識符接收所述第一事務處理的執行的指示;指示所述第一事務處理的異常終止;通過與所述第二高速緩沖存儲器線相關聯的第二事務處理標識符接收訪問所述高速緩沖存儲器(104)的第二高速緩沖存儲器線(106) 中的至少一個的第二事務處理的執行的指示;以及 指示所述第二事務處理的異常終止。
10. 根據權利要求9中所述的高速緩沖存儲器系統(100),其中, 所述高速緩沖存儲器控制器(102)還被配置來檢測事務處理標識符矢量(410)的第一個比特被設置,以及檢測 用于所述第一高速緩沖存儲器線(106)中的每一個的高速緩沖存儲器 線狀態矢量(414)的事務處理標識符字段(416)被利用所述第一事 務處理標識符而設置以便接收所述第一事務處理的執行的指示;并且檢測事務處理標識符矢量(410)的第二個比特被設置,以及檢測 用于所述第二高速緩沖存儲器線(106)中的每一個的高速緩沖存儲器線狀態矢量(414)的事務處理標識符字段(416)被利用所述第二事 務處理標識符而設置以便接收所述第二事務處理的執行的指示。
全文摘要
用于提供事務處理存儲器高速緩沖存儲器系統和方法。高速緩沖存儲器相干性協議在包括高速緩沖存儲器線的高速緩沖存儲器上被實施,其中每個線在修改狀態、自身擁有狀態、專用狀態、共享狀態和無效狀態之一中。訪問所述高速緩沖存儲器線中的至少一個的事務處理一啟動,所述線中的每一個就被確保是共享的或無效的。在所述事務處理期間,響應于對在修改的、自身擁有或專用狀態中的任一高速緩沖存儲器線的外部請求,在沒有將所述線寫入主存儲器的情況下,使在修改的或自身擁有狀態中的每個線無效。而且每個專用線被降級到共享或無效狀態中,而且所述事務處理被異常終止。
文檔編號G06F12/08GK101178692SQ20071018497
公開日2008年5月14日 申請日期2007年10月31日 優先權日2006年10月31日
發明者B·D·蓋瑟, J·E·維齊 申請人:惠普開發有限公司