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

基于動靜態(tài)混合調(diào)度策略的訪存操作管理裝置及其方法

文檔序號:6597487閱讀:148來源:國知局
專利名稱:基于動靜態(tài)混合調(diào)度策略的訪存操作管理裝置及其方法
技術(shù)領(lǐng)域
本發(fā)明屬于計算機體系結(jié)構(gòu)中處理器技術(shù)領(lǐng)域,特別涉及處理器中訪存操作管理
裝置及其方法。
背景技術(shù)
在現(xiàn)代處理器體系結(jié)構(gòu)設計中,訪存部分的設計實現(xiàn)成為至關(guān)重要的一方面。之 前的設計人員在這一方面提出了許多優(yōu)化技術(shù),諸如Cache、非阻塞訪問、預取、訪存指令相 關(guān)預測等。這些技術(shù)實現(xiàn)過程中需要在訪存部件內(nèi)部緩存多條操作,以便展開有效調(diào)度,充 分利用優(yōu)化技術(shù)進行處理。 現(xiàn)有的高性能處理器通常采用完全動態(tài)的訪存操作管理方式,訪存操作在進入訪 存部件后即進入一個統(tǒng)一的動態(tài)隊列中,對其進行的調(diào)度不需要遵守操作進入訪存部件的 順序。這在一方面能夠極大限度的開發(fā)訪存操作之間的并行性,提高處理器執(zhí)行性能,但 是在另一方面,在調(diào)度的同時維護高速緩存(Cache) —致性所需要做的控制也變得更為復 雜。復雜的設計不僅會大大增加設計驗證周期的長度,也會增加處理器的資源開銷。
另一方面,傳統(tǒng)的處理器對于訪存操作管理采用了保守的靜態(tài)調(diào)度策略,所有的 訪存操作在訪存部件中被調(diào)度的順序即是它們進入訪存部件的順序。這種機制大大降低了 維護Cache —致性的實現(xiàn)復雜度,但它的弊端是無法采用更充分的性能優(yōu)化技術(shù)。
綜上,需要一種復雜度低但性能高的訪存操作管理機制。

發(fā)明內(nèi)容
本發(fā)明的目的在于,提供一種基于動靜態(tài)混合調(diào)度策略的訪存操作管理裝置及其
方法,以降低了整體的設計復雜度與實現(xiàn)開銷,同時兼顧了效率與性能。 為實現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案 —種基于動靜態(tài)混合調(diào)度策略的訪存操作管理裝置,包括 訪存類型判定部件,用于將訪存操作區(qū)分為第一類型或第二類型; 動態(tài)調(diào)度訪存部件,與所述訪存類型判定部件(1)相連接,用于接收第一類型的
訪存操作,并以動態(tài)調(diào)度策略管理第一類型的訪存操作; 靜態(tài)調(diào)度訪存部件,與所述訪存類型判定部件(1)相連接,用于接收第二類型的 訪存操作,并以靜態(tài)調(diào)度策略管理第二類型的訪存操作;
訪存失效管理部件,用于管理Cache失效訪存操作; 訪存順序維護部件,與所述動態(tài)調(diào)度訪存部件、靜態(tài)調(diào)度訪存部件和訪存失效管 理部件相連接,用于記錄并維護所述第一類型的訪存操作、第二訪存類型的訪存操作和 Cache失效訪存操作的順序關(guān)系。 進一步地,所述第一類型的訪存操作為Cache讀訪問,所述Cache讀訪問包括 Cache讀失效訪問和Cache讀命中訪問。 進一步地,所述動態(tài)調(diào)度訪存部件以隊列的方式處理訪存操作的部件,所述動態(tài)調(diào)度訪存部件中的隊列為第一隊列,所述第一隊列中存放; 所述第一隊列中的每一項包括狀態(tài)域、操作碼域、隊列號域、物理地址域、結(jié)果域 和字節(jié)準備好域。 進一步地,所述第二類型的訪存操作為對于Cache空間的寫訪問及對于非Cache 空間的讀訪問與寫訪問。 進一步地,所述靜態(tài)調(diào)度訪存部件以隊列的方式處理訪存操作的部件;所述靜態(tài) 調(diào)度訪存部件中的隊列為第二隊列,所述第二隊列中存放所述第二類型的訪存操作,所述 第二隊列中的每一項包括狀態(tài)域、操作碼域、隊列號域、物理地址域、數(shù)值域和字節(jié)寫使能 域。 進一步地,所述訪存失效管理部件以隊列的方式處理訪存操作的部件,所述訪存 失效管理部件中的隊列為第三隊列,所述第三隊列存放有Cache失效操作,所述第三隊列 中的每一項包括狀態(tài)域、失效地址域、字節(jié)使能域、數(shù)據(jù)域及返回字節(jié)數(shù)域。 本發(fā)明還提供一種基于動靜態(tài)混合調(diào)度策略的訪存操作管理方法,其特征在于包 括以下步驟 訪存類型判定步驟,用于將訪存操作區(qū)分為第一類型或第二類型; 動態(tài)調(diào)度訪存步驟,用于接收第一類型的訪存操作,并以動態(tài)調(diào)度策略管理第一
類型的訪存操作; 靜態(tài)調(diào)度訪存步驟,用于接收第二類型的訪存操作,并以靜態(tài)調(diào)度策略管理第二 類型的訪存操作; 訪存失效管理步驟,用于管理Cache失效訪存操作; 訪存順序維護步驟,用于記錄并維護所述第一類型的訪存操作、第二訪存類型的 訪存操作和Cache失效訪存操作的順序關(guān)系。 進 一 步地,所述第 一 類型的訪存操作為Cache讀訪問,所述Cache讀訪問包括 Cache讀失效訪問和Cache讀命中訪問 進一步地,所述動態(tài)調(diào)度訪存步驟中,以隊列的方式處理訪存操作,所述動態(tài)調(diào)度
訪存步驟中的隊列為第一隊列,所述第一隊列中存放所述第一類型的訪存操作。 進一步地,所述第二類型的訪存操作為對于Cache空間的寫訪問及對于非Cache
空間的讀訪問與寫訪問 進一步地,所述靜態(tài)調(diào)度訪存步驟中以隊列的方式處理訪存操作; 所述靜態(tài)調(diào)度訪存部件中的隊列為第二隊列,所述第二隊列中存放所述第二類型
的訪存操作。 進一步地,訪存失效管理步驟中以隊列的方式處理訪存操作,所述訪存失效管理 步驟中的隊列為第三隊列,所述第三隊列存放有Cache失效操作。 進一步地,當所述動態(tài)調(diào)度步驟和靜態(tài)調(diào)度步驟同時選擇出各自隊列待寫回的操 作時,動態(tài)調(diào)度隊列的操作優(yōu)先寫回。 本發(fā)明一方面繼承了動態(tài)調(diào)度的高性能優(yōu)點,另一方面通過適當引入靜態(tài)調(diào)度策 略降低了整體的設計復雜度與實現(xiàn)開銷,同時兼顧了效率與性能。
以下結(jié)合附圖及實施例進一步說明本發(fā)明。


圖1為本發(fā)明基于動靜態(tài)混合調(diào)度策略的訪存操作管理裝置具體實例結(jié)構(gòu)示意 圖。
具體實施方式

實施例一 如圖1所示,一種基于動靜態(tài)混合調(diào)度策略的訪存操作管理裝置,包括 訪存類型判定部件l,用于將訪存操作區(qū)分為第一類型或第二類型; 動態(tài)調(diào)度訪存部件2,與所述訪存類型判定部件(1)相連接,用于接收第一類型的
訪存操作,并以動態(tài)調(diào)度策略管理第一類型的訪存操作; 靜態(tài)調(diào)度訪存部件3,與所述訪存類型判定部件(1)相連接,用于接收第二類型的
訪存操作,并以靜態(tài)調(diào)度策略管理第二類型的訪存操作;
訪存失效管理部件4,用于管理Cache失效訪存操作; 訪存順序維護部件5,與所述動態(tài)調(diào)度訪存部件2、靜態(tài)調(diào)度訪存部件3和訪存失 效管理部件4相連接,用于記錄并維護所述第一類型的訪存操作、第二訪存類型的訪存操 作和Cache失效訪存操作的順序關(guān)系。 其中,所述第一類型的訪存操作和第二訪存類型的訪存操作可以根據(jù)處理器執(zhí)行 的功能及其對應的訪存類型進行優(yōu)化選擇設定。 本實施例中,所述第一類型的訪存操作為Cache讀訪問,具體包括Cache讀失效訪 問和cache讀命中訪問。 所述動態(tài)調(diào)度訪存部件2以隊列的方式處理訪存操作的部件。所述動態(tài)調(diào)度訪存 部件2中的隊列為第一隊列20,所述第一隊列20中存放所述第一類型的訪存操作。讀操 作進入該第一隊列20時,并不一定必須進入第一隊列20尾的空項,而是從上次寫入的那一 項之后開始按正向順序循環(huán)找到第一個空項寫入即可(從某項按正向順序循環(huán)查找是指, 先從這項查找至隊列尾,若沒有再從隊列頭查找至該項之前的那一項)。而從該第一隊列 20挑選出一項已完成的操作并寫回到結(jié)果總線上時,也不一定必須從隊列頭挑出,而是從 上次寫回的那一項之后開始按正向順序循環(huán)找到第一條已完成的操作將其寫回即可。本實 施例中以寫入指針和寫回指針完成該第一隊列20的操作,即寫入指針和寫回指針分別指 向最近一次新寫入的那一項和最近一次寫回的那一項,在處理器復位或例外提交后,這兩 個指針均指向該第一隊列20的最后一項,以保證第一次寫入或?qū)懟氐捻椂紡牡?項開始。
如圖1所示,本實施例中,所述第一隊列20共有8項,每一項包含狀態(tài)域、操作碼 域、隊列號域、物理地址域、結(jié)果域和字節(jié)準備好域,具體描述如下 狀態(tài)域(STATE):記錄該項的狀態(tài),共有四種BLANK表示這一項為空,沒有操作;
READY表示這一項的操作和執(zhí)行完畢可以返回結(jié)果;WAIT_BUF表示這一項的為一條Cache
寫失效操作等待進入訪存失效隊列;WAI乙RESULT表示這一項的Cache寫失效操已經(jīng)進入
訪存失效隊列,在等待結(jié)果的返回; 操作碼域(OP):記錄該項操作的操作碼; 隊列號域(QID):該項操作在重定序隊列中的隊列號; 物理地址域(ADDR):該項操作的物理地址;
結(jié)果域(VALUE):操作的結(jié)果; 字節(jié)準備好域(BRDY):操作中哪些字節(jié)已經(jīng)得到。 第一隊列20在處理器復位或例外提交后,所有項均置為BLANK狀態(tài)。Cache命中 的讀操作在進入第一隊列20時就置為READY狀態(tài),處于READY狀態(tài)的操作將不再產(chǎn)生任何 動作直到其被寫回。所有操作必須處于READY狀態(tài)才能被寫回,除進入第一隊列20就置為 READY的操作外,Cache失效讀操作在得到其所有結(jié)果后也被置為READY狀態(tài)。Cache失效 讀操作在進入第一隊列20時先被置為WAIT_BUF狀態(tài),并在訪存順序維護部件4中登記,當 它從訪存順序維護部件4中選出進入訪存失效隊列之后,其在第一隊列20中的狀態(tài)置為 WAIT_RESULT狀態(tài)。處于WAIT_BUF或WAIT_RESULT狀態(tài)的Cache失效讀操作,只要偵聽內(nèi) 存總線(mem_res)總線得到所有余下所需數(shù)值后,其狀態(tài)置為READY狀態(tài)。當操作被寫回, 或者任何處于非BLANK狀態(tài)的操作被撤銷時,它們的狀態(tài)都將被置為BLANK。
本實施例中,所述第二類型的訪存操作為對于Cache空間的寫訪問及對于非 Cache空間的讀訪問與寫訪問。所述靜態(tài)調(diào)度訪存部件3同樣以隊列的方式處理訪存操作, 所述靜態(tài)調(diào)度訪存部件3中的隊列為第二隊列30,所述第二隊列(30)中存放所述第二類型 的訪存操作。第二隊列30為一有序隊列,新的操作進入時,只能進入隊列尾的空項,只有隊 列頭的指令才能真正執(zhí)行,產(chǎn)生執(zhí)行效果后寫回。為維護該第二隊列30的有序性,本實施 例中以頭指針和尾指針兩個指針完成該第二隊列30的操作,其中,所述頭指針采用寄存器 存放,初始為第0項,每從隊列頭寫回一條操作,指針后移一項。所述尾指針根據(jù)頭指針和 第二隊列30中各項狀態(tài)計算得出,具體來說,從第二隊列30的隊列頭的前一項開始,沿第 二隊列30的反向順序,所找到連續(xù)空項序列中的最后一個空項。 如圖l所示,本實施例中所述第二隊列30共有4項,每項包括狀態(tài)域、操作碼域、 隊列號域、物理地址域、數(shù)值域和字節(jié)寫使能域,具體描述如下 狀態(tài)域(STATE):記錄該項的狀態(tài),共計六種BLANK表示這一項沒有操作;HIT
表示這一項有一條Cache寫操作當前它的操作對象在Cache中;MISS表示這一項有一條
Cache寫操作當前它的操作對象不在Cache中;WAIT_MEM表示非Cache操作等待處理器接
口部件接受其請求;WAIT_RESULT表示非Cache讀操作等待結(jié)果返回;READY表示非Cache
讀操作結(jié)果已經(jīng)返回,可以寫回; 操作碼域(OP):記錄該項操作的操作碼; 隊列號域(QID):該項操作的在重定序隊列中的隊列號; 物理地址域(ADDR):該項操作的物理地址; 數(shù)值域(VALUE):對于讀操作來說,存放操作的結(jié)果,對于寫操作,存放待寫入的 數(shù)據(jù); 字節(jié)寫使能域(BEN):寫操作需要寫入的字節(jié)的使能。 第二隊列30中的所有項在處理器復位或例外提交后,所有的項均置為BLANK狀 態(tài),所有處于非BLANK狀態(tài)的項,當其被撤銷時,也轉(zhuǎn)為BLANK狀態(tài)。 一條Cache寫操作從上 一級流水線進入第二隊列30的時候,根據(jù)其在Cache中是否命中將其置為HIT或MISS狀 態(tài)。非Cache讀操作或?qū)懖僮鬟M入第二隊列30時,其狀態(tài)均置為WAI乙MEM。所有類型的操 作必須位于第二隊列30的隊列頭方可進行下一步操作。處于HIT狀態(tài)的Cache命中寫操 作將待寫入數(shù)據(jù)寫入Cache后,從結(jié)果總線寫回,狀態(tài)置為BLANK ;處于MISS狀態(tài)的Cache不命中寫操作將其記錄至訪存失效隊列后,從結(jié)果總線寫回,狀態(tài)置為BLANK ;非Cache寫操作將其待寫數(shù)據(jù)訪問請求發(fā)送至處理器接口后,狀態(tài)置為BLANK ;非Cache讀操作將其讀訪問請求發(fā)送至處理器接口后,狀態(tài)置為WAIT_RESULT等待結(jié)果返回,當結(jié)果從處理器接口返回后,該操作寫回結(jié)果總線,狀態(tài)置為BLANK。 訪存失效管理部件4亦采用隊列(以下"第三隊列40")記錄Cache失效操作,該第三隊列40并無任何序要求,當Cache失效訪問請求需要一個新項時,從上一次寫入的那一項開始循環(huán)找到第一個空閑項即可。為此本實施例中采用一個寫入指針記錄第一個可寫入的空閑項,用寄存器實現(xiàn)。當從第三隊列40中挑選出一項送至處理器接口進行外部存儲訪問時,也利用該指針,從其所指項開始找到第一個滿足訪存條件的項。
如圖1所示,本實施例中所述第三隊列40共有5項,每項包括狀態(tài)域、失效地址
域、字節(jié)使能域、數(shù)據(jù)域及返回字節(jié)數(shù)域,具體描述如下 狀態(tài)域(STATE):記錄訪存失效隊列中各項狀態(tài),共有六個狀態(tài)BLANK表示這一項為空;VALID表示這一項已記錄了失效操作;MEM_READ表示這一項已經(jīng)發(fā)起了訪存讀請求;ALL_BACK表示這一項所需的整個Cache塊都已經(jīng)返回;REPLACE表示這一項操作準備發(fā)起Cache替換操作;REFILL表示這一項發(fā)起Cache填充操作;
失效地址域(ADDR):這一項記錄的失效訪問所對應的Cache塊物理地址;
字節(jié)使能域(BEN):字節(jié)使能,為1表示對應字節(jié)的數(shù)據(jù)已經(jīng)為最新有效數(shù)據(jù);
數(shù)據(jù)域(DATA):該項記錄的數(shù)據(jù),對應一個Cache塊;
返回字節(jié)數(shù)域(COUNT):記錄從內(nèi)存中已經(jīng)讀回的字數(shù)。 第三隊列40中所有項在處理器復位之后,均置為BLANK狀態(tài);當某個失效訪問請求申請了一個新項,該項由BLANK狀態(tài)轉(zhuǎn)為VALID狀態(tài);當處理器接口模塊能夠接受新的訪存請求時,會從訪存失效隊列中挑選一項進行內(nèi)存讀操作,這項的狀態(tài)隨后被置為MEM_READ ;當訪存失效隊列的一項開始訪問內(nèi)存以后,等到它所有的數(shù)據(jù)返回,其狀態(tài)置為ALL_BACK ;當某項處于ALL_BACK狀態(tài)且處理器接口模塊能夠接受新的訪存請求時,這一項的狀態(tài)置為REPLACE ;置為REPLACE狀態(tài)的那一項將根據(jù)隨機替換算法決定從Cache中替換出一路,隨后將狀態(tài)置為REFILL ;將數(shù)據(jù)填充之前,處于REFILL狀態(tài)的那一項在Cache替換出來的那一路上。
實施例二 基于動靜態(tài)混合調(diào)度策略的訪存操作管理方法,其特征在于包括以下步驟
動態(tài)調(diào)度訪存步驟,用于接收第一類型的訪存操作,并以動態(tài)調(diào)度策略管理第一類型的訪存操作; 靜態(tài)調(diào)度訪存步驟,用于接收第二類型的訪存操作,并以靜態(tài)調(diào)度策略管理第二類型的訪存操作; 訪存失效管理步驟,用于管理Cache失效訪存操作; 訪存順序維護步驟,用于記錄并維護所述第一類型的訪存操作、第二訪存類型的操作和Cache失效訪存操作的順序關(guān)系。 進一步地,所述動態(tài)調(diào)度訪存步驟中,以隊列的方式處理訪存操作。 本實施例中,所述第一類型的訪存操作為Cache讀訪問,所述Cache讀訪問包括
Cache讀失效訪問和cache讀命中訪問。所述動態(tài)調(diào)度訪存步驟中的隊列為第一隊列10,所述第一隊列10中管理的第一類型的訪存操作。 進一步地,所述動態(tài)調(diào)度訪存步驟中,Cache讀操作進入所述第一隊列10時,從上次寫入的那一項之后開始按正向順序循環(huán)找到第一個空項寫入;從該第一隊列10挑選出一項已完成的操作并寫回到結(jié)果總線上時,從上次寫回的那一項之后開始按正向順序循環(huán)找到第一條已完成的操作時寫回。 進一步地,所述第一隊列20中包括寫入指針和寫回指針,所述寫入指針和寫回指針分別指向最近一次新寫入的那一項和最近一次寫回的那一項,在處理器復位或例外提交后,所述寫入指針和寫回指針均指向該第一隊列10的最后一項。 進一步地,所述第一隊列20中的每一項包括狀態(tài)域、操作碼域、隊列號域、物理地址域、結(jié)果域和字節(jié)準備好域,具體為 所述狀態(tài)域,用于記錄該項的狀態(tài),共有四種BLANK表示這一項為空,沒有操作;
READY表示這一項的操作和執(zhí)行完畢可以返回結(jié)果;WAIT_BUF表示這一項的為一條Cache
寫失效操作等待進入訪存失效隊列;WAIT_RESULT表示這一項的Cache寫失效操已經(jīng)進入
訪存失效隊列,在等待結(jié)果的返回; 操作碼域,記錄該項操作的操作碼; 隊列號域,該項操作在重定序隊列中的隊列號; 物理地址域,記錄該項操作的物理地址; 結(jié)果域,記錄操作的結(jié)果; 字節(jié)準備好域,記錄操作中哪些字節(jié)已經(jīng)得到; 第一隊列20在處理器復位或例外提交后,所有項均置為BLANK狀態(tài);Cache命中的讀操作在進入第一隊列20時置為READY狀態(tài),并且Cache失效讀操作在得到其所有結(jié)果后也被置為READY狀態(tài);處于READY狀態(tài)的操作將不再產(chǎn)生任何動作直到其被寫回;所有操作必須處于READY狀態(tài)才能被寫回;Cache失效讀操作在進入第一隊列20時先被置為WAIT_BUF狀態(tài),并在所述訪存順序維護步驟中登記,當它從訪存順序維護步驟中選出進入訪存失效隊列之后,其在第一隊列20中的狀態(tài)置為WAIT_RESULT狀態(tài);處于WAIT_BUF或WAIT_RESULT狀態(tài)的Cache失效讀操作,只要偵聽內(nèi)存總線得到所有余下所需數(shù)值后,其狀態(tài)置為READY狀態(tài);當操作被寫回,或者任何處于非BLANK狀態(tài)的操作被撤銷時,其狀態(tài)均將被置為BLANK狀態(tài)。 進一步地,所述靜態(tài)調(diào)度訪存步驟中以隊列的方式處理訪存操作。
本實施例中,所述第二類型的訪存操作為對于Cache空間的寫訪問以及對于非Cache空間的讀訪問與寫訪問。所述動態(tài)調(diào)度訪存步驟中的隊列為第二隊列30,所述第二隊列30中管理的第二類型的訪存操作。 進一步地,所述第二隊列30為一有序隊列,新的操作進入時,進入隊列尾的空項,執(zhí)行的項為位于隊列頭的項,并且在產(chǎn)生執(zhí)行效果后寫回。 進一步地,所述第二隊列30采用頭指針和尾指針完成操作,所述頭指針采用寄存器存放,初始為第0項,每從隊列頭寫回一條操作,指針后移一項;所述尾指針根據(jù)頭指針和第二隊列30中各項狀態(tài)計算得出。 進一步地,所述第二隊列30中的每一項包括狀態(tài)域、操作碼域、隊列號域、物理地址域、數(shù)值域和字節(jié)寫使能域,具體為
11
狀態(tài)域記錄該項的狀態(tài),共計六種BLANK表示這一項沒有操作;HIT表示這一項有一條C ache寫操作當前它的操作對象在Cache中;MISS表示這一項有一條Cache寫操作當前它的操作對象不在Cache中;WAI乙MEM表示非Cache操作等待處理器接口部件接受其請求;WAIT_RESULT表示非Cache讀操作等待結(jié)果返回;READY表示非Cache讀操作結(jié)果已經(jīng)返回,可以寫回; 操作碼域記錄該項操作的操作碼; 隊列號域該項操作的在重定序隊列中的隊列號; 物理地址域該項操作的物理地址; 數(shù)值域?qū)τ谧x操作來說,存放操作的結(jié)果,對于寫操作,存放待寫入的數(shù)據(jù);
字節(jié)寫使能域?qū)懖僮餍枰獙懭氲淖止?jié)的使能。 第二隊列30中的所有項在處理器復位或例外提交后,所有的項均置為BLANK狀態(tài),所有處于非BLANK狀態(tài)的項,當其被撤銷時,也轉(zhuǎn)為BLANK狀態(tài);一條Cache寫操作從上一級流水線進入第二隊列30時,根據(jù)其在Cache中是否命中將其置為HIT或MISS狀態(tài);非Cache讀操作或?qū)懖僮鬟M入第二隊列30時,其狀態(tài)均置為WAIT_MEM ;只有位于所述第二隊列30的隊列頭的操作才能進行下一步操作;處于HIT狀態(tài)的Cache命中寫操作將待寫入數(shù)據(jù)寫入Cache后,從結(jié)果總線寫回,其狀態(tài)置為BLANK ;處于MISS狀態(tài)的Cache不命中寫操作將其記錄至訪存失效隊列后,從結(jié)果總線寫回,其狀態(tài)置為BLANK ;非Cache寫操作將其待寫數(shù)據(jù)訪問請求發(fā)送至處理器接口后,其狀態(tài)置為BLANK ;非Cache讀操作將其讀訪問請求發(fā)送至處理器接口后,其狀態(tài)置為WAIT_RESULT,等待結(jié)果返回,當結(jié)果從處理器接口返回后,該操作寫回結(jié)果總線,其狀態(tài)置為BLANK。 進一步地,訪存失效管理步驟中以隊列的方式處理訪存操作。 進一步地,所述訪存失效管理步驟中的隊列為第三隊列40,所述第三隊列40存放有Cache失效操作。 進一步地,所述第三隊列40中,當Cache失效訪問請求需要一個新項時,分配從上一次寫入的那一項開始循環(huán)找到第一個空閑項,從第三隊列40中挑選出第一個滿足訪存條件的項送至處理器接口進行外部存儲訪問。 進一步地,所述第三隊列40中的每一項包括狀態(tài)域、失效地址域、字節(jié)使能域、數(shù)據(jù)域及返回字節(jié)數(shù)域。 狀態(tài)域記錄訪存失效隊列中各項狀態(tài),共有六個狀態(tài)BLANK表示這一項為空;
VALID表示這一項已記錄了失效操作;MEM—READ表示這一項已經(jīng)發(fā)起了訪存讀請求;ALL_
BACK表示這一項所需的整個Cache塊都已經(jīng)返回;REPLACE表示這一項操作準備發(fā)起
Cache替換操作;REFILL表示這一項發(fā)起Cache填充操作; 失效地址域這一項記錄的失效訪問所對應的Cache塊物理地址; 字節(jié)使能域字節(jié)使能,表示對應字節(jié)的數(shù)據(jù)已經(jīng)為最新有效數(shù)據(jù); 數(shù)據(jù)域該項記錄的數(shù)據(jù),對應一個Cache塊; 返回字節(jié)數(shù)域記錄從內(nèi)存中已經(jīng)讀回的字數(shù); 所述第三隊列40中所有項在處理器復位之后,均置為BLANK狀態(tài);當某個失效訪問請求申請了 一個新項,該項由BLANK狀態(tài)轉(zhuǎn)為VALID狀態(tài);當處理器接口模塊能夠接受新的訪存請求時,從訪存失效隊列中挑選一項進行內(nèi)存讀操作,這項的狀態(tài)被置為MEM_READ ;當訪存失效隊列的一項開始訪問內(nèi)存以后,等到它所有的數(shù)據(jù)返回,其狀態(tài)置為ALL_BACK ;當某項處于ALL—BACK狀態(tài)且處理器接口模塊能夠接受新的訪存請求時,這一項的狀態(tài)置為REPLACE ;置為REPLACE狀態(tài)的項根據(jù)隨機替換算法決定從Cache中替換出一路,隨后將狀態(tài)置為REFILL ;將數(shù)據(jù)填充之前,處于REFILL狀態(tài)的那一項在Cache替換出來的那一路上。 進一步地,當動態(tài)調(diào)度步驟和靜態(tài)調(diào)度步驟同時選擇出各自隊列待寫回的操作時,動態(tài)調(diào)度隊列的操作優(yōu)先寫回。 以上所述的實施例僅用于說明本發(fā)明的技術(shù)思想及特點,其目的在于使本領(lǐng)域內(nèi)的技術(shù)人員能夠了解本發(fā)明的內(nèi)容并據(jù)以實施,不能僅以本實施例來限定本發(fā)明的專利范圍,即凡依本發(fā)明所揭示的精神所作的同等變化或修飾,仍落在本發(fā)明的專利范圍內(nèi)。
權(quán)利要求
一種基于動靜態(tài)混合調(diào)度策略的訪存操作管理裝置,其特征在于包括訪存類型判定部件(1),用于將訪存操作區(qū)分為第一類型或第二類型;動態(tài)調(diào)度訪存部件(2),與所述訪存類型判定部件(1)相連接,用于接收第一類型的訪存操作,并以動態(tài)調(diào)度策略管理第一類型的訪存操作;靜態(tài)調(diào)度訪存部件(3),與所述訪存類型判定部件(1)相連接,用于接收第二類型的訪存操作,并以靜態(tài)調(diào)度策略管理第二類型的訪存操作;訪存失效管理部件(4),用于管理Cache失效訪存操作;訪存順序維護部件(5),與所述動態(tài)調(diào)度訪存部件(2)、靜態(tài)調(diào)度訪存部件(3)和訪存失效管理部件(4)相連接,用于記錄并維護所述第一類型的訪存操作、第二訪存類型的訪存操作和Cache失效訪存操作的順序關(guān)系。
2. 根據(jù)權(quán)利要求1所述的基于動靜態(tài)混合調(diào)度策略的訪存操作管理裝置,其特征在于所述第一類型的訪存操作為Cache讀訪問,所述Cache讀訪問包括Cache讀失效訪問 和Cache讀命中訪問。
3. 根據(jù)權(quán)利要求2所述的基于動靜態(tài)混合調(diào)度策略的訪存操作管理裝置,其特征在于所述動態(tài)調(diào)度訪存部件(2)以隊列的方式處理訪存操作的部件,所述動態(tài)調(diào)度訪存部 件(2)中的隊列為第一隊列(20),所述第一隊列(20)中存放所述第一類型的訪存操作;所 述第一隊列(20)中的每一項包括狀態(tài)域、操作碼域、隊列號域、物理地址域、結(jié)果域和字 節(jié)準備好域。
4. 根據(jù)權(quán)利要求1或2或3所述的基于動靜態(tài)混合調(diào)度策略的訪存操作管理裝置,其 特征在于所述第二類型的訪存操作為對于Cache空間的寫訪問及對于非Cache空間的讀訪問與 寫訪問。
5. 根據(jù)權(quán)利要求4所述的基于動靜態(tài)混合調(diào)度策略的訪存操作管理裝置,其特征在于所述靜態(tài)調(diào)度訪存部件(3)以隊列的方式處理訪存操作的部件;所述靜態(tài)調(diào)度訪存部 件(3)中的隊列為第二隊列(30),所述第二隊列(30)中存放所述第二類型的訪存操作,所 述第二隊列(30)中的每一項包括狀態(tài)域、操作碼域、隊列號域、物理地址域、數(shù)值域和字 節(jié)寫使能域。
6. 根據(jù)權(quán)利要求5所述的基于動靜態(tài)混合調(diào)度策略的訪存操作管理裝置,其特征在于所述訪存失效管理部件(4)以隊列的方式處理訪存操作的部件,所述訪存失效管理部 件(4)中的隊列為第三隊列(40),所述第三隊列(40)存放有Cache失效操作,所述第三隊 列(40)中的每一項包括狀態(tài)域、失效地址域、字節(jié)使能域、數(shù)據(jù)域及返回字節(jié)數(shù)域。
7. —種基于動靜態(tài)混合調(diào)度策略的訪存操作管理方法,其特征在于包括以下步驟 訪存類型判定步驟,用于將訪存操作區(qū)分為第一類型或第二類型; 動態(tài)調(diào)度訪存步驟,用于接收第一類型的訪存操作,并以動態(tài)調(diào)度策略管理第一類型的訪存操作;靜態(tài)調(diào)度訪存步驟,用于接收第二類型的訪存操作,并以靜態(tài)調(diào)度策略管理第二類型 的訪存操作;訪存失效管理步驟,用于管理Cache失效訪存操作;訪存順序維護步驟,用于記錄并維護所述第一類型的訪存操作、第二訪存類型的訪存 操作和Cache失效訪存操作的順序關(guān)系。
8. 根據(jù)權(quán)利要求7所述的基于動靜態(tài)混合調(diào)度策略的訪存操作管理方法,其特征在于所述第一類型的訪存操作為Cache讀訪問,所述Cache讀訪問包括Cache讀失效訪問 和Cache讀命中訪問。
9. 根據(jù)權(quán)利要求8所述的基于動靜態(tài)混合調(diào)度策略的訪存操作管理方法,其特征在于所述動態(tài)調(diào)度訪存步驟中,以隊列的方式處理訪存操作,所述動態(tài)調(diào)度訪存步驟中的 隊列為第一隊列(20),所述第一隊列(20)中存放所述第一類型的訪存操作。
10. 根據(jù)權(quán)利要求9所述的基于動靜態(tài)混合調(diào)度策略的訪存操作管理方法,其特征在于所述第一隊列(20)中的每一項包括狀態(tài)域、操作碼域、隊列號域、物理地址域、結(jié)果域和字節(jié)準備好域,具體為所述狀態(tài)域,用于記錄該項的狀態(tài),共有四種BLANK表示這一項為空,沒有操作; READY表示這一項的操作和執(zhí)行完畢可以返回結(jié)果;WAIT_BUF表示這一項的為一條Cache 寫失效操作等待進入訪存失效隊列;WAIT_RESULT表示這一項的Cache寫失效操已經(jīng)進入 訪存失效隊列,在等待結(jié)果的返回;操作碼域,記錄該項操作的操作碼;隊列號域,該項操作在重定序隊列中的隊列號;物理地址域,記錄該項操作的物理地址;結(jié)果域,記錄操作的結(jié)果;字節(jié)準備好域,記錄操作中哪些字節(jié)已經(jīng)得到;第一隊列(20)在處理器復位或例外提交后,所有項均置為BLANK狀態(tài);Cache命中的讀操作在進入第一隊列(20)時置為READY狀態(tài),并且Cache失效讀操作在得到其所有結(jié) 果后也被置為READY狀態(tài);處于READY狀態(tài)的操作將不再產(chǎn)生任何動作直到其被寫回;所 有操作必須處于READY狀態(tài)才能被寫回;Cache失效讀操作在進入第一隊列(20)時先被置 為WAIT_BUF狀態(tài),并在所述訪存順序維護步驟中登記,當它從訪存順序維護步驟中選出進 入訪存失效隊列之后,其在第一隊列(20)中的狀態(tài)置為WAI乙RESULT狀態(tài);處于WAI乙BUF 或WAI乙RESULT狀態(tài)的Cache失效讀操作,只要偵聽內(nèi)存總線得到所有余下所需數(shù)值后,其 狀態(tài)置為READY狀態(tài);當操作被寫回,或者任何處于非BLANK狀態(tài)的操作被撤銷時,其狀態(tài) 均將被置為BLANK狀態(tài)。
11. 根據(jù)權(quán)利要求7至9中任一權(quán)利要求所述的基于動靜態(tài)混合調(diào)度策略的訪存操作 管理方法,其特征在于所述第二類型的訪存操作為對于Cache空間的寫訪問及對于非Cache空間的讀訪問與寫訪問。
12. 根據(jù)權(quán)利要求11所述的基于動靜態(tài)混合調(diào)度策略的訪存操作管理方法,其特征在于所述靜態(tài)調(diào)度訪存步驟中以隊列的方式處理訪存操作;所述靜態(tài)調(diào)度訪存部件(3)中的隊列為第二隊列(30),所述第二隊列(30)中存放所述第二類型的訪存操作。
13. 根據(jù)權(quán)利要求12所述的基于動靜態(tài)混合調(diào)度策略的訪存操作管理方法,其特征在于所述第二隊列(30)中的每一項包括狀態(tài)域、操作碼域、隊列號域、物理地址域、數(shù)值域和字節(jié)寫使能域,具體為狀態(tài)域記錄該項的狀態(tài),共計六種BLANK表示這一項沒有操作;HIT表示這一項有一條Cache寫操作當前它的操作對象在Cache中;MISS表示這一項有一條Cache寫操作當前它的操作對象不在Cache中;WAI乙MEM表示非Cache操作等待處理器接口部件接受其請求;WAIT_RESULT表示非Cache讀操作等待結(jié)果返回;READY表示非Cache讀操作結(jié)果已經(jīng)返回,可以寫回;操作碼域記錄該項操作的操作碼;隊列號域該項操作的在重定序隊列中的隊列號;物理地址域該項操作的物理地址;數(shù)值域?qū)τ谧x操作來說,存放操作的結(jié)果,對于寫操作,存放待寫入的數(shù)據(jù);字節(jié)寫使能域?qū)懖僮餍枰獙懭氲淖止?jié)的使能。第二隊列(30)中的所有項在處理器復位或例外提交后,所有的項均置為BLANK狀態(tài),所有處于非BLANK狀態(tài)的項,當其被撤銷時,也轉(zhuǎn)為BLANK狀態(tài);一條Cache寫操作第二隊列(30)時,根據(jù)其在Cache中是否命中將其置為HIT或MISS狀態(tài);非Cache讀操作或?qū)懖僮鬟M入第二隊列(30)時,其狀態(tài)均置為WAI乙MEM;只有位于所述第二隊列(30)的隊列頭的操作才能進行下一步操作;處于HIT狀態(tài)的Cache命中寫操作將待寫入數(shù)據(jù)寫入Cache后,從結(jié)果總線寫回,其狀態(tài)置為BLANK ;處于MISS狀態(tài)的Cache不命中寫操作將其記錄至訪存失效隊列后,從結(jié)果總線寫回,其狀態(tài)置為BLANK ;非Cache寫操作將其待寫數(shù)據(jù)訪問請求發(fā)送至處理器接口后,其狀態(tài)置為BLANK ;非Cache讀操作將其讀訪問請求發(fā)送至處理器接口后,其狀態(tài)置為WAI乙RESULT,等待結(jié)果返回,當結(jié)果從處理器接口返回后,該操作寫回結(jié)果總線,其狀態(tài)置為BLANK。
14. 根據(jù)權(quán)利要求12或13所述的基于動靜態(tài)混合調(diào)度策略的訪存操作管理方法,其特征在于訪存失效管理步驟中以隊列的方式處理訪存操作,所述訪存失效管理步驟中的隊列為第三隊列(40),所述第三隊列(40)存放有Cache失效操作。
15. 根據(jù)權(quán)利要求14所述的基于動靜態(tài)混合調(diào)度策略的訪存操作管理方法,其特征在于所述第三隊列(40)中的每一項包括狀態(tài)域、失效地址域、字節(jié)使能域、數(shù)據(jù)域及返回字節(jié)數(shù)域,具體為狀態(tài)域記錄訪存失效隊列中各項狀態(tài),共有六個狀態(tài)BLANK表示這一項為空;VALID 表示這一項已記錄了失效操作;MEM_READ表示這一項已經(jīng)發(fā)起了訪存讀請求;ALL_BACK表 示這一項所需的整個Cache塊都已經(jīng)返回;REPLACE表示這一項操作準備發(fā)起Cache替換 操作;REFILL表示這一項發(fā)起Cache填充操作;失效地址域這一項記錄的失效訪問所對應的Cache塊物理地址;字節(jié)使能域字節(jié)使能,表示對應字節(jié)的數(shù)據(jù)已經(jīng)為最新有效數(shù)據(jù);數(shù)據(jù)域該項記錄的數(shù)據(jù),對應一個Cache塊;返回字節(jié)數(shù)域記錄從內(nèi)存中已經(jīng)讀回的字數(shù);所述第三隊列(40)中所有項在處理器復位之后,均置為BLANK狀態(tài);當某個失效訪問 請求申請了一個新項,該項由BLANK狀態(tài)轉(zhuǎn)為VALID狀態(tài);當處理器接口模塊能夠接受新 的訪存請求時,從訪存失效隊列中挑選一項進行內(nèi)存讀操作,這項的狀態(tài)被置為MEM_READ ; 當訪存失效隊列的一項開始訪問內(nèi)存以后,等到它所有的數(shù)據(jù)返回,其狀態(tài)置為ALL_BACK ; 當某項處于ALL—BACK狀態(tài)且處理器接口模塊能夠接受新的訪存請求時,這一項的狀態(tài)置 為REPLACE ;置為REPLACE狀態(tài)的項根據(jù)隨機替換算法決定從Cache中替換出一路,隨后將 狀態(tài)置為REFILL ;將數(shù)據(jù)填充之前,處于REFILL狀態(tài)的那一項在Cache替換出來的那一路 上。
16.根據(jù)權(quán)利要求15所述的基于動靜態(tài)混合調(diào)度策略的訪存操作管理方法,其特征在于當所述動態(tài)調(diào)度步驟和靜態(tài)調(diào)度步驟同時選擇出各自隊列待寫回的操作時,動態(tài)調(diào)度 隊列的操作優(yōu)先寫回。
全文摘要
基于動靜態(tài)混合調(diào)度策略的訪存操作管理裝置及其方法,所述方法包括訪存類型判定步驟,用于將訪存操作區(qū)分為第一類型或第二類型;動態(tài)調(diào)度訪存步驟,用于接收第一類型的訪存操作,并以動態(tài)調(diào)度策略管理第一類型的訪存操作;靜態(tài)調(diào)度訪存步驟,用于接收第二類型的訪存操作,并以靜態(tài)調(diào)度策略管理第二類型的訪存操作;訪存失效管理步驟,用于管理Cache失效訪存操作;訪存順序維護步驟,用于記錄并維護所述第一類型的訪存操作、第二訪存類型的訪存操作和Cache失效訪存操作的順序關(guān)系。本發(fā)明一方面繼承了動態(tài)調(diào)度的高性能優(yōu)點,另一方面通過適當引入靜態(tài)調(diào)度策略降低了整體的設計復雜度與實現(xiàn)開銷,同時兼顧了效率與性能。
文檔編號G06F12/08GK101777027SQ20101003446
公開日2010年7月14日 申請日期2010年1月21日 優(yōu)先權(quán)日2010年1月21日
發(fā)明者徐翠萍, 李祖松, 汪文祥, 郝守青 申請人:北京龍芯中科技術(shù)服務中心有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1