謝徐超,宋振龍,李 瓊,魏登萍,方 健,肖立權(quán)
(國(guó)防科學(xué)技術(shù)大學(xué)計(jì)算機(jī)學(xué)院,湖南 長(zhǎng)沙 410073)
基于NAND Flash的固態(tài)盤(pán)SSD(Solid State Drive)具有低延遲、低功耗、高可靠性等優(yōu)點(diǎn),可以有效地提升存儲(chǔ)系統(tǒng)的性能,在企業(yè)級(jí)和消費(fèi)級(jí)存儲(chǔ)領(lǐng)域得到廣泛應(yīng)用。在高性能計(jì)算領(lǐng)域,固態(tài)盤(pán)已成為用來(lái)提高系統(tǒng)IO性能的主要手段之一,例如位居2013年6月TOP 500榜首的“天河二號(hào)”計(jì)算機(jī)系統(tǒng)就采用了PCIe接口的SSD作為數(shù)據(jù)加速層,大幅提高了全系統(tǒng)的IO性能。而NAND Flash的寫(xiě)前擦除、擦除次數(shù)有限等固有特性使得基于NAND Flash的寫(xiě)性能相對(duì)其讀性能要差,整體性能還有待提高。
作為固態(tài)盤(pán)控制器的核心,閃存轉(zhuǎn)換層FTL(Flash Translation Layer)可以將底層NAND Flash陣列封裝成一個(gè)和硬盤(pán)一樣的塊設(shè)備,隱藏擦除操作,保證現(xiàn)有文件系統(tǒng)對(duì)SSD的兼容性。FTL的主要功能包括地址映射、垃圾回收、磨損均衡等。地址映射將來(lái)自文件系統(tǒng)的讀寫(xiě)請(qǐng)求的邏輯地址轉(zhuǎn)換成固態(tài)盤(pán)內(nèi)的物理地址,保證了異地更新策略的實(shí)現(xiàn),是FTL中最重要的一項(xiàng)功能。當(dāng)垃圾回收被觸發(fā)時(shí),對(duì)被擦除的數(shù)據(jù)塊中有效頁(yè)回收,然后將該數(shù)據(jù)塊進(jìn)行擦除。由于需要涉及對(duì)其中有效頁(yè)的遷移和對(duì)塊的擦除操作,對(duì)數(shù)據(jù)塊進(jìn)行垃圾回收是一個(gè)非常耗時(shí)的操作。
FTL中地址映射方式主要有頁(yè)映射、塊映射和混合映射等[1~4]。其中頁(yè)映射機(jī)制以頁(yè)為基本映射粒度,是最靈活、性能最優(yōu)的地址映射方式。但是,隨著固態(tài)盤(pán)容量的增加,地址映射過(guò)程中對(duì)頁(yè)映射表的緩存需要更大的SRAM存儲(chǔ)空間,造成成本增加?;陧?yè)映射機(jī)制的DFTL[5]算法將經(jīng)常用到的部分映射關(guān)系存放到SRAM中,而整個(gè)映射表保存在Flash中,但是SRAM中部分緩存的地址映射信息很大程度上依賴(lài)于負(fù)載的時(shí)間局部性。另外,因地址映射信息在SRAM中未命中而引起的額外的讀寫(xiě)操作,及其可能觸發(fā)的垃圾回收操作等所產(chǎn)生的延遲對(duì)整個(gè)存儲(chǔ)系統(tǒng)性能的影響是巨大的。因此,如何選擇性地緩存地址映射信息,提高命中率,對(duì)于提升SSD的性能至關(guān)重要。
為了有效利用緩存空間對(duì)地址映射信息進(jìn)行緩存,減少FTL對(duì)SRAM存儲(chǔ)空間的依賴(lài),我們提出了一種新的地址映射算法。該算法在有效協(xié)同利用訪問(wèn)請(qǐng)求的時(shí)間局部性和空間局部性的同時(shí),能根據(jù)負(fù)載的數(shù)據(jù)請(qǐng)求特點(diǎn)動(dòng)態(tài)預(yù)測(cè)請(qǐng)求的特點(diǎn),并動(dòng)態(tài)調(diào)整地址映射信息的緩存管理策略,提高命中率,有效改善系統(tǒng)的寫(xiě)性能。
WAPFTL的整體結(jié)構(gòu)如圖1所示,NAND Flash在邏輯上被劃分為數(shù)據(jù)塊(Data Blocks)和轉(zhuǎn)換塊(Translation Block)。數(shù)據(jù)塊占據(jù)了絕大部分Flash空間,主要用來(lái)存儲(chǔ)數(shù)據(jù),轉(zhuǎn)換塊只占據(jù)小部分Flash空間,用來(lái)存儲(chǔ)數(shù)據(jù)塊中的所有邏輯頁(yè)地址到物理頁(yè)地址之間的地址映射關(guān)系。
Figure 1 Architecture of WAPFTL圖1 WAPFTL結(jié)構(gòu)
如圖1所示,WAPFTL在固態(tài)盤(pán)SRAM中建立順序緩存映射表SCMT(Sequential Cached Mapping Table)、緩存分裂表CST(Cached Split Table)、緩存映射表CMT(Cached Mapping Table)和全局轉(zhuǎn)換目錄GTD(Global Translation Directory),并預(yù)先設(shè)置一個(gè)閾值threshold。其中SCMT、CST和CMT協(xié)同記錄SRAM中處于活躍狀態(tài)的頁(yè)映射關(guān)系,全局轉(zhuǎn)換目錄GTD用來(lái)記錄所有邏輯頁(yè)對(duì)應(yīng)地址映射信息在Flash中存放的物理頁(yè)號(hào)。threshold的大小決定一個(gè)請(qǐng)求的地址映射信息在SRAM中緩存的方式,通過(guò)對(duì)threshold的動(dòng)態(tài)調(diào)整,可以使整個(gè)算法針對(duì)當(dāng)前負(fù)載請(qǐng)求的特點(diǎn)進(jìn)行自適應(yīng)調(diào)整,有效提高SRAM中映射信息的命中率。
SCMT和CST有三個(gè)表項(xiàng):起始邏輯頁(yè)號(hào)LPN、起始物理頁(yè)號(hào)PPN和長(zhǎng)度SIZE,其中長(zhǎng)度SIZE指明了該映射關(guān)系中以該邏輯頁(yè)號(hào)為起始頁(yè)的一組起始邏輯頁(yè)號(hào)和起始物理頁(yè)號(hào)都連續(xù)的頁(yè)的數(shù)量。SCMT和CST中SIZE的大小表示該映射關(guān)系的映射范圍,但是其最大值不會(huì)超過(guò)一個(gè)塊中所擁有頁(yè)的總數(shù)量;在WAPFTL中,針對(duì)當(dāng)前固態(tài)盤(pán)及其所用NAND Flash的規(guī)格,為保證足夠的尋址空間,我們將LPN和PPN分別設(shè)置為4 B,將SIZE設(shè)置為2 B,因此,在SCMT和CST中一個(gè)地址映射信息所占用的空間為10個(gè)字節(jié)大小,而CMT中只用8個(gè)字節(jié)。
SCMT和CMT是用于記錄SRAM中頁(yè)映射信息最主要的數(shù)據(jù)結(jié)構(gòu)。在高性能計(jì)算及企業(yè)級(jí)服務(wù)器中,有順序?qū)懻?qǐng)求,也有較小的隨機(jī)請(qǐng)求,CMT主要是用于緩存那些物理地址不連續(xù)的隨機(jī)請(qǐng)求的地址映射信息。對(duì)于邏輯頁(yè)號(hào)連續(xù)的讀請(qǐng)求,在當(dāng)前NAND Flash中,其數(shù)據(jù)所在的物理頁(yè)的頁(yè)號(hào)并不一定是連續(xù)的。因此,讀請(qǐng)求從轉(zhuǎn)換塊中的某個(gè)轉(zhuǎn)換頁(yè)中一次只能讀出一個(gè)邏輯頁(yè)號(hào)對(duì)應(yīng)的映射信息,當(dāng)讀失效時(shí),SCMT中的SIZE并不能發(fā)揮其效果。因此,在這些情況下,設(shè)置SIZE造成了SRAM中存儲(chǔ)空間的浪費(fèi)。CMT中沒(méi)有設(shè)置SIZE域,其實(shí)質(zhì)是SIZE=1的SCMT,但是可以在隨機(jī)請(qǐng)求和讀請(qǐng)求密集的負(fù)載條件下更有效地利用SRAM空間。緩存分裂表CST主要用于記錄緩存映射表中某些頁(yè)映射關(guān)系由于部分更新分裂而形成的子頁(yè)映射關(guān)系。CST在保證不破壞根據(jù)時(shí)間局部性原理而組織的SCMT的內(nèi)部邏輯結(jié)構(gòu)的前提下,更有效地利用IO請(qǐng)求的空間局部性原理。
WAPFTL接收來(lái)自文件系統(tǒng)的IO請(qǐng)求,IO請(qǐng)求所攜帶的信息包括該IO請(qǐng)求的請(qǐng)求類(lèi)型(讀/寫(xiě))、起始邏輯頁(yè)號(hào)LPN、請(qǐng)求的長(zhǎng)度SIZE頁(yè)。
WAPFTL首先檢查當(dāng)前IO請(qǐng)求的起始邏輯頁(yè)在SCMT或CST中的命中情況,即判斷該請(qǐng)求的起始邏輯頁(yè)號(hào)是否在SCMT或CST中某個(gè)地址映射關(guān)系所表示的區(qū)間內(nèi),可以得到命中和未命中兩種結(jié)果。對(duì)命中的結(jié)果,通過(guò)判斷該命中的地址映射信息表示的范圍是否包含此IO請(qǐng)求的所有邏輯頁(yè),可得到完全命中或者部分命中兩種結(jié)果。假設(shè)當(dāng)前IO請(qǐng)求為寫(xiě)請(qǐng)求,請(qǐng)求邏輯地址為L(zhǎng)PN,請(qǐng)求長(zhǎng)度為SIZE頁(yè),SCMT中被命中的映射關(guān)系為(SCMTLPN,SCMTPPN,SCMTSIZE),根據(jù)請(qǐng)求的SIZE以及SCMT和CST中命中的映射串信息,判斷該請(qǐng)求的命中類(lèi)型及相應(yīng)操作的過(guò)程為:
(1)完全命中:該地址映射串包含了所有此IO請(qǐng)求需要的地址映射信息。生成兩個(gè)長(zhǎng)度不小于0的額外的子映射關(guān)系(SCMTLPN,SCMTPPN,LPN-SCMTSIZE)和(LPN+SIZE,SCMTPPN+LPN+SIZE-SCMTLPN,SCMTLPN+SCMTSIZE-LPN-SIZE)。對(duì)新生成的兩個(gè)子映射信息,分別比較它們的長(zhǎng)度與當(dāng)前threshold的大小,若大于threshold,則將其放入CST中緩存,若小于threshold,則將該映射信息中包含的多個(gè)映射關(guān)系分別緩存到CMT中。
(2)部分命中:該地址映射串中只包含了此IO請(qǐng)求需要的部分地址映射信息。將當(dāng)前IO請(qǐng)求根據(jù)緩存映射表映射關(guān)系表項(xiàng)中滿(mǎn)足命中的范圍分裂為兩個(gè)子請(qǐng)求REQ1= (LPN,SIZE1)和REQ2= (LPN+SIZE1,SIZE-SIZE1),其中,SIZE1 =SCMTLPN+SCMTSIZE-LPN。REQ1為在該映射關(guān)系中能夠滿(mǎn)足的子請(qǐng)求,REQ2為不能夠滿(mǎn)足的子請(qǐng)求,SIZE1為映射關(guān)系中滿(mǎn)足命中部分的長(zhǎng)度。同時(shí),該過(guò)程中還會(huì)生成新的子映射關(guān)系(SCMTLPN,SCMTPPN,SCMTSIZE-SIZE1)。對(duì)于新生成的子映射關(guān)系,其處理方式與命中情況相同。
若該IO請(qǐng)求的起始邏輯頁(yè)號(hào)未在SCMT和CST中命中,則繼續(xù)到CMT中查找。與SCMT和CST中的命中情況不同,在CMT中命中的映射關(guān)系,一次只能得到該IO請(qǐng)求需要的所有映射信息中的一條,而在SCMT和CST中則可以一次得到多條。若該IO請(qǐng)求的起始邏輯頁(yè)號(hào)在CMT中也沒(méi)有命中,則表示該請(qǐng)求所需要的地址映射信息并沒(méi)有緩存在SRAM中,需要通過(guò)GTD訪問(wèn)存有該信息的轉(zhuǎn)換塊,從其相應(yīng)的頁(yè)中取出所需要的映射關(guān)系,并根據(jù)當(dāng)前緩存管理策略放入SRAM相應(yīng)的表中緩存。在WAPFTL中,每個(gè)表都采用Segment LRU[3]進(jìn)行組織。
對(duì)于寫(xiě)請(qǐng)求,當(dāng)SSD中有新的數(shù)據(jù)寫(xiě)入Flash時(shí),F(xiàn)TL會(huì)在當(dāng)前所有的空閑塊中選擇一塊磨損次數(shù)最少的數(shù)據(jù)塊作為當(dāng)前數(shù)據(jù)塊(Current Block),用來(lái)存儲(chǔ)最近被寫(xiě)入的數(shù)據(jù)。對(duì)于SIZE大于1的寫(xiě)請(qǐng)求,其寫(xiě)入該當(dāng)前塊中頁(yè)的數(shù)量為SIZE,并且寫(xiě)入Flash后的物理地址也是連續(xù)的。因此,對(duì)于順序?qū)懻?qǐng)求,我們可以利用這一特性在一個(gè)地址映射信息中記錄多條頁(yè)地址映射關(guān)系,如圖2所示。
Figure 2 Cache strategy of address mappings in WAPFTL圖2 WAPFTL地址映射信息緩存策略
由于SSD所采取的異地更新策略,在當(dāng)前寫(xiě)請(qǐng)求完成對(duì)數(shù)據(jù)的存儲(chǔ)以后,原有的地址映射關(guān)系發(fā)生改變,F(xiàn)TL需要作廢原有映射信息并記錄最新的地址映射關(guān)系。WAPFTL比較當(dāng)前寫(xiě)請(qǐng)求的SIZE與當(dāng)前threshold,如果SIZE大于threshold,則表示在當(dāng)前負(fù)載情況下,WAPFTL的決策是及該地址映射信息緩存到SCMT中,WAPFTL在SCMT中緩存一個(gè)映射串,記錄此次請(qǐng)求將該IO請(qǐng)求的所有映射關(guān)系。如果SIZE小于threshold,則表示在當(dāng)前負(fù)載情況下,WAPFTL的決策是將每條地址映射關(guān)系單獨(dú)緩存到CMT中。
對(duì)于讀請(qǐng)求,由于SSD在完成讀請(qǐng)求的過(guò)程中并不會(huì)發(fā)生對(duì)數(shù)據(jù)的更新操作,原有的地址映射關(guān)系也不會(huì)發(fā)生改變,因此,如果讀請(qǐng)求的邏輯頁(yè)號(hào)可以在SRAM任何一個(gè)表中命中,則無(wú)需處理。當(dāng)所需地址映射關(guān)系在SRAM中未命中時(shí),WAPFTL將所需映射關(guān)系從轉(zhuǎn)換塊中相應(yīng)的轉(zhuǎn)換頁(yè)讀入SRAM,并緩存到CMT中。顯然,只有當(dāng)threshold的值為1時(shí),因讀失效而從Flash的轉(zhuǎn)換塊中讀入SRAM的映射關(guān)系才可能緩存到SCMT中。
WAPFTL統(tǒng)計(jì)并分析在一段時(shí)間間隔內(nèi)負(fù)載的請(qǐng)求類(lèi)型與請(qǐng)求的大小,對(duì)以后的IO請(qǐng)求可能具有的特點(diǎn)進(jìn)行預(yù)測(cè),以調(diào)整當(dāng)前SRAM對(duì)地址映射信息的緩存管理策略。WAPFTL通過(guò)改變當(dāng)前threshold的值,動(dòng)態(tài)調(diào)整SRAM中地址映射信息的緩存方式,以便在當(dāng)前負(fù)載下可以盡可能地緩存更多的頁(yè)映射關(guān)系,擴(kuò)大SRAM地址映射范圍,提高命中率,減少SRAM與Flash之間因?yàn)榈刂酚成涠斐傻念~外讀寫(xiě)開(kāi)銷(xiāo)。在WAPFTL中,threshold值的變化規(guī)律如圖3所示。
Figure 3 State transitions of workloads and the process of threshold in WAPFTL圖3 WAPFTL中負(fù)載特性狀態(tài)轉(zhuǎn)換及threshold值變化規(guī)律
WAPFTL用“隨機(jī)寫(xiě)”、“順序?qū)憽焙汀白x”三個(gè)狀態(tài)表示當(dāng)前負(fù)載請(qǐng)求的特點(diǎn)。對(duì)于所取時(shí)間間隔內(nèi),如果所有的請(qǐng)求中寫(xiě)請(qǐng)求比例超過(guò)40%,并且寫(xiě)請(qǐng)求所請(qǐng)求的頁(yè)數(shù)大于當(dāng)前threshold值的比例超過(guò)25%,則表明相對(duì)于SRAM中所緩存的映射關(guān)系來(lái)說(shuō),當(dāng)前負(fù)載的順序?qū)懻?qǐng)求較多,WAPFTL認(rèn)為該負(fù)載當(dāng)前的特點(diǎn)為“順序?qū)憽?,并?zhí)行threshold++。這是因?yàn)閷?duì)于大量的寫(xiě)請(qǐng)求,如果threshold值較低,必然造成所有由于寫(xiě)操作而新形成的映射關(guān)系都直接存放到SCMT中,當(dāng)SCMT內(nèi)無(wú)空閑表項(xiàng)時(shí),會(huì)造成SCMT中大量的具有較大SIZE值的映射信息寫(xiě)回Flash,而該映射關(guān)系所表示的映射范圍直接影響WAPFTL中SRAM的命中率。WAPFTL通過(guò)執(zhí)行threshold++,讓SIZE值較小的映射關(guān)系緩存到CMT中,SCMT中SIZE較大的映射關(guān)系保證了SCMT中映射信息表示的邏輯范圍。若當(dāng)前負(fù)載請(qǐng)求的狀態(tài)為“隨機(jī)寫(xiě)”且threshold值仍大于1,WAPFTL則執(zhí)行threshold--,以保證SRAM中SCMT空間的有效利用。
如果該時(shí)間間隔內(nèi)所有的請(qǐng)求中讀請(qǐng)求的數(shù)量占據(jù)了多數(shù),WAPFTL則標(biāo)記當(dāng)前負(fù)載狀態(tài)為“讀”。如果threshold值仍大于1,WAPFTL執(zhí)行threshold--。由于邏輯頁(yè)號(hào)連續(xù)的頁(yè),其當(dāng)前在Flash中所存放的頁(yè)的物理頁(yè)號(hào)不一定是連續(xù)的,對(duì)于讀請(qǐng)求所需的地址映射信息未在SRAM中命中時(shí),只能一條一條地從Flash中取出。但是,當(dāng)讀請(qǐng)求較密集時(shí),就會(huì)造成CMT映射關(guān)系與Flash轉(zhuǎn)換塊之間頻繁的數(shù)據(jù)交換。為了避免SCMT不能發(fā)揮作用,當(dāng)WAPFTL檢測(cè)到當(dāng)前負(fù)載狀態(tài)為“讀”時(shí),就執(zhí)行threshold--,直至threshold值為1。
為了驗(yàn)證WAPFTL的性能,我們擴(kuò)展了SSD仿真環(huán)境Flashsim[7],并在Flashsim中實(shí)現(xiàn)了頁(yè)映射算法、FAST[8]、DFTL和WAPFTL算法。SSD的詳細(xì)配置如表1所示。其中SRAM空間設(shè)置為64 KB,并假設(shè)整個(gè)SRAM空間足以緩存頁(yè)映射算法和FAST的所有映射表。
Table 1 Specification of SSD configuration表1 SSD配置說(shuō)明
實(shí)驗(yàn)應(yīng)用的trace文件中,SPC1和SPC2來(lái)自于SPC[9],MSRC1和MSRC2是由MSRCambridge所采集[10]。這些用來(lái)驅(qū)動(dòng)Flashsim的trace的特點(diǎn)如表2所示。
Table 2 Workload characteristics表2 負(fù)載特點(diǎn) %
通過(guò)運(yùn)行不同的trace,測(cè)試WAPFTL對(duì)SSD寫(xiě)性能的提高,在實(shí)驗(yàn)中我們以頁(yè)映射算法為性能評(píng)測(cè)的基準(zhǔn)(Baseline)。平均響應(yīng)時(shí)間可以較好地衡量整個(gè)FTL的性能,其綜合反映了FTL中地址映射、垃圾回收和磨損均衡算法所需的開(kāi)銷(xiāo)。如圖4所示,WAPFTL平均響應(yīng)時(shí)間低于DFTL,對(duì)系統(tǒng)性能有非常明顯的提高。特別對(duì)于順序?qū)懻?qǐng)求比例較大的MSRC1和MSRC2,已接近于理想狀態(tài)下的響應(yīng)時(shí)間。
Figure 4 Average system response time 圖4 系統(tǒng)平均響應(yīng)時(shí)間
為了評(píng)價(jià)WAPFTL中地址映射信息緩存方法的效率,我們對(duì)SRAM中地址映射關(guān)系的命中率和SRAM與Flash之間讀寫(xiě)次數(shù)進(jìn)行分析。如圖5所示,WAPFTL中對(duì)映射關(guān)系的緩存可以有效提高SRAM中各類(lèi)負(fù)載地址映射信息的命中率。
Figure 5 Cache hit ratio圖5 命中率
在以頁(yè)映射算法為基準(zhǔn)時(shí),對(duì)于DFTL和WAPFTL,額外的讀寫(xiě)操作是由于SRAM中地址映射信息未命中而引起的。對(duì)于FAST,則是由于大量的完全合并而引起的垃圾回收操作而引起,如圖6所示為四種算法在SPC1負(fù)載下的垃圾回收次數(shù),F(xiàn)AST算法的垃圾回收操作嚴(yán)重影響了其性能。
Figure 6 Number of block erasures in SPC1圖6 SPC1中塊擦除次數(shù)
如圖7所示,在負(fù)載一定的情況下,不同地址映射算法會(huì)產(chǎn)生不同的讀寫(xiě)次數(shù)。
Figure 7 Number of read/write operations圖7 讀寫(xiě)次數(shù)
WAPFTL利用負(fù)載的當(dāng)前特性進(jìn)行預(yù)測(cè)并自適應(yīng)調(diào)整緩存策略,保證盡可能多的地址映射信息緩存在SRAM中,有效減少了因?yàn)榈刂酚成湓赟RAM中未命中而引起的SRAM與Flash之間額外的讀寫(xiě)請(qǐng)求次數(shù),從而減少對(duì)Flash的總的讀寫(xiě)次數(shù),提高SSD整體性能。
本文面向大容量SSD在高性能計(jì)算及企業(yè)級(jí)服務(wù)器中應(yīng)用的特點(diǎn),提出了一種閃存轉(zhuǎn)換層中基于頁(yè)映射機(jī)制的自適應(yīng)地址映射算法WAPFTL。WAPFTL高效協(xié)同利用負(fù)載的時(shí)間局部性和空間局部性,在地址轉(zhuǎn)換處理過(guò)程中通過(guò)預(yù)測(cè)當(dāng)前負(fù)載請(qǐng)求特性,實(shí)現(xiàn)了對(duì)SRAM中映射信息緩存策略的動(dòng)態(tài)調(diào)整。仿真與測(cè)試結(jié)果表明,WAPFTL算法能夠提高SRAM中地址映射信息的命中率,減少因地址映射而引起的額外讀寫(xiě)操作;同時(shí),WAPFTL有效地減少了垃圾回收次數(shù),提高了SSD整體性能。
[1] Chung T S, Park D J, Park S, et al. A survey of flash translation layer[J]. Journal of Systems Architecture, 2009, 55(5):332-343.
[2] Lim S P, Lee S W, Moon B. Faster FTL for enterprise-class flash memory SSDs[C]∥Proc of 2010 IEEE International Workshop on Storage Network Architecture and Parallel I/Os (SNAPI), 2010:3-12.
[3] Wei Q, Gong B, Pathak S, et al. WAFTL:A workload adaptive flash translation layer with data partition[C]∥Proc of 2011 IEEE 27th Symposium on Mass Storage Systems and Technologies (MSST), 2011:1-12.
[4] Wang C, Wong W F. ADAPT:Efficient workload-sensitive flash management based on adaptation, prediction and aggre-
gation[C]∥Mass Storage Systems and Technologies (MSST),2012 IEEE 28th Symposium on. IEEE,2012:1-12.
[5] Gupta A, Kim Y, Urgaonkar B. DFTL:A flash translation layer employing demand-based selective caching of page-level address mappings[C]∥Proc of the 14th International Conference on Architectural Support for Programming Languages and Operating System,2009:229-240.
[6] Karedla R, Love J S, Wherry B G. Caching strategies to improve disk system performance[J]. Computer, 1994, 27(3):38-46.
[7] Kim Y, Tauras B, Gupta A, et al. Flashsim:A simulator for NAND flash-based solid-state drives[C]∥Proc of the First IEEE International Conference on Advances in System Simulation, 2009:125-131.
[8] Lee S W, Park D J, Chung T S, et al. FAST:A log-buffer based FTL scheme with fully associative sector translation[J]. ACM Transations on Embedded Computing Systems, 2007,6(3):1-18.
[9] Storage performance council (SPC) storage traces[EB/OL].[2007-06-01]. http://traces.cs.umass.edu/index.php/Storage/Storage.
[10] Narayanan D, Donnelly A, Rowstron A. Write off-loading:Practical power management for enterprise storage[J]. ACM Transactions on Storage (TOS), 2008, 4(3):10.