第一算法流程圖,犧牲緩存中的數(shù)據(jù)根據(jù)第一算法進行替換,第一算法具體是在LRU基礎上結合chip級并行感知提出的一種替換策略。此算法的目的就是使多個寫操作可以在chip級實現(xiàn)并行,從而提高對PCM的寫并行度。如圖所示,具體包括如下步驟:
[0036]步驟301,WB初始化為O ;
[0037]步驟302,犧牲緩存寫入,具體為在LLC中要寫的數(shù)據(jù)和原有的數(shù)據(jù)經過比較后如果不等,對應的子段的改變位C置為1,當LLC寫不命中,將改變位C為I的子段替換出去,寫入到犧牲緩存;
[0038]步驟303,判斷犧牲緩存是否寫命中,若寫命中,則執(zhí)行步驟304,若寫不命中,則執(zhí)行步驟306 ;
[0039]步驟304,判斷命中行WB是否等于1,若等于1,則執(zhí)行步驟305,若WB為0,則執(zhí)行步驟307 ;
[0040]步驟305,WB為1,表示該行已經寫回內存,將要寫入的數(shù)據(jù)直接寫入該行,并將WB置為O ;
[0041 ] 步驟306,根據(jù)LRU將最近最少使用的行選出;
[0042]步驟307,如果命中行的WB為0,直接寫入該行;
[0043]步驟308,根據(jù)LRU選出的行,判斷該行的WB是否為0,若為0,則執(zhí)行步驟309,若不為0,則執(zhí)行步驟307;
[0044]步驟309,將該行寫入到內存,將要寫的數(shù)據(jù)寫入該位置;
[0045]步驟310,再根據(jù)LRU選出一行;
[0046]步驟311,判斷該行的WB是否為O,若為0,則執(zhí)行步驟312,若不為0,則返回步驟310 ;
[0047]步驟312,判斷該行與之前的行是否屬于不同chip,若屬于不同chip,則執(zhí)行步驟313,若屬于同一 chip,則返回步驟310 ;
[0048]步驟313,將該行寫回PCM,同時將WB置為I。
[0049]由于PCM存在功耗限制,每個chip —次只能同時有一個寫操作。因此在本發(fā)明中,當犧牲緩存中訪問chipO的行被替換出來,再在LRU算法的基礎上將訪問其他chip的行替換出來,寫入內存,這樣就實現(xiàn)了多個寫操作的chip級并行。
[0050]專業(yè)人員應該還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術方案的特定應用和設計約束條件。專業(yè)技術人員可以對每個特定的應用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應認為超出本發(fā)明的范圍。
[0051]結合本文中所公開的實施例描述的方法或算法的步驟可以用硬件、處理器執(zhí)行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機存儲器(RAM)、內存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術領域內所公知的任意其它形式的存儲介質中。
[0052]以上所述的【具體實施方式】,對本發(fā)明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發(fā)明的【具體實施方式】而已,并不用于限定本發(fā)明的保護范圍,凡在本發(fā)明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。
【主權項】
1.一種優(yōu)化PCM內存寫的方法,其特征在于,所述方法包括以下步驟: 最后一級緩存LLC接收寫指令,其中LLC采用分段結構,每一個段又進一步分為更小的子段,每個子段有改變位; 判斷LLC是否寫命中; 當LLC寫命中,數(shù)據(jù)寫入LLC,同時將要寫的數(shù)據(jù)與LLC的原有數(shù)據(jù)進行比較,若不等,則對應所述子段的改變位設置第一狀態(tài);當LLC寫不命中,將改變位為第一狀態(tài)的子段替換出去,替換出的LLC子段寫入犧牲緩存,以便將數(shù)據(jù)寫入相變存儲器PCM,其中犧牲緩存設置在LLC與PCM之間,其中所述子段的大小與犧牲緩存行的大小相同。
2.根據(jù)權利要求1所述的方法,其特征在于,所述當LLC寫命中,將要寫的數(shù)據(jù)與LLC的原有數(shù)據(jù)進行比較的步驟包括在要寫的數(shù)據(jù)與原有數(shù)據(jù)相等的情況下,將對應子段的改變位設置第二狀態(tài),第二狀態(tài)不同于第一狀態(tài)。
3.根據(jù)權利要求1所述的方法,其特征在于,替換出的LLC子段寫入犧牲緩存包括: 判斷犧牲緩存是否寫命中; 當犧牲緩存寫不命中時,根據(jù)LRU選出一行; 在選出的犧牲緩存行的寫回位為第三狀態(tài)的時候,將選出的犧牲緩存的行替換出去,寫入PCM。
4.根據(jù)權利要求3所述的方法,其特征在于,所述犧牲緩存中每一行增加了寫回位WB,用于表示該行數(shù)據(jù)是否被寫回內存。
5.根據(jù)權利要求3所述的方法,其特征在于,所述犧牲緩存寫命中且寫回位為第四狀態(tài)時,將替換出的LLC子段寫入該行,并將寫回位設置為第三狀態(tài),第四狀態(tài)不同于第三狀態(tài)。
6.根據(jù)權利要求3所述的方法,其特征在于,所述犧牲緩存寫不命中時,根據(jù)LRU選出一行,若該行的寫回位為第四狀態(tài),則將替換出的LLC子段直接寫入,覆蓋該行。
7.根據(jù)權利要求3所述的方法,其特征在于,所述當犧牲緩存寫不命中時,根據(jù)LRU選出一行包括根據(jù)LRU選出至少一個對應其它芯片的寫回位為第三狀態(tài)的一行;所述將選出的犧牲緩存行替換出去,替換出的犧牲緩存的行寫入PCM包括將替換出的犧牲緩存的行和至少一個對應其它芯片的寫回位為第三狀態(tài)的一行同時寫入PCM。
8.一種優(yōu)化PCM內存寫的裝置,其特征在于,所述裝置包括: LLC,用于接收寫指令,并判斷LLC是否寫命中;當LLC寫命中,數(shù)據(jù)寫入LLC,同時將要寫的數(shù)據(jù)與LLC的原有數(shù)據(jù)進行比較,若不等,則對應所述子段的改變位設置第一狀態(tài);當LLC寫不命中,將改變位為第一狀態(tài)的子段替換出去,替換出的子段寫入犧牲緩存; 犧牲緩存,位于LLC與PCM之間,用于存放LLC中被替換出的子段,并判斷犧牲緩存是否寫命中;當犧牲緩存寫不命中時,根據(jù)LRU選出一行;在選出的犧牲緩存行的寫回位為第三狀態(tài)的時候,將選出的犧牲緩存的行替換出去,寫入PCM。
9.根據(jù)權利要求8所述的裝置,其特征在于,所述裝置還包括分路器,位于PCM內部,用于對所述替換出的犧牲緩存的行和至少一個對應其它芯片的寫回位為第三狀態(tài)的一行同時寫入PCM的并行控制。
【專利摘要】本發(fā)明涉及一種優(yōu)化PCM內存寫的方法。所述方法包括:最后一級緩存LLC接收寫指令,其中LLC采用分段結構,每一個段又進一步分為更小的子段,每個子段有改變位;判斷LLC是否寫命中;當LLC寫命中,數(shù)據(jù)寫入LLC,同時將要寫的數(shù)據(jù)與LLC的原有數(shù)據(jù)進行比較,若不等,則對應所述子段的改變位設置第一狀態(tài);當LLC寫不命中,將改變位為第一狀態(tài)的子段替換出去,替換出的LLC子段寫入犧牲緩存,以便將數(shù)據(jù)寫入相變存儲器PCM,其中犧牲緩存設置在LLC與PCM之間。本發(fā)明可以減少對PCM內存的寫次數(shù),降低功耗,延長使用壽命,提高PCM寫的并行度,從而提高PCM系統(tǒng)性能。
【IPC分類】G06F12-08, G06F3-06
【公開號】CN104750423
【申請?zhí)枴緾N201310727073
【發(fā)明人】王琪, 張鐵軍, 王東輝, 侯朝煥
【申請人】中國科學院聲學研究所
【公開日】2015年7月1日
【申請日】2013年12月25日