本發明專利技術涉及計算機系統結構技術領域,公開了一種細粒度內存訪問的方法。本發明專利技術通過在字節這一級別標識被修改的數據和零值數據來避免無效傳輸,因此降低了高速緩存數據區到內存的帶寬占用,降低了額外寫入的開銷;另外,對于寫損耗的存儲器件,該方法可以減少其平均寫入次數,延長其壽命,同時降低功耗。
【技術實現步驟摘要】
本專利技術涉及計算機系統結構
,特別是涉及。
技術介紹
計算機內存的性能提升速度遠遠落后于處理器性能提升的速度。相對于處理器來說,內存訪問延遲以每十年5倍的速度增長,這種系統結構的失衡,形成了阻礙處理器性能提升的“存儲墻”,從而使得內存系統成為整個計算機系統的性能瓶頸之一。為了解決這一問題,很多新的內存技術被提出來,細粒度內存訪問就是其中之一。細粒度內存訪問可以精確控制每一片存儲芯片,還可以避免額外的讀寫,節省帶寬。目前的細粒度內存訪問機制集中在DRAM(動態隨機存取存儲器)實現上,目的是為了更好地在多核處理器環境下挖掘空間局部性來提高內存訪問的效率,效果都不理想。而對于NAND-FLASH、相變內存等具有寫損耗的器件,現有的內存訪問方法都不能減少其損耗。
技術實現思路
(一)要解決的技術問題本專利技術首先要解決的技術問題是如何避免內存訪問過程中的無效傳輸。(二)技術方案為了解決上述技術問題,本專利技術提供,包括以下步驟S1、按照如下方式定義細粒度高速緩存臟位圖所述細粒度高速緩存臟位圖使用一個或多個比特位標識高速緩存數據區的一行中的一個或多個8比特存儲單元的內容是否與讀入時的初始值不同;所述高速緩存數據區是沒有寫損耗或者具有寫損耗的存儲器件的數據區;S2、按照如下方式定義零值位圖所述零值位圖使用一個或多個比特位標識內存中的一個或多個8比特存儲單元內的數據是否為零;S3、按照如下方式定義內存行在內存中,多個易失或非易失存儲芯片通過共享讀寫地址來增加每個地址上能存儲的數據,每個讀寫地址對應的存儲空間為一個內存行,所述內存行由8個或更多個I字節位寬的存儲芯片構成;所述內存是具有所述沒有寫損耗或者具有與損耗的存儲器件的內存;S4、利用所述細粒度高速緩存臟位圖實現高速緩存數據區的讀寫;S5、利用所述零值位圖和內存行實現內存的讀寫。優選地,步驟S4具體為當所述高速緩存數據區的一行數據被讀入時,初始的細粒度高速緩存臟位圖中的比特位視為全0或全I ;當所述高速緩存數據區的一行數據被更新時,按照字節比較新的數據與原有數據,根據二者是否相同來修改所述細粒度高速緩存臟位圖中的內容;當所述高速緩存數據區的一行數據被替換出時,若所述細粒度高速緩存臟位圖中的比特位標識高速緩存數據區的數據沒有變化,則丟棄被替換出的數據,否則根據所述細粒度高速緩存臟位圖中的比特位,將所述高速緩存數據區中有修改的字節中的內容寫入內存。優選地,步驟S5具體為根據所述細粒度高速緩存臟位圖中的比特位和地址,將所述高速緩存數據區中被替換出的行發送給內存中相應內存行的存儲芯片;當內存被讀取時,根據零值位圖中相應的比特位,只發送不為零的數據,對于未發送的數據,在目的地填充零;當數據寫入到內存時,根據寫入內存的數據生成對應于零值位圖中的比特位,并使用所生成的比特位更新零值位圖。優選地,所述細粒度高速緩存臟位圖的大小為高速緩存數據區大小的1/8。優選地,所述零值位圖的大小為所述內存大小的1/8。優選地,所述內存行為64比特或更高位寬。(三)有益效果上述技術方案具有如下優點通過在字節這一級別標識被修改的數據和零值數據來避免無效傳輸,因此降低了高速緩存數據區到內存的帶寬占用,降低了額外寫入的開銷;另外,對于寫損耗的存儲器件,該方法可以減少其平均寫入次數,延長其壽命,同時降低功耗。附圖說明圖1是本專利技術的方法流程圖;圖2是本專利技術的方法中定義的細粒度內存訪問架構的示意圖;圖3是定義的細粒度聞速緩存臟位圖不意圖;圖4是定義的零值位圖的示意圖;圖5是細粒度內存訪問架構的寫過程; 圖6是圖5細粒度內存訪問架構的讀過程。具體實施例方式下面結合附圖和實施例,對本專利技術的具體實施方式作進一步詳細描述。以下實施例用于說明本專利技術,但不用來限制本專利技術的范圍。如圖1、圖2所示,本專利技術提供,包括以下步驟S1、按照如下方式定義細粒度高速緩存臟位圖所述細粒度高速緩存臟位圖使用一個或多個比特位標識高速緩存數據區的一行中的一個或多個8比特存儲單元的內容是否與讀入時的初始值不同,也就是說被寫入過與原來不同的值;所述高速緩存數據區是具有寫損耗的存儲器件(也可以是沒有寫損耗的存儲器件)的數據區;如圖3所示。圖3中,細粒度高速緩存臟位圖的每個比特標識高速緩存數據區的8比特數據。S2、按照如下方式定義零值位圖所述零值位圖使用一個或多個比特位標識內存中的一個或多個8比特存儲單元內的數據是否為零;如圖4所示。圖4中,每一位標識內存行中的一個8比特存儲單元。S3、按照如下方式定義內存行在內存中,多個易失或非易失存儲芯片通過共享讀寫地址來增加每個地址上能存儲的數據,每個讀寫地址對應的存儲空間為一個內存行,為64比特位寬,所述內存行由8個或更多個8比特位寬的存儲芯片構成,零值位圖存儲在額外的存儲芯片中;所述內存是具有所述寫損耗的存儲器件(也可以是沒有寫損耗的存儲器件)的內存;S4、利用所述細粒度高速緩存臟位圖實現高速緩存數據區的讀寫;步驟S4是高速緩存數據區的讀寫規則。S5、利用所述零值位圖和內存行實現內存的讀寫。步驟S5描述了內存讀寫的規貝U。高速緩存數據區替換出來的數據是內存數據的來源之一。同時,內存數據也是高速緩存數據的來源。如圖5、圖6所示,步驟S4具體為當所述高速緩存數據區的一行數據被讀入時,初始的細粒度高速緩存臟位圖中的比特位視為全0或全I ;當所述高速緩存數據區的一行數據被更新時,按照字節比較新的數據與原有數據,根據二者是否相同來修改所述細粒度高速緩存臟位圖中的內容;當所述高速緩存數據區的一行數據被替換出時,若所述細粒度高速緩存臟位圖中的比特位標識高速緩存數據區的數據沒有變化,則丟棄被替換出的數據,否則根據所述細粒度高速緩存臟位圖中的比特位,將所述高速緩存數據區中有修改的字節中的內容寫入內存。如圖5、圖6所示,步驟S5具體為在內存控制器中,根據所述細粒度高速緩存臟位圖中的比特位和地址,將所述高速緩存數據區中被替換出的行發送給內存中相應內存行的存儲芯片;當數據從磁盤被讀入內存時,根據每個byte的值,對零值位圖進行賦值。當該byte為0時,零值位圖中對應的比特被賦值為0或I。當該byte不為0時,賦值為其相反數。當高速緩存需要從內存中讀入一行數據時,內存控制器根據零值位圖中相應的比特位,只發送不為零的數據,高速緩存接收到數據后,自動填充0值數據,對于未發送的數據,在目的地填充零。當數據寫入到內存時,根據寫入內存的數據生成對應于零值位圖中的比特位,并使用所生成的比特位更新零值位圖。優選地,所述細粒度高速緩存臟位圖的大小為高速緩存數據區大小的1/8。優選地,所述零值位圖的大小為所述內存大小的1/8。優選地,所述內存行為64比特或更高位寬。由以上實施例可以看出,本專利技術通過在字節這一級別標識被修改的數據和零值數據來避免無效傳輸,因此降低了高速緩存數據區到內存帶寬的占用,降低了額外寫入的開銷;另外,對于寫損耗的存儲器件,該方法可以減少其平均寫入次數,延長其壽命,同時降低功耗。以上所述僅是本專利技術的優選實施方式,應當指出,對于本
的普通技術人員來說,在不脫離本專利技術技術原理的前提下,還可以做出若干改進和替換,這些改進和替換也應視為本專利技術的保護范圍。權利要求1.,其特征在于,包括以下步驟51、按照如下方式定義細粒度高速緩本文檔來自技高網...
【技術保護點】
一種細粒度內存訪問的方法,其特征在于,包括以下步驟:S1、按照如下方式定義細粒度高速緩存臟位圖:所述細粒度高速緩存臟位圖使用一個或多個比特位標識高速緩存數據區的一行中的一個或多個8比特存儲單元的內容是否與讀入時的初始值不同;所述高速緩存數據區是沒有寫損耗或者具有寫損耗的存儲器件的數據區;S2、按照如下方式定義零值位圖:所述零值位圖使用一個或多個比特位標識內存中的一個或多個8比特存儲單元內的數據是否為零;S3、按照如下方式定義內存行:在內存中,多個易失或非易失存儲芯片通過共享讀寫地址來增加每個地址上能存儲的數據,每個讀寫地址對應的存儲空間為一個內存行,所述內存行由8個或更多個1字節位寬的存儲芯片構成;所述內存是具有所述沒有寫損耗或者具有寫損耗的存儲器件的內存;S4、利用所述細粒度高速緩存臟位圖實現高速緩存數據區的讀寫;S5、利用所述零值位圖和內存行實現內存的讀寫。
【技術特征摘要】
【專利技術屬性】
技術研發人員:汪東升,高鵬,王海霞,
申請(專利權)人:清華大學,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。