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

        ?

        提升固態(tài)存儲(chǔ)設(shè)備讀取性能的方法

        2021-09-16 02:29:36李明江段星輝
        關(guān)鍵詞:描述符存儲(chǔ)設(shè)備命中率

        李明江,段星輝,陳 仁

        (1.黔南民族師范學(xué)院 計(jì)算機(jī)與信息學(xué)院 人工智能與大數(shù)據(jù)應(yīng)用技術(shù)研究所,貴州 都勻 558000;2.黔南民族師范學(xué)院 計(jì)算機(jī)與信息學(xué)院,貴州 都勻 558000;3.中科院上海技術(shù)物理研究所 中國(guó)科學(xué)院紅外探測(cè)與成像技術(shù)重點(diǎn)實(shí)驗(yàn)室,上海 200083)

        0 引 言

        近年來,由于基于閃存的固態(tài)存儲(chǔ)設(shè)備具有速度快、延時(shí)低、功耗低、抗震、體積小[1]等優(yōu)點(diǎn),固態(tài)存儲(chǔ)設(shè)備在存儲(chǔ)領(lǐng)域中得到廣泛的使用。但閃存具有其自身的一些問題,比如寫前擦除、壽命有限、讀取次數(shù)有限、讀寫速度不一致等[2]?;陂W存的固態(tài)存儲(chǔ)設(shè)備通過閃存轉(zhuǎn)換層(flash translation layer,F(xiàn)TL)來管理閃存。FTL的主要作用是管理邏輯地址(LBA)到物理地址(PPA)的映射?;诓煌6鹊挠成?,F(xiàn)TL有塊映射、頁(yè)映射以及混合映射等地址映射方式[3],其中頁(yè)映射具有最好的讀寫性能,因此為主流固態(tài)存儲(chǔ)設(shè)備所使用。然而,基于頁(yè)映射的映射表很龐大,需要大容量的緩存來存放。然而在一些固態(tài)存儲(chǔ)設(shè)備中,出于成本和功耗考慮,沒有配備大容量的緩存存儲(chǔ)映射表,映射表只能部分存儲(chǔ)在有限的控制器SRAM上,其絕大部分則存儲(chǔ)在閃存上。有限的SRAM限制了無DRAM設(shè)備的讀取性能,尤其是隨機(jī)讀取性能,因?yàn)樵O(shè)備首先需要訪問閃存獲取映射關(guān)系,然后再根據(jù)該映射關(guān)系從閃存中讀取用戶數(shù)據(jù)。在有限的SRAM空間,如果能盡可能多緩存映射關(guān)系,則能減少對(duì)閃存的訪問,從而提升設(shè)備的讀取性能。這是包括本文在內(nèi)的很多論文解決該問題的一個(gè)思路。本文提出的另一個(gè)想法是利用有限的SRAM資源,緩存盡可能多熱數(shù)據(jù)的映射關(guān)系,因?yàn)闊釘?shù)據(jù)的訪問速度對(duì)用戶體驗(yàn)有直接的影響,而冷數(shù)據(jù)的訪問速度則對(duì)用戶體驗(yàn)沒有那么大的影響。

        1 無大緩存存儲(chǔ)設(shè)備的主要FTL算法

        對(duì)性能要求高的固態(tài)硬盤(如企業(yè)級(jí)固態(tài)硬盤),一般都配有大容量的DRAM來存放映射表。對(duì)讀寫I/O來說,由于整個(gè)映射表都存儲(chǔ)在DRAM中,固件可以快速獲取讀寫所需的映射關(guān)系,讀取或者更新映射關(guān)系都很迅速(只需訪問DRAM),因此讀寫性能很好。

        如何在無DRAM的固態(tài)硬盤中實(shí)現(xiàn)基于頁(yè)映射的FTL,國(guó)內(nèi)外有很多研究,最為經(jīng)典的FTL算法是DFTL[4],其它很多FTL算法都是在此基礎(chǔ)上衍生和改進(jìn)的。

        DFTL基本思想是把整個(gè)映射表按映射頁(yè)管理,所有映射頁(yè)都存儲(chǔ)在閃存上,映射頁(yè)按需加載到緩存(cached mapping table,CMT)中,而全局翻譯目錄(global translation directory,GTD)用以存儲(chǔ)這些映射頁(yè)在閃存中的物理地址,它常駐SRAM。對(duì)讀寫I/O來說,它首先在CMT中查找該邏輯頁(yè)的映射關(guān)系,如果命中緩存,則直接根據(jù)該映射關(guān)系讀取閃存獲得用戶數(shù)據(jù);如果沒有命中緩存,則查找GTD,找到所需映射頁(yè)的物理地址,然后從閃存中讀取映射頁(yè)到緩存中,最后固件根據(jù)該映射關(guān)系獲得用戶數(shù)據(jù)。

        DFTL的順序讀取性能很好,因?yàn)橐粋€(gè)映射頁(yè)加載到緩存中后,對(duì)接下來的很多筆讀,都能發(fā)生緩存命中,無需訪問閃存便能獲得該邏輯地址對(duì)應(yīng)的物理地址;但對(duì)隨機(jī)讀取來說,因?yàn)镃MT大小有限,對(duì)每筆讀取來說,發(fā)生映射頁(yè)緩存命中概率很低,因此很多時(shí)候它都需要訪問兩次閃存才能最終獲得用戶數(shù)據(jù),隨機(jī)讀取性能差。

        為提高映射頁(yè)緩存的命中率,在DFTL的基礎(chǔ)上,文獻(xiàn)[5]提出LAST++,其思想是根據(jù)主機(jī)的讀寫負(fù)荷,對(duì)順序?qū)懭氲臄?shù)據(jù),采用塊映射,而對(duì)隨機(jī)寫入的數(shù)據(jù),采用頁(yè)映射。這種方式能減小整個(gè)映射表大小,對(duì)同樣大小的映射頁(yè)緩存,緩存命中率會(huì)有一定的提升。但這種混合映射方式實(shí)現(xiàn)起來很復(fù)雜,因?yàn)橐瑫r(shí)兼顧塊映射管理和頁(yè)映射管理。

        文獻(xiàn)[6,7]提出的FTL算法,其基本思路相似,即在DFTL的基礎(chǔ)上,對(duì)順序?qū)懭氲?,采用更粗的映射粒度,?duì)隨機(jī)寫入的數(shù)據(jù),采用更細(xì)的映射粒度。更粗的映射粒度能減小映射表的大小,提升映射頁(yè)的緩存命中率。但這些算法有個(gè)弊端,就是順序?qū)懙臄?shù)據(jù)中如果加入少量的隨機(jī)寫(這在實(shí)際使用場(chǎng)景中是經(jīng)常發(fā)生的,比如順序?qū)懙奈募屑尤胛募獢?shù)據(jù)的寫入[6]),粗的映射粒度就不能使用,因此無法提升頁(yè)緩存命中率。其實(shí),LAST++存在同樣的問題。

        另外,這些FTL算法對(duì)熱冷數(shù)據(jù)無差別對(duì)待。其實(shí),在有限的SRAM空間緩存冷數(shù)據(jù)的映射關(guān)系是沒有意義的,因?yàn)檫@些數(shù)據(jù)很少被用戶訪問,它們?cè)L問速度的快慢對(duì)用戶體驗(yàn)沒有大的差別。

        2 本文工作

        讀取速度的快慢,尤其是熱數(shù)據(jù)的讀取延時(shí)和性能,和用戶體驗(yàn)息息相關(guān)。低延時(shí)和高速的讀取訪問能大大提升用戶體驗(yàn),反之亦然。為改善無DRAM大緩存的存儲(chǔ)設(shè)備的讀取延時(shí)和性能,本文調(diào)研了業(yè)界和學(xué)術(shù)界最新的設(shè)計(jì)方法(如第1節(jié)所述),在他們工作的基礎(chǔ)上,本文創(chuàng)造性提出以下方法:

        (1)用戶在實(shí)際使用固態(tài)存儲(chǔ)設(shè)備時(shí),存在很多順序?qū)懭胍约按髷?shù)據(jù)量的寫入[8],這些數(shù)據(jù)寫入產(chǎn)生的映射具有邏輯地址和物理地址連續(xù)的特點(diǎn)。連續(xù)的映射關(guān)系很適合壓縮,本文通過壓縮連續(xù)映射關(guān)系以讓有限的緩存空間存儲(chǔ)更多的映射關(guān)系;

        (2)用戶在實(shí)際使用存儲(chǔ)設(shè)備時(shí),順序?qū)懞碗S機(jī)寫可能交錯(cuò)寫入[9],為保證順序?qū)懭氲臄?shù)據(jù)在閃存物理空間連續(xù)(不被隨機(jī)寫打斷),本文提出讓順序?qū)懭氲臄?shù)據(jù)和隨機(jī)寫入的數(shù)據(jù)存儲(chǔ)在不同的閃存物理塊上。分離存儲(chǔ)保證更多的連續(xù)物理地址映射,從而有助于提升映射表的壓縮率;

        (3)用戶在使用存儲(chǔ)設(shè)備時(shí),雖然存儲(chǔ)設(shè)備上存儲(chǔ)了很多數(shù)據(jù),但經(jīng)常訪問的數(shù)據(jù)往往有限。因此,本文提出只緩存熱數(shù)據(jù)的映射表,從而在有限的映射緩存空間能存儲(chǔ)更多的有助于提升用戶體驗(yàn)的映射關(guān)系;

        (4)普通用戶在使用存儲(chǔ)設(shè)備時(shí),設(shè)備很多時(shí)候都是空閑的,因此本文提出利用設(shè)備空閑時(shí)間預(yù)取和壓縮熱數(shù)據(jù)的映射表,達(dá)到提升熱數(shù)據(jù)訪問速度的目的。

        在設(shè)計(jì)和實(shí)現(xiàn)以上算法的基礎(chǔ)上,本文還設(shè)計(jì)實(shí)驗(yàn)比較了不同F(xiàn)TL算法之間的讀取性能差異,并對(duì)實(shí)驗(yàn)結(jié)果做了理論分析。

        3 算法設(shè)計(jì)

        3.1 映射表壓縮

        為減小映射表的大小,本文的思路是壓縮映射表,讓有限的映射表緩存能存儲(chǔ)盡可能多的映射關(guān)系,來達(dá)到提升映射表緩存命中率的目的。

        注意到無論是在基準(zhǔn)測(cè)試(benchmark tests)中,還是在實(shí)際用戶使用存儲(chǔ)設(shè)備過程中,都會(huì)有很多的順序?qū)懭牖蛘叽髷?shù)據(jù)量的寫入(比如視頻、圖像、大文件等),這些數(shù)據(jù)的寫入,會(huì)產(chǎn)生很多的連續(xù)的物理地址。比如write(0,1024)(起始LBA為100,寫入1024個(gè)邏輯頁(yè))寫入,產(chǎn)生表1所示的映射。

        表1 傳統(tǒng)映射表示例

        對(duì)這些邏輯地址和物理地址都連續(xù)映射,采用游程編碼的方式,把它們用另外一種形式表示,見表2。

        表2 映射描述符表示例

        把其中的條目稱為映射描述符,包括“起始LBA,起始PPA,連續(xù)長(zhǎng)度”3個(gè)域。同樣的映射關(guān)系,用表1傳統(tǒng)的頁(yè)映射管理形式,它們需要4096字節(jié)來緩存,而采用游程編碼壓縮后,表2只需10字節(jié)就能表示同樣的映射關(guān)系,所需SRAM空間大大減小。

        在DFTL的映射頁(yè)緩存(CMT)基礎(chǔ)上,所提算法加入映射描述符緩存(mapping descriptor cache,MDC)用以緩存游程編碼后的映射描述符。為減小查詢開銷和內(nèi)存使用空間,MDC通常只有幾KB。在第4節(jié)實(shí)驗(yàn)結(jié)果部分提供了不同MDC大小下的軟件查詢開銷。

        當(dāng)加入MDC緩存后,設(shè)備處理主機(jī)讀取命令步驟如下:

        (1)FTL查找傳統(tǒng)的映射頁(yè)緩存(CMT),看該LBA對(duì)應(yīng)的映射頁(yè)是否在CMT,如果命中緩存,返回該LBA對(duì)應(yīng)的物理地址,跳到(4);否則,走到(2);

        (2)FTL查找新加的映射描述符緩存(MDC),看該LBA是否落在其中某個(gè)映射描述符內(nèi),如果在,則返回該LBA對(duì)應(yīng)的物理地址,跳到(4);否則,走到(3);

        (3)查找全局翻譯目錄(GTD,即映射頁(yè)物理地址表),找到LBA對(duì)應(yīng)的映射頁(yè)的物理地址,然后讀取所需的映射頁(yè)到映射頁(yè)緩存,同時(shí),F(xiàn)TL遍歷該映射頁(yè)以壓縮其中的連續(xù)映射關(guān)系,如滿足條件則新的映射描述符會(huì)被加入到MDC中。

        (4)根據(jù)該LBA對(duì)應(yīng)的物理地址讀取閃存獲得該用戶數(shù)據(jù),返回給主機(jī)。

        偽代碼如下:

        輸入:LBA,邏輯地址

        輸出:PPA,物理地址

        if(LBA hit CMT)

        {//LBA所對(duì)應(yīng)的映射頁(yè)在映射頁(yè)緩存CMT中

        return PPA from CMT;

        }

        else

        {

        if(LBA hits MDC)

        {//LBA落在映射描述符緩存MDC中

        PPA =(LBA-Start_LBA)+ Start_PPA

        return PPA;

        }

        else

        {//CMT和MDC都沒有命中

        PPT_Index = LBA/PPT_SIZE;//獲得該LBA對(duì)應(yīng)的映射頁(yè)編號(hào);

        PPT_PPA = GTD[PPT_Index];//查找GTD獲得所需加載映射頁(yè)的物理地址;

        根據(jù)物理地址PPT_PPA加載映射頁(yè)到映射頁(yè)緩存CMT;

        遍歷映射頁(yè)看是否能加入到MDC;

        return PPA;

        }

        }

        3.2 順序?qū)懭牒碗S機(jī)寫入數(shù)據(jù)分開存儲(chǔ)

        對(duì)連續(xù)的寫入,或者大數(shù)據(jù)的寫入,會(huì)產(chǎn)生連續(xù)的地址映射,有利于映射數(shù)據(jù)的壓縮。但在實(shí)際用戶使用存儲(chǔ)設(shè)備的過程中,在連續(xù)數(shù)據(jù)寫入過程中會(huì)有隨機(jī)的寫入,如文件系統(tǒng)層在寫入大文件數(shù)據(jù)的時(shí)候,中間會(huì)寫入管理文件相關(guān)的元數(shù)據(jù)。隨機(jī)寫入會(huì)導(dǎo)致連續(xù)的地址映射中斷,不利于映射關(guān)系的壓縮。

        舉例來說,兩個(gè)連續(xù)的寫write(0,64)和write(64,32),寫入到的閃存空間起始物理地址為0,則一個(gè)映射描述符(0,0,96)可以描述兩個(gè)命令產(chǎn)生的映射關(guān)系。如果在兩個(gè)命令中加入了一個(gè)不連續(xù)的命令write(200,1),則需要兩個(gè)映射描述符來描述之前兩個(gè)命令產(chǎn)生的映射關(guān)系,見表3。

        表3 連續(xù)物理地址被中斷的例子

        如果對(duì)加入到MDC的映射描述符有限制的話,比如連續(xù)長(zhǎng)度需大于32,則表中第3條映射關(guān)系不會(huì)被緩存,導(dǎo)致更多的映射關(guān)系沒有被緩存,從而導(dǎo)致緩存命中率降低。

        為避免隨機(jī)的寫入中斷順序?qū)懙挠成潢P(guān)系,本文提出把順序?qū)懭氲臄?shù)據(jù)和隨機(jī)寫入的數(shù)據(jù)分開寫在不同的物理塊或者超級(jí)塊。以上面3個(gè)寫入命令為例,由于write(0,64)和write(64,32)是連續(xù)的寫入命令,因此它們會(huì)寫在起始物理位置為0的閃存空間(如圖1中的超級(jí)塊A);而write(200,1)是隨機(jī)寫入,因此它的數(shù)據(jù)會(huì)被寫到另外的閃存空間,比如起始物理位置為10000的閃存空間(如圖1中的超級(jí)塊B)。

        圖1 順序數(shù)據(jù)和隨機(jī)數(shù)據(jù)分開存儲(chǔ)示例

        順序?qū)懭氲臄?shù)據(jù)和隨機(jī)寫入的數(shù)據(jù)分開存儲(chǔ)讓連續(xù)的命令write(0,64)和write(64,32)具有連續(xù)的物理地址,它們的映射關(guān)系這樣就可以被一個(gè)映射描述符(0,0,96)描述,提升了映射表的壓縮率,有限的緩存空間MDC可以緩存更多的映射關(guān)系,映射緩存的命中率得到提升。

        3.3 區(qū)分冷熱數(shù)據(jù)

        盡管用戶的存儲(chǔ)設(shè)備上存儲(chǔ)了很多數(shù)據(jù),但很多時(shí)候,用戶只會(huì)頻繁訪問其中的一部分?jǐn)?shù)據(jù),這部分?jǐn)?shù)據(jù)被稱作熱數(shù)據(jù),相反,那些不經(jīng)常訪問的數(shù)據(jù)則稱為冷數(shù)據(jù)。要提升用戶體驗(yàn),重在提升熱數(shù)據(jù)的訪問速度。

        FTL對(duì)整個(gè)用戶存儲(chǔ)空間進(jìn)行劃分,比如每1 GB為一區(qū)間,128 GB的存儲(chǔ)設(shè)備則被劃分成128個(gè)用戶區(qū)間,見表4。對(duì)每個(gè)用戶區(qū)間,F(xiàn)TL維護(hù)它的讀取次數(shù):如某個(gè)LBA被主機(jī)讀取,其所在的用戶區(qū)間的讀次數(shù)則加1。

        表4 用戶區(qū)間讀計(jì)數(shù)表例子

        比如,在表4的基礎(chǔ)上,read(0,10)命令處理完后,其所在的用戶區(qū)間讀次數(shù)應(yīng)該加10,即用戶區(qū)間(0,1 GB)的讀次數(shù)變成143。

        FTL可以把讀次數(shù)最多的若干個(gè)用戶區(qū)間定義為熱數(shù)據(jù),其它用戶區(qū)間則定義為冷數(shù)據(jù)。由于映射關(guān)系的緩存空間有限,F(xiàn)TL沒有必要緩存冷數(shù)據(jù)的映射關(guān)系,而是在有限的空間緩存更多的熱數(shù)據(jù)對(duì)應(yīng)的映射關(guān)系,有助于提升熱數(shù)據(jù)的緩存命中率,從而提升用戶體驗(yàn)。

        3.4 更新映射描述符緩存(MDC)

        有兩個(gè)時(shí)機(jī)映射頁(yè)會(huì)被壓縮成映射描述符加入到映射描述符緩存MDC:一是當(dāng)讀取某個(gè)LBA發(fā)生映射頁(yè)緩存不命中的時(shí)候,F(xiàn)TL會(huì)去閃存上加載該映射頁(yè)到緩存CMT,在這個(gè)時(shí)候,F(xiàn)TL會(huì)去遍歷該映射頁(yè),如果有很多的連續(xù)物理地址存在該映射頁(yè),則它們會(huì)被壓縮成映射描述符而被加入到MDC;另外一個(gè)時(shí)機(jī)是存儲(chǔ)設(shè)備空閑的時(shí)候,F(xiàn)TL會(huì)把所有熱數(shù)據(jù)對(duì)應(yīng)的映射頁(yè)讀取上來,然后遍歷這些映射頁(yè),壓縮那些連續(xù)的映射關(guān)系,壓縮成的映射描述符可能被加入到映射描述符緩存中。

        映射緩存中緩存的映射關(guān)系越多,則映射緩存命中率越高,系統(tǒng)讀取性能越好。為在有限的緩存空間緩存盡可能多的映射關(guān)系,該算法制定如下更新描述符緩存的規(guī)則:

        FTL只會(huì)把熱數(shù)據(jù)對(duì)應(yīng)的映射關(guān)系更新到映射描述符緩存;

        對(duì)加入到映射描述符緩存中的映射描述符做限制,即只有物理地址連續(xù)個(gè)數(shù)超過某個(gè)閾值(如32個(gè))的描述符才能加入到緩存中;

        當(dāng)MDC緩存滿了的時(shí)候,當(dāng)需要添加新的映射描述符,如果待加入的描述符其連續(xù)的物理地址長(zhǎng)度大于緩存中最短的那個(gè)描述符,則取代該描述符加入緩存中,否則放棄添加新的映射描述符到緩存。

        這些規(guī)則的定義,能保證有限的MDC空間緩存盡可能多的映射關(guān)系,尤其是熱數(shù)據(jù)的映射關(guān)系。

        4 實(shí)驗(yàn)結(jié)果

        本文使用FlashSim[10]仿真軟件來評(píng)估該算法性能。FlashSim是一款開源的SSD模擬器,它是一款事件驅(qū)動(dòng)的、模塊化的基于C++的模擬器,內(nèi)置了多種FTL策略,能夠提供響應(yīng)時(shí)間、能耗的模擬及許多額外的統(tǒng)計(jì)信息。在FlashSim內(nèi)置的DFTL算法的基礎(chǔ)上,實(shí)現(xiàn)映射壓縮、順序和隨機(jī)數(shù)據(jù)分開存儲(chǔ)、區(qū)分冷熱數(shù)據(jù)和后臺(tái)加載熱數(shù)據(jù)映射表并進(jìn)行壓縮。

        實(shí)驗(yàn)使用FlashSim模擬128 GB存儲(chǔ)設(shè)備,該存儲(chǔ)設(shè)備有4個(gè)32 GB的Flash組成,每個(gè)通道上掛一個(gè)Die。具體參數(shù)見表5。

        表5 存儲(chǔ)設(shè)備配置

        映射頁(yè)緩存CMT大小為256 KB,可以緩存64個(gè)4 KB大小的映射頁(yè);映射描述符緩存MDC大小為2 KB,由于每一個(gè)描述符大小為10字節(jié),因此可以緩存大概200個(gè)映射描述符。在處理每筆讀取命令的過程中,需要查找映射描述符,在本實(shí)驗(yàn)平臺(tái)上實(shí)測(cè)軟件查詢2 KB的MDC需要額外多出1 μs,因此MDC不能配置太大,否則查詢成本太高。如20 KB的MDC查詢時(shí)間為10 μs,意味著讀取的延時(shí)增加10 μs,系統(tǒng)讀取性能大大減小。圖2給出了不同MDC大小配置下的MDC查詢時(shí)間。

        圖2 MDC查詢時(shí)間和其緩存大小的關(guān)系

        實(shí)驗(yàn)設(shè)計(jì)1:目的是測(cè)試壓縮映射表對(duì)數(shù)據(jù)讀取性能的提升。

        測(cè)試方法:

        (1)順序填滿整個(gè)盤;

        (2)不同LBA范圍內(nèi)測(cè)試數(shù)據(jù)的讀取性能。

        結(jié)果(如圖3所示)分析:由于DFTL只用256 KB CMT緩存映射表,因此映射表緩存命中率隨著LBA測(cè)試范圍擴(kuò)大,命中率逐漸下降,具體見表6。

        圖3 本文算法和傳統(tǒng)FTL隨機(jī)讀取性能對(duì)比

        表6 DFTL映射緩存命中率和讀取性能

        由于本文算法采用了映射表壓縮,并使用MDC來緩存壓縮后的映射描述符。2 KB的MDC能緩存200個(gè)映射描述符,每個(gè)映射描述符可以描述256 MB(超級(jí)塊的大小,一個(gè)超級(jí)塊需要一個(gè)描述符),因此50 GB LBA范圍內(nèi)的映射關(guān)系可以被存儲(chǔ)在MDC中。因此,如果LBA讀取范圍在50 GB之內(nèi),則發(fā)生100%的映射緩存命中,讀取數(shù)據(jù)的時(shí)候無需從閃存上讀取映射關(guān)系。從實(shí)驗(yàn)數(shù)據(jù)可以看出,50 GB LBA測(cè)試范圍內(nèi),4 KB平均讀取性能約為70 K IOPS,平均延時(shí)為68 μs,但從50 G LBA范圍開始,隨著LBA測(cè)試范圍加大,其性能逐漸變差,命令延時(shí)也加大,因?yàn)榫彺婷新事兊?,需要更大概率從閃存上讀取映射關(guān)系。

        由于MDC緩存的映射描述符有限,不能覆蓋整個(gè)用戶空間的數(shù)據(jù),這也是本文提出只緩存熱數(shù)據(jù)映射關(guān)系的原因。在本實(shí)驗(yàn)中,如果用戶熱數(shù)據(jù)在50 GB(128 GB中有50 GB數(shù)據(jù)被經(jīng)常訪問)之內(nèi),則在讀取這些熱數(shù)據(jù)的時(shí)候,能發(fā)生100%的MDC緩存命中,從而加快熱數(shù)據(jù)訪問的性能和延時(shí),從而改善用戶體驗(yàn)。

        注意到LAST++在順序填充滿盤的情況下,它能做到全盤范圍內(nèi)保持一個(gè)高的隨機(jī)讀取性能,那是因?yàn)橥耆樞驅(qū)懭霑r(shí),LAST++采用的是塊映射,映射表相對(duì)頁(yè)映射來說大大減小,因此其所有映射關(guān)系可以緩存在SRAM。

        實(shí)驗(yàn)設(shè)計(jì)2:目的是測(cè)試順序?qū)懭氲臄?shù)據(jù)中夾雜著少量的隨機(jī)寫,然后測(cè)試讀取性能。

        測(cè)試方法:

        (1)順序填滿整個(gè)盤,但在填盤的過程中,每寫1 MB的用戶數(shù)據(jù),插入一個(gè)隨機(jī)寫的數(shù)據(jù),用以模擬平時(shí)文件的寫入(文件系統(tǒng)在寫入用戶數(shù)據(jù)的同時(shí)也會(huì)寫入文件元數(shù)據(jù));

        (2)不同LBA范圍內(nèi)測(cè)試數(shù)據(jù)的讀取性能,比較順序?qū)懭氲臄?shù)據(jù)和隨機(jī)寫入的數(shù)據(jù)分開存儲(chǔ)和統(tǒng)一存儲(chǔ)兩者對(duì)隨機(jī)讀取性能影響,以及和傳統(tǒng)DFTL,LAST++性能的對(duì)比。

        結(jié)果分析:從實(shí)驗(yàn)結(jié)果(如圖4所示)可以看出,如果順序?qū)懭氲拇髷?shù)據(jù)和隨機(jī)寫入的小數(shù)據(jù)混合存儲(chǔ),其4 KB讀取性能和DFTL(沒有映射表數(shù)據(jù)的壓縮)差不多。這是因?yàn)?,每寫? MB的數(shù)據(jù),則需要一個(gè)映射描述符。由于MDC只能緩存200個(gè)左右的映射描述符,也就是說只能緩存200 MB左右的用戶數(shù)據(jù)的映射關(guān)系(見表7),和CMT緩存映射關(guān)系差不多,因此在性能和延時(shí)上,混合存儲(chǔ)和DFTL性能差不多,都遠(yuǎn)遠(yuǎn)不及分開存儲(chǔ)的性能。

        圖4 混合存儲(chǔ)和分開存儲(chǔ)性能對(duì)比

        表7 混合存儲(chǔ)和分開存儲(chǔ)覆蓋的LBA范圍

        結(jié)果還發(fā)現(xiàn),在實(shí)驗(yàn)1順序填盤情況下表現(xiàn)優(yōu)異的LAST++,在碰到這種隨機(jī)和順序混合填盤的情況下,其性能退化成DFTL性能。LAST++的基本思想是對(duì)順序?qū)懭氩捎脡K映射,對(duì)隨機(jī)寫入采用頁(yè)映射。在此測(cè)試中,隨機(jī)寫入打斷了順序?qū)懭?,?dǎo)致順序?qū)懭肓坎蛔阋粋€(gè)閃存塊,無法實(shí)現(xiàn)塊映射,演變成純粹的頁(yè)映射,因此無法減小映射關(guān)系,最后導(dǎo)致其讀取性能跟DFTL性能一樣。

        5 結(jié)束語(yǔ)

        針對(duì)不帶大緩存的固態(tài)存儲(chǔ)設(shè)備讀取性能和延時(shí)差的問題,本文采用游程編碼的方式壓縮和緩存熱數(shù)據(jù)的映射表、順序?qū)懭氲臄?shù)據(jù)和隨機(jī)寫入的數(shù)據(jù)分開存儲(chǔ)、大數(shù)據(jù)寫入和小數(shù)據(jù)寫入分開存儲(chǔ)等方法,提升讀取命令的映射緩存命中率,來提升用戶訪問熱數(shù)據(jù)的讀取性能,從而改善用戶在使用移動(dòng)存儲(chǔ)(比如手機(jī)、平板上使用的存儲(chǔ)設(shè)備)或不帶DRAM固態(tài)硬盤時(shí)的使用體驗(yàn)。對(duì)企業(yè)級(jí)的固態(tài)存儲(chǔ)設(shè)備,雖然一般都配有大容量的DRAM作為緩存,但隨著存儲(chǔ)設(shè)備容量越來越大,還是存在緩存不能容納整個(gè)設(shè)備映射表的問題,因此,本文提出的算法也適用于這些企業(yè)級(jí)應(yīng)用的固態(tài)存儲(chǔ)設(shè)備。

        猜你喜歡
        描述符存儲(chǔ)設(shè)備命中率
        基于結(jié)構(gòu)信息的異源遙感圖像局部特征描述符研究
        夜夜“奮戰(zhàn)”會(huì)提高“命中率”嗎
        2015男籃亞錦賽四強(qiáng)隊(duì)三分球進(jìn)攻特點(diǎn)的比較研究
        Linux單線程并發(fā)服務(wù)器探索
        投籃的力量休斯敦火箭
        NBA特刊(2017年8期)2017-06-05 15:00:13
        利用CNN的無人機(jī)遙感影像特征描述符學(xué)習(xí)
        Windows 7下USB存儲(chǔ)設(shè)備接入痕跡的證據(jù)提取
        基于Flash芯片的新型存儲(chǔ)設(shè)備數(shù)據(jù)恢復(fù)技術(shù)研究
        試析心理因素對(duì)投籃命中率的影響
        用批處理管理計(jì)算機(jī)USB設(shè)備的使用
        50岁退休熟女露脸高潮| av一区二区三区观看| 免费人成视频网站在在线| 男人进去女人爽免费视频| 国产精品视频一区国模私拍| 青青青国产免A在线观看| 中文字幕亚洲精品专区| 又黄又爽又无遮挡免费的网站| 亚洲精品成人网站在线观看 | 少妇下面好紧好多水真爽| 白丝爆浆18禁一区二区三区| 男女18禁啪啪无遮挡| 日韩免费高清视频网站| 久久老熟女一区二区三区| 加勒比hezyo黑人专区| 狠狠色狠狠色综合日日不卡| 亚洲欧美日韩精品香蕉| 亚洲国产精品av麻豆网站| 亚洲国产欧美在线观看| 66lu国产在线观看| 视频一区二区三区中文字幕狠狠| 日本熟女精品一区二区三区| 高清不卡一区二区三区| 国产精品女视频一区二区| 日本免费三片在线播放| 综合偷自拍亚洲乱中文字幕 | 久久久久亚洲av综合波多野结衣| 人人妻人人爽人人做夜欢视频九色| 亚洲色欲色欲www成人网| 国产av一区二区毛片| 色吊丝中文字幕| 久久久久亚洲AV无码专| 久久久免费精品国产色夜| 亚洲国产精品久久久久秋霞小说 | 国产激情在观看| 一区二区激情偷拍老牛视频av| 无码国产精品一区二区av| 亚洲av色无码乱码在线观看| 亚洲愉拍自拍视频一区| 麻豆资源在线观看视频| 久久综合久久鬼色|