亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

共享緩存管理方法和系統(tǒng)的制作方法

文檔序號:6468460閱讀:215來源:國知局
專利名稱:共享緩存管理方法和系統(tǒng)的制作方法
技術領域
本發(fā)明涉及信息技術領域,更具體地,本發(fā)明涉及用于共享緩存管理方法和系統(tǒng)。
背景技術
當前,研究者已經(jīng)提出基于硬件的事務內(nèi)存系統(tǒng),來解決傳統(tǒng)基于鎖的并行編程 模型中存在的問題。事務內(nèi)存系統(tǒng)允許編程者指定串行方式執(zhí)行的代碼的區(qū)域(稱為事 務)。也就是說,每個事務執(zhí)行時在線程中僅執(zhí)行其對應的代碼。事務內(nèi)存系統(tǒng)允許應用 程序以并行但原子的方式來訪問共享數(shù)據(jù)。事務內(nèi)存可以提高并行程序的性能??梢詤?考由Maurice Herlihy, J.Eliot B. Moss在1993年發(fā)表的文章"Transactional Memory: Architectural Support for Lock-Free DataStructures,,(文獻1),來了解事務內(nèi)存的實 現(xiàn)以及有關的一些術語或概念。在硬件/混合型事務內(nèi)存系統(tǒng)中廣泛采用了硬件專用緩存 器及相關控制機制,來實現(xiàn)版本管理和沖突檢測。 硬件專用緩存器的設計與多處理核架構的特征密切相關。從多核架構的發(fā)展來 看,存在兩個重要的特征或趨勢。 一方面,并發(fā)多線程(SMT)處理器核心變得越來越普及。 另一方面,將越來越多的處理核集成到同一芯片中。顯然,如果每個硬件線程(在并發(fā)多線 程核心的情況下)或者每個處理核(在多個處理核系統(tǒng)的情況下)需要私有的專用緩存, 則會引起非常高的實現(xiàn)成本。因此,需要在多個硬件線程(對于SMT核的情況)或者多個 處理器核(對于多核的情況)之間共享緩存。 用于硬件共享緩存的傳統(tǒng)緩存管理方法可以被分為兩種不同的方法。
1)獨占型共享緩存 來自不同線程的所有事務競爭同一共享緩存。并且,僅有一個事務能夠被獲準訪 問該共享緩存,也即獨占的訪問,直到整個事務由于成功提交(commit)或者重試(retry) 而結(jié)束為止。因此,獨占型共享緩存可以以非常簡單的硬件邏輯實現(xiàn)。但是,這樣的設計可 能導致性能損失,因為這很大程度上限制了潛在的并發(fā)性。
2)非獨占型共享緩存 在這種設計中,來自不同事務的數(shù)據(jù)以不同的色彩標記,這些事務被分配在共享 緩存中。通常,這種分配是以緩存塊(cacheline)為單位的細粒度來執(zhí)行的。為了區(qū)分緩 存器中每個緩存塊所存儲的數(shù)據(jù)屬于哪個事務,緩存器中的每個緩存塊具有一個相應的色 彩標記。非獨占型共享緩存的主要優(yōu)點在于其相比于獨占型共享緩存的方法能夠獲得更 好的資源利用率。 然而,非獨占型共享緩存的設計將顯著增加事務提交(commit)、中止(abort)、替 代(r印lacement)以及沖突檢測(conflict detection)的實現(xiàn)復雜度。在事務以傳統(tǒng)的 細粒度(也即以緩存塊(cacheline)為粒度)隨機分配在非獨占型共享緩存中的情況下
對于事務提交或者中止,硬件邏輯必須比較每個緩存塊以匹配目標色彩;
對于在替代策略中發(fā)生沖突失效(conflict miss)的情況,對于硬件來說很難選 擇一個事務來執(zhí)行替代。例如,小的事務應該中止大的事務,或者新的事務可以中止將被提交的事務; 對于沖突檢測,硬件必須針對每個緩存塊附加色彩寄存器和對應比較邏輯,這顯 然增加了硬件成本。

發(fā)明內(nèi)容
為了克服現(xiàn)有技術中的缺陷,本發(fā)明提出一種硬件事務內(nèi)存系統(tǒng)中的新的動態(tài)共 享緩存管理方案。該共享緩存管理方案能夠基于對事務需求緩存的大小的預測為多個事務 動態(tài)分配緩存。進一步地,在一個實施例中,通過改變共享緩存的分配粒度進一步實現(xiàn)對于 硬件部分的簡化。 根據(jù)本發(fā)明的第一方面,提供一種共享緩存管理系統(tǒng)。該系統(tǒng)包括資源管理模 塊,被配置為響應于事務的開始,依據(jù)預測的事務數(shù)據(jù)大小為該事務分配共享緩存資源,并 且響應于該事務的成功提交,記錄該事務實際占用的共享緩存大小以更新該事務的歷史信 息,其中該事務的預測的事務數(shù)據(jù)大小是由預測器在運行時中根據(jù)事務的歷史信息預測的。
根據(jù)本發(fā)明的第二方面,提供一種共享緩存管理方法。該方法包括以下步驟在 運行時中根據(jù)即將執(zhí)行的事務的歷史信息預測該事務的事務數(shù)據(jù)大小;響應于該事務的開 始,依據(jù)預測事務數(shù)據(jù)大小為該事務分配共享緩存資源;響應于該事務的成功提交,記錄該 事務實際占用的共享緩存大小以更新預測器中針對該事務的歷史信息。
根據(jù)本發(fā)明的第三方面,提供一種共享緩存器。該共享緩存器包括多個關聯(lián)緩
存路,其中每個緩存路中具有多個緩存塊;地址索引,用于尋址到所述每個緩存路中相應位
置的緩存塊;色彩寄存器,用于針對每個緩存路存儲色彩值,其中每個色彩值對應于不同事
務,其中所述共享緩存被配置為以緩存路為粒度在多個事務之間共享緩存資源。 本發(fā)明的方案能夠?qū)⒂布膹碗s度轉(zhuǎn)移到軟件中,而且?guī)缀醪粫a(chǎn)生性能損失。
通過預測事務的緩存需求的大小,該新的共享緩存管理方案能夠為多個事務動態(tài)地分配資
源。優(yōu)選地,以緩存路為粒度為多個事務動態(tài)地分配共享緩存資源。在這方面,根據(jù)本發(fā)明
的方案能夠很大程度上簡化硬件實現(xiàn),因為每個緩存路僅需要配備一個色彩比特寄存器,
而這使得提交和中止的邏輯配置也將變得相當簡單。


通過以下結(jié)合附圖的說明,并且隨著對本發(fā)明的更全面了解,本發(fā)明的其他目的 和效果將變得更加清楚和易于理解,其中 圖1示意性地示出了根據(jù)本發(fā)明的共享緩存管理系統(tǒng)的架構;
圖2示意性地示出了根據(jù)本發(fā)明一種實施方式的共享緩存管理系統(tǒng)的結(jié)構;
圖3示意性地示出了根據(jù)本發(fā)明圖2的實施方式的共享內(nèi)存的微邏輯架構;
圖4示意性地示出了根據(jù)本發(fā)明又一實施方式的共享緩存管理系統(tǒng)的結(jié)構;
圖5示出了根據(jù)本發(fā)明的一個實施方式的共享緩存管理方法的流程圖。
在所有的上述附圖中,相同的標號表示具有相同、相似或相應的特征或功能。
具體實施例方式本發(fā)明適用于事務內(nèi)存技術領域,以下說明將以事務內(nèi)存的運行環(huán)境為例,即處理器上運行的應用程序包含若干事務,事務使用共享緩存器來存儲中間狀態(tài)數(shù)據(jù),以色彩 標記指示事務的標識號(ID)。當然,本領域的技術人員應該理解,本發(fā)明不限于此,而是可 以將事務抽象到更一般的概念程序,因為事務是應用程序的一部分。 本發(fā)明已經(jīng)注意到,在硬件事務內(nèi)存系統(tǒng)的共享內(nèi)存涉及方案中,一個主要的挑 戰(zhàn)在于按需的資源管理,這對于系統(tǒng)性能非常關鍵。例如,具有不同數(shù)據(jù)大小的多個事務彼 此競爭申請相同的共享緩存,則按需資源管理的策略將選擇響應那些可能的事務組合,即 這些事務所要求的總緩存大小沒有超過總的硬件資源的極限。按需資源管理的另一優(yōu)點在 于,如果一個具有很大數(shù)據(jù)大小的事務總是使得緩存溢出,這樣的事務將直接進入運行時 中對于溢出的特殊處理,避免其占用硬件緩存。根據(jù)本發(fā)明,按需資源管理要求資源分配邏 輯在事務起始時就知道該事務所請求的總的緩存大小。在本發(fā)明中,這是通過對于事務數(shù) 據(jù)大小的預測機制提供的。 通過實驗觀察可以發(fā)現(xiàn)大多數(shù)的事務具有可預測的寫數(shù)據(jù)大小,標識著該事務在 執(zhí)行時可能需求的緩存大小。這表明對于事務數(shù)據(jù)大小(即對事務需求的緩存大小)進行 預測的可能性。 圖1示意性地示出了根據(jù)本發(fā)明一種實施方式的共享緩存管理系統(tǒng)的結(jié)構。其 中,參考標號100表示根據(jù)本發(fā)明一個實施方式的共享緩存系統(tǒng)。 如圖1所示,在共享緩存管理系統(tǒng)100中,包括軟件部分、硬件部分以及相適應的 操作系統(tǒng)(未示出)。 在軟件部分中,多個線程220-1. . . 220-n,每一個線程可包括多個事務,例如 如圖所示,線程220-1包括事務2201、2202,線程220-n包括事務2203、2204、2205。線 程220-1... 220-n可以屬于同一個進程,也可以屬于不同的進程。在環(huán)境100中,線程 220-1. . . 220-n的執(zhí)行是并行的,而每一個線程中的多個事務的執(zhí)行是串行的。
預測器210對每個事務的數(shù)據(jù)大小,也即對共享緩存需求的大小進行預測。預測 器210可以置于軟件運行時端,例如設置在運行時庫中。這樣的設置能夠為系統(tǒng)提供多種 優(yōu)勢,例如可以使得系統(tǒng)硬件設計得以簡化,獲得良好的靈活性,可以支持更復雜的預測算 法,等等。 在每個事務請求開始執(zhí)行之前,將向預測器210獲取該事務可能的寫數(shù)據(jù)大小。 該數(shù)據(jù)大小可以以一定粒度給出。衡量事務數(shù)據(jù)大小的粒度的選擇與共享緩存的物理設計 相關。通過改變共享緩存的物理設計能夠簡化該共享緩存管理系統(tǒng)。這一點將在后文中結(jié) 合硬件部分著重闡述。如果針對該事務所預測的數(shù)據(jù)大小大于總的硬件緩存,則該事務將 直接進入用于溢出事務的特殊處理。如果針對該事務所預測的數(shù)據(jù)大小在合理的范圍內(nèi), 則可以將該預測的數(shù)據(jù)大小通知資源管理模塊310,以便進行緩存資源分配。
硬件部分包括共享緩存320,并且在一些有利的實施中硬件部分還包括資源管理 模塊310,其中,資源管理模塊310負責以一定粒度對硬件資源特別是共享緩存320的資源 進行分配和回收。 資源管理模塊310與當前資源記錄裝置311進行交互。當前資源記錄裝置311用 于記錄與當前可用的緩存資源有關的信息。根據(jù)所通知的預測事務大小,并且基于當前資 源記錄裝置311所記錄的有關當前共享緩存320中可用資源的信息,資源管理模塊310執(zhí) 行對于共享緩存320的資源管理,分別包括在事務開始時通過分配邏輯完成對事務的共享內(nèi)存的分配;以及在事務中止或者提交時尋址相應的緩存資源,以執(zhí)行相應的操作,并且通 過回收邏輯回收共享緩存320的可用緩存資源,進而相應地更新當前資源記錄裝置311。
以上通過參照圖1對本發(fā)明的技術方案進行了總的說明。各個部件的具體實現(xiàn)存 在多種可選的實施方案。例如,根據(jù)圖l所示出的共享緩存管理系統(tǒng)的基本架構,可以具體 設計運行時庫中的預測器210對事務大小進行預測的算法、策略,以便能夠更佳地適應各 種具體應用情況。如何在事務開始之前向資源管理模塊310通知將執(zhí)行事務的預測數(shù)據(jù)大 小,也可以通過各種不同的方式實現(xiàn),例如作為現(xiàn)有指令的參數(shù),或者專門為其設置通知指 令等。在圖1中,資源管理模塊310是在硬件部分中實現(xiàn)的,但是可以理解還可以通過軟件 或者硬件與軟件相結(jié)合的方式實現(xiàn)資源管理模塊310。更加靈活的是,根據(jù)本發(fā)明的共享 緩存管理架構可以應用到各種共享緩存。換句話說,通過改變共享緩存的硬件設計方案,可 以進一步增加根據(jù)本發(fā)明的共享緩存管理系統(tǒng)的性能,而不會由此造成更多的硬件成本增 加。 以下參照圖2-4進一步描述根據(jù)本發(fā)明共享緩存管理系統(tǒng)的具體實施例,以及其 工作過程。 圖2示意性地示出了根據(jù)本發(fā)明一種實施方式的共享緩存管理系統(tǒng)的結(jié)構。
如圖2所示的共享緩存管理系統(tǒng)100A將預測機制與新穎的粗粒度共享緩存相結(jié) 合。作為一種示例,圖2所示的共享緩存320A為4路關聯(lián)緩存。資源管理模塊310A以緩 存路作為粒度對共享緩存進行資源管理。具體而言,根據(jù)預測的事務數(shù)據(jù)大小,共享緩存能 夠動態(tài)的為多個事務以緩存路作為粒度分配共享緩存。因此,在共享緩存320A中,僅為每 個緩存路配置色彩標記和相應控制邏輯。這樣的設計能夠減少硬件成本,并且能夠獲得靈 活的軟件預測機制。 首先從工作流角度描述共享緩存管理系統(tǒng)IOOA。在程序中,事務220-1. . . 220_n 均以事務開始運行時函數(shù)transaction_begin()和事務結(jié)束運行時函數(shù)transaction_ begin ()標記。在transaction—begin ()中,運行時中的預測器210負責在進入該事務的區(qū) 域之前(事務開始指令trans—begin指令執(zhí)行之前),根據(jù)歷史信息預測該事務所需的數(shù)據(jù) 大小。如果針對該事務所預測的數(shù)據(jù)大小大于總的硬件緩存,則該事務將直接進入用于溢 出事務的特殊處理。如果針對該事務所預測的數(shù)據(jù)大小在合理的范圍內(nèi)(例如,當前硬件 可用的緩存區(qū)大小可以滿足預測的數(shù)據(jù)大小),則可以將該預測的數(shù)據(jù)大小傳遞給資源管 理模塊310A。在本實施例中,將所預測的數(shù)據(jù)大小作為事務開始指令trans—begin中的一 個參數(shù)指示給資源管理器模塊310A。硬件資源管理模塊310A將該預測的大小與共享緩存 當前可用的大小(根據(jù)當前資源記錄裝置311A提供的信息)進行比較。如果存在足夠資 源,則該請求得到滿足,即正常執(zhí)行事務開始指令trans—begin ;否則,如果不存在足夠的 可用資源,則事務開始指令trans—begin返回零值,即未成功執(zhí)行該事務。此時,控制流可 以控制該事務進行重試(例如立即重試或者等待一段時間后重試),以便在共享緩存320A 中存在足夠可用緩存資源時能夠開始執(zhí)行該事務。在事務執(zhí)行中,transaction—begin() 檢查事務開始指令trans—begin的返回值是否為零值,如果在一次嘗試中沒有成功執(zhí)行該 事務,即在執(zhí)行該事務過程中溢出所分配的共享緩存(這里稱為假溢出),則資源管理模塊 310A報告該溢出,并且在工作流中按照一定策略進行重試,直到重新執(zhí)行該事務為止。在每 次事務重試中,所請求的數(shù)據(jù)大小可以在預測器210的預測值基礎上增加特定的值。這樣的迭代方法確保了每個事務在假溢出的情況下最終能夠被響應。 一旦事務成功提交,該事 務最終所占用的緩存大小將作為該事務的實際數(shù)據(jù)大小,并且將其存儲在支持預測器210 工作的歷史信息中。 在軟件部分中,預測器210將針對每個待執(zhí)行的事務預測其事務數(shù)據(jù)大小。本實 施例中,該預測的事務數(shù)據(jù)大小是以緩存路為粒度(粗粒度)給出的。當每個事務在執(zhí)行時 由于溢出所分配的、等于預測事務數(shù)據(jù)大小的緩存大小而進行重試時,這里稱之為假溢出, 軟件部分將以緩存路為粒度增加該事務所請求的緩存數(shù)據(jù)大小(例如,每次增加一個緩存 路)。 一旦事務提交成功,預測器210記錄該事務執(zhí)行實際使用的緩存大小作為其數(shù)據(jù)大小
的歷史信息。 由于每個事務都需要預測器210提供預測的事務數(shù)據(jù)大小,因此在實現(xiàn)上該預測 器210應該是非時間消耗的。雖然存在多種可行的算法對事務數(shù)據(jù)大小進行預測,但是應 該理解,在本發(fā)明中預測器210應該采用不太復雜的預測算法,而且當來自不同線程的多 個事務同時嘗試訪問、更新歷史信息時,保存各事務的歷史信息數(shù)據(jù)存儲(例如,哈希表) 應該是非鎖定的。 在圖2所示的共享緩存管理系統(tǒng)100A中,預測器210可以具有雙層軟件哈希表, 其中對于每個事務(事務ID)記錄有最近N次的數(shù)據(jù)大小信息。該雙層哈希表被設計為具 有非鎖定的特點。該哈希表的第一層通過線程ID進行索引,并且第二層通過事務起始地址 進行索引。哈希表的雙層結(jié)構確保了每個線程具有其私有的哈希表,從而避免在更新歷史 信息時的鎖定/解鎖操作。當然,對第一層條目的插入和刪除操作應該對哈希表進行鎖定/ 解鎖。但由于上述動作僅在線程創(chuàng)建和退出的情況下才需要,因此執(zhí)行這些動作的頻率要 比執(zhí)行對歷史信息更新的動作的頻率少得多。 正如上文所述,在預測器210中使用過于復雜的預測算法可能會對系統(tǒng)性能產(chǎn)生 負面影響。作為預測算法的示例,這里討論以下幾種預測算法。
1)最近值預測 在該算法中,對于事務最近一次請求的數(shù)據(jù)大小將被預測為該事務即將執(zhí)行時所 需要的數(shù)據(jù)大小。該算法非常簡單,使得預測器210在給出預測結(jié)果時僅需要非常短的時 間,而且使得所維護的哈希表對于每個事務條目僅具有一個節(jié)點,由此節(jié)約了存儲空間。當 每個事務成功提交時,以該事務實際占用的共享緩存大小更新對于每個事務條目的事務數(shù) 據(jù)大小的歷史信息。
2)平均值預測 在一些應用中,相同事務的區(qū)域在每次執(zhí)行時可能具有可變的寫數(shù)據(jù)大小。例如, 這樣的事務可能具有每次運行中執(zhí)行不同迭代的循環(huán)結(jié)構。對于這樣不規(guī)則的情況,可以 采用諸如Markolv模型等復雜的算法對其數(shù)據(jù)大小進行預測。但是考慮到在本發(fā)明中首要 考慮的因素是避免過度的運算時間,則僅采用對特定數(shù)目N的歷史數(shù)據(jù)大小值進行簡單平 均運算的平均值預測。平均值預測的算法能夠很好地平衡時間消耗問題和精確度問題。在 該算法中,在哈希表中針對每個事務記錄其最近N個數(shù)據(jù)大小信息。該最近N數(shù)據(jù)大小值 的品均值將作為該事務即將執(zhí)行時的預測值。
3)其它預測算法 實際上,根據(jù)不同的應用以及在該應用中線程的事務特點,可以安排其它的預測算法。例如,可以在N個歷史數(shù)據(jù)大小值中選擇最大值作為為即將開始的事務的數(shù)據(jù)大小 預測;還可以以一定幅度模擬某些事務在每次執(zhí)行時數(shù)據(jù)大小的變化趨勢(增大或者減 少),等等。 本領域技術人員可以理解,可以靈活地配置預測器210事務數(shù)據(jù)大小的預測算 法,以使用任一預測算法或者預測算法的組合。 資源管理模塊310A負責以緩存路為粒度對硬件資源特別是共享緩存320A的資源 進行分配和回收。資源管理模塊310A與當前資源記錄裝置311A進行交互。
當前資源記錄裝置311A例如可以實現(xiàn)為計數(shù)器寄存器,以記錄當前可用的緩存 路的數(shù)目。該當前資源記錄裝置311A在任何事務的開始、提交和中止時進行更新。這樣的 更新動作是通過資源管理模塊310A執(zhí)行的。資源管理模塊310A將在trans—begin指令中 攜帶的針對某事務的請求事務大小與當前資源記錄裝置311A的計數(shù)器寄存器所維持的數(shù) 值進行比較。當當前資源記錄裝置311A的計數(shù)器寄存器的數(shù)值大于或者等于所請求的數(shù) 據(jù)大小時,才響應該請求并且事務開始指令trans—begin的返回值為1。否則,將拒絕該請 求并且事務開始指令trans—begin的返回值為0。此時,控制流可以控制該事務進行重試 (例如立即重試或者等待一段時間后重試),以便在當前資源記錄裝置311A的計數(shù)器寄存 器顯示共享緩存320A中存在足夠可用緩存資源時能夠開始執(zhí)行該事務。
資源管理模塊310A可以具有相對簡單的邏輯。應該注意,資源管理模塊310A可 以訪問并更新共享緩存320A中針對各個緩存路所分配的色彩寄存器以及其有效標志。以 下針對不同的場景描述資源管理模塊310A的工作流。 在事務開始的情況下,資源管理模塊310A訪問并比較針對每個緩存路所分配的 色彩寄存器。如果按照每個色彩寄存器的附加標志指示的,該色彩寄存器可用,則意味著該 緩存路可以被分配給進行請求的事務。此時將該色彩寄存器設置為該請求事務的色彩值。 并且,所請求的數(shù)據(jù)大小將減少1。該過程繼續(xù)重復執(zhí)行,直到所請求的數(shù)據(jù)大小等于O,則 意味著所有請求的硬件資源已經(jīng)被分配。 在事務提交的情況下,資源管理模塊310A通過迭代的比較共享緩存320A中每個 緩存路的色彩寄存器與在事務提交指令trans—commit中的色彩值,定位目標事務所占用 的共享緩存320A的空間。并且,資源管理模塊310A控制將所有存儲在具有目標色彩值的 緩存路中的每個緩存塊的推測數(shù)據(jù)寫入到內(nèi)存系統(tǒng)中。 在事務中止的情況下,資源管理模塊310A通過迭代的比較共享緩存320A中每個 緩存路的色彩寄存器與在事務回滾指令trans—rollback中的色彩值,定位目標事務所占 用的共享緩存320A的空間。并且,資源管理模塊310A控制丟棄所有存儲在具有目標色彩 值的緩存路中的每個緩存塊的推測數(shù)據(jù)并且使其失效。 在事務內(nèi)存系統(tǒng)中,在事務區(qū)域中的任何內(nèi)存訪問請求攜帶有色彩信息,這需要 考慮版本管理和沖突檢測。圖3示意性地示出了根據(jù)本發(fā)明圖2的實施方式的共享內(nèi)存的 微邏輯架構。參照圖3可以清楚的理解在上文中提出的粗粒度共享緩存320A。
圖3所示出的緩存器320A是一個4路關聯(lián)緩存器,其中每路具有128個緩存塊 (圖中僅示例地表示出部分緩存塊)。色彩寄存器321用于針對每個緩存路存儲其色彩值。
通過地址索引322可以尋址到每路中相應位置4個緩存塊。選擇器323根據(jù)標簽 以及色彩寄存器321中的色彩值確定是否命中或者發(fā)生沖突。
在事務加載操作中,如果命中(hit)具有相同色彩標記的緩存路中的緩存塊,則 應該讀取緩存塊中的推測數(shù)據(jù)。如果未命中(miss),則向緩存控制器提出常規(guī)的緩存未命 中信號。如果命中具有不同色彩標記的緩存路中的緩存塊,則會檢測到寫后讀(RAW)沖突 并且將會報告硬件異常,這可以由運行時庫中的異常處理程序處理。 在事務存儲操作中也應該檢測緩存。如果命中具有相同色彩標記的緩存路中的緩 存塊,則更新該緩存塊中的推測數(shù)據(jù)。如果未命中,則可以將一個無效消息發(fā)送到所有其它 遠程共享緩存,以檢測是否存在潛在的沖突,并且獲得獨占的寫操作特權。如果命中具有不 同色彩標記的緩存路中的緩存塊,則檢測到寫后寫(WAW)沖突。 任何本地共享緩存監(jiān)聽遠程緩存一致性消息。如果其中的地址命中本地共享緩存 的緩存塊,則檢測到?jīng)_突如果該消息由讀操作未命中引起,則該沖突為RAW沖突;如果該 消息由存儲未命中引起,則該沖突為WAW。在這種情況下,將不必考慮色彩寄存器的值,因為 無論色彩值是否相同,只要出現(xiàn)命中的情況就說明發(fā)生了沖突。當然,針對該地址還需要檢 測本地事務讀取緩存或者簽名。 —旦檢測到?jīng)_突,仲裁器將會確定將中止哪個事務。并且,通過事務回滾指令 trans—rollback可以將該色彩信息傳送到資源管理模塊310A。并且,資源管理模塊310A 執(zhí)行對于具有相同色彩信息的所有緩存路的中止操作。 即使在事務即將開始時能夠準確地預測事務數(shù)據(jù)大小,由于沖突未命中的原因事 務仍然可能溢出所分配的緩存。這在緩存設計中是常見的??梢栽O置犧牲者緩存(victim buffer)(未示出)來存儲替代的數(shù)據(jù),以緩解緩存未命中的處罰。根據(jù)圖3所示的共享緩 存結(jié)構也可以采用犧牲者緩存來處理沖突未命中??梢跃哂型ㄟ^多種不同的選擇來設計犧 牲者緩存。在一種簡單的設計中,可以僅允許犧牲者緩存存儲具有相同色彩的數(shù)據(jù)。在這 種情況中,其僅需要色彩寄存器。在一種更為復雜的設計中,為犧牲者緩存的每個條目添 加色彩寄存器??紤]到犧牲者緩存空間較小的特點,可以采用后一種設計。由于沖突未命 中的情況相對于容量未命中的情況來說很少發(fā)生,在本發(fā)明中僅給出簡要的示例性解決方 案,不再進行詳細討論。 圖4示意性地示出了根據(jù)本發(fā)明又一實施方式的共享緩存管理系統(tǒng)的結(jié)構。
如圖2所示的共享緩存管理系統(tǒng)100B將預測機制與傳統(tǒng)的細度共享緩存相結(jié)合。 作為一種示例,圖4所示的共享緩存320B為4路關聯(lián)緩存。資源管理模塊310B以緩存塊作 為粒度對共享緩存進行資源管理。具體而言,根據(jù)預測的事務數(shù)據(jù)大小(以緩存塊作為粒 度),共享緩存能夠動態(tài)的為多個事務以緩存塊作為粒度分配共享緩存。因此,在共享緩存 320B中,類似于傳統(tǒng)共享緩存的設計,需要為每個緩存塊配置色彩標記和相應控制邏輯。
本領域的技術人員可以理解,由于雖然在圖4所示的實施例中采用了與圖2所示 實施例不同的共享緩存設計,但是共享緩存管理系統(tǒng)的工作原理和工作過程是類似的,特 別地,軟件部分以及系統(tǒng)中工作流的實現(xiàn)是類似的。不同之處,僅在于預測器210以緩存塊 作為粒度為即將開始的事務預測事務數(shù)據(jù)大小。 在一些有利的實施中,在硬件部分中實現(xiàn)資源管理模塊310B。資源管理模塊310B 負責以緩存路為粒度對硬件資源特別是共享緩存320B的資源進行分配和回收。資源管理 模塊310B與當前資源記錄裝置311B進行交互。本領域技術人員可以理解,由于在本實施 例中,共享緩存320B采用傳統(tǒng)的細粒度(緩存塊為粒度)的傳統(tǒng)設計,因此資源管理模塊310B雖然基本工作原理將與圖2所示的資源管理模塊310A的基本工作原理類似,但其具體 實現(xiàn)可以存在不同。 當前資源記錄裝置311B例如可以實現(xiàn)為記錄表格,記錄當前緩存中現(xiàn)有的色彩、 其對應請求的緩存塊數(shù)目以及實際占用的緩存塊數(shù)目。由此,當前資源記錄裝置311B可以 通過共享緩存320B中總緩存塊減去各個事務(對應于不同的色彩)實際占用的緩存塊來 獲知當前可用的緩存資源數(shù)目。由此,資源管理模塊310B在當某事務請求開始執(zhí)行時,將 在trans—begin指令中攜帶的針對某事務的請求事務大小與當前資源記錄裝置311B所提 供的當前可用緩存資源數(shù)目進行比較,以確定是否能夠開始執(zhí)行該事務。如果事務請求的 數(shù)據(jù)大小超出當前可用的緩存資源數(shù)目,才響應事務開始的請求并且事務開始指令trans— begin的返回值為1。否則,將拒絕該事務開始請求并且事務開始指令trans—begin的返 回值為O。此時,控制流可以控制該事務進行重試(例如立即重試或者等待一段時間后重 試),以便在當前資源記錄裝置311B指示共享緩存320B中存在足夠可用緩存資源時能夠開 始執(zhí)行該事務。當每個事務在執(zhí)行時由于溢出所分配的、等于預測事務數(shù)據(jù)大小的緩存大 小而進行重試時,這里稱之為假溢出,在軟件部分中將增加該事務所請求的緩存數(shù)據(jù)大小, 例如,每次增加預定數(shù)目的緩存塊。每當事務在執(zhí)行中將數(shù)據(jù)寫入一個新的緩存塊,則資源 管理模塊310B更新當前資源記錄裝置311B中所維護的表格。 由于共享緩存320B采用了傳統(tǒng)的細粒度結(jié)構,資源管理模塊310B在各種場景下
對于共享緩存320B的管理和控制邏輯與現(xiàn)有技術中所采用的邏輯類似。本領域的技術人
員可以以任何現(xiàn)有的方式實現(xiàn)在各種場景下對于共享緩存320B的讀、寫以及沖突檢測等
操作。這里為了簡潔,僅給出上述概括介紹,而省略具體示例性描述。 圖5示出了根據(jù)本發(fā)明的一個實施方式的共享緩存管理方法的流程圖。 在步驟S500中,該方法的流程開始。 在步驟S501中,獲取預測的事務數(shù)據(jù)大小。該數(shù)據(jù)大小可以以一定粒度給出。衡 量事務數(shù)據(jù)大小的粒度的選擇與共享緩存的物理設計相關。對于某一事務的事務數(shù)據(jù)大小 進行的預測可以通過在運行時中實現(xiàn)的預測器基于該事務的數(shù)據(jù)大小的歷史信息來執(zhí)行。 此時,如果預測器的所述預測的事務數(shù)據(jù)大小已經(jīng)大于共享緩存資源,則該事務可以直接 進入用于事務溢出的特殊處理(未示出)。 在步驟S502中,事務通過運行時函數(shù)transaction_begin()請求開始執(zhí)行。
在步驟S503中,依據(jù)預測的事務數(shù)據(jù)大小請求共享緩存的硬件資源。在一個實施 例中,可以將所預測的數(shù)據(jù)大小作為事務開始指令trans—begin中的一個參數(shù)指示給資源 管理器模塊。 在步驟S504中,將該預測的大小與共享緩存當前可用的大小進行比較,以確定是 否存在足夠的共享緩存資源。 如果確定存在足夠的共享緩存資源,則繼續(xù)執(zhí)行步驟S506 ;如果確定不存在足夠 的共享緩存資源,則此時發(fā)生溢出,該流程繼續(xù)執(zhí)行步驟S505。 在步驟S505中,拒絕該事務開始請求,并控制該事務進行重試。立即或者等待一 段時間之后重新執(zhí)行事務開始指令trans—begin。此時,可以不必改變所請求的事務數(shù)據(jù)大 小。 在步驟S506中,在硬件部分中為該事務分配所請求的共享緩存資源,其中該分配
11的共享緩存大小等于預測的事務數(shù)據(jù)大小。
在步驟S507中,開始執(zhí)行事務。 在步驟S508中,確定該事務是否溢出所分配的共享緩存資源。例如可以通過檢查 事務開始指令trans—begin的返回值是否為零值,確定該事務是否正常執(zhí)行。
如果在一次嘗試中沒有成功執(zhí)行該事務,即在執(zhí)行該事務過程中溢出所分配的共 享緩存(這里稱為假溢出),則繼續(xù)執(zhí)行步驟S510。如果成功執(zhí)行該事務,即在執(zhí)行該事務 過程中沒有溢出所分配的共享緩存,則繼續(xù)執(zhí)行步驟S509。 在步驟S509中,將預測事務數(shù)據(jù)大小增加特定的值,并將該值作為新的預測值。 該流程返回到步驟S502,對該事務進行重試。這樣的迭代方法確保了每個事務在假溢出的 情況下最終能夠被響應。 在步驟S510中,一旦事務成功提交,記錄該事務實際所占用的緩存大小將作為該 事務的數(shù)據(jù)大小,由此更新針對該事務的歷史信息。
在步驟S511中,該方法的流程結(jié)束。 應當注意,為了更清楚地闡述根據(jù)本發(fā)明的共享內(nèi)存管理方法,圖5所示的方法 以及對圖5的以上描述省略了已經(jīng)參照圖l-4詳細闡述的硬件工作步驟,而且還省略了對 于本領域的技術人員來說是公知的、并且對于本發(fā)明的實現(xiàn)可能是必需的具體實現(xiàn)步驟。
提供本發(fā)明的說明書的目的是為了說明和描述,而不是用來窮舉或?qū)⒈景l(fā)明限制 為所公開的形式。對本領域的普通技術人員而言,許多修改和變更都是顯而易見的。本領 域技術人員還應該理解,可以通過軟件、硬件、固件或者它們的結(jié)合的方式,來實現(xiàn)本發(fā)明 實施例中的方法和裝置。 因此,選擇并描述實施方式是為了更好地解釋本發(fā)明的原理及其實際應用,并使 本領域普通技術人員明白,在不脫離本發(fā)明實質(zhì)的前提下,所有修改和變更均落入由權利 要求書所限定的本發(fā)明的保護范圍之內(nèi)。
權利要求
一種共享緩存管理系統(tǒng),包括資源管理模塊,被配置為響應于事務的開始,依據(jù)預測的事務數(shù)據(jù)大小為該事務分配共享緩存資源,并且響應于該事務的成功提交,記錄該事務實際占用的共享緩存大小以更新該事務的歷史信息,其中該事務的所述預測的事務數(shù)據(jù)大小是由預測器在運行時中根據(jù)所述事務的歷史信息預測的。
2. 根據(jù)權利要求1所述的共享緩存管理系統(tǒng),其中響應于該事務溢出所分配的共享緩存資源,所述預測器以所述預測事務數(shù)據(jù)大小增加 預定值作為新的預測事務數(shù)據(jù)大小,并且所述資源管理模塊被配置為響應于該事務的重新開始依據(jù)新的預測的事務數(shù)據(jù)大小 為該事務分配共享緩存資源。
3. 根據(jù)權利要求1所述的共享緩存管理系統(tǒng),其中所述資源管理模塊被配置為 比較所述預測事務數(shù)據(jù)大小與所述共享緩存當前的可用資源; 響應于存在足夠的可用資源,為該事務分配等于預測事務數(shù)據(jù)大小的共享資源; 響應于不存在足夠的可用資源,不為該事務分配共享資源并拒絕該事務開始,并控制重新開始該事務。
4. 根據(jù)權利要求1所述的共享緩存管理系統(tǒng),其中所述資源管理模塊被配置為 比較所述預測事務數(shù)據(jù)大小與所述共享緩存當前的可用資源; 響應于不存在足夠的可用資源,該事務直接進入用于事務溢出的處理。
5. 根據(jù)權利要求1-4中任一權利要求所述的共享緩存管理系統(tǒng),其中 所述預測器被配置為按照以下方式中的任何一種或者任何組合來對事務數(shù)據(jù)大小進行預測1) 最近值預測;2) 平均值預測;3) 最大值預測;以及4) 幅度模擬預測。
6. 根據(jù)權利要求1-4中任一權利要求所述的共享緩存管理系統(tǒng),其中所述事務的歷史 信息被配置為雙層軟件哈希表,其中第一層以線程標識進行索引,并且第二層以事務地址 進行索引。
7. 根據(jù)權利要求1-4中任一權利要求所述的共享緩存管理系統(tǒng),其中在所述共享緩存 中為每個緩存路配置色彩寄存器,以存儲針對不同事務的色彩標記,其中,所述預測器被配置為以緩存路為粒度為事務預測事務數(shù)據(jù)大小,并且所述資源 管理模塊被配置為以緩存路為粒度分配共享緩存資源。
8 根據(jù)權利要求1-4中任一權利要求所述的共享緩存管理系統(tǒng),其中在所述共享緩存 中為每個緩存塊配置色彩寄存器,以存儲針對不同事務的色彩標記,其中,所述預測器被配置為以緩存塊為粒度為事務預測事務數(shù)據(jù)大小,并且所述資源 管理模塊被配置為以緩存塊為粒度分配共享緩存資源。
9. 一種共享緩存管理方法,包括在運行時中根據(jù)即將執(zhí)行的事務的歷史信息預測該事務的事務數(shù)據(jù)大??;響應于該事務的開始,依據(jù)預測事務數(shù)據(jù)大小為該事務分配共享緩存資源; 響應于該事務的成功提交,記錄該事務實際占用的共享緩存大小以更新該事務的歷史 信息。
10. 根據(jù)權利要求9所述的共享緩存管理方法,進一步包括響應于該事務溢出所分配的共享緩存資源,將所述預測事務數(shù)據(jù)大小增加預定值,以 作為新的預測事務數(shù)據(jù)大小;以及響應于該事務的重新開始,依據(jù)新的預測事務數(shù)據(jù)大小為該事務分配共享緩存資源。
11. 根據(jù)權利要求9所述的共享緩存管理方法,其中分配共享緩存資源的步驟進一步 包括比較所述預測事務數(shù)據(jù)大小與所述共享緩存當前的可用資源; 響應于存在足夠的可用資源,為該事務分配等于預測事務數(shù)據(jù)大小的共享資源; 響應于不存在足夠的可用資源,不為該事務分配共享資源并并拒絕該事務開始, 所述方法進一步包括 控制重新開始該事務。
12. 根據(jù)權利要求9所述的共享緩存管理方法,其中預測事務數(shù)據(jù)大小的步驟進一步 包括比較所述預測事務數(shù)據(jù)大小與所述共享緩存當前的可用資源; 響應于不存在足夠的可用資源,該事務直接進入用于事務溢出的處理。
13. 根據(jù)權利要求9-12中任一權利要求所述的共享緩存管理方法,其中按照以下方式 中的任何一種或者任何組合來對事務數(shù)據(jù)大小進行預測1) 最近值預測;2) 平均值預測;3) 最大值預測;以及4) 幅度模擬預測。
14. 根據(jù)權利要求9-12中任一權利要求所述的共享緩存管理方法,其中所述事務的歷 史信息被配置為雙層軟件哈希表,其中第一層以線程標識進行索引,并且第二層以事務地 址進行索引。
15. 根據(jù)權利要求9-12中任一權利要求所述的共享緩存管理方法,其中在所述共享緩 存中為每個緩存路配置色彩寄存器,以存儲針對不同事務的色彩標記,其中以緩存路為粒度執(zhí)行預測事務大小的步驟,以及 以緩存路為粒度執(zhí)行分配共享緩存資源的步驟。
16. 根據(jù)權利要求9-12中任一權利要求所述的共享緩存管理方法,其中在所述共享緩 存中為每個緩存塊配置色彩寄存器,以存儲針對不同事務的色彩標記,其中以緩存塊為粒度執(zhí)行預測事務大小的步驟,以及 以緩存塊為粒度執(zhí)行分配共享緩存資源的步驟。
全文摘要
本發(fā)明提供一種共享緩存管理系統(tǒng)。該系統(tǒng)包括資源管理模塊,被配置為響應于事務的開始,依據(jù)預測的事務數(shù)據(jù)大小為該事務分配共享緩存資源,并且響應于該事務的成功提交,記錄該事務實際占用的共享緩存大小以更新該事務的歷史信息,其中該事務的預測的事務數(shù)據(jù)大小是由預測器在運行時中根據(jù)事務的歷史信息預測的。本發(fā)明還提供相應的共享緩存管理方法。根據(jù)本發(fā)明的技術方案能夠通過預測事務的緩存需求的大小,為多個事務動態(tài)地分配共享緩存資源。
文檔編號G06F12/08GK101739298SQ200810181608
公開日2010年6月16日 申請日期2008年11月27日 優(yōu)先權日2008年11月27日
發(fā)明者T·凱恩, 侯銳, 沈曉衛(wèi), 王華勇 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1