国产精品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>

      一種相變內(nèi)存管理方法和裝置制造方法

      文檔序號(hào):6765292閱讀:152來源:國知局
      一種相變內(nèi)存管理方法和裝置制造方法
      【專利摘要】本發(fā)明實(shí)施例公開了一種相變內(nèi)存管理方法,包括查詢相變內(nèi)存中空閑頁面;對(duì)所述空閑頁面的每個(gè)位執(zhí)行填充1操作生成填充頁面;接收到對(duì)所述填充頁面的寫操作時(shí),根據(jù)所述寫操作確定出所述填充頁面中需要寫0的位地址,并對(duì)所述位地址對(duì)應(yīng)的位寫0。本發(fā)明實(shí)施例還公開了一種相變內(nèi)存管理裝置。采用本發(fā)明,當(dāng)對(duì)填充頁面進(jìn)行寫操作時(shí),可只對(duì)填充頁面寫0而不用寫1,避免了現(xiàn)有技術(shù)中對(duì)內(nèi)存頁面寫1耗時(shí)長的不足,能有效的減少寫操作的時(shí)間延遲。
      【專利說明】一種相變內(nèi)存管理方法和裝置

      【技術(shù)領(lǐng)域】
      [0001 ] 本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種相變內(nèi)存管理方法和裝置。

      【背景技術(shù)】
      [0002]PCM (Phase Change Memory,相變內(nèi)存)作為新一代的NVM存儲(chǔ)介質(zhì),具有讀寫時(shí)延短,壽命長的特點(diǎn)。但是,PCM寫操作的時(shí)延遠(yuǎn)大于讀操作的時(shí)延,同時(shí),相變內(nèi)存在寫O和寫I時(shí)的時(shí)延具有不對(duì)稱性,寫O時(shí)延很短,寫I時(shí)延很長,兩者的時(shí)間相差十幾倍以上。
      [0003]現(xiàn)有的技術(shù)采用按批并發(fā)寫的方式,對(duì)寫O和寫I不區(qū)分,在一批數(shù)據(jù)中,需要等待該批數(shù)據(jù)中所有的O和I都寫完,然后再寫下一批,該方案需要等待數(shù)據(jù)中的所有的位都寫完時(shí)才能寫下一批數(shù)據(jù),導(dǎo)致寫操作的時(shí)延非常大。


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

      [0004]本發(fā)明實(shí)施例所要解決的技術(shù)問題在于,提供一種相變內(nèi)存管理方法和裝置。可解決現(xiàn)有技術(shù)中相變內(nèi)存的寫操作時(shí)間延遲大的不足。
      [0005]為了解決上述技術(shù)問題,本發(fā)明第一方面提供了一種相變內(nèi)存管理方法和裝置,包括:
      [0006]查詢相變內(nèi)存中空閑頁面;
      [0007]對(duì)所述空閑頁面的每個(gè)位執(zhí)行填充I操作生成填充頁面;
      [0008]接收到對(duì)所述填充頁面的寫操作時(shí),根據(jù)所述寫操作確定出所述填充頁面中需要寫O的位地址,并對(duì)所述位地址對(duì)應(yīng)的位寫O。
      [0009]結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,所述對(duì)所述空閑頁面的每個(gè)位執(zhí)行填充I操作生成填充頁面的步驟之后,還包括:
      [0010]接收到內(nèi)核發(fā)出內(nèi)存頁面分配請(qǐng)求時(shí),將所述填充頁面分配給所述內(nèi)核。
      [0011]結(jié)合第一方面及第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述對(duì)所述空閑頁面的每個(gè)位執(zhí)行填充I操作生成填充頁面的步驟包括:
      [0012]將所述空閑頁面移入第一頁面集合;
      [0013]對(duì)所述空閑頁面的每個(gè)位執(zhí)行填充I操作生成填充頁面;
      [0014]將所述填充頁面移入第二頁面集合。
      [0015]結(jié)合第一方面及第一種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述對(duì)所述空閑頁面的每個(gè)位執(zhí)行填充I操作生成填充頁面的步驟包括:
      [0016]為處于填充I操作過程中的所述空閑頁面關(guān)聯(lián)填充標(biāo)識(shí)符;
      [0017]所述空閑頁面填充I操作完成生成填充頁面后刪除所述填充標(biāo)識(shí)符。
      [0018]結(jié)合第一方面及第一種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述對(duì)所述空閑頁面的每個(gè)位執(zhí)行填充I操作生成填充頁面的步驟包括:
      [0019]讀取所述空閑頁面的每個(gè)位對(duì)應(yīng)的數(shù)值,若數(shù)值為1,不將該位鉻I ;若數(shù)值為0,將該位鉻I。
      [0020]結(jié)合第一方面至第四種可能的實(shí)現(xiàn)方式中的任一種,在第五種可能的實(shí)現(xiàn)方式中,還包括:
      [0021]若檢測到所述相變內(nèi)存處于空閑狀態(tài),執(zhí)行所述查詢相變內(nèi)存中的空閑頁面的步驟。
      [0022]相應(yīng)地,本發(fā)明第二方面還提供了一種相變內(nèi)存管理裝置,包括:
      [0023]查詢模塊,用于查詢相變內(nèi)存中空閑頁面;
      [0024]填充模塊,用于對(duì)所述空閑頁面的每個(gè)位執(zhí)行填充I操作生成填充頁面;
      [0025]寫O模塊,用于接收到對(duì)所述填充頁面的寫操作時(shí),根據(jù)所述寫操作確定出所述填充頁面中需要寫O的位地址,并對(duì)所述位地址對(duì)應(yīng)的位寫O。
      [0026]結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,還包括:
      [0027]分配模塊,用于接收到內(nèi)核發(fā)出內(nèi)存頁面分配請(qǐng)求時(shí),將所述填充頁面分配給所述內(nèi)核。
      [0028]結(jié)合第二方面及第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述填充模塊用于:
      [0029]將所述空閑頁面移入第一頁面集合;
      [0030]對(duì)所述空閑頁面的每個(gè)位執(zhí)行填充I操作生成填充頁面;
      [0031]將所述填充頁面移入第二頁面集合。
      [0032]結(jié)合第二方面及第一種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述填充模塊用于:
      [0033]為處于填充I操作過程中的所述空閑頁面關(guān)聯(lián)填充標(biāo)識(shí)符;
      [0034]所述空閑頁面填充I操作完成生成填充頁面后刪除所述填充標(biāo)識(shí)符。
      [0035]結(jié)合第二方面及第一種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述填充模塊用于:
      [0036]讀取所述空閑頁面的每個(gè)位對(duì)應(yīng)的數(shù)值,若數(shù)值為1,不將該位鉻I ;若數(shù)值為0,將該位鉻I。
      [0037]結(jié)合第二方面至第四種可能的實(shí)現(xiàn)方式中的任一種,在第五種可能的實(shí)現(xiàn)方式中,還包括:
      [0038]檢測模塊,用于若檢測到所述相變內(nèi)存處于空閑狀態(tài),指示所述查詢模塊開始工作。
      [0039]實(shí)施本發(fā)明,具有如下有益效果:
      [0040]通過查詢相變內(nèi)存中的空閑頁面,對(duì)查詢到的空閑頁面執(zhí)行填充I操作生成填充頁面,填充頁面的每個(gè)位的值均為I。當(dāng)對(duì)填充頁面進(jìn)行寫操作時(shí),可只對(duì)填充頁面寫O而不用寫1,避免了現(xiàn)有技術(shù)中對(duì)內(nèi)存頁面寫I耗時(shí)長的不足,能有效的減少寫操作的時(shí)間延遲。

      【專利附圖】

      【附圖說明】
      [0041]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
      [0042]圖1是本發(fā)明第一實(shí)施例的一種相變內(nèi)存管理方法的流程示意圖;
      [0043]圖2是本發(fā)明第二實(shí)施例的一種相變內(nèi)存管理方法的流程示意圖;
      [0044]圖3是本發(fā)明第三實(shí)施例的一種相變內(nèi)存管理方法的流程示意圖;
      [0045]圖4是本發(fā)明第一實(shí)施例的一種相變內(nèi)存管理裝置的流程示意圖;
      [0046]圖5是本發(fā)明第二實(shí)施例的一種相變內(nèi)存管理裝置的流程示意圖;
      [0047]圖6是本發(fā)明第三實(shí)施例的一種相變內(nèi)存管理裝置的流程示意圖。

      【具體實(shí)施方式】
      [0048]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
      [0049]參見圖1,為本發(fā)明第一實(shí)施例的一種相變內(nèi)存管理方法的流程示意圖,在本實(shí)施例中,所述方法包括:
      [0050]S101、查詢相變內(nèi)存中的空閑頁面。
      [0051]具體的,所述空閑頁面是指相變內(nèi)存中未被占用的物理頁面,當(dāng)操作系統(tǒng)需要運(yùn)行進(jìn)程時(shí),CPU會(huì)從內(nèi)存中分配一段未被占用的物理頁面給該進(jìn)程,分配給該進(jìn)程的物理頁面是連續(xù)的或非連續(xù)的,同時(shí)會(huì)將分配記錄保存至內(nèi)存中,內(nèi)存控制器通過查詢分配記錄得知相變內(nèi)存中的空閑頁面。
      [0052]S102、對(duì)所述空閑頁面的每個(gè)位執(zhí)行填充I操作生成填充頁面。
      [0053]具體的,內(nèi)存控制器將查詢到的空閑頁面執(zhí)行填充I操作生成填充頁面,填充頁面中每個(gè)位的值均為I。
      [0054]可選的,在內(nèi)存控制器查詢到若干個(gè)空閑頁面時(shí),獲取每個(gè)空閑頁面的使用次數(shù),內(nèi)存控制器按照其使用次數(shù)將空閑頁面從多到少進(jìn)行排序,在執(zhí)行填充操作時(shí),首先對(duì)使用次數(shù)多的空閑頁面進(jìn)行填充??臻e頁面的使用次數(shù)表明其被調(diào)用的頻率,使用次數(shù)越多說明經(jīng)常被調(diào)用,可以優(yōu)先進(jìn)行分配。
      [0055]S103、接收到對(duì)所述填充頁面的寫操作時(shí),根據(jù)所述寫操作確定出所述填充頁面中需要寫O的位地址,并對(duì)所述位地址對(duì)應(yīng)的位寫O。
      [0056]具體的,內(nèi)存控制器接收到對(duì)填充頁面的寫操作,寫操作中包括目標(biāo)數(shù)據(jù)中和目標(biāo)地址,該目標(biāo)地址為填充頁面中的某段地址,內(nèi)存控制器根據(jù)目標(biāo)數(shù)據(jù)和目標(biāo)地址確定出填充頁面中需要寫O的位地址,只對(duì)填充頁面寫O而不用寫I即完成目標(biāo)數(shù)據(jù)的寫入。例如,假設(shè)寫操作中包括的目標(biāo)數(shù)據(jù)為8位數(shù)據(jù),從低位到高位分別為10001110,目標(biāo)地址為低位的位地址,用十六進(jìn)制表示為0XFF010101,則根據(jù)目標(biāo)數(shù)據(jù)確定出需要寫O的位為第2、3、4和8位,根據(jù)目標(biāo)地址確定寫O的位地址分別為0xFF010102、0xFF010103、0xFF010104和0xFF010108,即上述位地址為填充頁面中需要寫O的位地址,內(nèi)存控制器對(duì)上述位地址對(duì)應(yīng)的位寫O。
      [0057]實(shí)施本發(fā)明的實(shí)施例,通過查詢相變內(nèi)存中的空閑頁面,對(duì)查詢到的空閑頁面執(zhí)行填充I操作生成填充頁面,填充頁面的每個(gè)位的值均為I。當(dāng)對(duì)填充頁面進(jìn)行寫操作時(shí),可只對(duì)填充頁面寫O而不用寫1,避免了現(xiàn)有技術(shù)中對(duì)內(nèi)存頁面寫I耗時(shí)長的不足,能有效的減少寫操作的時(shí)間延遲。
      [0058]參見圖2,為本發(fā)明第二實(shí)施例的一種相變內(nèi)存管理方法的流程示意圖,在本實(shí)施例中,所述方法包括:
      [0059]S201、若檢測到相變內(nèi)存處于空閑狀態(tài),查詢相變內(nèi)存中的空閑頁面。
      [0060]具體的,內(nèi)存控制器檢測相變內(nèi)存是否處于空閑狀態(tài),檢測的方法可以是內(nèi)存控制器檢測控制總線上是否有發(fā)往相變內(nèi)存的讀/寫指令,若沒有,則確定相變內(nèi)存處于空閑裝置,然后內(nèi)存控制器查詢相變內(nèi)存中的空閑頁面。在相變內(nèi)存處于空閑狀態(tài)時(shí),再查詢相變內(nèi)存中的空閑頁面可以避免查詢操作和對(duì)內(nèi)存的讀/寫操作發(fā)生沖突而增加相變內(nèi)存的處理開銷。
      [0061]所述空閑頁面是指相變內(nèi)存中未被占用的物理頁面,當(dāng)操作系統(tǒng)需要運(yùn)行進(jìn)程時(shí),CPU會(huì)從內(nèi)存中分配一段未被占用的物理頁面給該進(jìn)程,分配給該進(jìn)程的物理頁面是連續(xù)的或非連續(xù)的,同時(shí)會(huì)將分配記錄保存至內(nèi)存中,內(nèi)存控制器通過查詢分配記錄得知相變內(nèi)存中的空閑頁面。
      [0062]S202、將所述空閑頁面移入第一頁面集合。
      [0063]具體的,所述第一頁面集合用于存儲(chǔ)未被執(zhí)行填充I操作的空閑頁面。例如,內(nèi)存控制器可以將查詢到的若干個(gè)空閑頁面依次移入一個(gè)鏈表中,該鏈表用Pre fill pagelist命名。
      [0064]S203、對(duì)所述空閑頁面的每個(gè)位執(zhí)行填充I操作生成填充頁面。
      [0065]具體的,內(nèi)存控制器將查詢到的空閑頁面執(zhí)行填充I操作生成填充頁面,填充頁面中每個(gè)位的值均為I。
      [0066]可選的,在內(nèi)存控制器查詢到若干個(gè)空閑頁面時(shí),獲取每個(gè)空閑頁面的使用次數(shù),內(nèi)存控制器按照其使用次數(shù)將空閑頁面從多到少進(jìn)行排序,在執(zhí)行填充操作時(shí),首先對(duì)使用次數(shù)多的空閑頁面進(jìn)行填充??臻e頁面的使用次數(shù)表明其被調(diào)用的頻率,使用次數(shù)越多說明經(jīng)常被調(diào)用,可以優(yōu)先進(jìn)行分配。
      [0067]可選的,內(nèi)存控制器可以采用隨機(jī)的方式對(duì)查詢到的若干個(gè)空閑頁面進(jìn)行填充生成填充頁面。
      [0068]可選的,內(nèi)存控制器對(duì)空閑頁面進(jìn)行填充I操作時(shí)可以按照預(yù)設(shè)的填充粒度進(jìn)行填充,例如,按照行線或列線為一個(gè)單位進(jìn)行填充,以提高填充I操作的效率。
      [0069]可選的,內(nèi)存控制器在對(duì)空閑頁面進(jìn)行填充I操作時(shí),可以先讀出空閑頁面中待填充未的值,若該值為1,不對(duì)該位執(zhí)行填充I操作,若為0,對(duì)該位執(zhí)行填充I操作。例如,空閑頁面的空間為I個(gè)字節(jié),從低位到高位的值分別為01011100,內(nèi)存控制器讀取第I位的值為0,將第I位的值填充為I ;內(nèi)存控制器讀取第2位的值為1,不執(zhí)行填充I操作,繼續(xù)讀取第3位的值為1,執(zhí)行填充I操作,按照逢O填充逢I不填充的原則對(duì)空閑頁面進(jìn)行填充I操作,可能有效節(jié)省填充的時(shí)間。
      [0070]S204、將所述填充頁面移入第二頁面集合。
      [0071]具體的,第二頁面集合用于存儲(chǔ)已完成填充I操作的填充頁面。例如,內(nèi)存控制器可以將完成填充I操作的填充頁面依次移入另外一個(gè)鏈表中,該鏈表用Free page list命名。
      [0072]在一個(gè)示例性的說明中,鏈表Pre fill page list按順序存儲(chǔ)有空閑頁面1、空閑頁面2、空閑頁面3和空閑頁面4,其中,空閑頁面I為鏈頭,空閑頁面4為鏈尾,鏈表Freepage list為空鏈表。內(nèi)存控制器首先對(duì)空閑頁面I執(zhí)行填充I操作,填充完成后生成填充頁面I,將填充頁面I移入鏈表Free page list的鏈頭的位鉻,然后,內(nèi)存控制器對(duì)空閑頁面2執(zhí)行填充I操作,填充完成后生成填充頁面2,將填充頁面2放在填充頁面I的后面,內(nèi)存控制器按照先進(jìn)先出的方式對(duì)空閑頁面進(jìn)行填充。
      [0073]S205、接收內(nèi)核發(fā)出的內(nèi)存頁面分配請(qǐng)求,將所述填充頁面分配給所述內(nèi)核。
      [0074]具體的,當(dāng)內(nèi)核需要運(yùn)行一個(gè)進(jìn)程時(shí),需要為該進(jìn)程分配內(nèi)存頁面,內(nèi)存控制器在接收到內(nèi)核的內(nèi)存分配請(qǐng)求時(shí),將第二頁面集合中的填充頁面分配給所述內(nèi)存。當(dāng)內(nèi)核對(duì)填充頁面進(jìn)行寫操作時(shí),由于填充頁面中的每個(gè)位的值均為1,此時(shí)內(nèi)核不需要對(duì)該填充頁面寫I而只需要寫0,在相變內(nèi)存中,寫I的時(shí)間延遲遠(yuǎn)與寫O的時(shí)間延遲具有不對(duì)稱性,前者要遠(yuǎn)大于后者,采用本發(fā)明中的預(yù)填充I的方法,避免了對(duì)相變內(nèi)存寫1,能減少寫操作的時(shí)間延遲。
      [0075]S206、接收到對(duì)所述填充頁面的寫操作時(shí),根據(jù)所述寫操作確定出所述填充頁面中需要寫O的位地址,并對(duì)所述位地址對(duì)應(yīng)的位寫O。
      [0076]具體的,內(nèi)存控制器接收到對(duì)填充頁面的寫操作,寫操作中包括目標(biāo)數(shù)據(jù)中和目標(biāo)地址,該目標(biāo)地址為填充頁面中的某段地址,內(nèi)存控制器根據(jù)目標(biāo)數(shù)據(jù)和目標(biāo)地址確定出填充頁面中需要寫O的位地址,只對(duì)填充頁面寫O而不用寫I即完成目標(biāo)數(shù)據(jù)的寫入。例如,假設(shè)寫操作中包括的目標(biāo)數(shù)據(jù)為8位數(shù)據(jù),從低位到高位分別為10001110,目標(biāo)地址為低位的位地址,用十六進(jìn)制表示為OxFFOlOlOl,則根據(jù)目標(biāo)數(shù)據(jù)確定出需要寫O的位為第2、3、4和8位,根據(jù)目標(biāo)地址確定寫O的位地址分別為0xFF010102、0xFF010103、0xFF010104和0xFF010108,即上述位地址為填充頁面中需要寫O的位地址,內(nèi)存控制器對(duì)上述位地址對(duì)應(yīng)的位寫O。
      [0077]實(shí)施本發(fā)明的實(shí)施例,通過查詢相變內(nèi)存中的空閑頁面,對(duì)查詢到的空閑頁面執(zhí)行填充I操作生成填充頁面,填充頁面的每個(gè)位的值均為I。當(dāng)對(duì)填充頁面進(jìn)行寫操作時(shí),可只對(duì)填充頁面寫O而不用寫1,避免了現(xiàn)有技術(shù)中對(duì)內(nèi)存頁面寫I耗時(shí)長的不足,能有效的減少寫操作的時(shí)間延遲。
      [0078]參見圖3,為本發(fā)明第三實(shí)施例的一種相變內(nèi)存管理方法的流程示意圖,在本實(shí)施例中,所述方法包括:
      [0079]S301、若檢測到相變內(nèi)存處于空閑狀態(tài),查詢相變內(nèi)存中的空閑頁面。
      [0080]具體的,內(nèi)存控制器檢測相變內(nèi)存是否處于空閑狀態(tài),檢測的方法可以是內(nèi)存控制器檢測控制總線上是否有發(fā)往相變內(nèi)存的讀/寫指令,若沒有,則確定相變內(nèi)存處于空閑裝置,然后內(nèi)存控制器查詢相變內(nèi)存中的空閑頁面。在相變內(nèi)存處于空閑狀態(tài)時(shí),再查詢相變內(nèi)存中的空閑頁面可以避免查詢操作和對(duì)內(nèi)存的讀/寫操作發(fā)生沖突而增加相變內(nèi)存的處理開銷。
      [0081]所述空閑頁面是指相變內(nèi)存中未被占用的物理頁面,當(dāng)操作系統(tǒng)需要運(yùn)行進(jìn)程時(shí),CPU會(huì)從內(nèi)存中分配一段未被占用的物理頁面給該進(jìn)程,分配給該進(jìn)程的物理頁面是連續(xù)的或非連續(xù)的,同時(shí)會(huì)將分配記錄保存至內(nèi)存中,內(nèi)存控制器通過查詢分配記錄得知相變內(nèi)存中的空閑頁面。
      [0082]S302、為處于填充I操作過程中的所述空閑頁面關(guān)聯(lián)填充標(biāo)識(shí)符。
      [0083]具體的,內(nèi)存控制器在對(duì)空閑頁面執(zhí)行填充I操作過程中,為該空閑頁面分配一個(gè)填充標(biāo)識(shí)符,該填充標(biāo)識(shí)符用于表示空閑頁面正在進(jìn)行填充。接收到對(duì)處于填充I操作過程的空閑頁面的讀/寫指令時(shí),停止填充I的操作,在響應(yīng)讀/寫指令后重新進(jìn)行填充。
      [0084]S303、所述空閑頁面填充I操作完成生成填充頁面后刪除所述填充標(biāo)識(shí)符。
      [0085]S304、接收到內(nèi)核發(fā)出的內(nèi)存頁面分配請(qǐng)求時(shí),將所述填充頁面分配給所述內(nèi)核。
      [0086]具體的,當(dāng)內(nèi)核需要運(yùn)行一個(gè)進(jìn)程時(shí),需要為該進(jìn)程分配內(nèi)存頁面,內(nèi)存控制器在接收到內(nèi)核的內(nèi)存分配請(qǐng)求時(shí),將第二頁面集合中的填充頁面分配給所述內(nèi)存。當(dāng)內(nèi)核對(duì)填充頁面進(jìn)行寫操作時(shí),由于填充頁面中的每個(gè)位的值均為1,此時(shí)內(nèi)核不需要對(duì)該填充頁面寫I而只需要寫0,在相變內(nèi)存中,寫I的時(shí)間延遲遠(yuǎn)與寫O的時(shí)間延遲具有不對(duì)稱性,前者要遠(yuǎn)大于后者,采用本發(fā)明中的預(yù)填充I的方法,避免了對(duì)相變內(nèi)存寫1,能減少寫操作的時(shí)間延遲。
      [0087]S305、接收到對(duì)所述填充頁面的寫操作時(shí),根據(jù)所述寫操作確定出所述填充頁面中需要寫O的位地址,并對(duì)所述位地址對(duì)應(yīng)的位寫O。
      [0088]具體的,內(nèi)存控制器接收到對(duì)填充頁面的寫操作,寫操作中包括目標(biāo)數(shù)據(jù)中和目標(biāo)地址,該目標(biāo)地址為填充頁面中的某段地址,內(nèi)存控制器根據(jù)目標(biāo)數(shù)據(jù)和目標(biāo)地址確定出填充頁面中需要寫O的位地址,只對(duì)填充頁面寫O而不用寫I即完成目標(biāo)數(shù)據(jù)的寫入。例如,假設(shè)寫操作中包括的目標(biāo)數(shù)據(jù)為8位數(shù)據(jù),從低位到高位分別為10001110,目標(biāo)地址為低位的位地址,用十六進(jìn)制表示為OxFFOlOlOl,則根據(jù)目標(biāo)數(shù)據(jù)確定出需要寫O的位為第2、3、4和8位,根據(jù)目標(biāo)地址確定寫O的位地址分別為0xFF010102、0xFF010103、OxFFO 10104和0xFF010108,即上述位地址為填充頁面中需要寫O的位地址,內(nèi)存控制器對(duì)上述位地址對(duì)應(yīng)的位寫O。
      [0089]在本發(fā)明的一個(gè)示例性的說明中,假設(shè)填充頁面的空間為I個(gè)字節(jié),每個(gè)位的值均為1,假設(shè)在相變內(nèi)存中,對(duì)一個(gè)位寫I的時(shí)間為5T,寫O的時(shí)間為T,寫操作的數(shù)據(jù)為01110011,則在現(xiàn)有的寫操作中,寫完數(shù)據(jù)的時(shí)間為4*T+4*5T=24T。采用本發(fā)明提供的方法,逢I不寫逢O寫,所需的時(shí)間為4*Τ=4Τ,可以節(jié)省寫操作的時(shí)間延遲,提高寫操作的效率。
      [0090]參見圖4,為本發(fā)明第一實(shí)施例的一種相變內(nèi)存管理裝置的結(jié)構(gòu)示意圖,在本發(fā)明的實(shí)施例中,所述相變內(nèi)存管理裝置包括查詢模塊10、填充模塊20和寫O模塊30,
      [0091]查詢模塊10,用于查詢相變內(nèi)存中空閑頁面。
      [0092]具體的,所述空閑頁面是指相變內(nèi)存中未被占用的物理頁面,當(dāng)操作系統(tǒng)需要運(yùn)行進(jìn)程時(shí),CPU會(huì)從內(nèi)存中分配一段未被占用的物理頁面給該進(jìn)行,分配給該進(jìn)程的物理頁面是連續(xù)的或非連續(xù)的,同時(shí)會(huì)將分配記錄保存至內(nèi)存中,查詢模塊10可通過查詢分配記錄得知相變內(nèi)存中的空閑頁面。
      [0093]填充模塊20,用于對(duì)所述空閑頁面的每個(gè)位執(zhí)行填充I操作生成填充頁面。
      [0094]具體的,內(nèi)存控制器將查詢到的空閑頁面執(zhí)行填充I操作生成填充頁面,填充頁面中每個(gè)位的值均為I。
      [0095]可選的,在查詢模塊10查詢到若干個(gè)空閑頁面時(shí),獲取每個(gè)空閑頁面的使用次數(shù),填充模塊20按照其使用次數(shù)將空閑頁面從多到少進(jìn)行排序,在執(zhí)行填充操作時(shí),首先對(duì)使用次數(shù)多的空閑頁面進(jìn)行填充??臻e頁面的使用次數(shù)表明其被調(diào)用的頻率,使用次數(shù)越多說明經(jīng)常被調(diào)用,可以優(yōu)先進(jìn)行分配。
      [0096]寫O模塊30,用于接收到對(duì)所述填充頁面的寫操作時(shí),根據(jù)所述寫操作確定出所述填充頁面中需要寫O的位地址,并對(duì)所述位地址對(duì)應(yīng)的位寫O。
      [0097]具體的,寫O模塊30接收到對(duì)填充頁面的寫操作,寫操作中包括目標(biāo)數(shù)據(jù)中和目標(biāo)地址,該目標(biāo)地址為填充頁面中的某段地址,寫O模塊30根據(jù)目標(biāo)數(shù)據(jù)和目標(biāo)地址確定出填充頁面中需要寫O的位地址,只對(duì)填充頁面寫O而不用寫I即完成目標(biāo)數(shù)據(jù)的寫入。例如,假設(shè)寫操作中包括的目標(biāo)數(shù)據(jù)為8位數(shù)據(jù),從低位到高位分別為10001110,目標(biāo)地址為低位的位地址,用十六進(jìn)制表示為OxFFOlOlOl,則根據(jù)目標(biāo)數(shù)據(jù)確定出需要寫O的位為第2、3、4和8位,根據(jù)目標(biāo)地址確定寫O的位地址分別為0xFF010102、0xFF010103、0xFF010104和0xFF010108,即上述位地址為填充頁面中需要寫O的位地址,寫O模塊30對(duì)上述位地址對(duì)應(yīng)的位寫O。
      [0098]實(shí)施本發(fā)明的實(shí)施例,通過查詢相變內(nèi)存中的空閑頁面,對(duì)查詢到的空閑頁面執(zhí)行填充I操作生成填充頁面,填充頁面的每個(gè)位的值均為I。當(dāng)對(duì)填充頁面進(jìn)行寫操作時(shí),可只對(duì)填充頁面寫O而不用寫1,避免了現(xiàn)有技術(shù)中對(duì)內(nèi)存頁面寫I耗時(shí)長的不足,能有效的減少寫操作的時(shí)間延遲。
      [0099]參見圖5,為本發(fā)明第二實(shí)施例的一種相變內(nèi)存管理裝置的結(jié)構(gòu)示意圖,在本發(fā)明的實(shí)施例中,所述相變內(nèi)存管理裝置除包括查詢模塊10、填充模塊20和寫O模塊30之外,還包括檢測模塊40和分配模塊50。
      [0100]檢測模塊40,用于若檢測到所述相變內(nèi)存處于空閑狀態(tài),指示所述查詢模塊開始工作。
      [0101]分配模塊50,用于接收到內(nèi)核發(fā)出內(nèi)存頁面分配請(qǐng)求時(shí),將所述填充頁面分配給所述內(nèi)核。
      [0102]可選的,填充模塊20用于:
      [0103]將所述空閑頁面移入第一頁面集合;對(duì)所述空閑頁面的每個(gè)位執(zhí)行填充I操作生成填充頁面;將所述填充頁面移入第二頁面集合。
      [0104]具體的,所述第一頁面集合用于存儲(chǔ)未被執(zhí)行填充I操作的空閑頁面,填充模塊20將空閑頁面移入第一頁面集合。例如,填充模塊20可以將查詢到的若干個(gè)空閑頁面依次移入一個(gè)鏈表中,該鏈表用Pre fill page list命名。填充模塊20將查詢到的空閑頁面執(zhí)行填充I操作生成填充頁面,填充頁面中每個(gè)位的值均為I。第二頁面集合用于存儲(chǔ)已完成填充I操作的填充頁面,填充模塊20將填充頁面移入第二頁面集合。例如,填充模塊20可以將完成填充I操作的填充頁面依次移入另外一個(gè)鏈表中,該鏈表用Free page list命名。
      [0105]在一個(gè)示例性的說明中,鏈表Pre fill page list按順序存儲(chǔ)有空閑頁面1、空閑頁面2、空閑頁面3和空閑頁面4,其中,空閑頁面I為鏈頭,空閑頁面4為鏈尾,鏈表Freepage list為空鏈表。填充模塊20首先對(duì)空閑頁面I執(zhí)行填充I操作,填充完成后生成填充頁面1,將填充頁面I移入鏈表Free page list的鏈頭的位鉻,然后,填充模塊20對(duì)空閑頁面2執(zhí)行填充I操作,填充完成后生成填充頁面2,將填充頁面2放在填充頁面I的后面,內(nèi)存控制器按照先進(jìn)先出的方式對(duì)空閑頁面進(jìn)行填充。
      [0106]可選的,填充模塊20用于:
      [0107]為處于填充I操作過程中的所述空閑頁面關(guān)聯(lián)填充標(biāo)識(shí)符;
      [0108]所述空閑頁面填充I操作完成生成填充頁面后刪除所述填充標(biāo)識(shí)符。
      [0109]可選的,填充模塊20用于:
      [0110]讀取所述空閑頁面的每個(gè)位對(duì)應(yīng)的數(shù)值,若數(shù)值為1,不將該位鉻I ;若數(shù)值為0,將該位鉻I。
      [0111]實(shí)施本發(fā)明的實(shí)施例,通過查詢相變內(nèi)存中的空閑頁面,對(duì)查詢到的空閑頁面執(zhí)行填充I操作生成填充頁面,填充頁面的每個(gè)位的值均為I。當(dāng)對(duì)填充頁面進(jìn)行寫操作時(shí),可只對(duì)填充頁面寫O而不用寫1,避免了現(xiàn)有技術(shù)中對(duì)內(nèi)存頁面寫I耗時(shí)長的不足,能有效的減少寫操作的時(shí)間延遲。
      [0112]參見圖6,為本發(fā)明第三實(shí)施例的一種相變內(nèi)存管理裝置的結(jié)構(gòu)示意圖,在本實(shí)施例中,相變內(nèi)存管理裝置I包括處理器61、存儲(chǔ)器62、輸入裝置63和輸出裝置64,相變內(nèi)存管理裝置I中的處理器61的數(shù)量可以是一個(gè)或多個(gè),圖6以一個(gè)處理器為例。本發(fā)明的一些實(shí)施例中,處理器61、存儲(chǔ)器62、輸入裝置63和輸出裝置64可通過總線或其他方式連接,圖6中以總線連接為例。
      [0113]其中,存儲(chǔ)器62中存儲(chǔ)一組程序代碼,且處理器61用于調(diào)用存儲(chǔ)器62中存儲(chǔ)的程序代碼,用于執(zhí)行以下操作:
      [0114]查詢相變內(nèi)存中空閑頁面;
      [0115]對(duì)所述空閑頁面的每個(gè)位執(zhí)行填充I操作生成填充頁面;
      [0116]接收到對(duì)所述填充頁面的寫操作時(shí),根據(jù)所述寫操作確定出所述填充頁面中需要寫O的位地址,并對(duì)所述位地址對(duì)應(yīng)的位寫O。
      [0117]在本發(fā)明的一些實(shí)施例中,處理器61還用于執(zhí)行:
      [0118]接收到內(nèi)核發(fā)出內(nèi)存頁面分配請(qǐng)求時(shí),將所述填充頁面分配給所述內(nèi)核。
      [0119]在本發(fā)明的一些實(shí)施例中,處理器61執(zhí)行所述對(duì)所述空閑頁面的每個(gè)位執(zhí)行填充I操作生成填充頁面的步驟包括:
      [0120]將所述空閑頁面移入第一頁面集合;
      [0121]對(duì)所述空閑頁面的每個(gè)位執(zhí)行填充I操作生成填充頁面;
      [0122]將所述填充頁面移入第二頁面集合。
      [0123]在本發(fā)明的一些實(shí)施例中,處理器61執(zhí)行所述對(duì)所述空閑頁面的每個(gè)位執(zhí)行填充I操作生成填充頁面的步驟包括:
      [0124]為處于填充I操作過程中的所述空閑頁面關(guān)聯(lián)填充標(biāo)識(shí)符;
      [0125]所述空閑頁面填充I操作完成生成填充頁面后刪除所述填充標(biāo)識(shí)符。
      [0126]在本發(fā)明的一些實(shí)施例中,處理器61執(zhí)行所述對(duì)所述空閑頁面的每個(gè)位執(zhí)行填充I操作生成填充頁面的步驟包括:
      [0127]讀取所述空閑頁面的每個(gè)位對(duì)應(yīng)的數(shù)值,若數(shù)值為1,不將該位鉻I ;若數(shù)值為0,將該位鉻I。
      [0128]在本發(fā)明的一些實(shí)施例中,處理器61還用于執(zhí)行:
      [0129]若檢測到所述相變內(nèi)存處于空閑狀態(tài),執(zhí)行所述查詢相變內(nèi)存中的空閑頁面的步驟。
      [0130]實(shí)施本發(fā)明的實(shí)施例,通過查詢相變內(nèi)存中的空閑頁面,對(duì)查詢到的空閑頁面執(zhí)行填充I操作生成填充頁面,填充頁面的每個(gè)位的值均為I。當(dāng)對(duì)填充頁面進(jìn)行寫操作時(shí),可只對(duì)填充頁面寫O而不用寫1,避免了現(xiàn)有技術(shù)中對(duì)內(nèi)存頁面寫I耗時(shí)長的不足,能有效的減少寫操作的時(shí)間延遲。
      [0131]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)或隨機(jī)存儲(chǔ)記憶體(Random AccessMemory, RAM)等。
      [0132]以上所揭露的僅為本發(fā)明一種較佳實(shí)施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分流程,并依本發(fā)明權(quán)利要求所作的等同變化,仍屬于發(fā)明所涵蓋的范圍。
      【權(quán)利要求】
      1.一種相變內(nèi)存管理方法,其特征在于,包括: 查詢相變內(nèi)存中空閑頁面; 對(duì)所述空閑頁面的每個(gè)位執(zhí)行填充I操作生成填充頁面; 接收到對(duì)所述填充頁面的寫操作時(shí),根據(jù)所述寫操作確定出所述填充頁面中需要寫O的位地址,并對(duì)所述位地址對(duì)應(yīng)的位寫O。
      2.如權(quán)利要求1所述的方法,其特征在于,所述對(duì)所述空閑頁面的每個(gè)位執(zhí)行填充I操作生成填充頁面的步驟之后,還包括: 接收到內(nèi)核發(fā)出內(nèi)存頁面分配請(qǐng)求時(shí),將所述填充頁面分配給所述內(nèi)核。
      3.如權(quán)利要求1或2所述的方法,其特征在于,所述對(duì)所述空閑頁面的每個(gè)位執(zhí)行填充I操作生成填充頁面的步驟包括: 將所述空閑頁面移入第一頁面集合; 對(duì)所述空閑頁面的每個(gè)位執(zhí)行填充I操作生成填充頁面; 將所述填充頁面移入第二頁面集合。
      4.如權(quán)利要求1或2所述的方法,其特征在于,所述對(duì)所述空閑頁面的每個(gè)位執(zhí)行填充I操作生成填充頁面的步驟包括: 為處于填充I操作過程中的所述空閑頁面關(guān)聯(lián)填充標(biāo)識(shí)符; 所述空閑頁面填充I操作完成生成填充頁面后刪除所述填充標(biāo)識(shí)符。
      5.如權(quán)利要求1或2所述的方法,其特征在于,所述對(duì)所述空閑頁面的每個(gè)位執(zhí)行填充I操作生成填充頁面的步驟包括: 讀取所述空閑頁面的每個(gè)位對(duì)應(yīng)的數(shù)值,若數(shù)值為1,不將該位置I ;若數(shù)值為O,將該位置I。
      6.如權(quán)利要求1-5任意一項(xiàng)所述的方法,其特征在于,還包括: 若檢測到所述相變內(nèi)存處于空閑狀態(tài),執(zhí)行所述查詢相變內(nèi)存中的空閑頁面的步驟。
      7.—種相變內(nèi)存管理裝置,其特征在于,包括: 查詢模塊,用于查詢相變內(nèi)存中空閑頁面; 填充模塊,用于對(duì)所述空閑頁面的每個(gè)位執(zhí)行填充I操作生成填充頁面。 寫O模塊,用于接收到對(duì)所述填充頁面的寫操作時(shí),根據(jù)所述寫操作確定出所述填充頁面中需要寫O的位地址,并對(duì)所述位地址對(duì)應(yīng)的位寫O。
      8.如權(quán)利要求7所述的裝置,其特征在于,還包括: 分配模塊,用于接收到內(nèi)核發(fā)出內(nèi)存頁面分配請(qǐng)求時(shí),將所述填充頁面分配給所述內(nèi)核。
      9.如權(quán)利要求7或8所述的裝置,其特征在于,所述填充模塊用于: 將所述空閑頁面移入第一頁面集合; 對(duì)所述空閑頁面的每個(gè)位執(zhí)行填充I操作生成填充頁面; 將所述填充頁面移入第二頁面集合。
      10.如權(quán)利要求7或8所述的裝置,其特征在于,所述填充模塊用于: 為處于填充I操作過程中的所述空閑頁面關(guān)聯(lián)填充標(biāo)識(shí)符; 所述空閑頁面填充I操作完成生成填充頁面后刪除所述填充標(biāo)識(shí)符。
      11.如權(quán)利要求7或8所述的裝置,其特征在于,所述填充模塊用于: 讀取所述空閑頁面的每個(gè)位對(duì)應(yīng)的數(shù)值,若數(shù)值為1,不將該位置I ;若數(shù)值為O,將該位置I。
      12.如權(quán)利要求7-11任意一項(xiàng)所述的裝置,其特征在于,還包括: 檢測模塊,用于若檢測到所述相變內(nèi)存處于空閑狀態(tài),指示所述查詢模塊開始工作。
      【文檔編號(hào)】G11C13/00GK104517640SQ201310462794
      【公開日】2015年4月15日 申請(qǐng)日期:2013年9月30日 優(yōu)先權(quán)日:2013年9月30日
      【發(fā)明者】徐君 申請(qǐng)人:華為技術(shù)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1