欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種計算機(jī)事務(wù)存儲方法

文檔序號:6584417閱讀:132來源:國知局
專利名稱:一種計算機(jī)事務(wù)存儲方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種計算機(jī)事務(wù)存儲(transactional memory)方法,屬于計算機(jī)系統(tǒng) 結(jié)構(gòu)技術(shù)領(lǐng)域。
背景技術(shù)
根據(jù)摩爾定律,計算機(jī)處理器的性能每18至24個月增加一倍,然而,內(nèi)存的訪問 速度僅以每年7% _10%的速度增長,遠(yuǎn)遠(yuǎn)落后于處理器的增長速度。相對于處理器來說, 內(nèi)存訪問延遲以每十年5倍的速度增長,處理器與存儲器的差距不斷增加,造成了系統(tǒng)結(jié) 構(gòu)的失衡,形成了阻礙性能提升的"存儲墻",從而使得內(nèi)存訪問成為整個計算機(jī)系統(tǒng)的性 能瓶頸。 為了緩解"存儲墻"對計算機(jī)系統(tǒng)性能的影B向,需要對內(nèi)存訪問進(jìn)行優(yōu)化。降低內(nèi) 存的訪問次數(shù)是訪存優(yōu)化的一種方法。L印ak等人通過研究,觀察到由于許多寫指令寫入 內(nèi)存的值都與內(nèi)存中原有的值相同,因此這些寫指令都沒有產(chǎn)生實際效果?;谶@一觀察, L印ak等人提出了沉默存儲(silent store)結(jié)構(gòu)。在這種結(jié)構(gòu)中, 一個寫操作被轉(zhuǎn)換為三 個操作,即讀操作、比較操作和實際的寫操作(如果這個寫操作不是沉默的),這樣系統(tǒng)就 可能減少內(nèi)存的寫操作,但是這種結(jié)構(gòu)同時可能會增加讀操作的次數(shù)。
事務(wù)存儲編程模型由布朗大學(xué)的Herlihy教授于1993年提出,它的提出受到了數(shù) 據(jù)庫系統(tǒng)中事務(wù)處理的影響,使用事務(wù)的概念代替原來的臨界區(qū)。事務(wù)是只能被一個線程 執(zhí)行的一段內(nèi)存讀寫指令序列,這個序列中的讀寫操作只有兩種結(jié)果全部生效或者不起 作用。事務(wù)存儲就是支持多個事務(wù)并行執(zhí)行的一種編程模型。事務(wù)存儲具有容易編程、安 全性好、可擴(kuò)展性好及高性能的優(yōu)點,從而得到了廣泛的關(guān)注。在最近十幾年里,許多大學(xué) 和科研單位參加到事務(wù)存儲的研究之中,同時微軟、英特爾等一批公司也在積極地進(jìn)行相 關(guān)研究。 實現(xiàn)事務(wù)存儲中的版本管理(version management)是指系統(tǒng)必須同時提供空間 用于存放數(shù)據(jù)的新值(當(dāng)提交事務(wù)時會使用這些新值)和舊值(當(dāng)放棄事務(wù)時會使用這些 舊值)。威斯康星大學(xué)麥迪遜分校的Moore等人提出的基于日志的事務(wù)存儲(log-based transactionalmemory,簡稱LogTM)采用積極的版本管理方式,將數(shù)據(jù)的新值直接存放在 目標(biāo)位置,而將數(shù)據(jù)的舊值存放于可緩存的日志中,在事務(wù)放棄時用來對數(shù)據(jù)進(jìn)行恢復(fù)。當(dāng) 事務(wù)提交或放棄后,事務(wù)的日志都被丟棄,但實際上被丟棄的日志還存在于緩存中而且在 緩存中的狀態(tài)為"被修改過",在日志所在緩存行被其它行替換時,就可能造成不必要的寫 回,從而增加了內(nèi)存寫操作的次數(shù),造成了性能的下降。

發(fā)明內(nèi)容
本發(fā)明的目的是提出一種計算機(jī)事務(wù)存儲方法,以克服已有的事務(wù)存儲實現(xiàn)方法 中對日志進(jìn)行無意義的內(nèi)存寫操作的缺點。本發(fā)明提出的事務(wù)存儲方法減少了對日志的寫 內(nèi)存操作的次數(shù),緩解了處理器和內(nèi)存之間的速度差距,提高了事務(wù)存儲系統(tǒng)的性能。
本發(fā)明提出的計算機(jī)數(shù)據(jù)的事務(wù)存儲方法,包括以下步驟 (1-1)定義從對計算機(jī)內(nèi)存地址的寫操作至對該內(nèi)存地址的下一次寫操作之前的對該地址的最后一次讀指令為數(shù)據(jù)存活區(qū)間,從對計算機(jī)內(nèi)存地址的最后一次讀操作到對該內(nèi)側(cè)地址的下一次寫操作為數(shù)據(jù)消亡區(qū)間; (1-2)計算機(jī)的一個緩存行中的數(shù)據(jù)被修改過,若在該緩存行被替換時,修改的數(shù)據(jù)所在的內(nèi)存地址處于上述數(shù)據(jù)存活區(qū)間中,則將修改的數(shù)據(jù)寫回內(nèi)存中,若在緩存行被替換時,修改的數(shù)據(jù)所在的內(nèi)存地址處于上述數(shù)據(jù)消亡區(qū)間中,則修改的數(shù)據(jù)保持在緩存中; (1-3)在數(shù)據(jù)存活區(qū)間結(jié)束和數(shù)據(jù)消亡區(qū)間開始的位置,插入一條最后一次讀操作指令M,在數(shù)據(jù)消亡區(qū)間中讀操作指令已經(jīng)進(jìn)行后插入一條該數(shù)據(jù)的存活區(qū)間結(jié)束消亡區(qū)間從此開始的標(biāo)識指令N ; (1-4)當(dāng)處理器執(zhí)行讀指令M或標(biāo)識指令N時,對計算機(jī)緩存行的狀態(tài)進(jìn)行修改; (1-5)處理器在進(jìn)行事務(wù)的提交操作時,丟棄內(nèi)存中該事務(wù)所有的日志,對日志所
在的所有內(nèi)存地址,執(zhí)行數(shù)據(jù)的存活區(qū)間結(jié)束消亡區(qū)間從此開始的標(biāo)識指令N ; (1-6)處理器在進(jìn)行事務(wù)的放棄操作時,通過讀取該事務(wù)的日志,恢復(fù)內(nèi)存中被該
事務(wù)修改過的所有數(shù)據(jù)的原值,對日志所在的所有內(nèi)存地址,執(zhí)行數(shù)據(jù)的存活區(qū)間結(jié)束消
亡區(qū)間從此開始的標(biāo)識指令N。 上述事務(wù)存儲方法中,步驟(1-2)計算機(jī)的一個緩存行中的數(shù)據(jù)被修改過,若在該緩存行被替換時,修改的數(shù)據(jù)所在的內(nèi)存地址處于上述數(shù)據(jù)存活區(qū)間中,則將修改的數(shù)據(jù)寫回內(nèi)存中,若在緩存行被替換時,修改的數(shù)據(jù)所在的內(nèi)存地址處于上述數(shù)據(jù)消亡區(qū)間中,則修改的數(shù)據(jù)保持在緩存中,其過程如下 (2-1)計算機(jī)的緩存為一級,若緩存行被替換時被修改的數(shù)據(jù)所在的內(nèi)存地址處
于所述的數(shù)據(jù)存活區(qū)間中,則將被修改的數(shù)據(jù)寫回內(nèi)存中,若在緩存行被替換時被修改的
數(shù)據(jù)所在的內(nèi)存地址處于所述的數(shù)據(jù)消亡區(qū)間中,則被修改的數(shù)據(jù)保持在緩存中; (2-2)計算機(jī)的緩存為兩級,其中一級為寫直達(dá)方式,二級為寫回方式,且二級緩
存的緩存行中的數(shù)據(jù)被修改過,若二級緩存行被替換時緩存行中被修改的數(shù)據(jù)所在的內(nèi)存
地址處于所述的數(shù)據(jù)存活區(qū)間中,則將被修改的數(shù)據(jù)寫回內(nèi)存中,若二級緩存行被替換時
緩存行中被修改的數(shù)據(jù)所在的內(nèi)存地址處于所述的消亡區(qū)間中,則被修改的數(shù)據(jù)保持在緩
存中; (2-3)計算機(jī)的緩存有兩級,其中一級和二級同時為寫回方式,若一級緩存的緩存行中的數(shù)據(jù)被修改過,則當(dāng)該一級緩存行被替換時,若一級緩存行被替換時緩存行中被修改的數(shù)據(jù)所在的內(nèi)存地址處于所述的數(shù)據(jù)存活區(qū)間中,則將被修改的數(shù)據(jù)寫回內(nèi)存中,若一級緩存行被替換時緩存行中被修改的數(shù)據(jù)所在的內(nèi)存地址處于所述的消亡區(qū)間中,則被修改的數(shù)據(jù)保持在緩存中;若二級緩存行被替換時緩存行中被修改的數(shù)據(jù)所在的內(nèi)存地址處于所述的數(shù)據(jù)存活區(qū)間中,則將被修改的數(shù)據(jù)寫回內(nèi)存中,若二級緩存行被替換時緩存行中被修改的數(shù)據(jù)所在的內(nèi)存地址處于所述的消亡區(qū)間中,則被修改的數(shù)據(jù)保持在緩存中。 上述事務(wù)存儲方法中,步驟(1-4)當(dāng)處理器執(zhí)行讀指令M或標(biāo)識指令N時,對計算機(jī)緩存行的狀態(tài)進(jìn)行修改的方法,包括以下步驟
(3-1)計算機(jī)的緩存為一級,計算機(jī)處理器執(zhí)行最后一次讀操作指令M或數(shù)據(jù)的 存活區(qū)間結(jié)束消亡區(qū)間從此開始的標(biāo)識指令N時,若與指令的內(nèi)存地址相對應(yīng)的緩存行 的狀態(tài)為"緩存行中的數(shù)據(jù)被修改過",則將該緩存行狀態(tài)修改為"緩存行中的數(shù)據(jù)未修改 過",若與指令的內(nèi)存地址相對應(yīng)的緩存行的狀態(tài)為"緩存行中的數(shù)據(jù)未被修改過",則不作 修改; (3-2)計算機(jī)的緩存未兩級,其中一級為寫直達(dá)方式,二級為寫回方式,計算機(jī)處 理器執(zhí)行最后一次讀操作指令M或數(shù)據(jù)的存活區(qū)間結(jié)束消亡區(qū)間從此開始的標(biāo)識指令N 時,若與指令的內(nèi)存地址相對應(yīng)的二級緩存行的狀態(tài)為"緩存行中的數(shù)據(jù)被修改過",則將 該緩存行狀態(tài)修改為"緩存行中的數(shù)據(jù)未修改過",若與指令的內(nèi)存地址相對應(yīng)的二級緩存 行的狀態(tài)為"緩存行中的數(shù)據(jù)未被修改過",則不作修改; (3-3)計算機(jī)的緩存為兩級,其中一級和二級同時為寫回方式,計算機(jī)處理器執(zhí) 行最后一次讀操作指令M或數(shù)據(jù)的存活區(qū)間結(jié)束消亡區(qū)間從此開始的標(biāo)識指令N時,若與 指令的內(nèi)存地址相對應(yīng)的一級緩存行的狀態(tài)為"緩存行中的數(shù)據(jù)被修改過",則將該緩存行 狀態(tài)修改為"緩存行中的數(shù)據(jù)未修改過",若與指令的內(nèi)存地址相對應(yīng)的一級緩存行的狀態(tài) 為"緩存行中的數(shù)據(jù)未被修改過",則不作修改;若與指令的內(nèi)存地址相對應(yīng)的二級緩存行 的狀態(tài)為"緩存行中的數(shù)據(jù)被修改過",則將該緩存行狀態(tài)修改為"緩存行中的數(shù)據(jù)未修改 過",若與指令的內(nèi)存地址相對應(yīng)的二級緩存行的狀態(tài)為"緩存行中的數(shù)據(jù)未被修改過",則 不作修改。 本發(fā)明提出的計算機(jī)事務(wù)存儲方法,其優(yōu)點是減少了對日志的寫內(nèi)存操作的次 數(shù),緩解了處理器與內(nèi)存之間的速度差距,提高了事務(wù)存儲系統(tǒng)的性能。


圖1本發(fā)明方法中定義的數(shù)據(jù)存活區(qū)間和消亡區(qū)間的定義示意圖。
具體實施例方式本發(fā)明提出的計算機(jī)數(shù)據(jù)的事務(wù)存儲方法,包括以下步驟 (1-1)定義從對計算機(jī)內(nèi)存地址的寫操作至對該內(nèi)存地址的下一次寫操作之前 的對該地址的最后一次讀指令為數(shù)據(jù)存活區(qū)間,從對計算機(jī)內(nèi)存地址的最后一次讀操作到 對該內(nèi)側(cè)地址的下一次寫操作為數(shù)據(jù)消亡區(qū)間,如圖1所示; (1-2)計算機(jī)的一個緩存行中的數(shù)據(jù)被修改過,若在該緩存行被替換時,修改的數(shù) 據(jù)所在的內(nèi)存地址處于上述數(shù)據(jù)存活區(qū)間中,則將修改的數(shù)據(jù)寫回內(nèi)存中,若在緩存行被 替換時,修改的數(shù)據(jù)所在的內(nèi)存地址處于上述數(shù)據(jù)消亡區(qū)間中,則修改的數(shù)據(jù)保持在緩存 中; (1-3)在數(shù)據(jù)存活區(qū)間結(jié)束和數(shù)據(jù)消亡區(qū)間開始的位置,插入一條最后一次讀操 作指令M,在數(shù)據(jù)消亡區(qū)間中讀操作指令已經(jīng)進(jìn)行后插入一條該數(shù)據(jù)的存活區(qū)間結(jié)束消亡 區(qū)間從此開始的標(biāo)識指令N ; (1-4)當(dāng)處理器執(zhí)行讀指令M或標(biāo)識指令N時,對計算機(jī)緩存行的狀態(tài)進(jìn)行修改;
(1-5)處理器在進(jìn)行事務(wù)的提交操作時,丟棄內(nèi)存中該事務(wù)所有的日志,對日志所 在的所有內(nèi)存地址,執(zhí)行數(shù)據(jù)的存活區(qū)間結(jié)束消亡區(qū)間從此開始的標(biāo)識指令N ;
(1-6)處理器在進(jìn)行事務(wù)的放棄操作時,通過讀取該事務(wù)的日志,恢復(fù)內(nèi)存中被該事務(wù)修改過的所有數(shù)據(jù)的原值,對日志所在的所有內(nèi)存地址,執(zhí)行數(shù)據(jù)的存活區(qū)間結(jié)束消亡區(qū)間從此開始的標(biāo)識指令N。 上述事務(wù)存儲方法中,步驟(1-2)計算機(jī)的一個緩存行中的數(shù)據(jù)被修改過,若在該緩存行被替換時,修改的數(shù)據(jù)所在的內(nèi)存地址處于上述數(shù)據(jù)存活區(qū)間中,則將修改的數(shù)據(jù)寫回內(nèi)存中,若在緩存行被替換時,修改的數(shù)據(jù)所在的內(nèi)存地址處于上述數(shù)據(jù)消亡區(qū)間中,則修改的數(shù)據(jù)保持在緩存中,其過程如下 (2-1)計算機(jī)的緩存為一級,若緩存行被替換時被修改的數(shù)據(jù)所在的內(nèi)存地址處
于所述的數(shù)據(jù)存活區(qū)間中,則將被修改的數(shù)據(jù)寫回內(nèi)存中,若在緩存行被替換時被修改的
數(shù)據(jù)所在的內(nèi)存地址處于所述的數(shù)據(jù)消亡區(qū)間中,則被修改的數(shù)據(jù)保持在緩存中; (2-2)計算機(jī)的緩存為兩級,其中一級為寫直達(dá)方式,二級為寫回方式,且二級緩
存的緩存行中的數(shù)據(jù)被修改過,若二級緩存行被替換時緩存行中被修改的數(shù)據(jù)所在的內(nèi)存
地址處于所述的數(shù)據(jù)存活區(qū)間中,則將被修改的數(shù)據(jù)寫回內(nèi)存中,若二級緩存行被替換時
緩存行中被修改的數(shù)據(jù)所在的內(nèi)存地址處于所述的消亡區(qū)間中,則被修改的數(shù)據(jù)保持在緩
存中; (2-3)計算機(jī)的緩存有兩級,其中一級和二級同時為寫回方式,若一級緩存的緩存行中的數(shù)據(jù)被修改過,則當(dāng)該一級緩存行被替換時,若一級緩存行被替換時緩存行中被修改的數(shù)據(jù)所在的內(nèi)存地址處于所述的數(shù)據(jù)存活區(qū)間中,則將被修改的數(shù)據(jù)寫回內(nèi)存中,若一級緩存行被替換時緩存行中被修改的數(shù)據(jù)所在的內(nèi)存地址處于所述的消亡區(qū)間中,則被修改的數(shù)據(jù)保持在緩存中;若二級緩存行被替換時緩存行中被修改的數(shù)據(jù)所在的內(nèi)存地址處于所述的數(shù)據(jù)存活區(qū)間中,則將被修改的數(shù)據(jù)寫回內(nèi)存中,若二級緩存行被替換時緩存行中被修改的數(shù)據(jù)所在的內(nèi)存地址處于所述的消亡區(qū)間中,則被修改的數(shù)據(jù)保持在緩存中。 上述事務(wù)存儲方法中,步驟(1-4)當(dāng)處理器執(zhí)行讀指令M或標(biāo)識指令N時,對計算機(jī)緩存行的狀態(tài)進(jìn)行修改的方法,包括以下步驟 (3-1)計算機(jī)的緩存為一級,計算機(jī)處理器執(zhí)行最后一次讀操作指令M或數(shù)據(jù)的存活區(qū)間結(jié)束消亡區(qū)間從此開始的標(biāo)識指令N時,若與指令的內(nèi)存地址相對應(yīng)的緩存行的狀態(tài)為"緩存行中的數(shù)據(jù)被修改過",則將該緩存行狀態(tài)修改為"緩存行中的數(shù)據(jù)未修改過",若與指令的內(nèi)存地址相對應(yīng)的緩存行的狀態(tài)為"緩存行中的數(shù)據(jù)未被修改過",則不作修改; (3-2)計算機(jī)的緩存未兩級,其中一級為寫直達(dá)方式,二級為寫回方式,計算機(jī)處理器執(zhí)行最后一次讀操作指令M或數(shù)據(jù)的存活區(qū)間結(jié)束消亡區(qū)間從此開始的標(biāo)識指令N時,若與指令的內(nèi)存地址相對應(yīng)的二級緩存行的狀態(tài)為"緩存行中的數(shù)據(jù)被修改過",則將該緩存行狀態(tài)修改為"緩存行中的數(shù)據(jù)未修改過",若與指令的內(nèi)存地址相對應(yīng)的二級緩存行的狀態(tài)為"緩存行中的數(shù)據(jù)未被修改過",則不作修改; (3-3)計算機(jī)的緩存為兩級,其中一級和二級同時為寫回方式,計算機(jī)處理器執(zhí)行最后一次讀操作指令M或數(shù)據(jù)的存活區(qū)間結(jié)束消亡區(qū)間從此開始的標(biāo)識指令N時,若與指令的內(nèi)存地址相對應(yīng)的一級緩存行的狀態(tài)為"緩存行中的數(shù)據(jù)被修改過",則將該緩存行狀態(tài)修改為"緩存行中的數(shù)據(jù)未修改過",若與指令的內(nèi)存地址相對應(yīng)的一級緩存行的狀態(tài)為"緩存行中的數(shù)據(jù)未被修改過",則不作修改;若與指令的內(nèi)存地址相對應(yīng)的二級緩存行 的狀態(tài)為"緩存行中的數(shù)據(jù)被修改過",則將該緩存行狀態(tài)修改為"緩存行中的數(shù)據(jù)未修改 過",若與指令的內(nèi)存地址相對應(yīng)的二級緩存行的狀態(tài)為"緩存行中的數(shù)據(jù)未被修改過",則 不作修改。
權(quán)利要求
一種計算機(jī)事務(wù)存儲方法,其特征在于該方法包括以下步驟(1-1)定義從對計算機(jī)內(nèi)存地址的寫操作至對該內(nèi)存地址的下一次寫操作之前的對該地址的最后一次讀指令為數(shù)據(jù)存活區(qū)間,從對計算機(jī)內(nèi)存地址的最后一次讀操作到對該內(nèi)側(cè)地址的下一次寫操作為數(shù)據(jù)消亡區(qū)間;(1-2)計算機(jī)的一個緩存行中的數(shù)據(jù)被修改過,若在該緩存行被替換時,修改的數(shù)據(jù)所在的內(nèi)存地址處于上述數(shù)據(jù)存活區(qū)間中,則將修改的數(shù)據(jù)寫回內(nèi)存中,若在緩存行被替換時,修改的數(shù)據(jù)所在的內(nèi)存地址處于上述數(shù)據(jù)消亡區(qū)間中,則修改的數(shù)據(jù)保持在緩存中;(1-3)在數(shù)據(jù)存活區(qū)間結(jié)束和數(shù)據(jù)消亡區(qū)間開始的位置,插入一條最后一次讀操作指令M,在數(shù)據(jù)消亡區(qū)間中讀操作指令已經(jīng)進(jìn)行后插入一條該數(shù)據(jù)的存活區(qū)間結(jié)束消亡區(qū)間從此開始的標(biāo)識指令N;(1-4)當(dāng)處理器執(zhí)行讀指令M或標(biāo)識指令N時,對計算機(jī)緩存行的狀態(tài)進(jìn)行修改;(1-5)處理器在進(jìn)行事務(wù)的提交操作時,丟棄內(nèi)存中該事務(wù)所有的日志,對日志所在的所有內(nèi)存地址,執(zhí)行數(shù)據(jù)的存活區(qū)間結(jié)束消亡區(qū)間從此開始的標(biāo)識指令N;(1-6)處理器在進(jìn)行事務(wù)的放棄操作時,通過讀取該事務(wù)的日志,恢復(fù)內(nèi)存中被該事務(wù)修改過的所有數(shù)據(jù)的原值,對日志所在的所有內(nèi)存地址,執(zhí)行數(shù)據(jù)的存活區(qū)間結(jié)束消亡區(qū)間從此開始的標(biāo)識指令N。
2. 如權(quán)利要求l所述的方法,其特征在于其中所述的步驟(1-2)計算機(jī)的一個緩存行 中的數(shù)據(jù)被修改過,若在該緩存行被替換時,修改的數(shù)據(jù)所在的內(nèi)存地址處于上述數(shù)據(jù)存 活區(qū)間中,則將修改的數(shù)據(jù)寫回內(nèi)存中,若在緩存行被替換時,修改的數(shù)據(jù)所在的內(nèi)存地址 處于上述數(shù)據(jù)消亡區(qū)間中,則修改的數(shù)據(jù)保持在緩存中,其過程如下(2-1)計算機(jī)的緩存為一級,若緩存行被替換時被修改的數(shù)據(jù)所在的內(nèi)存地址處于所 述的數(shù)據(jù)存活區(qū)間中,則將被修改的數(shù)據(jù)寫回內(nèi)存中,若在緩存行被替換時被修改的數(shù)據(jù) 所在的內(nèi)存地址處于所述的數(shù)據(jù)消亡區(qū)間中,則被修改的數(shù)據(jù)保持在緩存中;(2-2)計算機(jī)的緩存為兩級,其中一級為寫直達(dá)方式,二級為寫回方式,且二級緩存的 緩存行中的數(shù)據(jù)被修改過,若二級緩存行被替換時緩存行中被修改的數(shù)據(jù)所在的內(nèi)存地址 處于所述的數(shù)據(jù)存活區(qū)間中,則將被修改的數(shù)據(jù)寫回內(nèi)存中,若二級緩存行被替換時緩存 行中被修改的數(shù)據(jù)所在的內(nèi)存地址處于所述的消亡區(qū)間中,則被修改的數(shù)據(jù)保持在緩存 中;(2-3)計算機(jī)的緩存有兩級,其中一級和二級同時為寫回方式,若一級緩存的緩存行中 的數(shù)據(jù)被修改過,則當(dāng)該一級緩存行被替換時,若一級緩存行被替換時緩存行中被修改的 數(shù)據(jù)所在的內(nèi)存地址處于所述的數(shù)據(jù)存活區(qū)間中,則將被修改的數(shù)據(jù)寫回內(nèi)存中,若一級 緩存行被替換時緩存行中被修改的數(shù)據(jù)所在的內(nèi)存地址處于所述的消亡區(qū)間中,則被修改 的數(shù)據(jù)保持在緩存中;若二級緩存行被替換時緩存行中被修改的數(shù)據(jù)所在的內(nèi)存地址處于 所述的數(shù)據(jù)存活區(qū)間中,則將被修改的數(shù)據(jù)寫回內(nèi)存中,若二級緩存行被替換時緩存行中 被修改的數(shù)據(jù)所在的內(nèi)存地址處于所述的消亡區(qū)間中,則被修改的數(shù)據(jù)保持在緩存中。
3. 如權(quán)利要求l所述的方法,其特征在于其中所述的步驟(1-4)當(dāng)處理器執(zhí)行讀指令 M或標(biāo)識指令N時,對計算機(jī)緩存行的狀態(tài)進(jìn)行修改的方法,包括以下步驟(3-1)計算機(jī)的緩存為一級,計算機(jī)處理器執(zhí)行最后一次讀操作指令M或數(shù)據(jù)的存活 區(qū)間結(jié)束消亡區(qū)間從此開始的標(biāo)識指令N時,若與指令的內(nèi)存地址相對應(yīng)的緩存行的狀態(tài)為"緩存行中的數(shù)據(jù)被修改過",則將該緩存行狀態(tài)修改為"緩存行中的數(shù)據(jù)未修改過",若與指令的內(nèi)存地址相對應(yīng)的緩存行的狀態(tài)為"緩存行中的數(shù)據(jù)未被修改過",則不作修改;(3-2)計算機(jī)的緩存未兩級,其中一級為寫直達(dá)方式,二級為寫回方式,計算機(jī)處理器執(zhí)行最后一次讀操作指令M或數(shù)據(jù)的存活區(qū)間結(jié)束消亡區(qū)間從此開始的標(biāo)識指令N時,若與指令的內(nèi)存地址相對應(yīng)的二級緩存行的狀態(tài)為"緩存行中的數(shù)據(jù)被修改過",則將該緩存行狀態(tài)修改為"緩存行中的數(shù)據(jù)未修改過",若與指令的內(nèi)存地址相對應(yīng)的二級緩存行的狀態(tài)為"緩存行中的數(shù)據(jù)未被修改過",則不作修改;(3-3)計算機(jī)的緩存為兩級,其中一級和二級同時為寫回方式,計算機(jī)處理器執(zhí)行最后一次讀操作指令M或數(shù)據(jù)的存活區(qū)間結(jié)束消亡區(qū)間從此開始的標(biāo)識指令N時,若與指令的內(nèi)存地址相對應(yīng)的一級緩存行的狀態(tài)為"緩存行中的數(shù)據(jù)被修改過",則將該緩存行狀態(tài)修改為"緩存行中的數(shù)據(jù)未修改過",若與指令的內(nèi)存地址相對應(yīng)的一級緩存行的狀態(tài)為"緩存行中的數(shù)據(jù)未被修改過",則不作修改;若與指令的內(nèi)存地址相對應(yīng)的二級緩存行的狀態(tài)為"緩存行中的數(shù)據(jù)被修改過",則將該緩存行狀態(tài)修改為"緩存行中的數(shù)據(jù)未修改過",若與指令的內(nèi)存地址相對應(yīng)的二級緩存行的狀態(tài)為"緩存行中的數(shù)據(jù)未被修改過",則不作修改。
全文摘要
本發(fā)明涉及一種計算機(jī)事務(wù)存儲方法,屬于計算機(jī)系統(tǒng)結(jié)構(gòu)技術(shù)領(lǐng)域。本發(fā)明方法中,首先定義數(shù)據(jù)存活區(qū)間和消亡區(qū)間。通過增加指令,標(biāo)識出數(shù)據(jù)存活區(qū)間和數(shù)據(jù)消亡區(qū)間的位置。當(dāng)數(shù)據(jù)從緩存中被替換出時,如果處于數(shù)據(jù)消亡區(qū)間,即使數(shù)據(jù)被修改過,也不再將其寫回內(nèi)存,從而有效降低了寫內(nèi)存的次數(shù)。本發(fā)明將如上所述的緩存方法應(yīng)用于事務(wù)存儲系統(tǒng),對于事務(wù)存儲系統(tǒng)存放在緩存中的日志,在事務(wù)被提交或放棄之后,不將其寫入內(nèi)存,從而減少內(nèi)存寫操作,緩解了處理器與內(nèi)存之間的速度差距,提高了事務(wù)存儲系統(tǒng)的性能。
文檔編號G06F12/08GK101699412SQ20091023572
公開日2010年4月28日 申請日期2009年10月15日 優(yōu)先權(quán)日2009年10月15日
發(fā)明者汪東升, 王海霞, 郭三川 申請人:清華大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
哈尔滨市| 高州市| 乌拉特后旗| 北川| 顺昌县| 平江县| 斗六市| 南华县| 平和县| 宽城| 广汉市| 黑水县| 墨脱县| 璧山县| 宿州市| 邳州市| 太仆寺旗| 泉州市| 安平县| 定西市| 嘉义县| 新晃| 信阳市| 瓦房店市| 桐梓县| 含山县| 普兰县| 调兵山市| 陈巴尔虎旗| 光泽县| 县级市| 文山县| 盈江县| 呼伦贝尔市| 五台县| 阳新县| 车致| 东乌| 合肥市| 广昌县| 游戏|