數(shù)據(jù)寫入控制裝置及方法
【專利摘要】一種數(shù)據(jù)寫入控制裝置及方法,當(dāng)所述寫入控制裝置處于所述回寫模式時(shí),所述處理器偵測(cè)所述第一存儲(chǔ)器中臟塊的數(shù)量,當(dāng)所述臟塊的數(shù)量達(dá)到第一預(yù)設(shè)閾值時(shí),分別預(yù)測(cè)在兩種寫入模式下,所述處理器所運(yùn)行程序在一危險(xiǎn)時(shí)間段內(nèi)的執(zhí)行進(jìn)度,當(dāng)預(yù)測(cè)在通寫模式下所述處理器所運(yùn)行程序在所述危險(xiǎn)時(shí)間段內(nèi)的執(zhí)行進(jìn)度大于在所述回寫模式下所述處理器所運(yùn)行程序在所述危險(xiǎn)時(shí)間段內(nèi)的執(zhí)行進(jìn)度時(shí),將當(dāng)前的數(shù)據(jù)寫入模式轉(zhuǎn)換為通寫模式;當(dāng)所述寫入控制裝置處于所述通寫模式時(shí),偵測(cè)所述臟塊數(shù)量,當(dāng)所述臟塊的數(shù)量降至第二預(yù)設(shè)閾值時(shí),則將當(dāng)前的數(shù)據(jù)寫入模式轉(zhuǎn)換為所述回寫模式。
【專利說明】
數(shù)據(jù)寫入控制裝置及方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明設(shè)及數(shù)據(jù)寫入控制技術(shù)領(lǐng)域,特別設(shè)及數(shù)據(jù)寫入控制裝置及方法。
【背景技術(shù)】 陽00引非易失SRAM (NV-SRAM) -種同時(shí)包括SRAM和NVM的存儲(chǔ)結(jié)構(gòu),電子裝置在工作模 式下采用SRAM進(jìn)行數(shù)據(jù)的存儲(chǔ),在電子裝置掉電后,NV-SRAM能夠?qū)?shù)據(jù)備份到NVM單元 中。然而,在電子裝置掉電后,非易失SRAM需要一個(gè)較大的片上儲(chǔ)能電容供電W進(jìn)行數(shù)據(jù) 的備份,該電容會(huì)引入較大的忍片面積開銷和成本開銷。如果采用較小的片上儲(chǔ)能電容,貝U 由于電能不足,會(huì)引起備份失敗。在備份失敗后只能回退到上一次成功備份點(diǎn),而回到上一 次成功備份點(diǎn)會(huì)造成一定的性能開銷,影響程序的執(zhí)行進(jìn)度。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明實(shí)施例提供數(shù)據(jù)寫入控制裝置及方法,通過兩種不同寫入模式的轉(zhuǎn)換,提 高寫入裝置及方法的程序執(zhí)行效率。
[0004] 本發(fā)明實(shí)施例的第一方面提供一種數(shù)據(jù)寫入控制裝置,包括一級(jí)存儲(chǔ)器、二級(jí)存 儲(chǔ)器及處理器,所述一級(jí)存儲(chǔ)器包括易失存儲(chǔ)單元,所述二級(jí)存儲(chǔ)器為非易失存儲(chǔ)單元,所 述數(shù)據(jù)寫入控制裝置的數(shù)據(jù)寫入模式包括回寫模式及通寫模式,在所述回寫模式下,所述 處理器將接收到的數(shù)據(jù)寫入所述一級(jí)存儲(chǔ)器中,在所述通寫模式下,所述處理器將接收到 的數(shù)據(jù)寫入所述一級(jí)存儲(chǔ)器及所述二級(jí)存儲(chǔ)器中; 陽〇化]當(dāng)所述寫入控制裝置處于所述回寫模式時(shí),所述處理器偵測(cè)所述第一存儲(chǔ)器中臟 塊的數(shù)量,當(dāng)所述臟塊的數(shù)量達(dá)到第一預(yù)設(shè)闊值時(shí),分別預(yù)測(cè)在兩種寫入模式下,所述處理 器所運(yùn)行程序在一危險(xiǎn)時(shí)間段內(nèi)的執(zhí)行進(jìn)度,當(dāng)預(yù)測(cè)在通寫模式下所述處理器所運(yùn)行程序 在所述危險(xiǎn)時(shí)間段內(nèi)的執(zhí)行進(jìn)度大于在所述回寫模式下所述處理器所運(yùn)行程序在所述危 險(xiǎn)時(shí)間段內(nèi)的執(zhí)行進(jìn)度時(shí),將當(dāng)前的數(shù)據(jù)寫入模式轉(zhuǎn)換為通寫模式;
[0006] 當(dāng)所述寫入控制裝置處于所述通寫模式時(shí),偵測(cè)所述臟塊數(shù)量,當(dāng)所述臟塊的數(shù) 量降至第二預(yù)設(shè)闊值時(shí),則將當(dāng)前的數(shù)據(jù)寫入模式轉(zhuǎn)換為所述回寫模式。
[0007] 進(jìn)一步地,在本發(fā)明實(shí)施例的第一方面中,所述一級(jí)存儲(chǔ)器還包括非易失存儲(chǔ)單 元,在所述數(shù)據(jù)寫入控制裝置掉電后,所述易失存儲(chǔ)單元中的數(shù)據(jù)被備份至所述非易失存 儲(chǔ)單元中,所述第一預(yù)設(shè)闊值為所述第一存儲(chǔ)器可支持備份的臟塊的最大數(shù)量。
[0008] 進(jìn)一步地,在本發(fā)明實(shí)施例的第一方面中,所預(yù)測(cè)采用回寫模式時(shí)寫入控制裝置 程序執(zhí)行的進(jìn)度的計(jì)算公式為:
[0009]
[0010] 其中,k為在回寫模式下,所述處理器所運(yùn)行程序在單位時(shí)間內(nèi)的執(zhí)行進(jìn)度,L為 預(yù)設(shè)的所述危險(xiǎn)時(shí)間段的長(zhǎng)度,tg為若W所述臟塊的數(shù)量達(dá)到所述第一預(yù)設(shè)闊值時(shí)為時(shí)間 零點(diǎn),最近開始供電時(shí)間,1/λ為預(yù)先統(tǒng)計(jì)的所述數(shù)據(jù)寫入控制裝置的平均供電時(shí)間。
[0011] 所預(yù)測(cè)采用通寫模式時(shí)寫入控制裝置程序執(zhí)行的進(jìn)度的計(jì)算公式為: 陽 01引 E(G,)=k,L
[0013] 其中,k '為在通寫模式下,所述處理器所運(yùn)行程序在單位時(shí)間內(nèi)的執(zhí)行進(jìn)度。
[0014] 進(jìn)一步地,在本發(fā)明實(shí)施例的第一方面中,所述第二預(yù)設(shè)闊值為所述第一預(yù)設(shè)闊 值減一。
[0015] 本發(fā)明實(shí)施例的第二方面提供一種應(yīng)用于一數(shù)據(jù)寫入控制裝置的數(shù)據(jù)寫入控制 方法,所述數(shù)據(jù)寫入控制裝置包括一級(jí)存儲(chǔ)器、二級(jí)存儲(chǔ)器及處理器,所述一級(jí)存儲(chǔ)器包括 易失存儲(chǔ)單元,所述二級(jí)存儲(chǔ)器為非易失存儲(chǔ)單元,所述數(shù)據(jù)寫入控制裝置的數(shù)據(jù)寫入模 式包括回寫模式及通寫模式,在所述回寫模式下,所述處理器將接收到的數(shù)據(jù)寫入所述一 級(jí)存儲(chǔ)器中,在所述通寫模式下,所述處理器將接收到的數(shù)據(jù)寫入所述一級(jí)存儲(chǔ)器及所述 二級(jí)存儲(chǔ)器中,所述方法包括:
[0016] 當(dāng)所述寫入控制裝置處于所述回寫模式時(shí),所述處理器偵測(cè)所述第一存儲(chǔ)器中臟 塊的數(shù)量;
[0017] 當(dāng)所述臟塊的數(shù)量達(dá)到第一預(yù)設(shè)闊值時(shí),分別預(yù)測(cè)在兩種寫入模式下,所述處理 器所運(yùn)行程序在一危險(xiǎn)時(shí)間段內(nèi)的執(zhí)行進(jìn)度;
[0018] 當(dāng)預(yù)測(cè)在通寫模式下所述處理器所運(yùn)行程序在所述危險(xiǎn)時(shí)間段內(nèi)的執(zhí)行進(jìn)度大 于在所述回寫模式下所述處理器所運(yùn)行程序在所述危險(xiǎn)時(shí)間段內(nèi)的執(zhí)行進(jìn)度時(shí),將當(dāng)前的 數(shù)據(jù)寫入模式轉(zhuǎn)換為通寫模式;
[0019] 當(dāng)所述寫入控制裝置處于所述通寫模式時(shí),偵測(cè)所述臟塊數(shù)量,當(dāng)所述臟塊的數(shù) 量降至第二預(yù)設(shè)闊值時(shí),則將當(dāng)前的數(shù)據(jù)寫入模式轉(zhuǎn)換為所述回寫模式。
[0020] 進(jìn)一步地,在本發(fā)明實(shí)施例的第二方面中,所述一級(jí)存儲(chǔ)器還包括非易失存儲(chǔ)單 元,在所述數(shù)據(jù)寫入控制裝置掉電后,所述易失存儲(chǔ)單元中的數(shù)據(jù)被備份至所述非易失存 儲(chǔ)單元中,所述第一預(yù)設(shè)闊值為所述第一存儲(chǔ)器可支持備份的臟塊的最大數(shù)量。
[0021] 進(jìn)一步地,在本發(fā)明實(shí)施例的第二方面中,所預(yù)測(cè)采用回寫模式時(shí)寫入控制裝置 程序執(zhí)行的進(jìn)度的計(jì)算公式為:
[0022]
[0023] 其中,k為在回寫模式下,所述處理器所運(yùn)行程序在單位時(shí)間內(nèi)的執(zhí)行進(jìn)度,L為 預(yù)設(shè)的所述危險(xiǎn)時(shí)間段的長(zhǎng)度,tg為若W所述臟塊的數(shù)量達(dá)到所述第一預(yù)設(shè)闊值時(shí)為時(shí)間 零點(diǎn),在危險(xiǎn)時(shí)間段內(nèi),所述數(shù)據(jù)寫入控制裝置開始供電的時(shí)間,1/λ為預(yù)先統(tǒng)計(jì)的所述數(shù) 據(jù)寫入控制裝置的平均供電時(shí)間。
[0024] 所預(yù)測(cè)采用通寫模式時(shí)寫入控制裝置程序執(zhí)行的進(jìn)度的計(jì)算公式為: 陽0 巧]E(G,)=k,L
[00%] 其中,k '為在通寫模式下,所述處理器所運(yùn)行程序在單位時(shí)間內(nèi)的執(zhí)行進(jìn)度。
[0027] 進(jìn)一步地,在本發(fā)明實(shí)施例的第二方面中,所述第二預(yù)設(shè)闊值為所述第一預(yù)設(shè)闊 值減一。
[0028] 可見本發(fā)明實(shí)施例的數(shù)據(jù)寫入控制裝置及方法,在所述數(shù)據(jù)寫入控制裝置的數(shù)據(jù) 寫入模式為回寫模式時(shí),偵測(cè)易失存儲(chǔ)單元中臟塊的數(shù)量,當(dāng)臟塊的數(shù)量達(dá)到一預(yù)設(shè)闊值 時(shí),根據(jù)預(yù)設(shè)的條件確定是否將所述數(shù)據(jù)寫入控制裝置轉(zhuǎn)換至通寫模式,當(dāng)達(dá)到預(yù)設(shè)的條 件將所述數(shù)據(jù)寫入控制裝置轉(zhuǎn)換至通寫模式時(shí),繼續(xù)偵測(cè)臟塊的數(shù)量嗎,當(dāng)臟塊的數(shù)量小 于第二預(yù)設(shè)闊值時(shí),再將所述數(shù)據(jù)寫入控制裝置的數(shù)據(jù)寫入模式轉(zhuǎn)換為回寫模式,如此,可 提供數(shù)據(jù)寫入控制裝置的程序執(zhí)行性能。
【附圖說明】
[0029] 為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可 W根據(jù)運(yùn)些附圖獲得其他的附圖。
[0030] 圖1為本發(fā)明第一實(shí)施例所提供的數(shù)據(jù)寫入裝置的結(jié)構(gòu)圖。
[0031] 圖2為所述數(shù)據(jù)寫入裝置兩種數(shù)據(jù)寫入模式進(jìn)行裝換的示意圖。
[0032] 圖3為第二實(shí)施例所提供的數(shù)據(jù)寫入方法的流程圖
【具體實(shí)施方式】
[0033] 下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于 本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0034] 本發(fā)明實(shí)施例所提供的技術(shù)方案主要應(yīng)用于同時(shí)具有非易失存儲(chǔ)單元與易失 存儲(chǔ)單元的存儲(chǔ)器,如非易失靜態(tài)隨機(jī)存儲(chǔ)器(Nonvolatile Static Random Access Memo巧,NV-SRAM),在使用運(yùn)種結(jié)構(gòu)的存儲(chǔ)器作為內(nèi)存的電子裝置掉電后,可通過存儲(chǔ)器上 的備用電源給存儲(chǔ)器供電,W將易失存儲(chǔ)單元中的數(shù)據(jù)備份至非易失存儲(chǔ)單元中。為了方 便描述,在W下實(shí)施例中W NV-SRAM為例對(duì)本發(fā)明進(jìn)行說明,但需要說明的是,本發(fā)明所應(yīng) 用的存儲(chǔ)器并不限于NV-SRAM,其他具有相同結(jié)構(gòu)的存儲(chǔ)器也包含在本發(fā)明所掲露的范圍 內(nèi)。
[0035] NV-SRAM中的易失存儲(chǔ)單元為靜態(tài)隨機(jī)存儲(chǔ)器(Static Random Access Memoir, SRAM),非易失存儲(chǔ)單元為相變存儲(chǔ)器(Phase-change Random Access memoir, PCM),備用 電源為片上儲(chǔ)能電容。
[0036] 下面將通過不同的實(shí)施例對(duì)本發(fā)明所提供的技術(shù)方案從不同的方面進(jìn)行描述。
[0037] 第一實(shí)施例
[0038] 第一實(shí)施例提供一種數(shù)據(jù)寫入控制裝置10。所述數(shù)據(jù)寫入控制裝置10包括一級(jí) 存儲(chǔ)器11、二級(jí)存儲(chǔ)器12及處理器13,所述一級(jí)存儲(chǔ)器11包括易失存儲(chǔ)單元111及非易 失存儲(chǔ)單元112。所述二級(jí)存儲(chǔ)器12為非易失存儲(chǔ)單元。
[0039] 所述寫入控制裝置10包括兩種數(shù)據(jù)寫入模式,即回寫模式及通寫模式。所述回寫 (write-back)模式為將接收到的數(shù)據(jù)寫入請(qǐng)求中的數(shù)據(jù)寫入所述一級(jí)存儲(chǔ)器中。所述通寫 模式(throu曲-write)將接收到的數(shù)據(jù)寫入請(qǐng)求中的數(shù)據(jù)同時(shí)寫入所述一級(jí)存儲(chǔ)器11及 二級(jí)存儲(chǔ)器12中。
[0040] 本實(shí)施例中,所述一級(jí)存儲(chǔ)器11為非易失靜態(tài)隨機(jī)存儲(chǔ)器(Nonvolatile static Random Access Memoir,NV-SRAM),所述易失存儲(chǔ)單元111為靜態(tài)隨機(jī)存儲(chǔ)器(Static Random Access Memory, SRAM),所述非易失存儲(chǔ)單元112為相變存儲(chǔ)器(F*hase-change Random Access memcxry, PCM),在所述數(shù)據(jù)寫入控制裝置10掉電后,可通過所述一級(jí)存儲(chǔ)器 11上的備用電源113給所述一級(jí)存儲(chǔ)器11供電,W將所述易失存儲(chǔ)單元111中的數(shù)據(jù)備份 至非易失存儲(chǔ)單元112中。
[0041] 所述回寫模式為在處理器13接收到數(shù)據(jù)寫入指令時(shí),將數(shù)據(jù)直接寫入所述易失 存儲(chǔ)單元111的存儲(chǔ)塊113中,被寫入所述易失存儲(chǔ)單元111中的數(shù)據(jù),只有在需要被替換 出所述易失存儲(chǔ)單元111時(shí),才寫入所述二級(jí)存儲(chǔ)器12。被寫入所述易失存儲(chǔ)單元111的 存儲(chǔ)塊113中,而未被寫入所述二級(jí)存儲(chǔ)器12的存儲(chǔ)塊113為臟塊,每個(gè)存儲(chǔ)塊113有個(gè) 臟塊標(biāo)記,用來標(biāo)識(shí)所述存儲(chǔ)塊113否為臟塊。由于所述易失存儲(chǔ)單元111具有比較快的 數(shù)據(jù)讀寫速度,所W當(dāng)所述數(shù)據(jù)寫入控制裝置10采用回寫模式時(shí),具有更快的程序處理進(jìn) 度。但當(dāng)所述數(shù)據(jù)寫入控制裝置10掉電時(shí),所述易失存儲(chǔ)單元12中的所有臟塊的數(shù)據(jù)需 要全部備份至所述非易失存儲(chǔ)單元112,但由于備用電源113的電能有效,當(dāng)臟塊的數(shù)量超 過備用電源113所能支持備份的臟塊的數(shù)量時(shí),就會(huì)造成備份失敗,當(dāng)備份失敗時(shí),程序就 需要回退到上一次成功備份的點(diǎn),運(yùn)樣就會(huì)造成大的性能開銷,影響程序執(zhí)行的進(jìn)度。
[0042] 所述通寫模式為所述處理器13接收到數(shù)據(jù)寫入指令時(shí),將數(shù)據(jù)寫入所述易失存 儲(chǔ)單元111的存儲(chǔ)塊113的同時(shí),還寫入所述二級(jí)存儲(chǔ)器12,運(yùn)樣就不會(huì)有臟塊的產(chǎn)生。從 而不會(huì)發(fā)生備份失敗的情況,但是,由于所述非易失存儲(chǔ)單元112具有對(duì)數(shù)據(jù)的讀寫的速 度比較慢,所W當(dāng)所述數(shù)據(jù)寫入控制裝置10采用通寫模式時(shí),相對(duì)于所述回寫模式,具有 比較慢的程序處理進(jìn)度。
[0043] 所W為了提高所述數(shù)據(jù)寫入控制裝置10的性能,本實(shí)施例提供的數(shù)據(jù)寫入控制 裝置10可在兩種數(shù)據(jù)寫入模式下轉(zhuǎn)換,提升整體的程序處理進(jìn)度。
[0044] 當(dāng)所述寫入控制裝置10處于所述回寫模式時(shí),所述處理器13偵測(cè)所述第一存儲(chǔ) 器11中臟塊的數(shù)量,當(dāng)所述臟塊的數(shù)量達(dá)到第一預(yù)設(shè)闊值時(shí),或者當(dāng)所述臟塊的數(shù)量達(dá)到 第一預(yù)設(shè)闊值時(shí),預(yù)測(cè)兩種寫入模式下程序的執(zhí)行進(jìn)度,當(dāng)所預(yù)測(cè)的通寫模式下程序的執(zhí) 行進(jìn)度大于所述回寫模式下程序的執(zhí)行進(jìn)度時(shí),將當(dāng)前的數(shù)據(jù)寫入模式轉(zhuǎn)換為通寫模式;
[0045] 當(dāng)所述寫入控制裝置10處于所述通寫模式時(shí),所述處理器13偵測(cè)所述臟塊數(shù)量, 當(dāng)所述臟塊的數(shù)量達(dá)到第二預(yù)設(shè)闊值時(shí),則將當(dāng)前的數(shù)據(jù)寫入模式轉(zhuǎn)換為回寫模式。
[0046] 所述第一預(yù)設(shè)闊值即為所述第一存儲(chǔ)器11可支持備份的臟塊的最大數(shù)量。
[0047] 本實(shí)施例中,在一種實(shí)現(xiàn)方式中,當(dāng)所述處理器13所偵測(cè)的所述臟塊的數(shù)量達(dá)到 所述第一預(yù)設(shè)闊值時(shí),即將當(dāng)前的數(shù)據(jù)寫入模式轉(zhuǎn)換為通寫模式。
[0048] 在另外一種實(shí)現(xiàn)方式中,當(dāng)所述處理器13所偵測(cè)的所述臟塊的數(shù)量達(dá)到所述第 一預(yù)設(shè)闊值時(shí),預(yù)測(cè)兩種寫入模式下程序的執(zhí)行進(jìn)度,此時(shí)所預(yù)測(cè)的程序的執(zhí)行進(jìn)度為所 述臟塊的數(shù)量達(dá)到所述第一預(yù)設(shè)闊值開始,到所述臟塊的數(shù)量小于所述第一預(yù)設(shè)闊值的危 險(xiǎn)時(shí)間段L內(nèi)程序的執(zhí)行進(jìn)度。
[0049] 本實(shí)施例中的數(shù)據(jù)寫入控制裝置10 -般為一種特定的檢測(cè)裝置,如穿戴式設(shè)備 中用于測(cè)量人體健康狀況的感應(yīng)器等,所W-般只運(yùn)行一個(gè)特定的程序,而所運(yùn)行程序的 臟塊數(shù)量達(dá)到且大于所述第一預(yù)設(shè)闊值的危險(xiǎn)時(shí)間段L也基本上是不變的,所W對(duì)于特定 程序而言,所述危險(xiǎn)時(shí)間段L可W預(yù)先得到。
[0050] 本實(shí)施中程序的執(zhí)行進(jìn)度用進(jìn)度百分比表示,由于所述數(shù)據(jù)寫入控制裝置10運(yùn) 行的是特定程序,所W程序的總指令數(shù)時(shí)一定的,則根據(jù)公式(1)可W計(jì)算出程序被執(zhí)行 的進(jìn)度
陽05U 其中,Npxwuted(t)是已經(jīng)執(zhí)行完成的指令數(shù)量,Ntuhi是總指令數(shù)量。如果忽略由于 流水線停頓造成的時(shí)間開銷,可W近似認(rèn)為G(t)是線性增長(zhǎng)的。
[0052] 首先,計(jì)算在危險(xiǎn)時(shí)間段L內(nèi)采用回寫模式時(shí),程序的進(jìn)度。
[0053] 如圖2所示,曲線C1為采用回寫模式時(shí),程序的進(jìn)度曲線,曲線C2為采用通寫模 式時(shí),程序的進(jìn)度曲線。
[0054] 在程序開始運(yùn)行后,所述數(shù)據(jù)寫入控制裝置10采用回寫模式進(jìn)行數(shù)據(jù)的寫入,并 開始偵測(cè)臟塊的數(shù)量,當(dāng)臟塊的數(shù)量達(dá)到第一預(yù)設(shè)闊值時(shí),獲取預(yù)設(shè)的危險(xiǎn)時(shí)間段以并預(yù) 測(cè)在所述事件段L內(nèi)兩種寫入模式的程序處理的進(jìn)度。
[0055] 當(dāng)臟塊的數(shù)量達(dá)到第一預(yù)設(shè)闊值時(shí),沒有將回寫模式轉(zhuǎn)換至通寫模式時(shí),所執(zhí)行 程序的處理進(jìn)度的計(jì)算過程為:
[0056] 首先,計(jì)算所述數(shù)據(jù)寫入控制裝置10的掉電概率,由于實(shí)際當(dāng)中,掉電會(huì)在不同 的情形下發(fā)生。比如,若所述數(shù)據(jù)寫入控制裝置10使用的是太陽能供電的系統(tǒng),在太陽被 遮擋的情況下、太陽角度變化、天氣變化等情況下都會(huì)發(fā)生被動(dòng)掉電。運(yùn)種特征體現(xiàn)在供電 特點(diǎn)上即供電時(shí)間的無記憶性,即每次的供電時(shí)間長(zhǎng)度直接無關(guān)聯(lián)。所W,可W用指數(shù)分布 對(duì)供電時(shí)間建模:
[0057]
[005引其中,f(tj是供電時(shí)間長(zhǎng)度的概率密度,一是供電時(shí)間長(zhǎng)度的期望。 乂
[0059] 然后,計(jì)算在危險(xiǎn)時(shí)間段L內(nèi)發(fā)生掉電的概率是:
[0060]
[0061] 對(duì)于一段連續(xù)的供電時(shí)間t,采用兩種策略的計(jì)算進(jìn)度百分比分別為:
[0062] G(t) = kt
[0063] G < (t) = k' t
[0064] 其中,k為采用回寫模式時(shí),單位時(shí)間內(nèi)的程序進(jìn)度,k'為采用通寫模式時(shí),單位時(shí) 間內(nèi)的程序進(jìn)度。 陽0化]若在危險(xiǎn)時(shí)間段L內(nèi)發(fā)生了掉電,即會(huì)發(fā)生備份失敗,在備份失敗后,則會(huì)發(fā)生備 份的回退,如圖2所示,若在時(shí)間Te處發(fā)生掉電,會(huì)發(fā)生備份失敗,則程序需要回退到本次 供電開始的時(shí)刻Ts處的程序進(jìn)度。如果W危險(xiǎn)時(shí)間段L的起始點(diǎn),即轉(zhuǎn)換點(diǎn)P為時(shí)間零點(diǎn), 則退回的程序進(jìn)度為:
[0066]
陽067] 其中,Te<L表示在危險(xiǎn)時(shí)間段L內(nèi)發(fā)生了掉電,而Te乂表示在危險(xiǎn)時(shí)間段L內(nèi)未 發(fā)生掉電,則程序無需回退。 W側(cè)如此,在危險(xiǎn)時(shí)間段L內(nèi),若在轉(zhuǎn)換點(diǎn)不將寫策略切換至通寫策略,則實(shí)際的計(jì)算 進(jìn)度百分比G-R的期望為:
[0069]
[0070] 而如果臟塊數(shù)量達(dá)到所述第一預(yù)設(shè)值時(shí),即在所述轉(zhuǎn)換點(diǎn)將所述數(shù)據(jù)寫入模式轉(zhuǎn) 換為通寫模式,貝U
[007U 則實(shí)際的計(jì)算進(jìn)度百分比G-R的期望為:
[0072] E 膽)=k' L (7)
[0073] 則只有當(dāng)E (G-R) <E(G')的時(shí)候,才切換至通寫策略,即:
[0077] 即滿足上面的公式時(shí),將所述數(shù)據(jù)寫入控制裝置10的數(shù)據(jù)寫入模式切換至通寫 模式。
[0078] 進(jìn)入通寫模式后,臟塊的數(shù)量不再增加,但由于新數(shù)據(jù)的寫入,原來的臟塊的數(shù)據(jù) 被替換寫入所述第二存儲(chǔ)器12,運(yùn)樣臟塊的數(shù)量就會(huì)減少,在臟塊的數(shù)量減少到所述第二 預(yù)設(shè)值時(shí),則所述處理器13將所述數(shù)據(jù)寫入控制裝置10的數(shù)據(jù)寫入模式切換至通寫模式。
[0079] 由于所述回寫模式的程序執(zhí)行性能比較高,所W所述第二預(yù)設(shè)闊值優(yōu)選為所述第 一預(yù)設(shè)闊值減一。如此,可快速的使所述數(shù)據(jù)寫入控制裝置10進(jìn)入回寫模式。當(dāng)然在其他 實(shí)施例中,也可根據(jù)具體設(shè)置不同的第二預(yù)設(shè)闊值。
[0080] 第二實(shí)施例
[0081] 第二實(shí)施例提供一種應(yīng)用于第一實(shí)施例所提供的所述數(shù)據(jù)寫入裝置的數(shù)據(jù)寫入 方法。如圖3所示,為所述數(shù)據(jù)寫入方法的流程圖。
[0082] 步驟S301,當(dāng)所述寫入控制裝置處于所述回寫模式時(shí),所述處理器偵測(cè)所述第一 存儲(chǔ)器中臟塊的數(shù)量;
[0083] 步驟S302,當(dāng)所述臟塊的數(shù)量達(dá)到第一預(yù)設(shè)闊值時(shí),分別預(yù)測(cè)在兩種寫入模式下, 所述處理器所運(yùn)行程序在一危險(xiǎn)時(shí)間段內(nèi)的執(zhí)行進(jìn)度;
[0084] 步驟S303,當(dāng)預(yù)測(cè)在通寫模式下所述處理器所運(yùn)行程序在所述危險(xiǎn)時(shí)間段內(nèi)的執(zhí) 行進(jìn)度大于在所述回寫模式下所述處理器所運(yùn)行程序在所述危險(xiǎn)時(shí)間段內(nèi)的執(zhí)行進(jìn)度時(shí), 將當(dāng)前的數(shù)據(jù)寫入模式轉(zhuǎn)換為通寫模式;
[0085] 步驟S304,當(dāng)所述寫入控制裝置處于所述通寫模式時(shí),偵測(cè)所述臟塊數(shù)量,當(dāng)所述 臟塊的數(shù)量達(dá)到第二預(yù)設(shè)闊值時(shí),則將當(dāng)前的數(shù)據(jù)寫入模式轉(zhuǎn)換為所述回寫模式。
[0086] 本實(shí)施例中,所述一級(jí)存儲(chǔ)器還包括非易失存儲(chǔ)單元,在所述數(shù)據(jù)寫入控制裝置 掉電后,所述易失存儲(chǔ)單元中的數(shù)據(jù)被備份至所述非易失存儲(chǔ)單元中,所述第一預(yù)設(shè)闊值 為所述第一存儲(chǔ)器可支持備份的臟塊的最大數(shù)量。
[0087] 本實(shí)施例中,所預(yù)測(cè)采用回寫模式時(shí)寫入控制裝置程序執(zhí)行的進(jìn)度的計(jì)算公式 為:
[0088]
[0089] 其中,k為在回寫模式下,所述處理器所運(yùn)行程序在單位時(shí)間內(nèi)的執(zhí)行進(jìn)度,L為 預(yù)設(shè)的所述危險(xiǎn)時(shí)間段的長(zhǎng)度,tg為若W所述臟塊的數(shù)量達(dá)到所述第一預(yù)設(shè)闊值時(shí)為時(shí)間 零點(diǎn),在危險(xiǎn)時(shí)間段內(nèi),所述數(shù)據(jù)寫入控制裝置掉電的時(shí)間,1/λ為預(yù)先統(tǒng)計(jì)的所述數(shù)據(jù)寫 入控制裝置的平均供電時(shí)間。
[0090] 所預(yù)測(cè)采用通寫模式時(shí)寫入控制裝置程序執(zhí)行的進(jìn)度的計(jì)算公式為: W91] E(G')=k'L
[0092] 其中,k '為在通寫模式下,所述處理器所運(yùn)行程序在單位時(shí)間內(nèi)的執(zhí)行進(jìn)度。
[0093] 本實(shí)施例中,所述第二預(yù)設(shè)闊值為所述第一預(yù)設(shè)闊值減一。
[0094] 本領(lǐng)域普通技術(shù)人員可W理解上述實(shí)施例的各種方法中的全部或部分步驟是可 W通過程序來指令相關(guān)的硬件來完成,該程序可W存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ) 介質(zhì)可W包括:ROM、RAM、磁盤或光盤等。
[0095] W上對(duì)本發(fā)明實(shí)施例所提供的數(shù)據(jù)寫入裝置及方法進(jìn)行了詳細(xì)介紹,本文中應(yīng)用 了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,W上實(shí)施例的說明只是用于幫助理解 本發(fā)明的方法及其核屯、思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具 體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明 的限制。
【主權(quán)項(xiàng)】
1. 一種數(shù)據(jù)寫入控制裝置,包括一級(jí)存儲(chǔ)器、二級(jí)存儲(chǔ)器及處理器,所述一級(jí)存儲(chǔ)器包 括易失存儲(chǔ)單元,所述二級(jí)存儲(chǔ)器為非易失存儲(chǔ)單元,所述數(shù)據(jù)寫入控制裝置的數(shù)據(jù)寫入 模式包括回寫模式及通寫模式,在所述回寫模式下,所述處理器將接收到的數(shù)據(jù)寫入所述 一級(jí)存儲(chǔ)器中,在所述通寫模式下,所述處理器將接收到的數(shù)據(jù)寫入所述一級(jí)存儲(chǔ)器及所 述二級(jí)存儲(chǔ)器中; 當(dāng)所述寫入控制裝置處于所述回寫模式時(shí),所述處理器偵測(cè)所述第一存儲(chǔ)器中臟塊的 數(shù)量,當(dāng)所述臟塊的數(shù)量達(dá)到第一預(yù)設(shè)闊值時(shí),分別預(yù)測(cè)在兩種寫入模式下,所述處理器所 運(yùn)行程序在一危險(xiǎn)時(shí)間段內(nèi)的執(zhí)行進(jìn)度,當(dāng)預(yù)測(cè)在通寫模式下所述處理器所運(yùn)行程序在所 述危險(xiǎn)時(shí)間段內(nèi)的執(zhí)行進(jìn)度大于在所述回寫模式下所述處理器所運(yùn)行程序在所述危險(xiǎn)時(shí) 間段內(nèi)的執(zhí)行進(jìn)度時(shí),將當(dāng)前的數(shù)據(jù)寫入模式轉(zhuǎn)換為通寫模式; 當(dāng)所述寫入控制裝置處于所述通寫模式時(shí),偵測(cè)所述臟塊數(shù)量,當(dāng)所述臟塊的數(shù)量降 至第二預(yù)設(shè)闊值時(shí),則將當(dāng)前的數(shù)據(jù)寫入模式轉(zhuǎn)換為所述回寫模式。2. 如權(quán)利要求1所述的數(shù)據(jù)寫入控制裝置,其特征在于,所述一級(jí)存儲(chǔ)器還包括非易 失存儲(chǔ)單元,在所述數(shù)據(jù)寫入控制裝置掉電后,所述易失存儲(chǔ)單元中的數(shù)據(jù)被備份至所述 非易失存儲(chǔ)單元中,所述第一預(yù)設(shè)闊值為所述第一存儲(chǔ)器可支持備份的臟塊的最大數(shù)量。3. 如權(quán)利要求1所述的數(shù)據(jù)寫入控制裝置,其特征在于,所預(yù)測(cè)采用回寫模式時(shí),在所 述危除時(shí)間採內(nèi).所沐寫入梓制據(jù)晉所執(zhí)斤賴序進(jìn)度的計(jì)算公式為:其中,k為在回寫模式下,所述處理器所運(yùn)行程序在單位時(shí)間內(nèi)的執(zhí)行進(jìn)度,L為預(yù)設(shè) 的所述危險(xiǎn)時(shí)間段的長(zhǎng)度,tg為若W所述臟塊的數(shù)量達(dá)到所述第一預(yù)設(shè)闊值時(shí)為時(shí)間零 點(diǎn),最近開始供電的時(shí)刻,IM為預(yù)先統(tǒng)計(jì)的所述數(shù)據(jù)寫入控制裝置的平均供電時(shí)間。 所預(yù)測(cè)采用通寫模式時(shí)寫入控制裝置程序執(zhí)行的進(jìn)度的計(jì)算公式為: E(G')= k' L 其中,k '為在通寫模式下,所述處理器所運(yùn)行程序在單位時(shí)間內(nèi)的執(zhí)行進(jìn)度。4. 如權(quán)利要求1所述的數(shù)據(jù)寫入控制裝置,其特征在于,所述第二預(yù)設(shè)闊值為所述第 一預(yù)設(shè)闊值減一。5. -種應(yīng)用于數(shù)據(jù)寫入控制裝置的數(shù)據(jù)寫入控制方法,所述數(shù)據(jù)寫入控制裝置包括一 級(jí)存儲(chǔ)器、二級(jí)存儲(chǔ)器及處理器,所述一級(jí)存儲(chǔ)器包括易失存儲(chǔ)單元,所述二級(jí)存儲(chǔ)器為非 易失存儲(chǔ)單元,所述數(shù)據(jù)寫入控制裝置的數(shù)據(jù)寫入模式包括回寫模式及通寫模式,在所述 回寫模式下,所述處理器將接收到的數(shù)據(jù)寫入所述一級(jí)存儲(chǔ)器中,在所述通寫模式下,所述 處理器將接收到的數(shù)據(jù)寫入所述一級(jí)存儲(chǔ)器及所述二級(jí)存儲(chǔ)器中,所述方法包括: 當(dāng)所述寫入控制裝置處于所述回寫模式時(shí),所述處理器偵測(cè)所述第一存儲(chǔ)器中臟塊的 數(shù)量; 當(dāng)所述臟塊的數(shù)量達(dá)到第一預(yù)設(shè)闊值時(shí),分別預(yù)測(cè)在兩種寫入模式下,所述處理器所 運(yùn)行程序在一危險(xiǎn)時(shí)間段內(nèi)的執(zhí)行進(jìn)度; 當(dāng)預(yù)測(cè)在通寫模式下所述處理器所運(yùn)行程序在所述危險(xiǎn)時(shí)間段內(nèi)的執(zhí)行進(jìn)度大于在 所述回寫模式下所述處理器所運(yùn)行程序在所述危險(xiǎn)時(shí)間段內(nèi)的執(zhí)行進(jìn)度時(shí),將當(dāng)前的數(shù)據(jù) 寫入模式轉(zhuǎn)換為通寫模式; 當(dāng)所述寫入控制裝置處于所述通寫模式時(shí),偵測(cè)所述臟塊數(shù)量,當(dāng)所述臟塊的數(shù)量降 至第二預(yù)設(shè)闊值時(shí),則將當(dāng)前的數(shù)據(jù)寫入模式轉(zhuǎn)換為所述回寫模式。6. 如權(quán)利要求5所述的數(shù)據(jù)寫入控制方法,其特征在于,所述一級(jí)存儲(chǔ)器還包括非易 失存儲(chǔ)單元,在所述數(shù)據(jù)寫入控制裝置掉電后,所述易失存儲(chǔ)單元中的數(shù)據(jù)被備份至所述 非易失存儲(chǔ)單元中,所述第一預(yù)設(shè)闊值為所述第一存儲(chǔ)器可支持備份的臟塊的最大數(shù)量。7. 如權(quán)利要求5所述的數(shù)據(jù)寫入控制方法,其特征在于,所預(yù)測(cè)采用回寫模式時(shí)寫入 控制裝置程序執(zhí)行的進(jìn)度的計(jì)算公式為:其中,k為在回寫模式下,所述處理器所運(yùn)行程序在單位時(shí)間內(nèi)的執(zhí)行進(jìn)度,L為預(yù)設(shè) 的所述危險(xiǎn)時(shí)間段的長(zhǎng)度,tg為若W所述臟塊的數(shù)量達(dá)到所述第一預(yù)設(shè)闊值時(shí)為時(shí)間零 點(diǎn),在危險(xiǎn)時(shí)間段內(nèi),所述數(shù)據(jù)寫入控制裝置掉電前開始供電的時(shí)間,IM為預(yù)先統(tǒng)計(jì)的所 述數(shù)據(jù)寫入控制裝置的平均供電時(shí)間。所預(yù)測(cè)采用通寫模式時(shí)寫入控制裝置程序執(zhí)行的進(jìn) 度的計(jì)算公式為: E(G')= k' L 其中,k '為在通寫模式下,所述處理器所運(yùn)行程序在單位時(shí)間內(nèi)的執(zhí)行進(jìn)度。8. 如權(quán)利要求5所述的數(shù)據(jù)寫入控制方法,其特征在于,所述第二預(yù)設(shè)闊值為所述第 一預(yù)設(shè)闊值減一。
【文檔編號(hào)】G06F11/14GK105988735SQ201510101154
【公開日】2016年10月5日
【申請(qǐng)日】2015年3月6日
【發(fā)明人】李和和, 劉勇攀, 趙慶行, 羅嶸, 楊華中
【申請(qǐng)人】華為技術(shù)有限公司, 清華大學(xué)