亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        混合映射方式下NAND閃存垃圾回收算法

        2019-11-09 06:51:26張靖君
        關(guān)鍵詞:隊(duì)列日志磨損

        張靖君,王 玲

        (湖南師范大學(xué) 信息科學(xué)與工程學(xué)院,長沙 410006)E-mail:417583212@qq.com

        1 引 言

        如今,NAND 閃存已廣泛應(yīng)用于各種嵌入式設(shè)備中[1],例如手機(jī)、U盤、固態(tài)硬盤等.它具有體積小、速度快、功耗低、抗震等優(yōu)點(diǎn).與磁盤、軟盤這些磁介質(zhì)存儲(chǔ)器相比,NAND閃存具有以下特點(diǎn):

        1)NAND閃存的物理結(jié)構(gòu)主要分為物理塊和物理頁,整個(gè)閃存設(shè)備由多個(gè)物理塊組成,每一個(gè)物理塊又是由一定數(shù)目的物理頁組成.每一頁由兩部分組成分別是數(shù)據(jù)段(Data Field)和附加段(Spare Field),數(shù)據(jù)段用于存儲(chǔ)數(shù)據(jù),附加段用于保存閃存的管理數(shù)據(jù),包括:ECC碼、映射表信息和壞塊信息[2].

        2)NAND閃存讀寫數(shù)據(jù)是以物理頁為單位,擦除操作則以物理塊為單位[3].讀取一個(gè)物理頁的速度較快,寫入一頁數(shù)據(jù)的時(shí)間則較慢,而擦除一個(gè)物理塊的時(shí)間遠(yuǎn)遠(yuǎn)大于寫的時(shí)間.

        3)不能直接對物理塊保存的數(shù)據(jù)進(jìn)行修改,必須先進(jìn)行擦除操作才能寫入新的數(shù)據(jù)[4].

        4)物理塊的擦除次數(shù)有限SLC(Single-Level Cell 單層單元)通常在10萬次左右,MLC(Multi-Level Cell多層單元)通常在1萬次左右[5].

        由于這些特性,傳統(tǒng)的文件系統(tǒng)無法在閃存設(shè)備上正常工作.為了將閃存設(shè)備模擬成標(biāo)準(zhǔn)的磁盤設(shè)備以兼容傳統(tǒng)的文件系統(tǒng),通常使用閃存轉(zhuǎn)換層FTL (Flash Translation Layer)作為中間層管理閃存設(shè)備[6].FTL的主要功能包括:地址映射、垃圾回收、磨損均衡和壞塊管理[7].其中地址映射是FTL中最重要的一個(gè)功能,不同的地址映射方式必須要有與之相匹配的垃圾回收、磨損均衡算法,才能發(fā)揮其性能.

        目前NAND 閃存的垃圾回收算法主要是針對頁級地址映射設(shè)計(jì)的,如GR(GReedy)算法[8],GR算法為了減少有效頁拷貝造成的性能損失,會(huì)選擇有效頁最少的物理塊進(jìn)行垃圾回收.目標(biāo)是用最少的性能損失來獲得更多的空閑空間,但是,GR算法未考慮到各塊的擦除情況,因此磨損均衡度較差.CAT(Cost-Age-Time)算法[9],考慮了擦除次數(shù)對均衡度的影響,選擇更新頻率最低、無效頁最多且擦除次數(shù)最少的物理塊進(jìn)行回收.由于考慮到了物理塊的更新頻率和擦除次數(shù),所以磨損均衡效果優(yōu)于GR算法.SACATA (Swap-Aware Cost-Age-Time Age-sort)算法[10]在linux交換系統(tǒng)技術(shù)上考慮了所有塊的最大和最小擦除次數(shù),因此磨損均衡度較好.以上三種算法在頁級地址映射上能夠取得較好的效果,但在混合映射上效果并不理想,造成這種結(jié)果的原因主要是物理塊之間關(guān)聯(lián)程度不同.頁級地址映射上物理塊之間都是獨(dú)立的,而混合映射上物理塊被分為數(shù)據(jù)塊和日志塊,數(shù)據(jù)塊和日志塊之間的數(shù)據(jù)存在關(guān)聯(lián).單獨(dú)考慮日志塊中有效頁數(shù)量在混合映射上并不能獲得最好的回收性能.FAST轉(zhuǎn)換層[11]是基于混合映射的轉(zhuǎn)換層,轉(zhuǎn)換層將日志塊共享給多個(gè)數(shù)據(jù)塊,提高了日志塊的利用率[12],但冷熱數(shù)據(jù)混合在一個(gè)日志塊中,垃圾回收將頻繁觸發(fā)全合并這將會(huì)占用極大的資源[13].垃圾回收作為FTL一個(gè)重要部分,不僅要考慮閃存的壽命也要考慮其性能[14].

        通過對基于混合映射的FAST算法的深入研究,針對其算法存在的不足,考慮邏輯塊的冷熱度、日志塊無效頁占比和數(shù)據(jù)塊的擦除次數(shù),設(shè)計(jì)基于循壞隊(duì)列的邏輯塊熱度計(jì)算方法和數(shù)據(jù)塊選擇策略,并提出一種基于混合映射的垃圾回收算法即:HMSGC(Hybrid Mapping Scheme With Garbage Collection)算法.

        2 算法描述

        2.1 閃存設(shè)備基本結(jié)構(gòu)

        在Linux系統(tǒng)下基于NAND 閃存存儲(chǔ)結(jié)構(gòu)可以分為:操作系統(tǒng)API、文件系統(tǒng)層、閃存轉(zhuǎn)換層和FLASH設(shè)備.系統(tǒng)結(jié)構(gòu)如圖1所示.

        圖1 NAND FLASH 存儲(chǔ)系統(tǒng)結(jié)構(gòu)Fig.1 NAND FLASH storage system structure

        操作系統(tǒng)層會(huì)提供給應(yīng)用程序讀寫數(shù)據(jù)的程序接口,文件系統(tǒng)提供管理數(shù)據(jù)的方法.FTL(Flash Translation Layer)層是一種軟件中間層,它把NAND FLASH設(shè)備虛擬成傳統(tǒng)的硬盤設(shè)備,使得NTFS、EXT2等針對傳統(tǒng)硬盤設(shè)計(jì)的文件系統(tǒng)可以在不經(jīng)過修改的情況下正常使用[4].FTL層主要包含了壞塊管理、地址映射、磨損均衡、垃圾回收等幾個(gè)方面[5,6].

        2.2 FAST算法垃圾回收方式

        在基于混合映射的FAST算法中數(shù)據(jù)塊使用塊級映射而日志塊使用頁級映射,當(dāng)日志塊的空閑頁都被耗盡后,由于日志塊中還包含有效頁,所以并不能像頁級映射那樣,簡單的把當(dāng)前的日志塊標(biāo)記為無效塊,之后再申請一個(gè)新的日志塊來接收數(shù)據(jù).此時(shí)我們必須進(jìn)行回收操作,把日志塊和數(shù)據(jù)塊的有效數(shù)據(jù)合并到一個(gè)新的數(shù)據(jù)塊中才能繼續(xù)申請新的日志塊并接收數(shù)據(jù).在FAST算法中存在三種合并方式:全合并、交換合并、部分合并[7].

        全合并,當(dāng)數(shù)據(jù)塊和日志塊中的有效數(shù)據(jù)頁分布分散難以整理成有序的數(shù)據(jù)塊存儲(chǔ)使用,此時(shí)必須另外尋找一個(gè)新的物理塊,依次讀入日志塊和數(shù)據(jù)塊中的有效數(shù)據(jù)成為新的數(shù)據(jù)塊,并回收舊的數(shù)據(jù)塊和日志塊.這種合并方式要拷貝所有的有效數(shù)據(jù),因此開銷最大.

        交換合并,當(dāng)只存在順序數(shù)據(jù)更新,數(shù)據(jù)塊中的數(shù)據(jù)全部順序更新到日志塊中,數(shù)據(jù)塊中無有效數(shù)據(jù),此時(shí)只需要把日志塊轉(zhuǎn)換成數(shù)據(jù)塊,將數(shù)據(jù)塊擦除即可.

        部分合并,當(dāng)只存在順序數(shù)據(jù)更新,數(shù)據(jù)塊中有部分?jǐn)?shù)更新到日志塊中.此時(shí)需要將數(shù)據(jù)塊中未被更新的有效數(shù)據(jù)順序拷貝到日志塊中,再把日志塊轉(zhuǎn)換成數(shù)據(jù)塊即可.

        2.3 基于循環(huán)隊(duì)列的熱塊識別算法

        CAT算法中冷熱塊的識別主要集中在數(shù)據(jù)的寫訪問次數(shù)方面[8],當(dāng)通過長時(shí)間的積累使地址A被訪問到了100次和在短時(shí)間內(nèi)地址B被訪問到了100次,此時(shí)根據(jù)CAT的計(jì)算公式A、B將計(jì)算出同樣的熱度值.但由于B是在短時(shí)間的頻繁訪問,地址B的熱度值應(yīng)該更高.

        為了有效的反應(yīng)邏輯地址的被訪問的次數(shù)隨著時(shí)間的變化關(guān)系,可以在閃存設(shè)備接收到寫命令時(shí)使用循環(huán)隊(duì)列統(tǒng)計(jì)該塊地址的熱度值,并利用隊(duì)列的先入先出特性刪除過時(shí)的數(shù)據(jù).具體方法如下:

        建立固定長度的循環(huán)隊(duì)列,長度為len,從隊(duì)頭到隊(duì)尾為每一個(gè)位置分配一個(gè)遞增的熱度權(quán)值,當(dāng)一個(gè)寫命令來時(shí),將LBA入隊(duì),此時(shí)LBA的熱度為len,原隊(duì)列各元素向隊(duì)頭移動(dòng)一個(gè)位置,對頭元素出列.由于是循環(huán)隊(duì)列,元素入隊(duì)、出隊(duì)、移位只需要修改隊(duì)頭和隊(duì)尾指針,提高了運(yùn)算速度.隊(duì)列狀態(tài)如圖2所示.

        圖2 熱度循環(huán)隊(duì)列狀態(tài)圖Fig.2 Heat queue state diagram

        當(dāng)計(jì)算某個(gè)邏輯塊地址的熱度值Hoti時(shí),通過對隊(duì)列中該地址的熱度權(quán)值求和,便得到該邏輯塊地址的熱度值.

        2.4 磨損均衡策略

        在混合映射中日志塊采用的是頁級映射方式,一個(gè)日志塊可以接收多個(gè)數(shù)據(jù)塊的更新數(shù)據(jù).當(dāng)冷熱數(shù)據(jù)混合在一個(gè)日志塊的時(shí)候,由于熱數(shù)據(jù)頻繁的更新,日志塊中的空閑頁很快就被耗盡,合并操作會(huì)同時(shí)拷貝熱數(shù)據(jù)和冷數(shù)據(jù).為了避免冷數(shù)據(jù)和熱數(shù)據(jù)混合在一塊日志塊導(dǎo)致冷數(shù)據(jù)過多沒必要的拷貝,需要根據(jù)數(shù)據(jù)的冷熱值將相似熱度的有效頁分配在同一日志塊上,以達(dá)到減少塊合并操作的目的.

        本文采用一種基于邏輯塊熱度的冷熱分離,通過有效頁所對應(yīng)的邏輯塊熱度來決定寫入的日志頁的狀態(tài).具體步驟如下:

        1) 設(shè)定冷熱塊的閾值HotTh,通過累加循環(huán)隊(duì)列中目標(biāo)邏輯塊的權(quán)值,計(jì)算出當(dāng)前邏輯塊的熱度值.

        2)若寫入數(shù)據(jù)對應(yīng)邏輯塊的熱度≥HotTh,該數(shù)據(jù)寫入的邏輯塊被定義為熱塊,這時(shí)將分配空閑塊中擦寫次數(shù)最小的兩個(gè)物理塊作為其數(shù)據(jù)塊和日志塊,此時(shí)該日志塊不共享給其他數(shù)據(jù)塊.

        3)若寫入數(shù)據(jù)對應(yīng)邏輯塊的熱度< HotTh,該數(shù)據(jù)對應(yīng)邏輯塊被定義為冷塊,這時(shí)將分配空閑塊中擦寫次數(shù)最大的兩個(gè)物理塊作為其數(shù)據(jù)塊和日志塊,此時(shí)該日志塊共享給其他數(shù)據(jù)塊.

        2.5 回收塊的選擇

        系統(tǒng)在進(jìn)行垃圾回收時(shí),首先需要考慮垃圾回收的效率,應(yīng)盡量選擇能夠交換合并和部分合并的數(shù)據(jù)塊進(jìn)行回收避免性能最差的全合并[9,10].由于NAND 閃存設(shè)備擦除次數(shù)有限,無效頁回收還要考慮閃存塊的磨損均衡度和資源的合理利用.所以回收策略結(jié)合了擦除次數(shù)、有效頁比例和熱度值.具體公式如公式(1)所示:

        (1)

        其中:v表示順序日志塊中有效頁比例;εmin表示FLASH設(shè)備中塊的最小擦除次數(shù);εmax表示FLASH設(shè)備中塊的最大擦除次數(shù);εi表示該物理塊被擦除的次數(shù);HotTh表示判定冷熱塊的閾值;Hoti表示該塊的熱度值.對于混合映射來說由于垃圾回收必然會(huì)執(zhí)行數(shù)據(jù)塊合并操作,當(dāng)順序日志塊上有效頁越多執(zhí)行部分合并時(shí)效率就越高,同時(shí)冷熱程度也作為資源合理利用的依據(jù),冷數(shù)據(jù)塊所對應(yīng)的日志塊會(huì)被長期占用,由于冷數(shù)據(jù)塊可能在接下來很長一段時(shí)間無數(shù)據(jù)寫入,因此也無法通過數(shù)據(jù)寫滿日志塊觸發(fā)合并回收日志塊,此時(shí)日志塊將被一直無法被其他塊使用,這對空間的利用和磨損均衡都是不利的[10],所以應(yīng)該優(yōu)先回收冷數(shù)據(jù)塊的日志塊.回收機(jī)制會(huì)選擇數(shù)據(jù)塊的順序日志塊有效頁最多、擦除次數(shù)最少且熱度值最低的數(shù)據(jù)塊進(jìn)行回收.

        3 實(shí)驗(yàn)與分析

        3.1 實(shí)驗(yàn)環(huán)境及實(shí)驗(yàn)參數(shù)

        在linux 2.6下使用disksim磁盤仿真平臺模擬NAND閃存.測試數(shù)據(jù)使用同等大小的RAM虛擬磁盤設(shè)備在實(shí)際運(yùn)行下的讀寫記錄生成tarce文件.通過在disksim中添加測試算法并使用生成的tarce測試數(shù)據(jù)進(jìn)行測試獲得性能數(shù)據(jù).其中RAM虛擬磁盤格式化為FAT32文件系統(tǒng),在文件系統(tǒng)中創(chuàng)建1KB~2MB文件,所有文件大小總和占RAM虛擬磁盤設(shè)備85%.文件創(chuàng)建完后對文件進(jìn)行更新.測試數(shù)據(jù)通過記錄系統(tǒng)對虛擬磁盤的I/O生成可用于Flashsim 的trace測試數(shù)據(jù)[11-13].模擬出來的NAND 閃存和RAM磁盤大小都為64M,NAND 閃存頁大小為8KB,塊大小為1MB,總?cè)萘繛?4MB.實(shí)驗(yàn)與同樣使用混合映射的CAT、SACATA算法進(jìn)行性能比較.HMSGC算法中參數(shù)HotTh設(shè)為128,熱度鏈表長度為128.

        3.2 算法性能比較

        論文在FAST轉(zhuǎn)換層的基礎(chǔ)上實(shí)現(xiàn)了CAT、SACATA、HMSGC三種垃圾回收算法并進(jìn)行了實(shí)驗(yàn)比較.性能比較采用的指標(biāo)包括:所有物理塊的擦除總數(shù)、全合并總數(shù)、擦除次數(shù)的標(biāo)準(zhǔn)差曲線、擦除次數(shù)最大差值比和響應(yīng)時(shí)間.

        由圖3、圖4可知,隨寫入數(shù)據(jù)的增加,使用HMSGC算法的總擦除次數(shù)始終比CAT、SACATA算法少50%以上,全合并次數(shù)要少84%.這主要是因?yàn)镠MSGC對冷熱數(shù)據(jù)塊進(jìn)行了識別,并且將冷熱塊的更新數(shù)據(jù)分開存儲(chǔ)到不同擦除次數(shù)的日志塊中,減少了垃圾回收觸發(fā)頻率以及全合并次數(shù).

        圖3 擦除總次數(shù)對比圖Fig.3 Totalnumberoferaseoperation圖4 全合并次數(shù)對比圖Fig.4 Totalnumberofmergers

        由圖5可知,HMSGC算法的塊最大擦除次數(shù)和最小擦除次數(shù)差值要比CAT和SACATA算法少70%.這是因?yàn)榛厥沾鷥r(jià)函數(shù)中引入了塊的熱度值,回收了更新數(shù)據(jù)較慢的冷數(shù)據(jù)塊,改善了磨損均衡度,提高了塊空間了利用.

        圖5 擦除次數(shù)最大差值對比Fig.5 Maximumdifferentoferasecycles圖6 擦除次數(shù)的標(biāo)準(zhǔn)差對比Fig.6 Standdeviationofblockerasecycles

        由圖6可知,隨著擦除次數(shù)的增加,CAT和SACATA算法的標(biāo)準(zhǔn)差逐漸增加且增速變快,而HMSGC算法的標(biāo)準(zhǔn)差雖然隨著擦除次數(shù)的增加也在增加,但其增速卻比CAT和SACATA算法要慢,并且標(biāo)準(zhǔn)差更趨近于穩(wěn)定.這是由于HMSGC算法選擇合適的物理塊進(jìn)行回收,同時(shí)以邏輯塊的熱度對日志塊數(shù)據(jù)進(jìn)行冷熱分離.把擦除次數(shù)最少的物理塊作為熱邏輯塊的數(shù)據(jù)塊和日志塊,把擦除次數(shù)最多的物理塊作為冷邏輯塊的數(shù)據(jù)塊和日志塊.這種策略有助于平衡各物理塊的擦除次數(shù),從而改善了塊的磨損均衡度.

        表1 算法讀寫性能Table 1 Algorithm read and write performance

        由表1可知,I/O的平均響應(yīng)時(shí)間和最大響應(yīng)時(shí)間HMSGC算法要明顯小于SACATA和CAT算法.這是由于HMSGC算法使用冷熱數(shù)據(jù)分離大量減少了全合并的次數(shù),同時(shí)為熱數(shù)據(jù)塊分配單獨(dú)的日志塊避免熱數(shù)據(jù)塊頻繁觸發(fā)合并操作,縮短了響應(yīng)時(shí)間.

        4 結(jié) 語

        針對NAND閃存的硬件特性,改進(jìn)FAST轉(zhuǎn)換層提出了一種基于混合映射的垃圾回收算法.首先,提出一種基于循環(huán)隊(duì)列的熱塊識別算法計(jì)算邏輯塊熱度,其次選擇對應(yīng)順序日志塊有效頁最多、擦除次數(shù)最少且熱度值最低的數(shù)據(jù)塊進(jìn)行回收.最后將熱數(shù)據(jù)存入擦除次數(shù)最少的數(shù)據(jù)塊或日志塊中,冷數(shù)據(jù)存入擦除次數(shù)最大的數(shù)據(jù)塊或日志塊中.實(shí)現(xiàn)在日志塊中冷熱數(shù)據(jù)的分開存儲(chǔ).實(shí)驗(yàn)結(jié)果表明,與CAT和SACATA算法比較,磨損均衡度方面取得了較好的性能,同時(shí)全合并觸發(fā)次數(shù)和擦除總次數(shù)減少了50%以上.在I/O性能上也有較大的提升.該算法能夠延長NAND 閃存的壽命,并優(yōu)化其性能.

        猜你喜歡
        隊(duì)列日志磨損
        一名老黨員的工作日志
        扶貧日志
        心聲歌刊(2020年4期)2020-09-07 06:37:14
        隊(duì)列里的小秘密
        基于多隊(duì)列切換的SDN擁塞控制*
        軟件(2020年3期)2020-04-20 00:58:44
        在隊(duì)列里
        套管磨損機(jī)理研究
        游學(xué)日志
        豐田加速駛?cè)胱詣?dòng)駕駛隊(duì)列
        鉆頭磨損后怎樣更換
        石油知識(2016年2期)2016-02-28 16:20:21
        閃存的磨損均衡專利技術(shù)綜述
        河南科技(2014年19期)2014-02-27 14:15:25
        国产精品一级av一区二区| 天天燥日日燥| 国产 国语对白 露脸| 国产h视频在线观看网站免费| 亚洲女同性恋激情网站| 草草影院ccyy国产日本欧美 | 无码精品日韩中文字幕| 极品美女高潮喷白浆视频| 台湾自拍偷区亚洲综合| 国产精品国产三级国产专播下| 777精品久无码人妻蜜桃| 亚洲香蕉视频| 亚洲高清美女久久av| 亚洲av五月天一区二区| 亚洲国产精品毛片av不卡在线| 国产精品无码无片在线观看 | 色欲av一区二区久久精品| 亚洲视频综合在线第一页| 午夜福利一区在线观看中文字幕| 久久99久久99精品中文字幕| 国产成人亚洲综合无码精品| 国产一区二区三区免费在线播放| 制服丝袜一区二区三区| 人妻少妇精品视频一区二区三区 | 欧美性xxxx狂欢老少配| 人妻少妇精品视中文字幕国语| 丰满少妇被爽的高潮喷水呻吟| 国产精品99无码一区二区| 成人片黄网站色大片免费观看app| 亚洲啊啊啊一区二区三区| 穿着白丝啪啪的av网站| 亚洲h在线播放在线观看h| 久久精品国产亚洲不av麻豆 | 在线观看国产一区二区av| 女人脱了内裤趴开腿让男躁| 色综合一本| 国产精品亚洲av无人区一区蜜桃| 国产大屁股视频免费区| 人妻精品无码一区二区三区| 亚洲成a人片在线观看中| 国产日产久久高清ww|