專(zhuān)利名稱:一種細(xì)粒度內(nèi)存訪問(wèn)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)技術(shù)領(lǐng)域,特別是涉及一種細(xì)粒度內(nèi)存訪問(wèn)的方法。
背景技術(shù):
計(jì)算機(jī)內(nèi)存的性能提升速度遠(yuǎn)遠(yuǎn)落后于處理器性能提升的速度。相對(duì)于處理器來(lái)說(shuō),內(nèi)存訪問(wèn)延遲以每十年5倍的速度增長(zhǎng),這種系統(tǒng)結(jié)構(gòu)的失衡,形成了阻礙處理器性能提升的“存儲(chǔ)墻”,從而使得內(nèi)存系統(tǒng)成為整個(gè)計(jì)算機(jī)系統(tǒng)的性能瓶頸之一。為了解決這一問(wèn)題,很多新的內(nèi)存技術(shù)被提出來(lái),細(xì)粒度內(nèi)存訪問(wèn)就是其中之一。細(xì)粒度內(nèi)存訪問(wèn)可以精確控制每一片存儲(chǔ)芯片,還可以避免額外的讀寫(xiě),節(jié)省帶寬。目前的細(xì)粒度內(nèi)存訪問(wèn)機(jī)制集中在DRAM(動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)實(shí)現(xiàn)上,目的是為了更好地在多核處理器環(huán)境下挖掘空間局部性來(lái)提高內(nèi)存訪問(wèn)的效率,效果都不理想。而對(duì)于NAND-FLASH、相變內(nèi)存等具有寫(xiě)損耗的器件,現(xiàn)有的內(nèi)存訪問(wèn)方法都不能減少其損耗。
發(fā)明內(nèi)容
(一)要解決的技術(shù)問(wèn)題本發(fā)明首先要解決的技術(shù)問(wèn)題是如何避免內(nèi)存訪問(wèn)過(guò)程中的無(wú)效傳輸。(二)技術(shù)方案為了解決上述技術(shù)問(wèn)題,本發(fā)明提供一種細(xì)粒度內(nèi)存訪問(wèn)的方法,包括以下步驟S1、按照如下方式定義細(xì)粒度高速緩存臟位圖所述細(xì)粒度高速緩存臟位圖使用一個(gè)或多個(gè)比特位標(biāo)識(shí)高速緩存數(shù)據(jù)區(qū)的一行中的一個(gè)或多個(gè)8比特存儲(chǔ)單元的內(nèi)容是否與讀入時(shí)的初始值不同;所述高速緩存數(shù)據(jù)區(qū)是沒(méi)有寫(xiě)損耗或者具有寫(xiě)損耗的存儲(chǔ)器件的數(shù)據(jù)區(qū);S2、按照如下方式定義零值位圖所述零值位圖使用一個(gè)或多個(gè)比特位標(biāo)識(shí)內(nèi)存中的一個(gè)或多個(gè)8比特存儲(chǔ)單元內(nèi)的數(shù)據(jù)是否為零;S3、按照如下方式定義內(nèi)存行在內(nèi)存中,多個(gè)易失或非易失存儲(chǔ)芯片通過(guò)共享讀寫(xiě)地址來(lái)增加每個(gè)地址上能存儲(chǔ)的數(shù)據(jù),每個(gè)讀寫(xiě)地址對(duì)應(yīng)的存儲(chǔ)空間為一個(gè)內(nèi)存行,所述內(nèi)存行由8個(gè)或更多個(gè)I字節(jié)位寬的存儲(chǔ)芯片構(gòu)成;所述內(nèi)存是具有所述沒(méi)有寫(xiě)損耗或者具有與損耗的存儲(chǔ)器件的內(nèi)存;S4、利用所述細(xì)粒度高速緩存臟位圖實(shí)現(xiàn)高速緩存數(shù)據(jù)區(qū)的讀寫(xiě);S5、利用所述零值位圖和內(nèi)存行實(shí)現(xiàn)內(nèi)存的讀寫(xiě)。優(yōu)選地,步驟S4具體為當(dāng)所述高速緩存數(shù)據(jù)區(qū)的一行數(shù)據(jù)被讀入時(shí),初始的細(xì)粒度高速緩存臟位圖中的比特位視為全0或全I(xiàn) ;當(dāng)所述高速緩存數(shù)據(jù)區(qū)的一行數(shù)據(jù)被更新時(shí),按照字節(jié)比較新的數(shù)據(jù)與原有數(shù)據(jù),根據(jù)二者是否相同來(lái)修改所述細(xì)粒度高速緩存臟位圖中的內(nèi)容;
當(dāng)所述高速緩存數(shù)據(jù)區(qū)的一行數(shù)據(jù)被替換出時(shí),若所述細(xì)粒度高速緩存臟位圖中的比特位標(biāo)識(shí)高速緩存數(shù)據(jù)區(qū)的數(shù)據(jù)沒(méi)有變化,則丟棄被替換出的數(shù)據(jù),否則根據(jù)所述細(xì)粒度高速緩存臟位圖中的比特位,將所述高速緩存數(shù)據(jù)區(qū)中有修改的字節(jié)中的內(nèi)容寫(xiě)入內(nèi)存。優(yōu)選地,步驟S5具體為根據(jù)所述細(xì)粒度高速緩存臟位圖中的比特位和地址,將所述高速緩存數(shù)據(jù)區(qū)中被替換出的行發(fā)送給內(nèi)存中相應(yīng)內(nèi)存行的存儲(chǔ)芯片;當(dāng)內(nèi)存被讀取時(shí),根據(jù)零值位圖中相應(yīng)的比特位,只發(fā)送不為零的數(shù)據(jù),對(duì)于未發(fā)送的數(shù)據(jù),在目的地填充零;當(dāng)數(shù)據(jù)寫(xiě)入到內(nèi)存時(shí),根據(jù)寫(xiě)入內(nèi)存的數(shù)據(jù)生成對(duì)應(yīng)于零值位圖中的比特位,并使用所生成的比特位更新零值位圖。優(yōu)選地,所述細(xì)粒度高速緩存臟位圖的大小為高速緩存數(shù)據(jù)區(qū)大小的1/8。優(yōu)選地,所述零值位圖的大小為所述內(nèi)存大小的1/8。優(yōu)選地,所述內(nèi)存行為64比特或更高位寬。(三)有益效果上述技術(shù)方案具有如下優(yōu)點(diǎn)通過(guò)在字節(jié)這一級(jí)別標(biāo)識(shí)被修改的數(shù)據(jù)和零值數(shù)據(jù)來(lái)避免無(wú)效傳輸,因此降低了高速緩存數(shù)據(jù)區(qū)到內(nèi)存的帶寬占用,降低了額外寫(xiě)入的開(kāi)銷(xiāo);另外,對(duì)于寫(xiě)損耗的存儲(chǔ)器件,該方法可以減少其平均寫(xiě)入次數(shù),延長(zhǎng)其壽命,同時(shí)降低功耗。
圖1是本發(fā)明的方法流程圖;圖2是本發(fā)明的方法中定義的細(xì)粒度內(nèi)存訪問(wèn)架構(gòu)的示意圖;圖3是定義的細(xì)粒度聞速緩存臟位圖不意圖;圖4是定義的零值位圖的示意圖;圖5是細(xì)粒度內(nèi)存訪問(wèn)架構(gòu)的寫(xiě)過(guò)程; 圖6是圖5細(xì)粒度內(nèi)存訪問(wèn)架構(gòu)的讀過(guò)程。
具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的具體實(shí)施方式
作進(jìn)一步詳細(xì)描述。以下實(shí)施例用于說(shuō)明本發(fā)明,但不用來(lái)限制本發(fā)明的范圍。如圖1、圖2所示,本發(fā)明提供一種細(xì)粒度內(nèi)存訪問(wèn)的方法,包括以下步驟S1、按照如下方式定義細(xì)粒度高速緩存臟位圖所述細(xì)粒度高速緩存臟位圖使用一個(gè)或多個(gè)比特位標(biāo)識(shí)高速緩存數(shù)據(jù)區(qū)的一行中的一個(gè)或多個(gè)8比特存儲(chǔ)單元的內(nèi)容是否與讀入時(shí)的初始值不同,也就是說(shuō)被寫(xiě)入過(guò)與原來(lái)不同的值;所述高速緩存數(shù)據(jù)區(qū)是具有寫(xiě)損耗的存儲(chǔ)器件(也可以是沒(méi)有寫(xiě)損耗的存儲(chǔ)器件)的數(shù)據(jù)區(qū);如圖3所示。圖3中,細(xì)粒度高速緩存臟位圖的每個(gè)比特標(biāo)識(shí)高速緩存數(shù)據(jù)區(qū)的8比特?cái)?shù)據(jù)。S2、按照如下方式定義零值位圖所述零值位圖使用一個(gè)或多個(gè)比特位標(biāo)識(shí)內(nèi)存中的一個(gè)或多個(gè)8比特存儲(chǔ)單元內(nèi)的數(shù)據(jù)是否為零;如圖4所示。圖4中,每一位標(biāo)識(shí)內(nèi)存行中的一個(gè)8比特存儲(chǔ)單元。S3、按照如下方式定義內(nèi)存行在內(nèi)存中,多個(gè)易失或非易失存儲(chǔ)芯片通過(guò)共享讀寫(xiě)地址來(lái)增加每個(gè)地址上能存儲(chǔ)的數(shù)據(jù),每個(gè)讀寫(xiě)地址對(duì)應(yīng)的存儲(chǔ)空間為一個(gè)內(nèi)存行,為64比特位寬,所述內(nèi)存行由8個(gè)或更多個(gè)8比特位寬的存儲(chǔ)芯片構(gòu)成,零值位圖存儲(chǔ)在額外的存儲(chǔ)芯片中;所述內(nèi)存是具有所述寫(xiě)損耗的存儲(chǔ)器件(也可以是沒(méi)有寫(xiě)損耗的存儲(chǔ)器件)的內(nèi)存;S4、利用所述細(xì)粒度高速緩存臟位圖實(shí)現(xiàn)高速緩存數(shù)據(jù)區(qū)的讀寫(xiě);步驟S4是高速緩存數(shù)據(jù)區(qū)的讀寫(xiě)規(guī)則。S5、利用所述零值位圖和內(nèi)存行實(shí)現(xiàn)內(nèi)存的讀寫(xiě)。步驟S5描述了內(nèi)存讀寫(xiě)的規(guī)貝U。高速緩存數(shù)據(jù)區(qū)替換出來(lái)的數(shù)據(jù)是內(nèi)存數(shù)據(jù)的來(lái)源之一。同時(shí),內(nèi)存數(shù)據(jù)也是高速緩存數(shù)據(jù)的來(lái)源。如圖5、圖6所示,步驟S4具體為當(dāng)所述高速緩存數(shù)據(jù)區(qū)的一行數(shù)據(jù)被讀入時(shí),初始的細(xì)粒度高速緩存臟位圖中的比特位視為全0或全I(xiàn) ;當(dāng)所述高速緩存數(shù)據(jù)區(qū)的一行數(shù)據(jù)被更新時(shí),按照字節(jié)比較新的數(shù)據(jù)與原有數(shù)據(jù),根據(jù)二者是否相同來(lái)修改所述細(xì)粒度高速緩存臟位圖中的內(nèi)容;當(dāng)所述高速緩存數(shù)據(jù)區(qū)的一行數(shù)據(jù)被替換出時(shí),若所述細(xì)粒度高速緩存臟位圖中的比特位標(biāo)識(shí)高速緩存數(shù)據(jù)區(qū)的數(shù)據(jù)沒(méi)有變化,則丟棄被替換出的數(shù)據(jù),否則根據(jù)所述細(xì)粒度高速緩存臟位圖中的比特位,將所述高速緩存數(shù)據(jù)區(qū)中有修改的字節(jié)中的內(nèi)容寫(xiě)入內(nèi)存。如圖5、圖6所示,步驟S5具體為在內(nèi)存控制器中,根據(jù)所述細(xì)粒度高速緩存臟位圖中的比特位和地址,將所述高速緩存數(shù)據(jù)區(qū)中被替換出的行發(fā)送給內(nèi)存中相應(yīng)內(nèi)存行的存儲(chǔ)芯片;當(dāng)數(shù)據(jù)從磁盤(pán)被讀入內(nèi)存時(shí),根據(jù)每個(gè)byte的值,對(duì)零值位圖進(jìn)行賦值。當(dāng)該byte為0時(shí),零值位圖中對(duì)應(yīng)的比特被賦值為0或I。當(dāng)該byte不為0時(shí),賦值為其相反數(shù)。當(dāng)高速緩存需要從內(nèi)存中讀入一行數(shù)據(jù)時(shí),內(nèi)存控制器根據(jù)零值位圖中相應(yīng)的比特位,只發(fā)送不為零的數(shù)據(jù),高速緩存接收到數(shù)據(jù)后,自動(dòng)填充0值數(shù)據(jù),對(duì)于未發(fā)送的數(shù)據(jù),在目的地填充零。當(dāng)數(shù)據(jù)寫(xiě)入到內(nèi)存時(shí),根據(jù)寫(xiě)入內(nèi)存的數(shù)據(jù)生成對(duì)應(yīng)于零值位圖中的比特位,并使用所生成的比特位更新零值位圖。優(yōu)選地,所述細(xì)粒度高速緩存臟位圖的大小為高速緩存數(shù)據(jù)區(qū)大小的1/8。優(yōu)選地,所述零值位圖的大小為所述內(nèi)存大小的1/8。優(yōu)選地,所述內(nèi)存行為64比特或更高位寬。由以上實(shí)施例可以看出,本發(fā)明通過(guò)在字節(jié)這一級(jí)別標(biāo)識(shí)被修改的數(shù)據(jù)和零值數(shù)據(jù)來(lái)避免無(wú)效傳輸,因此降低了高速緩存數(shù)據(jù)區(qū)到內(nèi)存帶寬的占用,降低了額外寫(xiě)入的開(kāi)銷(xiāo);另外,對(duì)于寫(xiě)損耗的存儲(chǔ)器件,該方法可以減少其平均寫(xiě)入次數(shù),延長(zhǎng)其壽命,同時(shí)降低功耗。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明技術(shù)原理的前提下,還可以做出若干改進(jìn)和替換,這些改進(jìn)和替換也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種細(xì)粒度內(nèi)存訪問(wèn)的方法,其特征在于,包括以下步驟51、按照如下方式定義細(xì)粒度高速緩存臟位圖所述細(xì)粒度高速緩存臟位圖使用一個(gè)或多個(gè)比特位標(biāo)識(shí)高速緩存數(shù)據(jù)區(qū)的一行中的一個(gè)或多個(gè)8比特存儲(chǔ)單元的內(nèi)容是否與讀入時(shí)的初始值不同;所述高速緩存數(shù)據(jù)區(qū)是沒(méi)有寫(xiě)損耗或者具有寫(xiě)損耗的存儲(chǔ)器件的數(shù)據(jù)區(qū);52、按照如下方式定義零值位圖所述零值位圖使用一個(gè)或多個(gè)比特位標(biāo)識(shí)內(nèi)存中的一個(gè)或多個(gè)8比特存儲(chǔ)單元內(nèi)的數(shù)據(jù)是否為零;53、按照如下方式定義內(nèi)存行在內(nèi)存中,多個(gè)易失或非易失存儲(chǔ)芯片通過(guò)共享讀寫(xiě)地址來(lái)增加每個(gè)地址上能存儲(chǔ)的數(shù)據(jù),每個(gè)讀寫(xiě)地址對(duì)應(yīng)的存儲(chǔ)空間為一個(gè)內(nèi)存行,所述內(nèi)存行由8個(gè)或更多個(gè)I字節(jié)位寬的存儲(chǔ)芯片構(gòu)成;所述內(nèi)存是具有所述沒(méi)有寫(xiě)損耗或者具有與損耗的存儲(chǔ)器件的內(nèi)存;54、利用所述細(xì)粒度高速緩存臟位圖實(shí)現(xiàn)高速緩存數(shù)據(jù)區(qū)的讀寫(xiě);55、利用所述零值位圖和內(nèi)存行實(shí)現(xiàn)內(nèi)存的讀寫(xiě)。
2.如權(quán)利要求1所述的方法,其特征在于,步驟S4具體為當(dāng)所述高速緩存數(shù)據(jù)區(qū)的一行數(shù)據(jù)被讀入時(shí),初始的細(xì)粒度高速緩存臟位圖中的比特位視為全O或全I(xiàn) ;當(dāng)所述高速緩存數(shù)據(jù)區(qū)的一行數(shù)據(jù)被更新時(shí),按照字節(jié)比較新的數(shù)據(jù)與原有數(shù)據(jù),根據(jù)二者是否相同來(lái)修改所述細(xì)粒度高速緩存臟位圖中的內(nèi)容;當(dāng)所述高速緩存數(shù)據(jù)區(qū)的一行數(shù)據(jù)被替換出時(shí),若所述細(xì)粒度高速緩存臟位圖中的比特位標(biāo)識(shí)高速緩存數(shù)據(jù)區(qū)的數(shù)據(jù)沒(méi)有變化,則丟棄被替換出的數(shù)據(jù),否則根據(jù)所述細(xì)粒度高速緩存臟位圖中的比特位,將所述高速緩存數(shù)據(jù)區(qū)中有修改的字節(jié)中的內(nèi)容寫(xiě)入內(nèi)存。
3.如權(quán)利要求1所述的方法,其特征在于,步驟S5具體為根據(jù)所述細(xì)粒度高速緩存臟位圖中的比特位和地址,將所述高速緩存數(shù)據(jù)區(qū)中被替換出的行發(fā)送給內(nèi)存中相應(yīng)內(nèi)存行的存儲(chǔ)芯片;當(dāng)內(nèi)存被讀取時(shí),根據(jù)零值位圖中相應(yīng)的比特位,只發(fā)送不為零的數(shù)據(jù),對(duì)于未發(fā)送的數(shù)據(jù),在目的地填充零;當(dāng)數(shù)據(jù)寫(xiě)入到內(nèi)存時(shí),根據(jù)寫(xiě)入內(nèi)存的數(shù)據(jù)生成對(duì)應(yīng)于零值位圖中的比特位,并使用所生成的比特位更新零值位圖。
4.如權(quán)利要求1所述的方法,其特征在于,所述細(xì)粒度高速緩存臟位圖的大小為高速緩存數(shù)據(jù)區(qū)大小的1/8。
5.如權(quán)利要求1所述的方法,其特征在于,所述零值位圖的大小為所述內(nèi)存大小的1/8。
6.如權(quán)利要求1飛中任一項(xiàng)所述的方法,其特征在于,所述內(nèi)存行為64比特或更高位寬。
全文摘要
本發(fā)明涉及計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)技術(shù)領(lǐng)域,公開(kāi)了一種細(xì)粒度內(nèi)存訪問(wèn)的方法。本發(fā)明通過(guò)在字節(jié)這一級(jí)別標(biāo)識(shí)被修改的數(shù)據(jù)和零值數(shù)據(jù)來(lái)避免無(wú)效傳輸,因此降低了高速緩存數(shù)據(jù)區(qū)到內(nèi)存的帶寬占用,降低了額外寫(xiě)入的開(kāi)銷(xiāo);另外,對(duì)于寫(xiě)損耗的存儲(chǔ)器件,該方法可以減少其平均寫(xiě)入次數(shù),延長(zhǎng)其壽命,同時(shí)降低功耗。
文檔編號(hào)G06F12/08GK102999441SQ20121046051
公開(kāi)日2013年3月27日 申請(qǐng)日期2012年11月15日 優(yōu)先權(quán)日2012年11月15日
發(fā)明者汪東升, 高鵬, 王海霞 申請(qǐng)人:清華大學(xué)