国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種管理異構(gòu)混合內(nèi)存的方法及裝置制造方法

      文檔序號:6626139閱讀:160來源:國知局
      一種管理異構(gòu)混合內(nèi)存的方法及裝置制造方法
      【專利摘要】本發(fā)明公開了一種管理異構(gòu)混合內(nèi)存的方法及裝置。所述異構(gòu)混合內(nèi)存包括NVM和DRAM,所述方法包括以下步驟:接收用戶進程發(fā)送的內(nèi)存分配請求,對所述用戶進程進行判斷;如果所述用戶進程為系統(tǒng)級進程,則將所述DRAM中的內(nèi)存空間分配給所述用戶進程;如果所述用戶進程為批量處理進程,則將所述NVM中的內(nèi)存空間分配給所述用戶進程。本發(fā)明通過上述內(nèi)存管理機制,能夠保證系統(tǒng)級進程在訪存速度較快的DRAM中進行數(shù)據(jù)處理,并使得批量處理進程在NVM中進行數(shù)據(jù)處理,降低了由于DRAM和NVM之間的訪存速度差異而對數(shù)據(jù)處理速度帶來的影響,提升了用戶進程的數(shù)據(jù)處理速度和系統(tǒng)整體的處理性能。
      【專利說明】一種管理異構(gòu)混合內(nèi)存的方法及裝置

      【技術(shù)領域】
      [0001]本發(fā)明涉及計算機【技術(shù)領域】,具體涉及一種管理異構(gòu)混合內(nèi)存的方法及裝置。

      【背景技術(shù)】
      [0002]隨著云時代的來臨,大數(shù)據(jù)(Big data)也吸引了越來越多的關(guān)注,大數(shù)據(jù)所催生的內(nèi)存計算對計算機內(nèi)存的速度、容量、能耗和可靠性提出了極高的需求。而傳統(tǒng)的計算機內(nèi)存由DRAM (Dynamic Random Access Memory,動態(tài)隨機存取存儲器)構(gòu)成,由于DRAM的介質(zhì)尺寸已到達CMOS (Complementary Metal-Oxide-Semiconductor,互補式金屬氧化物半導體)工藝的極限,因此,DRAM在系統(tǒng)穩(wěn)定性、數(shù)據(jù)可靠性和壽命等問題上面臨極大挑戰(zhàn)。
      [0003]NVM(Non-VolatiIe Memory,非易失性存儲器)的出現(xiàn),為擴展計算機內(nèi)存提供了新的途徑,同時促進了計算機在系統(tǒng)結(jié)構(gòu)上從機械硬盤的傳統(tǒng)架構(gòu)到新型NVM的內(nèi)存架構(gòu)的演變。
      [0004]目前,業(yè)界中通過1/0通道構(gòu)建由DRAM和NVM組成的混合內(nèi)存,通過1/0通道將數(shù)據(jù)遷移到內(nèi)存中,數(shù)據(jù)訪問延遲較大,無法達到內(nèi)存計算的ns(納秒)級別的性能需求。


      【發(fā)明內(nèi)容】

      [0005]本發(fā)明提供了一種管理異構(gòu)混合內(nèi)存的方法及裝置,以解決現(xiàn)有技術(shù)中數(shù)據(jù)訪問延遲較大的缺陷。
      [0006]本發(fā)明提供了一種管理異構(gòu)混合內(nèi)存的方法,所述異構(gòu)混合內(nèi)存包括非易失性存儲器NVM和動態(tài)隨機存取存儲器DRAM,所述方法包括以下步驟:
      [0007]接收用戶進程發(fā)送的內(nèi)存分配請求,對所述用戶進程進行判斷;
      [0008]如果所述用戶進程為系統(tǒng)級進程,則將所述DRAM中的內(nèi)存空間分配給所述用戶進程;
      [0009]如果所述用戶進程為批量處理進程,則將所述NVM中的內(nèi)存空間分配給所述用戶進程。
      [0010]可選地,所述的方法,還包括:
      [0011]對用戶進程釋放的內(nèi)存空間進行判斷;
      [0012]如果是所述DRAM中的內(nèi)存空間,則通過伙伴系統(tǒng)對所述用戶進程釋放的內(nèi)存空間進行回收;
      [0013]如果是所述NVM中的內(nèi)存空間,則將所述用戶進程釋放的內(nèi)存空間標記為可回收內(nèi)存,更新所述可回收內(nèi)存的時間戳,并在所述可回收內(nèi)存的時間戳到期后,通過所述伙伴系統(tǒng)對所述可回收內(nèi)存進行回收。
      [0014]可選地,所述的方法,還包括:
      [0015]將所述異構(gòu)混合內(nèi)存中的數(shù)據(jù)分為熱數(shù)據(jù)、候選熱數(shù)據(jù)和冷數(shù)據(jù),將所述熱數(shù)據(jù)和所述候選熱數(shù)據(jù)存放到所述DRAM中,將所述冷數(shù)據(jù)存放到NVM中,并生成熱數(shù)據(jù)隊列和候選熱數(shù)據(jù)隊列;
      [0016]其中,所述熱數(shù)據(jù)為所述異構(gòu)混合內(nèi)存中訪問頻率大于或等于預定的第一閾值的數(shù)據(jù),所述候選熱數(shù)據(jù)為所述異構(gòu)混合內(nèi)存中訪問頻率小于所述第一閾值且大于預定的第二閾值的數(shù)據(jù),所述冷數(shù)據(jù)為異構(gòu)混合內(nèi)存中訪問頻率小于或等于所述第二閾值的數(shù)據(jù),所述熱數(shù)據(jù)隊列用于存放所述熱數(shù)據(jù)的邏輯區(qū)塊地址LBA,所述候選熱數(shù)據(jù)隊列用于存放所述候選熱數(shù)據(jù)的LBA。
      [0017]可選地,所述的方法,還包括:
      [0018]將所述熱數(shù)據(jù)隊列中的、當前時間之前的預定長度的時間段內(nèi)最少使用的LBA從熱數(shù)據(jù)隊列中刪除并添加到所述候選熱數(shù)據(jù)隊列,將所述最少使用的LBA對應的數(shù)據(jù)標記為候選熱數(shù)據(jù)。
      [0019]可選地,所述的方法,還包括:
      [0020]將所述候選熱數(shù)據(jù)隊列中的、當前時間之前的預定長度的時間段內(nèi)最少使用的LBA從所述候選熱數(shù)據(jù)隊列中刪除,將所述最少使用的LBA對應的數(shù)據(jù)標記為冷數(shù)據(jù),并將所述最少使用的LBA對應的數(shù)據(jù)存放到所述NVM中。
      [0021]可選地,所述的方法,還包括:
      [0022]在系統(tǒng)內(nèi)核層構(gòu)建內(nèi)存鏡像,在系統(tǒng)運行時,將所述內(nèi)存鏡像寫入所述NVM;
      [0023]在系統(tǒng)關(guān)機或休眠后檢測到用戶的觸發(fā),則將所述NVM中的內(nèi)存鏡像寫回至所述DRAM。
      [0024]本發(fā)明還提供了一種管理異構(gòu)混合內(nèi)存的裝置,所述異構(gòu)混合內(nèi)存包括非易失性存儲器NVM和動態(tài)隨機存取存儲器DRAM,所述裝置包括:
      [0025]接收模塊,用于接收用戶進程發(fā)送的內(nèi)存分配請求;
      [0026]第一判斷模塊,用于對所述用戶進程進行判斷;
      [0027]分配模塊,用于在所述第一判斷模塊判斷出所述用戶進程為系統(tǒng)級進程時,將所述DRAM中的內(nèi)存空間分配給所述用戶進程;在所述第一判斷模塊判斷出所述用戶進程為批量處理進程時,將所述NVM中的內(nèi)存空間分配給所述用戶進程。
      [0028]可選地,所述的裝置,還包括:
      [0029]第二判斷模塊,用于對用戶進程釋放的內(nèi)存空間進行判斷;
      [0030]回收模塊,用于在所述第二判斷模塊判斷出所述用戶進程釋放的內(nèi)存空間是所述DRAM中的內(nèi)存空間時,通過伙伴系統(tǒng)對所述用戶進程釋放的內(nèi)存空間進行回收;在所述第二判斷模塊判斷出所述用戶進程釋放的內(nèi)存空間是所述NVM中的內(nèi)存空間時,將所述用戶進程釋放的內(nèi)存空間標記為可回收內(nèi)存,更新所述可回收內(nèi)存的時間戳,并在所述可回收內(nèi)存的時間戳到期后,通過所述伙伴系統(tǒng)對所述可回收內(nèi)存進行回收。
      [0031]可選地,所述的裝置,還包括:
      [0032]分類模塊,用于將所述異構(gòu)混合內(nèi)存中的數(shù)據(jù)分為熱數(shù)據(jù)、候選熱數(shù)據(jù)和冷數(shù)據(jù),將所述熱數(shù)據(jù)和所述候選熱數(shù)據(jù)存放到所述DRAM中,將所述冷數(shù)據(jù)存放到NVM中,并生成熱數(shù)據(jù)隊列和候選熱數(shù)據(jù)隊列;
      [0033]其中,所述熱數(shù)據(jù)為所述異構(gòu)混合內(nèi)存中訪問頻率大于或等于預定的第一閾值的數(shù)據(jù),所述候選熱數(shù)據(jù)為所述異構(gòu)混合內(nèi)存中訪問頻率小于所述第一閾值且大于預定的第二閾值的數(shù)據(jù),所述冷數(shù)據(jù)為異構(gòu)混合內(nèi)存中訪問頻率小于或等于所述第二閾值的數(shù)據(jù),所述熱數(shù)據(jù)隊列用于存放所述熱數(shù)據(jù)的邏輯區(qū)塊地址LBA,所述候選熱數(shù)據(jù)隊列用于存放所述候選熱數(shù)據(jù)的LBA。
      [0034]可選地,所述的裝置,還包括:
      [0035]第一管理模塊,用于將所述熱數(shù)據(jù)隊列中的、當前時間之前的預定長度的時間段內(nèi)最少使用的LBA從熱數(shù)據(jù)隊列中刪除并添加到所述候選熱數(shù)據(jù)隊列,將所述最少使用的LBA對應的數(shù)據(jù)標記為候選熱數(shù)據(jù)。
      [0036]可選地,所述的裝置,還包括:
      [0037]第二管理模塊,用于將所述候選熱數(shù)據(jù)隊列中的、當前時間之前的預定長度的時間段內(nèi)最少使用的LBA從所述候選熱數(shù)據(jù)隊列中刪除,將所述最少使用的LBA對應的數(shù)據(jù)標記為冷數(shù)據(jù),并將所述最少使用的LBA對應的數(shù)據(jù)存放到所述NVM中。
      [0038]可選地,所述的裝置,還包括:
      [0039]構(gòu)建模塊,用于在系統(tǒng)內(nèi)核層構(gòu)建內(nèi)存鏡像;
      [0040]寫入模塊,用于在系統(tǒng)運行時,將所述內(nèi)存鏡像寫入所述NVM ;在系統(tǒng)關(guān)機或休眠后檢測到用戶的觸發(fā)時,將所述NVM中的內(nèi)存鏡像寫回至所述DRAM。
      [0041]本發(fā)明通過上述內(nèi)存管理機制,能夠保證系統(tǒng)級進程在訪存速度較快的DRAM中進行數(shù)據(jù)處理,并使得批量處理進程在NVM中進行數(shù)據(jù)處理,降低了由于DRAM和NVM之間的訪存速度差異而對數(shù)據(jù)處理速度帶來的影響,提升了用戶進程的數(shù)據(jù)處理速度和系統(tǒng)整體的處理性能。

      【專利附圖】

      【附圖說明】
      [0042]圖1為本發(fā)明實施例中的一種基于異構(gòu)混合內(nèi)存的系統(tǒng)硬件架構(gòu)圖;
      [0043]圖2為本發(fā)明實施例中的一種分配異構(gòu)混合內(nèi)存的方法流程圖;
      [0044]圖3為本發(fā)明實施例中的一種回收異構(gòu)混合內(nèi)存的方法流程圖;
      [0045]圖4為本發(fā)明實施例中的一種管理異構(gòu)混合內(nèi)存的裝置結(jié)構(gòu)圖。

      【具體實施方式】
      [0046]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
      [0047]需要說明的是,如果不沖突,本發(fā)明實施例以及實施例中的各個特征可以相互結(jié)合,均在本發(fā)明的保護范圍之內(nèi)。另外,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
      [0048]本發(fā)明實施例中的異構(gòu)混合內(nèi)存包括NVM和DRAM,NVM可以是Flash存儲器,也可以是PCM (Phase-Change Memory,相變化內(nèi)存),還可以是Flash存儲器和PCM的組合,如圖1所示。
      [0049]其中,CPU通過 DDR SDRAM (Double Data Rate Synchronous Dynamic RandomAccess Memory,雙倍數(shù)據(jù)率同步動態(tài)隨機存取存儲器)控制器訪問DRAM,并通過CCB (CPUCoherence Bus, CPU 一致性總線)與NVM內(nèi)存管理芯片連接;NVM內(nèi)存管理芯片支持多種標準接口,通過NVMe (Non-Volatile Memory Express,非易失性存儲器快速)接口與Flash存儲器連接,通過LPDDR2 (Low Power Double Data Rate SDRAM,低功耗雙倍數(shù)據(jù)率同步動態(tài)隨機存取存儲器)控制器連接PCM,并通過DDR SDRAM控制器連接DRAM緩存。
      [0050]本發(fā)明實施例通過統(tǒng)一編址的方式對異構(gòu)混合內(nèi)存進行統(tǒng)一管理,異構(gòu)混合內(nèi)存由多個固定長度的頁框組成,每個頁框包含一個頁,每個頁是由一系列連續(xù)的線性地址組成的。本發(fā)明實施例通過頁表對異構(gòu)混合內(nèi)存中的頁進行管理,并將NVM中的頁框標記為LARGEMEM_FLAG。其中,頁表是內(nèi)存塊的目錄文件,用于實現(xiàn)從頁號到物理塊號的地址映射。
      [0051]進一步地,本發(fā)明實施例中的頁框的大小比系統(tǒng)中默認的頁框的大小擴大2-3倍,能夠顯著地減少內(nèi)存中頁框的數(shù)量,將TLB (Translat1n Lookaside Buffer,翻譯后備緩沖器)缺失的開銷降低到2%以內(nèi),降低對查詢效率的影響。
      [0052]基于上述異構(gòu)混合內(nèi)存,本發(fā)明實施例提供了一種管理異構(gòu)混合內(nèi)存的方法,包括對異構(gòu)混合內(nèi)存的分配和回收,其中,分配異構(gòu)混合內(nèi)存的方法流程,如圖2所示,包括以下步驟:
      [0053]步驟201,接收用戶進程發(fā)送的內(nèi)存分配請求。
      [0054]步驟202,對用戶進程進行判斷,如果用戶進程為系統(tǒng)級進程,則執(zhí)行步驟203 ;如果用戶進程為批量處理進程,則執(zhí)行步驟204。
      [0055]步驟203,將DRAM中的內(nèi)存空間分配給用戶進程。
      [0056]具體地,當判斷出用戶進程為系統(tǒng)級進程后,可以判斷用戶進程申請分配的內(nèi)存是否為小塊內(nèi)存,如果不是小塊內(nèi)存,則通過伙伴系統(tǒng)將DRAM中的內(nèi)存空間分配給該用戶進程,并將分配的內(nèi)存空間的首地址返回給該用戶進程;如果是小塊內(nèi)存,則通過slab分配器將slab列表中的內(nèi)存空間分配給用戶進程,并將分配的內(nèi)存空間的首地址返回給該用戶進程。其中,小塊內(nèi)存是指系統(tǒng)級進程運行時申請的內(nèi)存塊,小塊內(nèi)存的大小不會超過整個DRAM的大小。
      [0057]步驟204,將NVM中的內(nèi)存空間分配給用戶進程。
      [0058]具體地,當判斷出用戶進程為批量處理進程后,可以通過bam分配器將NVM中的內(nèi)存空間分配給該用戶進程,并將分配的內(nèi)存空間的首地址返回給該用戶進程。
      [0059]其中,bam分配器是由用戶自定義的分配器,其工作機制與slab分配器相似。bam分配器與slab分配器的區(qū)別在于,bam分配器將分配的內(nèi)存地址指向NVM中的區(qū)域,將將NVM中的內(nèi)存空間分配給用戶進程。
      [0060]通過上述內(nèi)存分配流程,能夠保證系統(tǒng)級進程在訪存速度較快的DRAM中進行數(shù)據(jù)處理,并使得批量處理進程在NVM中進行數(shù)據(jù)處理,降低了由于DRAM和NVM之間的訪存速度差異而對數(shù)據(jù)處理速度帶來的影響,提升了用戶進程的數(shù)據(jù)處理速度和系統(tǒng)整體的處理性能。
      [0061]相應地,當用戶進程運行結(jié)束后,回收異構(gòu)混合內(nèi)存的方法流程,如圖3所示,包括以下步驟:
      [0062]步驟301,對用戶進程釋放的內(nèi)存空間進行判斷,如果是DRAM中的內(nèi)存空間,則執(zhí)行步驟302 ;如果是NVM中的內(nèi)存空間,則執(zhí)行步驟303。
      [0063]具體地,可以判斷用戶進程釋放的內(nèi)存空間是否被標記為LARGEMEM_FLAG,如果是,則確定用戶進程釋放的內(nèi)存空間是NVM中的內(nèi)存空間;否則,確定用戶進程釋放的內(nèi)存空間是DRAM中的內(nèi)存空間。
      [0064]步驟302,通過伙伴系統(tǒng)對用戶進程釋放的內(nèi)存空間進行回收。
      [0065]步驟303,將用戶進程釋放的內(nèi)存空間標記為可回收內(nèi)存,并更新可回收內(nèi)存的時間戳。
      [0066]其中,時間戳是由系統(tǒng)內(nèi)部設定的。
      [0067]步驟304,當可回收內(nèi)存的時間戳到期后,通過伙伴系統(tǒng)對可回收內(nèi)存進行回收。
      [0068]具體地,可通過內(nèi)核級守護進程對可回收內(nèi)存的時間戳進行定時輪詢,判斷可回收內(nèi)存的時間戳是否到期,如果未到期,則繼續(xù)通過內(nèi)核級守護進行對可回收內(nèi)存的時間戳進行定時輪詢,如果到期,則通過伙伴系統(tǒng)對可回收內(nèi)存進行回收。
      [0069]上述內(nèi)存回收流程中,通過對NVM中的內(nèi)存空間采用延后回收機制,能夠避免對內(nèi)存空間頻繁地回收和分配,提升了系統(tǒng)的處理性能。
      [0070]由于異構(gòu)混合內(nèi)存中的不同數(shù)據(jù)的訪問頻率也各不相同,本發(fā)明實施例中基于多維關(guān)聯(lián)規(guī)則的決策樹模型,根據(jù)數(shù)據(jù)應用層面、數(shù)據(jù)讀寫特性、數(shù)據(jù)更新頻率和數(shù)據(jù)實時性等因素,對異構(gòu)混合內(nèi)存中的數(shù)據(jù)進行多維度評價,根據(jù)評價結(jié)果將異構(gòu)混合內(nèi)存中的數(shù)據(jù)分為熱數(shù)據(jù)、候選熱數(shù)據(jù)和冷數(shù)據(jù),將熱數(shù)據(jù)和候選熱數(shù)據(jù)存放到DRAM中,將冷數(shù)據(jù)存放到NVM中,并生成熱數(shù)據(jù)隊列和候選熱數(shù)據(jù)隊列。其中,熱數(shù)據(jù)為異構(gòu)混合內(nèi)存中訪問頻率大于或等于預定的第一閾值的數(shù)據(jù),候選熱數(shù)據(jù)為異構(gòu)混合內(nèi)存中訪問頻率小于第一閾值且大于預定的第二閾值的數(shù)據(jù),冷數(shù)據(jù)為異構(gòu)混合內(nèi)存中訪問頻率小于或等于第二閾值的數(shù)據(jù),熱數(shù)據(jù)隊列用于存放熱數(shù)據(jù)的LBA(Logical Block Address,邏輯區(qū)塊地址),候選熱數(shù)據(jù)隊列用于存放候選熱數(shù)據(jù)的LBA。其中,第一閾值可以大于第二閾值。
      [0071]相應地,在系統(tǒng)運行過程中,還可以根據(jù)系統(tǒng)運行時的數(shù)據(jù)使用狀況,采用LRU(Least Recently Used,近期最少使用)優(yōu)化算法對熱數(shù)據(jù)隊列和候選熱數(shù)據(jù)隊列中的LBA進行維護。對于熱數(shù)據(jù)隊列中的、當前時間之前的預定長度的時間段內(nèi)最少使用的LBA,可以將該LBA從熱數(shù)據(jù)隊列中刪除,并將該LBA添加到候選熱數(shù)據(jù)隊列,將該LBA對應的數(shù)據(jù)標記為候選熱數(shù)據(jù)。對于候選熱數(shù)據(jù)隊列中的、當前時間之前的預定長度的時間段內(nèi)最少使用的LBA,可以將該LBA從候選熱數(shù)據(jù)隊列中刪除,將該LBA對應的數(shù)據(jù)標記為冷數(shù)據(jù),并將該LBA對應的數(shù)據(jù)存放到NVM中。
      [0072]通過上述基于數(shù)據(jù)熱度的分配管理機制,對異構(gòu)混合內(nèi)存中的數(shù)據(jù)進行分級管理,將不同熱度的數(shù)據(jù)存放到內(nèi)存中的不同區(qū)域,從加快了對內(nèi)存數(shù)據(jù)的訪問速度,提升了系統(tǒng)的處理性能。
      [0073]基于上述異構(gòu)混合內(nèi)存,本發(fā)明實施例還在操作系統(tǒng)內(nèi)核層面對文件系統(tǒng)、虛擬內(nèi)存和系統(tǒng)快速啟動進行優(yōu)化,充分地利用NVM的非易失性特性,以提高系統(tǒng)性能。
      [0074]具體地,可以將文件系統(tǒng)中的文件索引、操作日志和文件系統(tǒng)緩沖區(qū)設置在NVM中進行管理,并對虛擬內(nèi)存進行優(yōu)化,用NVM中的交換分區(qū)替代磁盤交換分區(qū),用來保存從DRAM中替換出來的內(nèi)存頁。
      [0075]此外,還可以在系統(tǒng)內(nèi)核層構(gòu)建內(nèi)存鏡像,在系統(tǒng)運行時,將該內(nèi)存鏡像寫入NVM。相應地,在系統(tǒng)關(guān)機或休眠后檢測到用戶的觸發(fā),則將NVM中的內(nèi)存鏡像寫回至DRAM,從而在幾乎不影響系統(tǒng)性能情況下,通過更細粒度的時間周期,精確地實現(xiàn)內(nèi)存鏡像的同步更新,實現(xiàn)系統(tǒng)的瞬時開機或者喚醒。
      [0076]然而,NVM雖然具有非易失性,但也存在壽命上的限制。因此,針對NVM的壽命受到寫操作和擦除操作的影響的特性,可以統(tǒng)計NVM在抽樣時段內(nèi)的寫操作次數(shù)和擦除操作次數(shù),根據(jù)統(tǒng)計結(jié)果預測NVM的最大寫操作操作次數(shù)和最大擦除操作次數(shù)。相應地,在系統(tǒng)運行過程中,可以對NVM的寫操作次數(shù)和擦除操作次數(shù)進行監(jiān)控,當NVM的寫操作次數(shù)達到NVM的最大寫操作次數(shù)與第一預設百分比的乘積,或者,NVM的擦除操作次數(shù)達到NVM的最大擦除操作次數(shù)與第二預設百分比的乘積時,可以屏蔽對上述NVM的尋址操作和管理操作,并進行系統(tǒng)報警。優(yōu)選地,第一預設百分比和第二預設百分比可以均為90%。通過上述NVM壽命的管理機制,能夠防止因NVM壽命終結(jié)而造成的數(shù)據(jù)塊不可用的問題。
      [0077]此外,本發(fā)明實施例還采用加密和校驗機制,對于需要寫入到NVM中的數(shù)據(jù),可以通過加密模塊對該數(shù)據(jù)進行加密,并將加密后的數(shù)據(jù)寫入到NVM中,從而防止存儲數(shù)據(jù)被竊取。對于需要從NVM寫入到DRAM的數(shù)據(jù),可以通過解密模塊對該數(shù)據(jù)進行解密,并將解密后的數(shù)據(jù)寫入到DRAM中,從而實現(xiàn)數(shù)據(jù)的完整可用。另外,本發(fā)明實施例對NVM中的系統(tǒng)關(guān)鍵數(shù)據(jù)使用校驗機制,即,使用加解密技術(shù)對系統(tǒng)關(guān)鍵數(shù)據(jù)進行保護,防止惡意的入侵修改所引起的系統(tǒng)安全問題,保障異構(gòu)混合內(nèi)存體系結(jié)構(gòu)下的系統(tǒng)及數(shù)據(jù)安全。
      [0078]另外,本發(fā)明實施例還通過在內(nèi)核層收集系統(tǒng)運行時信息來監(jiān)控工作負載,并基于神經(jīng)網(wǎng)絡模型對系統(tǒng)能耗狀態(tài)評估,當計算節(jié)點的負載低于特定閾值時,則將該計算節(jié)點設置為休眠狀態(tài),以減少系統(tǒng)能耗;當系統(tǒng)負載提高時,則對當前處于休眠狀態(tài)的計算節(jié)點進行喚醒。與傳統(tǒng)的節(jié)能方式相比,本發(fā)明實施例將休眠的粒度從器件級提升至節(jié)點級,能夠更有效地進行能耗控制。
      [0079]基于上述異構(gòu)混合內(nèi)存,本發(fā)明實施例還提供了一種管理異構(gòu)混合內(nèi)存的裝置,該異構(gòu)混合內(nèi)存包括NVM和DRAM,該裝置的結(jié)構(gòu)如圖4所示,包括:
      [0080]接收模塊401,用于接收用戶進程發(fā)送的內(nèi)存分配請求;
      [0081]第一判斷模塊402,用于對接收模塊401接收到的用戶進程進行判斷;
      [0082]分配模塊403,用于在第一判斷模塊402判斷出用戶進程為系統(tǒng)級進程時,將DRAM中的內(nèi)存空間分配給用戶進程;在第一判斷模塊402判斷出用戶進程為批量處理進程時,將NVM中的內(nèi)存空間分配給用戶進程。
      [0083]具體地,上述分配模塊403,具體用于在第一判斷模塊402判斷出用戶進程為批量處理進程時,通過bam分配器將NVM中的內(nèi)存空間分配給用戶進程,并將分配的內(nèi)存空間的首地址返回給用戶進程;在第一判斷模塊402判斷出用戶進程為系統(tǒng)級進程時,判斷用戶進程申請分配的內(nèi)存是否為小塊內(nèi)存,如果不是小塊內(nèi)存,則通過伙伴系統(tǒng)將DRAM中的內(nèi)存空間分配給用戶進程,并將分配的內(nèi)存空間的首地址返回給用戶進程;如果是小塊內(nèi)存,則通過slab分配器將slab列表中的內(nèi)存空間分配給用戶進程,并將分配的內(nèi)存空間的首地址返回給用戶進程。
      [0084]進一步地,上述裝置,還包括:
      [0085]第二判斷模塊404,用于對用戶進程釋放的內(nèi)存空間進行判斷;
      [0086]回收模塊405,用于在第二判斷模塊404判斷出用戶進程釋放的內(nèi)存空間是DRAM中的內(nèi)存空間時,通過伙伴系統(tǒng)對用戶進程釋放的內(nèi)存空間進行回收;在第二判斷模塊404判斷出用戶進程釋放的內(nèi)存空間是NVM中的內(nèi)存空間時,將用戶進程釋放的內(nèi)存空間標記為可回收內(nèi)存,更新可回收內(nèi)存的時間戳,并在可回收內(nèi)存的時間戳到期后,通過伙伴系統(tǒng)對可回收內(nèi)存進行回收。
      [0087]進一步地,上述裝置,還包括:
      [0088]第三判斷模塊406,用于通過內(nèi)核級守護進程對可回收內(nèi)存的時間戳進行定時輪詢,判斷可回收內(nèi)存的時間戳是否到期;
      [0089]相應地,上述回收模塊405,具體用于在第二判斷模塊404判斷出用戶進程釋放的內(nèi)存空間是DRAM中的內(nèi)存空間時,通過伙伴系統(tǒng)對用戶進程釋放的內(nèi)存空間進行回收;在第二判斷模塊404判斷出用戶進程釋放的內(nèi)存空間是NVM中的內(nèi)存空間時,將用戶進程釋放的內(nèi)存空間標記為可回收內(nèi)存,更新可回收內(nèi)存的時間戳,并在第三判斷模塊406判斷出可回收內(nèi)存的時間戳到期后,通過伙伴系統(tǒng)對可回收內(nèi)存進行回收。
      [0090]進一步地,上述裝置,還包括:
      [0091]分類模塊407,用于將異構(gòu)混合內(nèi)存中的數(shù)據(jù)分為熱數(shù)據(jù)、候選熱數(shù)據(jù)和冷數(shù)據(jù),將熱數(shù)據(jù)和候選熱數(shù)據(jù)存放到DRAM中,將冷數(shù)據(jù)存放到NVM中,并生成熱數(shù)據(jù)隊列和候選熱數(shù)據(jù)隊列;
      [0092]其中,熱數(shù)據(jù)為異構(gòu)混合內(nèi)存中訪問頻率大于或等于預定的第一閾值的數(shù)據(jù),候選熱數(shù)據(jù)為異構(gòu)混合內(nèi)存中訪問頻率小于第一閾值且大于預定的第二閾值的數(shù)據(jù),冷數(shù)據(jù)為異構(gòu)混合內(nèi)存中訪問頻率小于或等于第二閾值的數(shù)據(jù),熱數(shù)據(jù)隊列用于存放熱數(shù)據(jù)的LBA,候選熱數(shù)據(jù)隊列用于存放候選熱數(shù)據(jù)的LBA。其中,第一閾值可以大于第二閾值。
      [0093]第一管理模塊408,用于將熱數(shù)據(jù)隊列中的、當前時間之前的預定長度的時間段內(nèi)最少使用的LBA從熱數(shù)據(jù)隊列中刪除并添加到候選熱數(shù)據(jù)隊列,并將上述最少使用的LBA對應的數(shù)據(jù)標記為候選熱數(shù)據(jù)。
      [0094]第二管理模塊409,用于將候選熱數(shù)據(jù)隊列中的、當前時間之前的預定長度的時間段內(nèi)最少使用的LBA從候選熱數(shù)據(jù)隊列中刪除,將該最少使用的LBA對應的數(shù)據(jù)標記為冷數(shù)據(jù),并將該最少使用的LBA對應的數(shù)據(jù)存放到NVM中。
      [0095]設置模塊410,用于將文件系統(tǒng)中的文件索引、操作日志和文件系統(tǒng)緩沖區(qū)設置在NVM中進行管理。
      [0096]優(yōu)化模塊411,用于對虛擬內(nèi)存進行優(yōu)化,用NVM中的交換分區(qū)替代磁盤交換分區(qū),用來保存從DRAM中替換出來的內(nèi)存頁。
      [0097]構(gòu)建模塊412,用于在系統(tǒng)內(nèi)核層構(gòu)建內(nèi)存鏡像;
      [0098]寫入模塊413,用于在系統(tǒng)運行時,將構(gòu)建模塊412構(gòu)建的內(nèi)存鏡像寫入NVM ;在系統(tǒng)關(guān)機或休眠后檢測到用戶的觸發(fā)時,將NVM中的內(nèi)存鏡像寫回至DRAM。
      [0099]監(jiān)控模塊414,用于對NVM的寫操作次數(shù)和擦除操作次數(shù)進行監(jiān)控;
      [0100]屏蔽模塊415,用于在監(jiān)控模塊414監(jiān)控到NVM的寫操作次數(shù)達到NVM的最大寫操作次數(shù)與第一預設百分比的乘積,或者,NVM的擦除操作次數(shù)達到NVM的最大擦除操作次數(shù)與第二預設百分比的乘積時,屏蔽對NVM的尋址操作和管理操作,并進行系統(tǒng)報警。
      [0101]評估模塊416,用于通過在內(nèi)核層收集系統(tǒng)運行時信息來監(jiān)控工作負載,并基于神經(jīng)網(wǎng)絡模型對系統(tǒng)能耗狀態(tài)評估,當計算節(jié)點的負載低于特定閾值時,將計算節(jié)點設置為休眠狀態(tài);當系統(tǒng)負載提高時,對當前處于休眠狀態(tài)的計算節(jié)點進行喚醒。
      [0102]本發(fā)明實施例針對不同類型內(nèi)存的速度差異性,使用不同的分配機制和回收機制,通過數(shù)據(jù)熱度管理和異構(gòu)混合內(nèi)存分配機制緩沖對內(nèi)存分配進行優(yōu)化,使得數(shù)據(jù)能夠根據(jù)計算需求合理地分配于異構(gòu)混合內(nèi)存體系中,提升了系統(tǒng)整體的處理性能。此外,通過介質(zhì)可靠容錯機制、系統(tǒng)容錯機制和用戶數(shù)據(jù)保密機制,能夠確保數(shù)據(jù)安全,保證內(nèi)存操作的可靠性。
      [0103]結(jié)合本文中所公開的實施例描述的方法中的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或【技術(shù)領域】內(nèi)所公知的任意其它形式的存儲介質(zhì)中。
      [0104]以上所述,僅為本發(fā)明的【具體實施方式】,但本發(fā)明的保護范圍并不局限于此,任何熟悉本【技術(shù)領域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應所述以權(quán)利要求的保護范圍為準。
      【權(quán)利要求】
      1.一種管理異構(gòu)混合內(nèi)存的方法,其特征在于,所述異構(gòu)混合內(nèi)存包括非易失性存儲器NVM和動態(tài)隨機存取存儲器DRAM,所述方法包括以下步驟: 接收用戶進程發(fā)送的內(nèi)存分配請求,對所述用戶進程進行判斷; 如果所述用戶進程為系統(tǒng)級進程,則將所述DRAM中的內(nèi)存空間分配給所述用戶進程; 如果所述用戶進程為批量處理進程,則將所述NVM中的內(nèi)存空間分配給所述用戶進程。
      2.如權(quán)利要求1所述的方法,其特征在于,還包括: 對用戶進程釋放的內(nèi)存空間進行判斷; 如果是所述DRAM中的內(nèi)存空間,則通過伙伴系統(tǒng)對所述用戶進程釋放的內(nèi)存空間進行回收; 如果是所述NVM中的內(nèi)存空間,則將所述用戶進程釋放的內(nèi)存空間標記為可回收內(nèi)存,更新所述可回收內(nèi)存的時間戳,并在所述可回收內(nèi)存的時間戳到期后,通過所述伙伴系統(tǒng)對所述可回收內(nèi)存進行回收。
      3.如權(quán)利要求1所述的方法,其特征在于,還包括: 將所述異構(gòu)混合內(nèi)存中的數(shù)據(jù)分為熱數(shù)據(jù)、候選熱數(shù)據(jù)和冷數(shù)據(jù),將所述熱數(shù)據(jù)和所述候選熱數(shù)據(jù)存放到所述DRAM中,將所述冷數(shù)據(jù)存放到NVM中,并生成熱數(shù)據(jù)隊列和候選熱數(shù)據(jù)隊列; 其中,所述熱數(shù)據(jù)為所述異構(gòu)混合內(nèi)存中訪問頻率大于或等于預定的第一閾值的數(shù)據(jù),所述候選熱數(shù)據(jù)為所述異構(gòu)混合內(nèi)存中訪問頻率小于所述第一閾值且大于預定的第二閾值的數(shù)據(jù),所述冷數(shù)據(jù)為異構(gòu)混合內(nèi)存中訪問頻率小于或等于所述第二閾值的數(shù)據(jù),所述熱數(shù)據(jù)隊列用于存放所述熱數(shù)據(jù)的邏輯區(qū)塊地址LBA,所述候選熱數(shù)據(jù)隊列用于存放所述候選熱數(shù)據(jù)的LBA。
      4.如權(quán)利要求3所述的方法,其特征在于,還包括: 將所述熱數(shù)據(jù)隊列中的、當前時間之前的預定長度的時間段內(nèi)最少使用的LBA從熱數(shù)據(jù)隊列中刪除并添加到所述候選熱數(shù)據(jù)隊列,將所述最少使用的LBA對應的數(shù)據(jù)標記為候選熱數(shù)據(jù)。
      5.如權(quán)利要求3所述的方法,其特征在于,還包括: 將所述候選熱數(shù)據(jù)隊列中的、當前時間之前的預定長度的時間段內(nèi)最少使用的LBA從所述候選熱數(shù)據(jù)隊列中刪除,將所述最少使用的LBA對應的數(shù)據(jù)標記為冷數(shù)據(jù),并將所述最少使用的LBA對應的數(shù)據(jù)存放到所述NVM中。
      6.如權(quán)利要求1所述的方法,其特征在于,還包括: 在系統(tǒng)內(nèi)核層構(gòu)建內(nèi)存鏡像,在系統(tǒng)運行時,將所述內(nèi)存鏡像寫入所述NVM; 在系統(tǒng)關(guān)機或休眠后檢測到用戶的觸發(fā),則將所述NVM中的內(nèi)存鏡像寫回至所述DRAM。
      7.—種管理異構(gòu)混合內(nèi)存的裝置,其特征在于,所述異構(gòu)混合內(nèi)存包括非易失性存儲器NVM和動態(tài)隨機存取存儲器DRAM,所述裝置包括: 接收模塊,用于接收用戶進程發(fā)送的內(nèi)存分配請求; 第一判斷模塊,用于對所述用戶進程進行判斷; 分配模塊,用于在所述第一判斷模塊判斷出所述用戶進程為系統(tǒng)級進程時,將所述DRAM中的內(nèi)存空間分配給所述用戶進程;在所述第一判斷模塊判斷出所述用戶進程為批量處理進程時,將所述NVM中的內(nèi)存空間分配給所述用戶進程。
      8.如權(quán)利要求7所述的裝置,其特征在于,還包括: 第二判斷模塊,用于對用戶進程釋放的內(nèi)存空間進行判斷; 回收模塊,用于在所述第二判斷模塊判斷出所述用戶進程釋放的內(nèi)存空間是所述DRAM中的內(nèi)存空間時,通過伙伴系統(tǒng)對所述用戶進程釋放的內(nèi)存空間進行回收;在所述第二判斷模塊判斷出所述用戶進程釋放的內(nèi)存空間是所述NVM中的內(nèi)存空間時,將所述用戶進程釋放的內(nèi)存空間標記為可回收內(nèi)存,更新所述可回收內(nèi)存的時間戳,并在所述可回收內(nèi)存的時間戳到期后,通過所述伙伴系統(tǒng)對所述可回收內(nèi)存進行回收。
      9.如權(quán)利要求7所述的裝置,其特征在于,還包括: 分類模塊,用于將所述異構(gòu)混合內(nèi)存中的數(shù)據(jù)分為熱數(shù)據(jù)、候選熱數(shù)據(jù)和冷數(shù)據(jù),將所述熱數(shù)據(jù)和所述候選熱數(shù)據(jù)存放到所述DRAM中,將所述冷數(shù)據(jù)存放到NVM中,并生成熱數(shù)據(jù)隊列和候選熱數(shù)據(jù)隊列; 其中,所述熱數(shù)據(jù)為所述異構(gòu)混合內(nèi)存中訪問頻率大于或等于預定的第一閾值的數(shù)據(jù),所述候選熱數(shù)據(jù)為所述異構(gòu)混合內(nèi)存中訪問頻率小于所述第一閾值且大于預定的第二閾值的數(shù)據(jù),所述冷數(shù)據(jù)為異構(gòu)混合內(nèi)存中訪問頻率小于或等于所述第二閾值的數(shù)據(jù),所述熱數(shù)據(jù)隊列用于存放所述熱數(shù)據(jù)的邏輯區(qū)塊地址LBA,所述候選熱數(shù)據(jù)隊列用于存放所述候選熱數(shù)據(jù)的LBA。
      10.如權(quán)利要求9所述的裝置,其特征在于,還包括: 第一管理模塊,用于將所述熱數(shù)據(jù)隊列中的、當前時間之前的預定長度的時間段內(nèi)最少使用的LBA從熱數(shù)據(jù)隊列中刪除并添加到所述候選熱數(shù)據(jù)隊列,將所述最少使用的LBA對應的數(shù)據(jù)標記為候選熱數(shù)據(jù)。
      11.如權(quán)利要求9所述的裝置,其特征在于,還包括: 第二管理模塊,用于將所述候選熱數(shù)據(jù)隊列中的、當前時間之前的預定長度的時間段內(nèi)最少使用的LBA從所述候選熱數(shù)據(jù)隊列中刪除,將所述最少使用的LBA對應的數(shù)據(jù)標記為冷數(shù)據(jù),并將所述最少使用的LBA對應的數(shù)據(jù)存放到所述NVM中。
      12.如權(quán)利要求7所述的裝置,其特征在于,還包括: 構(gòu)建模塊,用于在系統(tǒng)內(nèi)核層構(gòu)建內(nèi)存鏡像; 寫入模塊,用于在系統(tǒng)運行時,將所述內(nèi)存鏡像寫入所述NVM ;在系統(tǒng)關(guān)機或休眠后檢測到用戶的觸發(fā)時,將所述NVM中的內(nèi)存鏡像寫回至所述DRAM。
      【文檔編號】G06F12/02GK104239225SQ201410450192
      【公開日】2014年12月24日 申請日期:2014年9月4日 優(yōu)先權(quán)日:2014年9月4日
      【發(fā)明者】郭美思, 吳楠 申請人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1