分類號(hào)學(xué)校代碼_第1頁(yè)
分類號(hào)學(xué)校代碼_第2頁(yè)
分類號(hào)學(xué)校代碼_第3頁(yè)
分類號(hào)學(xué)校代碼_第4頁(yè)
分類號(hào)學(xué)校代碼_第5頁(yè)
已閱讀5頁(yè),還剩155頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

摘要基于閃存的固態(tài)盤(Flash-baed摘要基于閃存的固態(tài)盤(Flash-baedSolidStateDisk:)是近些年出現(xiàn)的一種新型存儲(chǔ)設(shè)備。傳統(tǒng)硬盤是由機(jī)械部件組成,而固態(tài)盤是由閃存芯片以一定結(jié)構(gòu)組成的。相對(duì)于傳統(tǒng)硬盤,固態(tài)盤在性能、能耗、可靠性、尺寸等方面有著明顯的優(yōu)勢(shì)?,F(xiàn)在,固態(tài)盤已逐漸成為便攜計(jì)算機(jī)系統(tǒng)、桌面計(jì)算機(jī)系統(tǒng)、大型服務(wù)器系統(tǒng)、高性能計(jì)算系統(tǒng)的重要存儲(chǔ)設(shè)備。但是閃存具有一些獨(dú)特的讀寫(xiě)特性,如:先擦后寫(xiě)、擦寫(xiě)次數(shù)有限、單個(gè)閃存芯片的讀寫(xiě)性能有限,因此,對(duì)于固態(tài)盤組成、軟件結(jié)構(gòu)方面的設(shè)計(jì)應(yīng)該是有針對(duì)性的,根據(jù)這些特性和外部負(fù)載的特點(diǎn)而進(jìn)行特別“定制”。固態(tài)盤中有多個(gè)通道,每個(gè)通道由大量閃存芯片組成,閃存芯片具有多層結(jié)構(gòu),包括芯片-晶圓-分組。因此,固態(tài)盤有四個(gè)層次的并行結(jié)構(gòu):通道間并行—芯片間并行—晶圓間并行—分組間并行。有效利用這四個(gè)層次的并行是提高固態(tài)盤整體讀寫(xiě)性能的關(guān)鍵。在固態(tài)盤中,閃存操作類型和分配方式影響著四層并行性的利用,如:多分組操作高級(jí)命令是利用分組間并行;交錯(cuò)操作高級(jí)命令是利用晶圓間并行;分配方式則是利用芯片間并行和通道間并行。但高級(jí)命令的使用有一定的限制條件,分配方式也具有多種不同的類型。所以,針對(duì)高級(jí)命令和分配方式與四層并行性之間的關(guān)系問(wèn)題;針對(duì)四層并行性之間的優(yōu)先級(jí)關(guān)系的問(wèn)題,本文通過(guò)研究高級(jí)命令和分配方式的使用方法,來(lái)尋找四層并行之間的最佳優(yōu)先級(jí)。實(shí)驗(yàn)數(shù)據(jù)顯示,四層并行之間的最佳優(yōu)先級(jí)是:通道間并行優(yōu)于晶圓間并行;晶圓間并行優(yōu)于分組間并行;分組間并行優(yōu)于芯片間并行。固態(tài)盤中存在一個(gè)閃存轉(zhuǎn)換層(FlashTranslationLayer:FTL),用于翻譯上層文件系統(tǒng)的讀寫(xiě)命令、管理閃存的各種操作。FTL的優(yōu)劣直接影響固態(tài)盤的性能、壽命、能耗的好壞。但是,現(xiàn)有的FTL通常無(wú)法兼顧這三個(gè)方面的要求。為了達(dá)到兼顧性能、壽命、能耗的目標(biāo),本文提出了兩種不同的FTL算法,即三層頁(yè)級(jí)映射算法、隱藏翻譯過(guò)程映射算法。三層頁(yè)級(jí)映射算法是利用固態(tài)盤的硬件結(jié)構(gòu),將一個(gè)分組分成多個(gè)部分,從分配的角度將整個(gè)固態(tài)盤從邏輯上看成三層結(jié)構(gòu):通道—塊組—頁(yè)。在這個(gè)算法中,當(dāng)一組邏輯頁(yè)被分配到一個(gè)塊組時(shí),這些邏輯頁(yè)可以分配到塊組中任意一個(gè)物理頁(yè)。三層頁(yè)級(jí)映射減少了映射表容量,卻提供了類似于純粹頁(yè)級(jí)映射的性能,是一個(gè)高性能、低成本的I映射方式。隱藏翻譯過(guò)程映射算法是通過(guò)在傳統(tǒng)固態(tài)盤結(jié)構(gòu)中引入一個(gè)非易失存儲(chǔ)器件(相變存儲(chǔ)器),用以存放所有的頁(yè)級(jí)映射關(guān)系,將讀寫(xiě)映射關(guān)系數(shù)據(jù)的路徑與讀寫(xiě)用戶數(shù)據(jù)的路徑進(jìn)行分離,達(dá)到了與頁(yè)級(jí)映射相同的性能,減少了存放映射關(guān)系的內(nèi)存容量,降低了內(nèi)存的能耗,從而直接降低了固態(tài)盤的能耗。映射方式。隱藏翻譯過(guò)程映射算法是通過(guò)在傳統(tǒng)固態(tài)盤結(jié)構(gòu)中引入一個(gè)非易失存儲(chǔ)器件(相變存儲(chǔ)器),用以存放所有的頁(yè)級(jí)映射關(guān)系,將讀寫(xiě)映射關(guān)系數(shù)據(jù)的路徑與讀寫(xiě)用戶數(shù)據(jù)的路徑進(jìn)行分離,達(dá)到了與頁(yè)級(jí)映射相同的性能,減少了存放映射關(guān)系的內(nèi)存容量,降低了內(nèi)存的能耗,從而直接降低了固態(tài)盤的能耗。固態(tài)盤中內(nèi)存具有兩個(gè)主要用途:存放映射關(guān)系數(shù)據(jù)、存放緩存數(shù)據(jù)。本文提出了自適應(yīng)的動(dòng)態(tài)緩存管理算法。自適應(yīng)的動(dòng)態(tài)緩存管理算法包括兩個(gè)模找到映射關(guān)系區(qū)域大小和數(shù)據(jù)緩存區(qū)域大小的最佳比例,動(dòng)態(tài)調(diào)整內(nèi)存的分區(qū);動(dòng)態(tài)閾值調(diào)整算法是根據(jù)近期寫(xiě)請(qǐng)求的密度,調(diào)整提前寫(xiě)回的緩存數(shù)據(jù)量的閾值,利用負(fù)載的請(qǐng)求間歇期、固態(tài)盤的內(nèi)部空閑資源,根據(jù)閾值提前寫(xiě)回部分緩存數(shù)據(jù),提前釋放數(shù)據(jù)緩存空間。實(shí)驗(yàn)表明,相比傳統(tǒng)緩存管理算法,自適應(yīng)的動(dòng)態(tài)緩存管理算法可以明顯提高固態(tài)盤的讀寫(xiě)性能、使用壽命。固態(tài)盤模擬器是進(jìn)行固態(tài)盤研究的重要手段。固態(tài)盤模擬器SSDsim是基于“模塊化、高準(zhǔn)確性、可配置”這一目標(biāo)而設(shè)計(jì)實(shí)現(xiàn)的,為研究者提供了測(cè)試固態(tài)盤的時(shí)間、壽命、能耗的模擬平臺(tái)。它分成三個(gè)主要部分:硬件行為層、數(shù)據(jù)緩存層、閃存轉(zhuǎn)換層。為了驗(yàn)證SSDsim的模擬結(jié)果的準(zhǔn)確性,本文將它的測(cè)試結(jié)果與固態(tài)盤原型系統(tǒng)的測(cè)試結(jié)果進(jìn)行比較,結(jié)果顯示SSDsim的模擬結(jié)果和固態(tài)盤原型系統(tǒng)的真實(shí)結(jié)果基本一致。由此,可以看到準(zhǔn)確性的固態(tài)盤模擬工具。目前SSDsim已經(jīng)開(kāi)源。是一個(gè)高關(guān)鍵詞:閃存,固態(tài)盤,并行性,閃存轉(zhuǎn)換層,緩存,模擬器Flash-basedSolidStateDisk(SSD)isemergingasapromisingnonvolatilestoragedevice,whichiscomposedbymultipleflashchips.ComparedwithFlash-basedSolidStateDisk(SSD)isemergingasapromisingnonvolatilestoragedevice,whichiscomposedbymultipleflashchips.ComparedwithtraditionalHardDriverDisk(HDD),SSDprovideshigh-performance,low-energyconsumption,reliabilityandsoon.Atpresent,SSDshavebeen computingsystemsfromlow-endpersonalcomputers,medium-endserversto two characteristics,namely,write-after-eraseanderasecycle.Awriteoperationcanonlychangethevalueofeachtargetbitfromonetozero.Onceapageiswritten,itmustbeerased,whichmeansallbitsareresettoone,beforethenextwriteoperationcanbeperformedonthesamepage.Eachflashblockhasanupperlimitoferasecyclesbeforeitiswornout.Afterwearingout,ablockcannolongerstoreanydata.AtypicalMLCFlashhasanerase-cyclelimitofabout10K,whileatypicalSLCFlashhasanerase-cyclelimitofabout100K.Fortheseintrinsicflashcharacteristics,someuniqueSSDhardwarearchitecturesandsoftwaresystemsarepresented.TherearefourlevelsofparallelisminsideSSDs,includingchannel-levelparallelism,chip-levelparallelism,die-levelparallelismandplane-levelparallelism.Utilizingthesemulti-levelparallelismisthekeypointtoimprovetheperformanceofSSD.Infact,severalfactorswillimpacttheeffectivenessofparallelisminsideSSD,includingflashadvancedcommandsandallocationschemes.Flashadvanced inread/write/eraseoperations.Forexample,multi-planecommandutilizesparallelismbyexecutingmultipleread/write/eraseoperationsconcurrentlyplanes;interleavecommandutilizesdie-levelparallelismbyexecutingread/write/eraseoperationswithpipeliningstyleinseveraldies.ThereareseveralkindsofallocationschemesinSSD.Allocationschemesemploychannel-levelandchip-levelparallelism.Inthispaper,Iresearchtherelationshipbetweenseverallevelsparallelismandadvancedcommands,allocationschemes,determinethepriorityorderoftheselevelsthatoptimizestheperformanceandenduranceofSSD.MyexperimentalresultsshowthattheoptimalpriorityorderofparallelismsinSSDshouldbe(1)thechannel-levelparallelism,(2)thedie-levelparallelism,(3)theplane-levelparallelismand(4)thechip-levelparallelism.FlashTranslationLayer(FTL)isoneofthemostimportantcomponentsofSSD,whosemainpurposeistoperformtranslationfromlogicaladdresstophysicaladdressadaptingtotheunqiuephysicalcharacteristicsofflashmemeorytechnology.TwonovelFTLalgorithmshavebeenpresentedinthispaper,namelythree-levelmappingFTLschemeandhidingmappingFTLschemeandhidingaddresstranslationFTLscheme.TheutilizesthecharacteristicsofSSDhardwaresystem,partscalledblock-group.Ablock-grouphasafixedthisscheme,aseriesoflogicalpagesarestoreddividesaplaneintoseveralnumberofphysicalblocks.Ininablock-group.Insidetheblock-group,themappingrelationshipbetweenlogicalpageandphysicalpageisfullyassociative.Thisschemedecreasesthecapacityofmappingtablesignificantlyandprovidesexcellentperformanceassmoothlyaspuremappingscheme.ThelatterachievesthepuremappingFTLperformanceattheRAMcostofablock-mappingFTLwhileconsuminglowerenergy,byhidingtheaddresstranslation.Thebasicideaofthisschemeistocreateaseparateaccesspathtoread/writetheaddressmappinginformationtosignificantlyhidetheaddress-translationlatencybyincorporatingalowenergy-consumingsolid-statememorydevicethatstorestheentirepagemappingtable.Thebuffer-cacheofanSSDplaysanessentialroleinbridgingthespeedgapbetweenflashstoragemediaandthehostinterface.WhiletheexistingSSDbuffermanagementschemesaredesignedtoimproveSSDperformance,theyareoftenineffectivewhenservingthewidespreadburstsofI/Otrafficindata-intensiveworkloads.Toaddressthisproblem,thispaperproposesaProactiveandAdaptiveSSDbufferScheme(PASS)tojudiciouslyandactivelyflushdirtydatainanticipationoftrafficburstsbyexploitingthelight-trafficintervals,aswellasthechip-levelandchannel-levelparallelisminsideSSD.TheexperimentalresultsshowthatPASSsignificantlyandconsistentlyoutperformsthestate-of-the-artbufferschemesinbothresponsetimeandenduranceSSDsimisevent-driven,modularlystructure,multi-tieredandopen-sourceSSDsimulator.ItiscapableofsimulatingmostSSDhardwareplatforms,mainstreamFTLschemes,allocationschemes,buffermanagementalgorithmsandrequestschedulingalgorithms.ThethreetieredSSDsimdesignconsistsofthebuffermoduleatthetop,theFTLandallocationmoduleinthemiddle,andthelow-levelhardwareplatformmoduleatthebottom.Byfeedingblock-leveltracefilesandconfiguringtheparameterfiles,thewaitingtime,processingtime,responsetimeofeachrequest,totalerasurecount,bufferhitcountandotherdetailedinformationcanbeobtained.TovalidatetheaccuracyofSSDsim,arealSSDhardwareprototypehasbeenimplemented.TheaverageresponsetimeobtainedfromSSDsimisveryclosetothatobtainedfromtheprototype,whichindicatesthehighaccuracyofSSDsim.Keywords:Flash,Solid-StateDisk(SSD),Parallelism,FlashTranslationLayer(FTL),Databuffer,Simulator目錄摘 1目錄摘 1234緒 本文的研究?jī)?nèi)容和主要貢獻(xiàn) 固態(tài)盤中并行性的研究固態(tài)盤中資源利用率及并行性的分類 各級(jí)并行性的分析 并行性利用與高級(jí)命令的關(guān)系 并行性利用與分配方式的關(guān)系 并行性利用的優(yōu)先級(jí) 多層次并行固態(tài)盤的設(shè)計(jì)原則 本章小結(jié) 固態(tài)盤的高性能閃存轉(zhuǎn)換層研究高性能閃存轉(zhuǎn)換層的設(shè)計(jì)前 三層頁(yè)級(jí)映射算法 隱藏翻譯過(guò)程映射算法 系統(tǒng)測(cè)試 本章小結(jié) 固態(tài)盤中緩存管理算法自適應(yīng)的動(dòng)態(tài)緩存管理算法的設(shè)計(jì)前提 V556自適應(yīng)的動(dòng)態(tài)緩存管理算法的基本思想 動(dòng)態(tài)內(nèi)存分區(qū)調(diào)整算法 動(dòng)態(tài)閾值調(diào)整算法 自適應(yīng)的動(dòng)態(tài)緩存管理算法的性能評(píng)價(jià) 本章小結(jié) 固態(tài)盤模擬器SSDsim的設(shè)計(jì)實(shí)現(xiàn)SSDsim的設(shè)計(jì)思路 SSDsim的總體框架 SSDsim的輸入與輸出 SSDsim的驗(yàn)證 SSDsim的應(yīng)用與發(fā)布 本章小結(jié) 全文總結(jié)與展主要成果 下步研究展望 致 參考文獻(xiàn) 附錄附錄附錄攻讀博士學(xué)位期間發(fā)表的學(xué)術(shù)論文 攻讀博士學(xué)位期間參與的科研項(xiàng)目 攻讀博士學(xué)位期間申請(qǐng)的發(fā)明專利及其他情況 1緒論 固態(tài)盤背1緒論 固態(tài)盤背景介基于閃存的固態(tài)盤具有高性能、低功耗、高可靠等諸多優(yōu)點(diǎn),一出現(xiàn)就迅速得到學(xué)術(shù)界和工業(yè)界的接受和重視,逐漸成為計(jì)算機(jī)存儲(chǔ)系統(tǒng)的重要組成部分,它被認(rèn)為可以在不遠(yuǎn)的將來(lái)替換磁盤,就目前的趨勢(shì)來(lái)看,無(wú)論其是否能夠最終替換磁盤,至少其已經(jīng)在很多存儲(chǔ)系統(tǒng)中成為了磁盤的有效補(bǔ)充。目前固態(tài)盤已經(jīng)廣泛的應(yīng)用在銀行、金融、航空、軍事、通訊等各行各業(yè)中,并已經(jīng)形成了每年全球上百億的市場(chǎng)。著名調(diào)研機(jī)構(gòu)IDC發(fā)布消息,盡管遭受了嚴(yán)重的金融危機(jī),2009年全球固態(tài)盤市場(chǎng)的出貨量仍達(dá)到了一千一百萬(wàn)塊,相比金融危機(jī)之前的2008年增幅達(dá)14%,并且這種增長(zhǎng)趨勢(shì)將一直延續(xù)下去。截止2010年底,全球設(shè)計(jì)、生產(chǎn)固態(tài)盤的廠家多達(dá)200家以上,其中不乏傳統(tǒng)芯片廠商英特爾、三星、東芝等,更甚至于包括了傳統(tǒng)的硬盤生產(chǎn)廠商希捷、西數(shù)等,硬盤廠商開(kāi)始固態(tài)盤的研發(fā)非常具有說(shuō)明性。近些年,國(guó)內(nèi)也出現(xiàn)了大量的固態(tài)盤生產(chǎn)廠商,包括憶正、源科等。基于閃存的固態(tài)盤(Flash-basedSolidStateDisk,是由一種基于閃存芯片的新型半導(dǎo)體存儲(chǔ)設(shè)備[1][2][3]。閃存的出現(xiàn)有很長(zhǎng)的歷史。1984年,東芝公司的工程師FujioMasuoka首先提出了閃存的概念。英特爾是第一個(gè)將閃存產(chǎn)業(yè)化的公司,英特爾將這類閃存稱為NOR型閃存。日立公司于1989年研制了一種NOR型閃存的替代者—NANDNOR型閃存還是NAND型閃存,它們的存儲(chǔ)單元均是浮柵場(chǎng)效應(yīng)管[1][2][3]。基于閃存的固態(tài)盤所采用的就是NAND型閃存芯片。目前單個(gè)閃存的容量、性能有限,所以基于閃存的固態(tài)盤與硬盤最大的區(qū)別在于,固態(tài)盤中沒(méi)有任何機(jī)械部件。所以,相比傳統(tǒng)硬盤,固態(tài)盤的能耗較低,可靠性更高[4]。閃存芯片具有其獨(dú)特的操作特點(diǎn),為了管理數(shù)量眾多的閃存芯片,固態(tài)盤中需要存在一個(gè)軟件層次[5],這個(gè)軟件層次負(fù)責(zé)將上層文件系統(tǒng)的讀寫(xiě)請(qǐng)求轉(zhuǎn)換成閃存的操作命令,同時(shí)依據(jù)閃存的操作特點(diǎn)完成相應(yīng)的管理。同傳統(tǒng)存儲(chǔ)設(shè)備一樣,固態(tài)盤中也存在一個(gè)數(shù)據(jù)緩存區(qū)域[6][7],數(shù)據(jù)緩存能夠減少對(duì)閃存的訪問(wèn),從而提高固態(tài)盤的性能和壽命。1 固態(tài)盤的研究現(xiàn)目前,對(duì)固態(tài)盤的研究主要分成兩個(gè)方面,即固態(tài)盤體系結(jié)構(gòu)中多級(jí)并行性方面的研究和固態(tài)盤中軟件算法研究。本節(jié)首先介紹固態(tài)盤的多級(jí)并行性方面的研究現(xiàn)狀;然后介紹固態(tài)盤的軟件算法研究現(xiàn)狀;最后將介紹固態(tài)盤模擬器方面的研究現(xiàn)狀。固態(tài)盤多級(jí)并行性方面的研究現(xiàn)N.Agrawal[1]L.M 固態(tài)盤的研究現(xiàn)目前,對(duì)固態(tài)盤的研究主要分成兩個(gè)方面,即固態(tài)盤體系結(jié)構(gòu)中多級(jí)并行性方面的研究和固態(tài)盤中軟件算法研究。本節(jié)首先介紹固態(tài)盤的多級(jí)并行性方面的研究現(xiàn)狀;然后介紹固態(tài)盤的軟件算法研究現(xiàn)狀;最后將介紹固態(tài)盤模擬器方面的研究現(xiàn)狀。固態(tài)盤多級(jí)并行性方面的研究現(xiàn)N.Agrawal[1]L.M.Grupp[8]在其文章中提到,閃存芯片有多個(gè)層次,1.1列出了這個(gè)多層次的組織結(jié)構(gòu)。從圖中可以看到,閃存芯片由五個(gè)層次組成:芯片(chip)—晶圓(die)—分組(plane)—塊(block)—頁(yè)(page。圖 閃存芯片中存儲(chǔ)部分結(jié)構(gòu)芯片(chip)層是最外層結(jié)構(gòu),通常,芯片層擁有一套完整的外圍電路,外部信號(hào)線。在很多時(shí)候,閃存廠商為了節(jié)約成本和空間,將多個(gè)芯片在物理上疊加起來(lái),疊加在一起的每個(gè)芯片有一個(gè)獨(dú)立的片選信號(hào)和一個(gè)獨(dú)立的工作狀態(tài)信號(hào)線,外部看來(lái)這些芯片就是一個(gè)整體,被稱之為顆粒(package)[10]。因?yàn)轭w粒是多個(gè)芯片在物理上的幾何堆砌,并無(wú)邏輯上的意義,所以不存在顆2粒這個(gè)層次。晶圓(die)層是閃存的第二層結(jié)構(gòu),晶圓層次的出現(xiàn)也是因?yàn)殚W存廠商出于節(jié)約成本和空間的目的,將多個(gè)晶圓組合在一起,共用一套外圍電路和外部信號(hào)線,但是為了執(zhí)行高級(jí)命令(將在后面詳細(xì)介紹,閃存廠商提供的高效的讀、寫(xiě)、擦除方法,是對(duì)普通讀、寫(xiě)、擦除命令的升級(jí),每個(gè)晶圓有一個(gè)內(nèi)部粒這個(gè)層次。晶圓(die)層是閃存的第二層結(jié)構(gòu),晶圓層次的出現(xiàn)也是因?yàn)殚W存廠商出于節(jié)約成本和空間的目的,將多個(gè)晶圓組合在一起,共用一套外圍電路和外部信號(hào)線,但是為了執(zhí)行高級(jí)命令(將在后面詳細(xì)介紹,閃存廠商提供的高效的讀、寫(xiě)、擦除方法,是對(duì)普通讀、寫(xiě)、擦除命令的升級(jí),每個(gè)晶圓有一個(gè)內(nèi)部的工作狀態(tài)信號(hào)線(Ready/Busy,與芯片層的工作狀態(tài)信號(hào)線不同的是,用戶無(wú)法看到內(nèi)部的工作狀態(tài)信號(hào)線,它存在于芯片內(nèi)部,用于查詢每個(gè)晶圓的當(dāng)前狀態(tài)。分組(plane)層是閃存中關(guān)鍵層次,為了提高閃存的讀寫(xiě)速度,在每個(gè)分組中設(shè)置了一個(gè)或者多個(gè)寄存器(目前,三星的閃存產(chǎn)品[11]提供一個(gè)寄存器,稱之為數(shù)據(jù)寄存器—dataregister;美光的閃存產(chǎn)品[56]提供兩個(gè)寄存器,稱之為數(shù)據(jù)寄存器—dataregister和緩存寄存器—cacheregister。數(shù)據(jù)被暫存在這個(gè)寄存器中,通過(guò)I/O信號(hào)線逐步傳入或傳出。塊(block)層是閃存中擦除操作的基本單元,通常,一個(gè)分組中有固定數(shù)量的物理塊,在三星的一款產(chǎn)品中[11],一個(gè)分組中有2048個(gè)物理塊。頁(yè)(page)層是閃存中讀寫(xiě)操作的基本單元,通常,一個(gè)物理塊內(nèi)有固定數(shù)量的物理頁(yè),在同樣一款三星的產(chǎn)品中[11],一個(gè)物理塊中有64個(gè)物理頁(yè)。值得注意的是,分組中的寄存器大小就是一個(gè)物理頁(yè)的大小,這是因?yàn)榉纸M中的寄存器被用作讀寫(xiě)操作時(shí)的緩存,所以寄存器的大小應(yīng)該被設(shè)置成與閃存的讀寫(xiě)操作單元大小一樣。圖1.2是一個(gè)頁(yè)的結(jié)構(gòu)示意圖,在這個(gè)圖中,假設(shè)頁(yè)大小為2KB,其中包括正常存儲(chǔ)空間和一個(gè)額外存儲(chǔ)空間。額外存儲(chǔ)空間是一個(gè)特殊的空間,它用來(lái)保存正常存儲(chǔ)空間中數(shù)據(jù)的ECC糾錯(cuò)碼,邏輯頁(yè)號(hào)等元數(shù)據(jù)。通常每512字節(jié)的正常存儲(chǔ)空間配備16字節(jié)的額外存儲(chǔ)空間。圖 物理頁(yè)結(jié)構(gòu)除此之外,部分閃存芯片存在子頁(yè)的層次11,這個(gè)層次是依據(jù)傳統(tǒng)的塊設(shè)備特點(diǎn)設(shè)計(jì)的。如圖1.2一個(gè)頁(yè)中包括4個(gè)子頁(yè)。在傳統(tǒng)塊設(shè)備中,一個(gè)扇區(qū)大小512字節(jié),所以子頁(yè)的大小也為512字節(jié)。3閃存芯片除了具有以上層次結(jié)構(gòu),它在使用過(guò)程中還存在兩個(gè)主要特點(diǎn):(1閃存芯片除了具有以上層次結(jié)構(gòu),它在使用過(guò)程中還存在兩個(gè)主要特點(diǎn):(1先擦后寫(xiě)(2擦寫(xiě)次數(shù)有限。先擦后寫(xiě)是因?yàn)殚W存中的寫(xiě)操作(program,也稱作編程操作,能將每個(gè)存儲(chǔ)位上的1變成0,但是不能將0變成1。將存儲(chǔ)01只能通過(guò)擦除操作,這就意味著,在寫(xiě)過(guò)一次的存儲(chǔ)位上(已經(jīng)10)不能緊接著再寫(xiě)一次(寫(xiě)操作無(wú)法將存儲(chǔ)位的01,只有進(jìn)行擦除操作后才能進(jìn)行下一次寫(xiě)操作。這就是所謂的先擦后寫(xiě)特點(diǎn);閃存的存儲(chǔ)介質(zhì)是浮柵場(chǎng)效應(yīng)管,寫(xiě)、擦除操作需要通過(guò)半導(dǎo)體層向浮柵注入或者排出電子進(jìn)行信息的保存,電子多次通過(guò)半導(dǎo)體之后將擊穿半導(dǎo)體,這導(dǎo)致閃存的寫(xiě)、擦除次數(shù)有限[117]。通常,SLC[32](每個(gè)浮柵場(chǎng)效應(yīng)管保存一位數(shù)據(jù))類型的閃存,擦除次數(shù)為萬(wàn)次;MLC[32](每個(gè)浮柵場(chǎng)效應(yīng)管保存兩位數(shù)據(jù))類型的閃存,擦除次數(shù)只有千次;最新出現(xiàn)的每個(gè)浮柵場(chǎng)效應(yīng)管保存三位數(shù)據(jù)的閃存,擦除次數(shù)下降到百次[32]。為了使外部控制器的數(shù)據(jù)和控制信號(hào)能夠與閃存芯片交互,閃存廠商提供了一組數(shù)據(jù)信號(hào)線和一組控制信號(hào)線以傳輸數(shù)據(jù)和信號(hào)。根據(jù)數(shù)據(jù)傳輸率的不步總線的閃存芯片上,數(shù)據(jù)通過(guò)一組異步總線進(jìn)行傳輸;同步總線的閃存芯片上,數(shù)據(jù)通過(guò)一組帶外部時(shí)鐘的同步總線進(jìn)行傳輸。前者的理論最大數(shù)據(jù)傳輸率為40MB/s[34],后者的理論最大數(shù)據(jù)傳輸率為400MB/s[33]。為了訪問(wèn)和管理閃存芯片中存儲(chǔ)的數(shù)據(jù),閃存廠商提供了一系列的閃存操作命令,包括基本命令和高級(jí)命令[11][33][34]?;久罹褪峭ǔKf(shuō)的讀、寫(xiě)、擦除。主要的高級(jí)命令包括三種:內(nèi)部數(shù)據(jù)遷移(copyback、多分組操作(multi-plane、交錯(cuò)操作(interleave。高級(jí)命令的設(shè)計(jì)初衷是為了高效地執(zhí)行讀、寫(xiě)、擦除操作。下面將分別簡(jiǎn)要介紹這幾種操作命令。讀操作[33][34]:讀取閃存中的數(shù)據(jù)。完整的讀操作分成三個(gè)部分:發(fā)送命令,訪問(wèn)介質(zhì),傳輸數(shù)據(jù)。寫(xiě)操作[33][34]:將數(shù)據(jù)存儲(chǔ)到閃存中。完整的寫(xiě)操作分成三個(gè)部分,發(fā)送命令,傳輸數(shù)據(jù),訪問(wèn)介質(zhì)。擦除操作[33][34]:擦除閃存中的某個(gè)物理塊。數(shù)據(jù)內(nèi)部遷移(copyback)[11][33][34]:在一個(gè)分組內(nèi)部,將一個(gè)物理頁(yè)的數(shù)據(jù)移動(dòng)到同一個(gè)分組內(nèi)其他物理頁(yè)。它的操作過(guò)程是:首先從源物理頁(yè)中將數(shù)據(jù)讀出到這個(gè)分組的寄存器,然后從這個(gè)寄存器寫(xiě)回到位于同一個(gè)分組的目標(biāo)物理頁(yè)。這個(gè)高級(jí)命令使得一次數(shù)據(jù)遷移在分組內(nèi)部完成,沒(méi)有占用外部數(shù)據(jù)4總線。多分組操作(multi-plane總線。多分組操作(multi-plane)[11][33][34]:一個(gè)晶圓上的多個(gè)分組同時(shí)進(jìn)行多個(gè)讀、寫(xiě)、擦除操作,它包括三個(gè)命令:多分組讀(multi-planeread、多分組寫(xiě)(multi-planewrite、多分組擦除(multi-planeerase。多分組讀的操作過(guò)程是:同一個(gè)晶圓上的多個(gè)分組同時(shí)將數(shù)據(jù)從介質(zhì)中讀出到該分組的寄存器中,再通過(guò)外部數(shù)據(jù)總線,依次將每個(gè)分組的寄存器中的數(shù)據(jù)傳輸出去。多分組寫(xiě)的操作過(guò)程是:依次將數(shù)據(jù)發(fā)送到同一個(gè)晶圓的多個(gè)分組的寄存器上,然后將這些寄存器中的數(shù)據(jù)同時(shí)寫(xiě)到介質(zhì)中。多分組擦除的操作過(guò)程是:依次發(fā)送擦除命令給同一個(gè)晶圓的多個(gè)分組,然后這些分組同時(shí)執(zhí)行擦除操作。多分組操作只消耗了一次讀介質(zhì)、寫(xiě)介質(zhì)、擦除介質(zhì)的時(shí)間,而完成了多次讀、寫(xiě)、擦除操作。(interleave[11][33][34]:根據(jù)一個(gè)芯片由多個(gè)晶圓組成的結(jié)構(gòu)特點(diǎn),利用流水的方式,依次操作每個(gè)晶圓的讀、寫(xiě)、擦除。在交錯(cuò)操作中,當(dāng)一個(gè)晶圓處于介質(zhì)訪問(wèn)階段時(shí),數(shù)據(jù)總線向同一個(gè)芯片上的另一個(gè)晶圓發(fā)送數(shù)據(jù),當(dāng)數(shù)據(jù)傳輸完成后,該晶圓進(jìn)入介質(zhì)訪問(wèn)階段,然后數(shù)據(jù)總線再向同一個(gè)芯片上的第三個(gè)晶圓傳輸數(shù)據(jù),如此循環(huán)往復(fù),不同晶圓通過(guò)輪流使用外部總線,而隱藏對(duì)介質(zhì)的操作過(guò)程,最終在較短時(shí)間內(nèi)完成多次讀寫(xiě)操作。所有高級(jí)命令可以組合使用,例如多分組操作和交錯(cuò)操作組合在一起形成:交錯(cuò)多分組操作,它是利用交錯(cuò)操作流水式地將數(shù)據(jù)傳輸?shù)蕉鄠€(gè)晶圓,使多個(gè)晶圓同時(shí)執(zhí)行多分組操作。單個(gè)閃存的存儲(chǔ)容量、性能有限,以三星的一款閃存芯片[11]為例,其存儲(chǔ)容量為4GB,讀寫(xiě)操作最大理論帶寬為40MB/s。為了使固態(tài)盤提供足夠的容量和性能,通常將多個(gè)芯片集合在一起,形成如圖1.3所示的固態(tài)盤多通道結(jié)構(gòu)[1][10][14]從圖中可以看到,在固態(tài)盤中,存在三種主要部件[1][16][18]:固態(tài)盤控制器芯片、閃存芯片、內(nèi)存芯片。在少數(shù)低端固態(tài)盤中,為了節(jié)約成本通常利用控制器內(nèi)部的存儲(chǔ)空間而將內(nèi)存芯片省去。固態(tài)盤控制器是整個(gè)固態(tài)盤的核心,所有的軟件算法全部由控制器執(zhí)行。固態(tài)盤控制器中有很多邏輯單元模塊[15][16][17],包括微處理器、主機(jī)接口控制器、內(nèi)存控制器、DMA、多個(gè)相互獨(dú)立的通道控制器等。微控制器是固態(tài)盤的計(jì)算處理單元;主機(jī)接口控制器負(fù)責(zé)從外部接口獲取讀寫(xiě)請(qǐng)求,然后傳遞給固態(tài)盤控制器內(nèi)的其它模塊;內(nèi)存控制器是用來(lái)控制固態(tài)盤內(nèi)的所有內(nèi)存芯片;DMA是在固態(tài)盤內(nèi)部用來(lái)控制內(nèi)存芯5片數(shù)據(jù)與通道控制器FIFO數(shù)據(jù)直接存取操作的控制單元;通道控制器用來(lái)控制一系列片數(shù)據(jù)與通道控制器FIFO數(shù)據(jù)直接存取操作的控制單元;通道控制器用來(lái)控制一系列的閃存芯片。通常在固態(tài)盤中,為了提高性能和存儲(chǔ)容量,存在多個(gè)通道,每個(gè)通道均有一個(gè)獨(dú)立的通道控制器。在每個(gè)通道控制器中有一個(gè)數(shù)據(jù)緩存區(qū)(FIFO這個(gè)部分在DMA的控制下,與內(nèi)存之間進(jìn)行快速的數(shù)據(jù)交換固態(tài)盤中多通道結(jié)構(gòu)圖在固態(tài)盤中,通道的結(jié)構(gòu)是影響性能的關(guān)鍵因素。通常,不同通道的結(jié)構(gòu)是通過(guò)通道上的每個(gè)芯片的數(shù)據(jù)線、信號(hào)線的連接方式進(jìn)行區(qū)別的,圖1.4中列出了幾種不同的通道結(jié)構(gòu)[15][16][17]。從圖1.4中可以看到,根據(jù)數(shù)據(jù)線、信號(hào)線的連接方式不同,通道的結(jié)構(gòu)可以分成三種不同類型:全獨(dú)立型、獨(dú)立數(shù)據(jù)總線型、獨(dú)立片選型。全獨(dú)立型是給每個(gè)芯片提供一組獨(dú)立的數(shù)據(jù)總線和一組信號(hào)線(片選CE和工作狀態(tài)R/B,需要注意的是,在有些閃存產(chǎn)品中,多個(gè)芯片被疊加在一起形成一個(gè)封裝,這種情況同樣需要給每個(gè)芯片一組獨(dú)立的數(shù)據(jù)總線和一組獨(dú)立的信號(hào)總線。這種類型的連接方式使得通道控制器可以獨(dú)立控制通道上的任何芯片。例如,通道控制器向通道中的某一個(gè)芯片發(fā)送寫(xiě)請(qǐng)求,然后利用這個(gè)芯片獨(dú)立的數(shù)據(jù)總線發(fā)送數(shù)據(jù),在這個(gè)過(guò)程中通道控制器可以向其他芯片發(fā)送寫(xiě)請(qǐng)求、讀請(qǐng)求、或者擦除請(qǐng)求。因此全獨(dú)立型的通道結(jié)構(gòu)可以使得通道上所有芯片處于不同的工作狀態(tài)。在全獨(dú)立型的通道結(jié)構(gòu)的通道控制器上,需要設(shè)置多個(gè)數(shù)據(jù)緩存(FIFO,通常有多少閃存芯片就需要有多少FIFO。獨(dú)立數(shù)據(jù)總線型通道結(jié)構(gòu)中,每個(gè)芯片擁有一組獨(dú)立的數(shù)據(jù)總線,但是整個(gè)通道只有一條片選信號(hào)和一條工作狀態(tài)信號(hào)。這意味著獨(dú)立數(shù)據(jù)總線通道結(jié)構(gòu)中的所有芯片的讀、寫(xiě)、擦除操作是同時(shí)進(jìn)行的,換句話說(shuō),所有芯片的相同位置的物理頁(yè)組成了一個(gè)超級(jí)物理頁(yè)。如1.5所示,假設(shè)單個(gè)物理頁(yè)大小6為2KB,那么在一個(gè)由4個(gè)芯片組成的獨(dú)立數(shù)據(jù)總線型通道中,超級(jí)頁(yè)大小為8KB。在對(duì)這個(gè)通道中的芯片進(jìn)行讀寫(xiě)操作時(shí),組成的超級(jí)頁(yè)的四個(gè)物理頁(yè)將被同時(shí)讀寫(xiě),同樣擦除操為2KB,那么在一個(gè)由4個(gè)芯片組成的獨(dú)立數(shù)據(jù)總線型通道中,超級(jí)頁(yè)大小為8KB。在對(duì)這個(gè)通道中的芯片進(jìn)行讀寫(xiě)操作時(shí),組成的超級(jí)頁(yè)的四個(gè)物理頁(yè)將被同時(shí)讀寫(xiě),同樣擦除操作也是4個(gè)芯片相同位置的物理塊同時(shí)擦除。獨(dú)立數(shù)據(jù)總線型通道結(jié)構(gòu)適用于每次請(qǐng)求的數(shù)據(jù)量較大的負(fù)載中。獨(dú)立數(shù)據(jù)總線型通道結(jié)構(gòu)存在的主要問(wèn)題在于,當(dāng)通道上某個(gè)芯片的一個(gè)物理塊失效后,將導(dǎo)致其他芯片上相同位置的物理塊無(wú)法進(jìn)行正常的讀寫(xiě)操作,這將加速降低固態(tài)盤的壽命。因?yàn)楠?dú)立數(shù)據(jù)總線通道結(jié)構(gòu)的所有芯片中相同位置的物理頁(yè)組成了超級(jí)頁(yè),所以這種結(jié)構(gòu)的通道控制器上,有一個(gè)容量與超級(jí)頁(yè)相同的數(shù)據(jù)緩存(FIFO0123CECER/BR/BI/O0~I/O0~I/O7I/O0~I/O7I/O0~A.通道結(jié)構(gòu)10123I/O0~I/O7I/O8~I/O15I/O23~B.通道結(jié)構(gòu)20123CECER/BR/BI/O0~C.通道結(jié)構(gòu)3三種不同的通道結(jié)構(gòu)獨(dú)立片選型通道結(jié)構(gòu)中,每個(gè)芯片擁有一個(gè)獨(dú)立的片選信號(hào)線和一個(gè)獨(dú)立的工作狀態(tài)信號(hào)線,整個(gè)通道共用一組數(shù)據(jù)總線(8位或者16位。在這種結(jié)7通道控制器通過(guò)獨(dú)立的信號(hào)總通道控制器通過(guò)獨(dú)立的信號(hào)總線向芯片a發(fā)送讀命令,芯片a在執(zhí)行讀命令時(shí)需要一段時(shí)間的準(zhǔn)備時(shí)間,即將數(shù)據(jù)從目標(biāo)物理頁(yè)讀出到分組的寄存器,這個(gè)過(guò)程將消耗幾十微秒,在這個(gè)過(guò)程中,通道控制器將向芯片b發(fā)送讀命令,同樣這個(gè)命令的執(zhí)行需要一定的準(zhǔn)備時(shí)間,在這個(gè)過(guò)程中,之前芯片a中讀命令的數(shù)據(jù)可能已經(jīng)讀出到寄存器,于是將從數(shù)據(jù)總線中傳輸出去,當(dāng)這次傳輸完成后,再接著傳輸芯片b的數(shù)據(jù)。在獨(dú)立片選信號(hào)型的通道結(jié)構(gòu)通道控制器上,也需要設(shè)置一個(gè)數(shù)據(jù)緩存。圖 超級(jí)頁(yè)組成示意多個(gè)獨(dú)立通道,每個(gè)通道上有多個(gè)獨(dú)立閃存芯片,每個(gè)閃存芯片存在<芯-晶圓-分組>的多層次結(jié)構(gòu),使得固態(tài)盤存在多個(gè)層次的并行,在這方面方面,有很多富有成效的研究成果。F.Chen[10]等提出了固態(tài)盤內(nèi)部并行的概念,與Y.Hu[16]等提出的四層并行不同的是,F(xiàn).Chen的第二層并行稱之為package-levelJ.Kang[15]等提出了在高性能固態(tài)盤中利用多個(gè)通道的思想,他們提出將多個(gè)請(qǐng)求分別由多個(gè)通道獨(dú)立完成。S.Park[17]等為多通道的固態(tài)盤設(shè)計(jì)了一個(gè)利用多通道的映射算法。J.Seol[18]等為多通道的固態(tài)盤設(shè)計(jì)了一個(gè)數(shù)據(jù)緩存區(qū)管理算法。這幾種研究成果主要集中在對(duì)通道級(jí)并行、芯片級(jí)并行的研究。對(duì)固態(tài)盤中晶圓級(jí)并行、分組級(jí)并行的研究并沒(méi)有充分的探索。NAgrawal[1]等提出在固態(tài)盤中存在多種類型通道結(jié)構(gòu),不同的通道結(jié)構(gòu)表現(xiàn)出不同的系統(tǒng)性能。他提出了通道中的交錯(cuò)操作,極大地提高了單個(gè)通道的讀寫(xiě)性能。C.Dirik[14]等考察了固態(tài)盤的硬件結(jié)構(gòu)、內(nèi)部帶寬、并發(fā)性對(duì)固態(tài)盤性能的影響。他通過(guò)調(diào)整通道總線位數(shù)、通道結(jié)構(gòu)、交錯(cuò)操作的方法、并發(fā)操作的數(shù)量,考查了固態(tài)盤性能的變化。8固態(tài)盤軟件算法的研究現(xiàn)狀圖1.6是固態(tài)盤中軟件結(jié)構(gòu)示意圖。在固態(tài)盤中,軟件結(jié)構(gòu)固態(tài)盤軟件算法的研究現(xiàn)狀圖1.6是固態(tài)盤中軟件結(jié)構(gòu)示意圖。在固態(tài)盤中,軟件結(jié)構(gòu)包括兩個(gè)主要的模塊[19][27][88]:數(shù)據(jù)緩存管理模塊和閃存轉(zhuǎn)換層模塊(FTL,除此之外,還有其他一些輔助模塊,統(tǒng)稱為其他模塊,如圖1.6中陰影部分所示,軟件算法方面的研究就集中在這個(gè)部分。外部請(qǐng)求首先經(jīng)過(guò)數(shù)據(jù)緩存管理模塊的處理,根據(jù)這個(gè)模塊的處理結(jié)果,決定是否需要經(jīng)過(guò)閃存轉(zhuǎn)換層模塊的處理。其他模塊主要是對(duì)數(shù)據(jù)進(jìn)行一些一致性,安全性方面的檢查、設(shè)置,完成包括校驗(yàn)碼生成、檢驗(yàn)、斷電保護(hù)等方面的工作[27][28]圖 固態(tài)盤的軟件結(jié)構(gòu)示意(1)閃存轉(zhuǎn)換層模塊從圖1.6中可以看到,閃存轉(zhuǎn)換層包括三個(gè)方面的模塊:地址映射[40](garbagecollection損耗均衡( mapping、垃圾回收(wear-leveling。后兩個(gè)模塊的設(shè)計(jì)決定于第一個(gè)模塊的設(shè)計(jì),采用不同的地址映射算法就需要設(shè)計(jì)不同的垃圾回收和損耗均衡算法。下面分別介紹這三個(gè)算法的研究進(jìn)展。9地址映射地址映射是整個(gè)閃存轉(zhuǎn)換層的核心部分,因?yàn)樗鼪Q定了垃圾回收和損耗均衡算法。通常地址映射分成三種基本類型[5][6][39]:頁(yè)級(jí)映射、塊級(jí)映射、混合映射。頁(yè)級(jí)映射[5][39]地址映射地址映射是整個(gè)閃存轉(zhuǎn)換層的核心部分,因?yàn)樗鼪Q定了垃圾回收和損耗均衡算法。通常地址映射分成三種基本類型[5][6][39]:頁(yè)級(jí)映射、塊級(jí)映射、混合映射。頁(yè)級(jí)映射[5][39]:以物理頁(yè)為基本映射單元。在這種映射方法中,邏輯頁(yè)與物理頁(yè)的對(duì)應(yīng)關(guān)系是全相聯(lián)的,即,邏輯頁(yè)的數(shù)據(jù)可以存放在任何位置的物理4字節(jié)的存儲(chǔ)容量,頁(yè)級(jí)映射的映射表通常較大。映射表作為需要經(jīng)常讀寫(xiě)的元數(shù)據(jù),在固態(tài)盤運(yùn)行塊級(jí)映射[6][39]:以物理塊為基本映射單元,在這種映射方法中,邏輯頁(yè)與物理頁(yè)的對(duì)應(yīng)關(guān)系是組相聯(lián)的,即,邏輯頁(yè)的數(shù)據(jù)只能存放在某個(gè)物理塊中特定偏移的物理頁(yè)中。每個(gè)邏輯塊有一個(gè)映射關(guān)系,因?yàn)橐粋€(gè)邏輯塊包括幾十上百個(gè)邏輯頁(yè),因此相對(duì)頁(yè)級(jí)映射,塊級(jí)映射的映射表較小,其大小通常是頁(yè)級(jí)映射的映射表的幾十上百分之一。但是,塊級(jí)映射具有較差的寫(xiě)操作性能。混合映射[41][52]:將所有的物理塊分成兩個(gè)部分:日志塊和數(shù)據(jù)塊。日志塊采用頁(yè)級(jí)映射,數(shù)據(jù)塊采用塊級(jí)映射?;旌嫌成涔虘B(tài)盤的性能介于頁(yè)級(jí)映射和塊級(jí)映射之間。混合映射中,日志塊通常數(shù)量較少,當(dāng)日志塊數(shù)量降低之后,需要將日志塊和數(shù)據(jù)塊進(jìn)行合并[41],這個(gè)合并操作將導(dǎo)致固態(tài)盤性能明顯下降。綜合來(lái)說(shuō),頁(yè)級(jí)映射性能好,但是其映射表較大;塊級(jí)映射映射表較小,但是性能較差?;旌嫌成涞奶岢鍪菫榱藢⑦@兩種映射算法取長(zhǎng)補(bǔ)短。最基本的混合映射被稱之為BAST[41]。在這種混合映射算法中,每個(gè)日志塊屬于一個(gè)特定的數(shù)據(jù)塊,也就是說(shuō),在BAST中,只有屬于這個(gè)特定數(shù)據(jù)塊中的數(shù)據(jù)才能被記錄到這個(gè)日志塊中。日志塊和它所屬的數(shù)據(jù)塊是一一對(duì)應(yīng)的關(guān)系。當(dāng)一個(gè)數(shù)據(jù)塊的日志塊中有效空間消耗完,但其他日志塊中還有有效空間時(shí),這個(gè)數(shù)據(jù)塊無(wú)法使用其他日志塊,所以這種混合映射算法不能充分利用日志塊中的存儲(chǔ)空間。S.W.Lee等提出一種新的混合映射算法FAST(FullyAssociativeSectorTranslation)[41]。在這種混合映射算法中,將所有日志塊與物理塊之間的關(guān)系由一一對(duì)應(yīng)變?yōu)槿嗦?lián),即,任何一個(gè)物理塊中的數(shù)據(jù)可以寫(xiě)到任何一個(gè)日志塊中。在這樣一種混合映射算法中,提高了日志塊的使用率,但是在回收日志塊時(shí),因?yàn)橐粋€(gè)日志塊中可能保存有多個(gè)數(shù)據(jù)塊的數(shù)據(jù),所以將會(huì)導(dǎo)致多次合并操作,混合映射中大量的合并操作將影響系統(tǒng)性能,所以如何減少合并操作FTL[52]FASTJUKang提出的另一種混合映射算法。在這種算法中,給M個(gè)數(shù)據(jù)塊分配N個(gè)日志塊,這另一種混合映射算法。在這種算法中,給M個(gè)數(shù)據(jù)塊分配N個(gè)日志塊,這M+N個(gè)物理塊作為一個(gè)超級(jí)塊。在一個(gè)超級(jí)塊內(nèi),N個(gè)日志塊可以被M個(gè)數(shù)據(jù)塊使用;不同超級(jí)塊之間的日志塊和數(shù)據(jù)塊不能共用。在這個(gè)算法中,將合并操作限制在一定范圍內(nèi),減少了合并操作對(duì)性能的影響。頁(yè)級(jí)映射是所有映射算法里面讀寫(xiě)性能最優(yōu)的算法,大量研究試圖解決頁(yè)級(jí)映射映射表較大的問(wèn)題。A.Gupta38等提出了一種新的基于頁(yè)級(jí)映射的閃存轉(zhuǎn)換層:。TL是基于需求的選擇性映射關(guān)系緩存映射算法的簡(jiǎn)稱。在L中,將所有映射關(guān)系分成多個(gè)映射關(guān)系組,每個(gè)映射關(guān)系組中保存連續(xù)邏輯頁(yè)的映射關(guān)系,每個(gè)映射關(guān)系組保存在閃存的一個(gè)物理頁(yè)中,為了查找這些映射關(guān)系組,需要設(shè)置一個(gè)映射關(guān)系組的映射關(guān)系。在L中將頁(yè)級(jí)映射表整體放置在閃存中,根據(jù)負(fù)載經(jīng)常訪問(wèn)數(shù)據(jù)的情況,將經(jīng)常讀寫(xiě)的映射關(guān)系放置在內(nèi)存中。當(dāng)讀請(qǐng)求到達(dá)時(shí),首先在內(nèi)存的映射關(guān)系區(qū)域?qū)ふ夷繕?biāo)映射關(guān)系,當(dāng)目標(biāo)映射關(guān)系在內(nèi)存中,則根據(jù)這個(gè)映射關(guān)系將目標(biāo)數(shù)據(jù)讀出;當(dāng)目標(biāo)映射關(guān)系不在內(nèi)存的映射關(guān)系區(qū)域時(shí),需要根據(jù)映射關(guān)系組的映射關(guān)系,找到目標(biāo)映射關(guān)系的映射關(guān)系組在閃存中的位置,然后將目標(biāo)映射關(guān)系從閃存中讀出,再根據(jù)這個(gè)映射關(guān)系讀出目標(biāo)數(shù)據(jù)。當(dāng)寫(xiě)請(qǐng)求到達(dá),寫(xiě)入新的數(shù)據(jù)到閃存中時(shí),將產(chǎn)生新的映射關(guān)系,如果這個(gè)映射關(guān)系在內(nèi)存的映射關(guān)系區(qū)域,則將新的映射關(guān)系替換舊的映射關(guān)系;如果這個(gè)映射關(guān)系不在內(nèi)存的映射關(guān)系區(qū)域,則需要首先將映射關(guān)系區(qū)域中部分舊的映射關(guān)系寫(xiě)回閃存,為新的映射關(guān)系騰出內(nèi)存空間,然后將新的映射記錄在內(nèi)存的映射關(guān)系區(qū)域。L通過(guò)只在內(nèi)存中保存經(jīng)常用的映射關(guān)系減少內(nèi)存中映射關(guān)系區(qū)域的大小,經(jīng)常使用的映射關(guān)系因?yàn)楸4嬖趦?nèi)存中,所以這部分?jǐn)?shù)據(jù)的讀寫(xiě)性能與純粹的頁(yè)級(jí)映射一樣;但是L受負(fù)載局部性影響很嚴(yán)重,當(dāng)映射關(guān)系不存在于內(nèi)存中時(shí),將導(dǎo)致一系列的額外讀寫(xiě)操作,因此當(dāng)局部性較差的負(fù)載使用L時(shí),其性能下降比較明顯。垃圾回收在基于閃存的固態(tài)盤中,因?yàn)殚W存需要先擦后寫(xiě),所以對(duì)固態(tài)盤的更新操作通常先寫(xiě)到其他空閑物理頁(yè),將之前的物理頁(yè)標(biāo)記為失效數(shù)據(jù)頁(yè),然后再修改映射關(guān)系。大量更新操作之后,固態(tài)盤中將出現(xiàn)大量失效數(shù)據(jù)頁(yè),大量失效數(shù)據(jù)頁(yè)將導(dǎo)致固態(tài)盤中可用空間的減少。這些失效數(shù)據(jù)頁(yè)分撒在固態(tài)盤的每個(gè)通道和芯片,失效數(shù)據(jù)頁(yè)在沒(méi)有被擦除之前將無(wú)法使用。垃圾回收就是將這些失效數(shù)據(jù)頁(yè)集中起來(lái),統(tǒng)一進(jìn)行擦除操作,恢復(fù)固態(tài)盤中的可用空間。通常在固態(tài)盤中設(shè)置一個(gè)閾值(例如20%),當(dāng)固態(tài)盤中空閑頁(yè)的數(shù)量降低到這個(gè)閾值以下時(shí),觸發(fā)垃圾回收操作[5][6]失效數(shù)據(jù)頁(yè)集中起來(lái),統(tǒng)一進(jìn)行擦除操作,恢復(fù)固態(tài)盤中的可用空間。通常在固態(tài)盤中設(shè)置一個(gè)閾值(例如20%),當(dāng)固態(tài)盤中空閑頁(yè)的數(shù)量降低到這個(gè)閾值以下時(shí),觸發(fā)垃圾回收操作[5][6]。垃圾回收涉及到大量的數(shù)據(jù)遷移,這個(gè)過(guò)程將占用固態(tài)盤內(nèi)的大量通道、芯片資源,這勢(shì)必影響固態(tài)盤對(duì)外部請(qǐng)求的服務(wù)。因?yàn)槔厥詹僮魇枪虘B(tài)盤內(nèi)部固有操作,所以被稱之為固態(tài)盤的后臺(tái)操作。損耗均衡閃存具有一定的擦除次數(shù),當(dāng)閃存中的某一個(gè)物理塊的擦除次數(shù)達(dá)到了極限,這個(gè)物理塊將無(wú)法進(jìn)行正常的讀寫(xiě)操作,為了避免因擦除不平衡導(dǎo)致的部分物理塊過(guò)早失效的情況,需要設(shè)計(jì)損耗均衡算法使得固態(tài)盤中每一個(gè)物理塊的被擦除次數(shù)基本相同[5][6]。通常損耗均衡算法分成兩種類型:動(dòng)態(tài)損耗均衡和靜態(tài)損耗均衡。動(dòng)態(tài)損耗均衡算法是在固態(tài)盤運(yùn)行過(guò)程中,實(shí)時(shí)記錄每一個(gè)物理塊的擦除次數(shù),當(dāng)寫(xiě)請(qǐng)求到達(dá),需要為其分配空閑塊時(shí),找出一個(gè)擦除次數(shù)最少的物理塊作為這次寫(xiě)操作的目標(biāo)塊。靜態(tài)損耗均衡算法是針對(duì)那些保存有數(shù)據(jù)的物理塊進(jìn)行的數(shù)是有些物理塊中的數(shù)據(jù)被經(jīng)常性地更新。通常,不經(jīng)常被更新的數(shù)據(jù)稱之為冷數(shù)據(jù),經(jīng)常被更新的數(shù)據(jù)稱之為熱數(shù)據(jù)。存放熱數(shù)據(jù)的物理塊的擦除次數(shù)通常遠(yuǎn)多于存放冷數(shù)據(jù)的物理塊的擦除次數(shù)。靜態(tài)損耗均衡算法就是將冷熱數(shù)據(jù)交換,將冷數(shù)據(jù)存放在擦除次數(shù)較多的物理塊中,這樣保證這些物理塊在后續(xù)的操作中不再會(huì)被經(jīng)常性地擦除;將熱數(shù)據(jù)存放在擦除次數(shù)較少的物理塊中,這樣使得這些物理塊在后續(xù)的操作中被經(jīng)常擦除,通過(guò)這個(gè)方式,平衡物理塊之間的擦除次數(shù)。損耗均衡過(guò)程也導(dǎo)致了大量的讀寫(xiě)擦除操作。這些讀寫(xiě)擦除操作也會(huì)占用大量的固態(tài)盤內(nèi)部資源,這勢(shì)必影響固態(tài)盤對(duì)外部請(qǐng)求的服務(wù)。同樣,損耗均衡作為固態(tài)盤的內(nèi)部操作也被稱之為后臺(tái)操作。(2)數(shù)據(jù)緩存管理模塊與傳統(tǒng)硬盤一樣,固態(tài)盤中存在一定量的內(nèi)存空間,不同的是,硬盤中的內(nèi)存空間全部作為數(shù)據(jù)緩存區(qū)使用,而固態(tài)盤中的內(nèi)存空間有兩個(gè)主要用途:數(shù)據(jù)緩存區(qū)和映射表區(qū)域。映射表用作記錄映射關(guān)系;數(shù)據(jù)緩存區(qū)存放部分經(jīng)常讀寫(xiě)的數(shù)據(jù)。在固態(tài)盤中,數(shù)據(jù)緩存區(qū)有兩種主要類型:純粹寫(xiě)緩存,讀寫(xiě)混合緩存。兩者的區(qū)別在于,純粹寫(xiě)緩存只將寫(xiě)請(qǐng)求的數(shù)據(jù)記錄在數(shù)據(jù)緩存區(qū)中,而讀寫(xiě)混合緩存將寫(xiě)請(qǐng)求和讀請(qǐng)求的數(shù)據(jù)均記錄在數(shù)據(jù)緩存區(qū)中。數(shù)據(jù)緩存區(qū)中的數(shù)據(jù)按照一定的置換算法決定是否寫(xiě)回閃存,通常用到的置換算法包括:先到先服務(wù)算法(FI數(shù)據(jù)緩存區(qū)和映射表區(qū)域。映射表用作記錄映射關(guān)系;數(shù)據(jù)緩存區(qū)存放部分經(jīng)常讀寫(xiě)的數(shù)據(jù)。在固態(tài)盤中,數(shù)據(jù)緩存區(qū)有兩種主要類型:純粹寫(xiě)緩存,讀寫(xiě)混合緩存。兩者的區(qū)別在于,純粹寫(xiě)緩存只將寫(xiě)請(qǐng)求的數(shù)據(jù)記錄在數(shù)據(jù)緩存區(qū)中,而讀寫(xiě)混合緩存將寫(xiě)請(qǐng)求和讀請(qǐng)求的數(shù)據(jù)均記錄在數(shù)據(jù)緩存區(qū)中。數(shù)據(jù)緩存區(qū)中的數(shù)據(jù)按照一定的置換算法決定是否寫(xiě)回閃存,通常用到的置換算法包括:先到先服務(wù)算法(FIFO,最近最少用到算法(LRU,最不經(jīng)常使用算法(LFU)等。數(shù)據(jù)緩存區(qū)的使用是提高固態(tài)盤性能、壽命的關(guān)鍵點(diǎn),因?yàn)楹线m的數(shù)據(jù)緩存區(qū)算法可以使得大量外部請(qǐng)求由固態(tài)盤中內(nèi)存服務(wù),無(wú)需訪問(wèn)閃存介質(zhì),而內(nèi)存的訪問(wèn)速度比閃存的訪問(wèn)速度快一個(gè)數(shù)量級(jí)以上,所以當(dāng)大量?jī)?nèi)存操作代替閃存操作時(shí),固態(tài)盤的讀寫(xiě)性能將明顯提高02860]。同時(shí),當(dāng)大量寫(xiě)請(qǐng)求由內(nèi)存服務(wù)時(shí),將減少對(duì)閃存的寫(xiě)操作,這意味著固態(tài)盤使用壽命的提高728286]。所以,因?yàn)閿?shù)據(jù)緩存對(duì)性能、壽命有直接的影響,在這個(gè)方面,存在大量的重要研究成果。BPLRU[22]是H.Kim等提出的一種旨在提高隨機(jī)寫(xiě)操作的數(shù)據(jù)緩存管理策略。這種緩存管理策略使用在基于混合映射的固態(tài)盤上,并且認(rèn)為固態(tài)盤中的緩存為純粹的寫(xiě)緩存。在BPLRU中,將數(shù)據(jù)緩存區(qū)中屬于同一個(gè)邏輯塊的數(shù)據(jù)視為一個(gè)整體,以此為單位在數(shù)據(jù)緩存區(qū)中按照LRU算法進(jìn)行排序。當(dāng)這個(gè)單元中的任何數(shù)據(jù)被命中時(shí),整個(gè)單元移動(dòng)到數(shù)據(jù)緩存區(qū)隊(duì)列的隊(duì)首。當(dāng)數(shù)據(jù)緩存區(qū)被填滿,又有新數(shù)據(jù)需要寫(xiě)到數(shù)據(jù)緩存區(qū)時(shí),需要將緩存區(qū)隊(duì)尾單元的數(shù)據(jù)寫(xiě)回閃存。在寫(xiě)回閃存之前,首先需要將這個(gè)單元所屬的邏輯塊的其他數(shù)據(jù)讀出到內(nèi)存,在內(nèi)存中組成一個(gè)完整的數(shù)據(jù)塊,寫(xiě)回時(shí)將這個(gè)完整的數(shù)據(jù)塊寫(xiě)回。這種設(shè)計(jì)保證寫(xiě)回的是保存有完整最新數(shù)據(jù)的物理塊,避免寫(xiě)回的數(shù)據(jù)需要與閃存中同物理塊的其它數(shù)據(jù)進(jìn)行合并操作。BPLRU提高了基于混合映射固態(tài)盤的緩存性能,但是受限于混合映射方式,其性能存在一定缺陷。PUDLRU[23]是另一個(gè)基于混合映射的數(shù)據(jù)緩存管理策略,J.Hu等基于BPLRU改進(jìn)設(shè)計(jì)了這種新的純粹寫(xiě)緩存算法。在PUDLRU中,將數(shù)據(jù)緩存區(qū)中的隊(duì)列進(jìn)行LRU排序,在寫(xiě)回?cái)?shù)據(jù)時(shí),不限定寫(xiě)回隊(duì)尾的單元,而是綜合考慮當(dāng)前負(fù)載的特點(diǎn),考慮物理塊的擦除次數(shù),考慮讀出數(shù)據(jù)的開(kāi)銷等,在隊(duì)尾的數(shù)據(jù)中尋找最合適的寫(xiě)回單元,保證寫(xiě)回的操作的開(kāi)銷最小。因?yàn)榭紤]了多個(gè)BPLRU未曾考慮的性能影響因素,PUDLRU的性能優(yōu)于BPLRU。CFLRU[24]S.Park等提出的基于頁(yè)級(jí)映射的緩存管理策略,這是一種讀寫(xiě)混合映射策略。在這個(gè)策略中,將數(shù)據(jù)緩存區(qū)分成兩個(gè)區(qū)域:工作區(qū)域和優(yōu)先回寫(xiě)區(qū)域。當(dāng)外部請(qǐng)求到達(dá),需要數(shù)據(jù)緩存區(qū)空間時(shí),首先將優(yōu)先回寫(xiě)區(qū)域的數(shù)據(jù)寫(xiě)回或者直接刪除。M.Huang[25]提出一種新的固態(tài)盤緩存算法,在這種算法中,數(shù)據(jù)緩存區(qū)中的數(shù)據(jù)被周期性地寫(xiě)回閃存,具體的周期是提前設(shè)定的,無(wú)法實(shí)時(shí)地修正。在這種算法中,固態(tài)盤被認(rèn)為和磁盤一樣,有空閑、工作、暫停三個(gè)狀態(tài)。這個(gè)先回寫(xiě)區(qū)域。當(dāng)外部請(qǐng)求到達(dá),需要數(shù)據(jù)緩存區(qū)空間時(shí),首先將優(yōu)先回寫(xiě)區(qū)域的數(shù)據(jù)寫(xiě)回或者直接刪除。M.Huang[25]提出一種新的固態(tài)盤緩存算法,在這種算法中,數(shù)據(jù)緩存區(qū)中的數(shù)據(jù)被周期性地寫(xiě)回閃存,具體的周期是提前設(shè)定的,無(wú)法實(shí)時(shí)地修正。在這種算法中,固態(tài)盤被認(rèn)為和磁盤一樣,有空閑、工作、暫停三個(gè)狀態(tài)。這個(gè)算法存在的問(wèn)題是,周期寫(xiě)回將導(dǎo)致寫(xiě)閃存次數(shù)快速增加,進(jìn)而導(dǎo)致固態(tài)盤的壽命明顯減低;并且算法的設(shè)計(jì)沒(méi)有利用固態(tài)盤的并行性。固態(tài)盤模擬器的研究現(xiàn)狀在目前的大多數(shù)固態(tài)盤研究中,為了對(duì)目標(biāo)策略進(jìn)行測(cè)試評(píng)價(jià),通常有兩個(gè)方法:基于真實(shí)系統(tǒng)進(jìn)行部署、實(shí)現(xiàn),完成對(duì)目標(biāo)策略的測(cè)試評(píng)價(jià);基于模擬器,用模擬器模擬固態(tài)盤的各種行為,將目標(biāo)策略在模擬器上實(shí)現(xiàn),最終實(shí)現(xiàn)對(duì)其的測(cè)試評(píng)價(jià)。因?yàn)楣虘B(tài)盤廠商通常將固態(tài)盤的固件作為重要產(chǎn)品機(jī)密,市場(chǎng)上可以買到的固態(tài)盤通常只能作為一個(gè)黑盒子使用,無(wú)法探知其內(nèi)部的硬件結(jié)構(gòu),軟件算法,更無(wú)法在其上實(shí)現(xiàn)研究者的目標(biāo)策略。有條件的研究機(jī)構(gòu)和廠商可以花費(fèi)一定的人力物力完成原型系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn),但是大多數(shù)研究機(jī)構(gòu)、廠商在一個(gè)設(shè)計(jì)沒(méi)有明確優(yōu)勢(shì)的前提下,為了節(jié)約開(kāi)發(fā)、研究成本,通常首先使用模擬器,在模擬器上實(shí)現(xiàn)目標(biāo)策略。只有在模擬器上證明該策略有明顯優(yōu)勢(shì)之后才設(shè)計(jì)實(shí)現(xiàn)原型系統(tǒng)。事實(shí)上,主要的固態(tài)盤廠商均有各自的固態(tài)盤模擬器,但是這些模擬器作為公司機(jī)密,無(wú)法為外界所利用。為了方便研究界對(duì)固態(tài)盤進(jìn)行全面的研究,目前,有三款開(kāi)源固態(tài)盤模擬器:micro-add[47]、Micro-add是微軟研究院于2008年公布的一款基于disksim[49][97]的事件驅(qū)動(dòng)的固態(tài)盤模擬器,這個(gè)模擬器作為一個(gè)模塊整合在disksim中,它利用了disksim的結(jié)構(gòu)和函數(shù),實(shí)現(xiàn)了有關(guān)固態(tài)盤的核心部分,包括:基本的讀、寫(xiě)、擦除操作,主流的映射算法—頁(yè)級(jí)映射、塊級(jí)映射。Micro-add是最早出現(xiàn)的模擬器,它為后續(xù)的模擬器提供了一個(gè)基本的參考。Flashim是賓夕法尼亞州立大學(xué)于2009年開(kāi)發(fā)的一款事件驅(qū)動(dòng)固態(tài)盤模擬器,這個(gè)模擬器提供了一個(gè)固態(tài)盤模擬的基本框架和一系列的空函數(shù)。它實(shí)現(xiàn)了基本的讀、寫(xiě)、擦除操作,以及頁(yè)級(jí)映射等基本軟件層。Flashsim是基于c++開(kāi)發(fā)的,提供了良好的層次結(jié)構(gòu),為后續(xù)的二次開(kāi)發(fā)提供了方便。以上兩種模擬器沒(méi)有考慮高級(jí)命令的模擬功能,也沒(méi)有提供固態(tài)盤數(shù)據(jù)緩存區(qū)的模擬功能,而高級(jí)命令和數(shù)據(jù)緩存區(qū)是固態(tài)盤中提高性能的重要手段,并且最重要的一點(diǎn)是,這兩種模擬器的模擬結(jié)果都沒(méi)有經(jīng)過(guò)驗(yàn)證,無(wú)法保證測(cè)試的準(zhǔn)確性,因此在高性能固態(tài)盤的研究中使用這兩種模擬器具有一定的局限性。SSDsim是華中科技大學(xué)信息存儲(chǔ)及應(yīng)用實(shí)驗(yàn)室于2009年開(kāi)發(fā)的一款固態(tài)盤模擬器。SSDsim是一款事件驅(qū)動(dòng)、模塊化、可配置、高準(zhǔn)確性的固態(tài)盤模擬器。它由三個(gè)層次組成:數(shù)據(jù)緩存層、閃存轉(zhuǎn)換層、硬件行為層。最上層是數(shù)以上兩種模擬器沒(méi)有考慮高級(jí)命令的模擬功能,也沒(méi)有提供固態(tài)盤數(shù)據(jù)緩存區(qū)的模擬功能,而高級(jí)命令和數(shù)據(jù)緩存區(qū)是固態(tài)盤中提高性能的重要手段,并且最重要的一點(diǎn)是,這兩種模擬器的模擬結(jié)果都沒(méi)有經(jīng)過(guò)驗(yàn)證,無(wú)法保證測(cè)試的準(zhǔn)確性,因此在高性能固態(tài)盤的研究中使用這兩種模擬器具有一定的局限性。SSDsim是華中科技大學(xué)信息存儲(chǔ)及應(yīng)用實(shí)驗(yàn)室于2009年開(kāi)發(fā)的一款固態(tài)盤模擬器。SSDsim是一款事件驅(qū)動(dòng)、模塊化、可配置、高準(zhǔn)確性的固態(tài)盤模擬器。它由三個(gè)層次組成:數(shù)據(jù)緩存層、閃存轉(zhuǎn)換層、硬件行為層。最上層是數(shù)擬各種映射算法的處理過(guò)程,包括塊級(jí)映射,F(xiàn)AST,頁(yè)級(jí)映射,DFTL等常見(jiàn)映射算法,這一個(gè)層次需要根據(jù)請(qǐng)求的類型和大小,選擇相應(yīng)的閃存命令,將該命令發(fā)送給最下層的硬件行為層。硬件行為層在接受到上層的命令后,根據(jù)不同的命令,模擬執(zhí)行過(guò)程,將執(zhí)行時(shí)間和能耗記錄下來(lái)。最終,模擬執(zhí)行完畢后,輸出所有相關(guān)結(jié)果,包括負(fù)載中請(qǐng)求的執(zhí)行時(shí)間和所耗費(fèi)的能耗,緩存區(qū)域命中率,閃存擦除次數(shù)等。 本文的研究?jī)?nèi)容和主要貢獻(xiàn)本文的研究對(duì)象是固態(tài)盤體系結(jié)構(gòu)中多級(jí)并行性和軟件算法,從四個(gè)方面探討了提高固態(tài)盤性能、改善壽命、能耗的方法、技術(shù)和研究手段:從體系結(jié)構(gòu)的角度研究固態(tài)盤內(nèi)多級(jí)并行性對(duì)固態(tài)盤整體性能的影響方式、程度,即第二章研究討論的各級(jí)并行性的分析、并行性與高級(jí)命令的關(guān)系、并行性與分配方式的關(guān)系,以及各層次并行性利用之間的優(yōu)先級(jí)關(guān)系。利用頁(yè)級(jí)映射算法所提供的高性能特點(diǎn),設(shè)計(jì)基于頁(yè)級(jí)映射算法的新的閃存轉(zhuǎn)換層,在提供類似于頁(yè)級(jí)映射算法的高性能同時(shí),大幅降低映射表占據(jù)內(nèi)存空間的比例,即第三章提出的三層頁(yè)級(jí)映射算法和隱藏翻譯過(guò)程映射算法。利用固態(tài)盤內(nèi)部大量存在的空閑通道、空閑芯片,以及負(fù)載中普遍存在的第四章提出的自適應(yīng)的動(dòng)態(tài)緩存管理算法。現(xiàn)有的固態(tài)盤模擬器具有一定局限性,為提供一個(gè)合適的高性能固態(tài)盤模SSDsim的設(shè)計(jì)思想、實(shí)現(xiàn)方法。在固態(tài)盤體系結(jié)構(gòu)中的多級(jí)并行性和軟件算法兩個(gè)層面上,以上技術(shù)分別從不同的切入點(diǎn)入手,相互配合,互為支撐,為構(gòu)建一個(gè)高性能的固態(tài)盤提出了一種新穎有效的解決方案。具體而言,本文研究了構(gòu)建高性能固態(tài)盤的三個(gè)重要問(wèn)題。第一:在固態(tài)盤現(xiàn)有的多層次結(jié)構(gòu)上,如何利用多層次結(jié)構(gòu)提供的多層次并行;這些并行層次與高級(jí)命令、分配方式有什么樣的聯(lián)系;這個(gè)多層次并行對(duì)固態(tài)盤體系結(jié)構(gòu)的設(shè)計(jì)有什么影響?第二:目前最佳的閃存轉(zhuǎn)換層算法是頁(yè)級(jí)映射,但是其映射表占用內(nèi)存比例過(guò)大,這將導(dǎo)致固態(tài)盤整體成本、功耗增加,如何設(shè)計(jì)一個(gè)態(tài)盤中數(shù)據(jù)緩存對(duì)固態(tài)盤的性能、壽命提升有直接影響,而固態(tài)盤中內(nèi)存空間有限,有限的內(nèi)存空間需要同時(shí)存放緩存數(shù)據(jù)和映射關(guān)系,如何利用有限的內(nèi)的設(shè)計(jì)思想、實(shí)現(xiàn)方法。在固態(tài)盤體系結(jié)構(gòu)中的多級(jí)并行性和軟件算法兩個(gè)層面上,以上技術(shù)分別從不同的切入點(diǎn)入手,相互配合,互為支撐,為構(gòu)建一個(gè)高性能的固態(tài)盤提出了一種新穎有效的解決方案。具體而言,本文研究了構(gòu)建高性能固態(tài)盤的三個(gè)重要問(wèn)題。第一:在固態(tài)盤現(xiàn)有的多層次結(jié)構(gòu)上,如何利用多層次結(jié)構(gòu)提供的多層次并行;這些并行層次與高級(jí)命令、分配方式有什么樣的聯(lián)系;這個(gè)多層次并行對(duì)固態(tài)盤體系結(jié)構(gòu)的設(shè)計(jì)有什么影響?第二:目前最佳的閃存轉(zhuǎn)換層算法是頁(yè)級(jí)映射,但是其映射表占用內(nèi)存比例過(guò)大,這將導(dǎo)致固態(tài)盤整體成本、功耗增加,如何設(shè)計(jì)一個(gè)態(tài)盤中數(shù)據(jù)緩存對(duì)固態(tài)盤的性能、壽命提升有直接影響,而固態(tài)盤中內(nèi)存空間有限,有限的內(nèi)存空間需要同時(shí)存放緩存數(shù)據(jù)和映射關(guān)系,如何利用有限的內(nèi)存空間,設(shè)計(jì)一個(gè)高性能的固態(tài)盤數(shù)據(jù)緩存算法?本文的主要貢獻(xiàn)包括如下四個(gè)方面。歸納總結(jié)了固態(tài)盤內(nèi)部的四層并行,即通道間并行、芯片間并行、晶圓間并行、分組間并行。引入資源利用率的概念,分析研究了固態(tài)盤中多層次并行性的特點(diǎn),研究了多層次并行與閃存的高級(jí)命令、固態(tài)盤的分配方式的關(guān)系,得到了一系列高級(jí)命令、分配方式的使用方法,并且尋找了使用多層次并行性的優(yōu)先級(jí),得到最優(yōu)的并行性優(yōu)先級(jí)是:優(yōu)先使用通道間并研究了這些問(wèn)題之后,根據(jù)研究結(jié)果,進(jìn)一步研究在固態(tài)盤設(shè)計(jì)過(guò)程中的基本原則。充分利用固態(tài)盤內(nèi)部結(jié)構(gòu)特點(diǎn),設(shè)計(jì)了三層頁(yè)級(jí)映射算法,及與其相配套的垃圾回收、損耗均衡算法,該方法在提供高性能的同時(shí),降低了映射表的大小;另外,利用非易失半導(dǎo)體存儲(chǔ)芯片--相變存儲(chǔ)器,改變現(xiàn)有固態(tài)盤結(jié)構(gòu),將讀寫(xiě)映射關(guān)系的路徑與讀寫(xiě)用戶數(shù)據(jù)的路徑分離,從而在獲得高性能的同時(shí),降低內(nèi)存容量,降低固態(tài)盤整體能耗。通過(guò)研究負(fù)載的特點(diǎn),發(fā)現(xiàn)負(fù)載中普遍存在的請(qǐng)求不均勻的特點(diǎn);通過(guò)研究固態(tài)盤內(nèi)部資源利用率,發(fā)現(xiàn)處于工作狀態(tài)的固態(tài)盤內(nèi)部存在大量空閑資源。利用以上兩個(gè)特點(diǎn),設(shè)計(jì)了一種新的固態(tài)盤數(shù)據(jù)緩存管理算法,即自適應(yīng)的動(dòng)態(tài)緩存管理算法。這種算法利用負(fù)載的相對(duì)空閑時(shí)間,提前寫(xiě)回部分緩存數(shù)據(jù),并且寫(xiě)回的數(shù)據(jù)量根據(jù)負(fù)載的需要進(jìn)行動(dòng)態(tài)調(diào)整,保證大量外部請(qǐng)求達(dá)到固態(tài)盤時(shí)能夠直接由固態(tài)盤內(nèi)部的內(nèi)存服務(wù),無(wú)需訪問(wèn)閃存,從而明顯提高固態(tài)盤整體性能,并且在一定程度上提高了固態(tài)盤壽命。最后,本文介紹了一個(gè)自主設(shè)計(jì)實(shí)現(xiàn)的固態(tài)盤模擬器SSDsim,分別從SSDsim大量外部請(qǐng)求達(dá)到固態(tài)盤時(shí)能夠直接由固態(tài)盤內(nèi)部的內(nèi)存服務(wù),無(wú)需訪問(wèn)閃存,從而明顯提高固態(tài)盤整體性能,并且在一定程度上提高了固態(tài)盤壽命。最后,本文介紹了一個(gè)自主設(shè)計(jì)實(shí)現(xiàn)的固態(tài)盤模擬器SSDsim,分別從SSDsim的設(shè)計(jì)思路、總體框架、操作流程、驗(yàn)證過(guò)程以及應(yīng)用發(fā)布等各方面,全面的介紹了SSDsim。作為一款開(kāi)源的、高準(zhǔn)確性的固態(tài)盤模擬器,已經(jīng)放在網(wǎng)絡(luò)上供研究者自由下載。2固態(tài)盤中并行性的研究在計(jì)算機(jī)體系結(jié)構(gòu)的研究中,并行性一直是主要的研究點(diǎn)。固態(tài)盤的硬件結(jié)構(gòu)決定了固態(tài)盤內(nèi)部具有天然的并行性,然而,之前固態(tài)盤的研究大部分集2固態(tài)盤中并行性的研究在計(jì)算機(jī)體系結(jié)構(gòu)的研究中,并行性一直是主要的研究點(diǎn)。固態(tài)盤的硬件結(jié)構(gòu)決定了固態(tài)盤內(nèi)部具有天然的并行性,然而,之前固態(tài)盤的研究大部分集中在對(duì)閃存介質(zhì)特點(diǎn)的利用方面,極少涉及到并行性的利用,即使涉及到了并行性也并未做系統(tǒng)全面的研究。本章主要研究固態(tài)盤內(nèi)部的并行性。首先總結(jié)固態(tài)盤內(nèi)部并行性的分類,采用資源利用率對(duì)利用各個(gè)層次并行性的效果進(jìn)行量化;然后結(jié)合固態(tài)盤內(nèi)每個(gè)層次并行性的具體使用方法,研究、探尋每個(gè)層次并行性的最佳使用方法,這些具體使用方法包括閃存的高級(jí)命令、固態(tài)盤邏輯頁(yè)的分配方式;在得到各個(gè)層次并行性利用的最佳方式之后,研究每個(gè)層次之間的相互關(guān)系,即多個(gè)并行性之間的使用優(yōu)先級(jí);最后依據(jù)前面得到的結(jié)論,逐步推導(dǎo)出多層次并行性利用的設(shè)計(jì)原則。 固態(tài)盤中資源利用率及并行性的分類如第一章討論的,固態(tài)盤由多個(gè)獨(dú)立通道組成,每個(gè)獨(dú)立通道擁有多個(gè)獨(dú)追求最高的固態(tài)盤讀寫(xiě)性能,就需要使固態(tài)盤內(nèi)部的所有通道和芯片盡可能地長(zhǎng)期處于工作狀態(tài)。要達(dá)到這個(gè)目標(biāo),只能利用固態(tài)盤內(nèi)部的并行性。這些獨(dú)立通道和芯片被認(rèn)為是固態(tài)盤內(nèi)部的讀寫(xiě)資源,只有當(dāng)固態(tài)盤內(nèi)部的資源利用率達(dá)到最高,固態(tài)盤的性能才能達(dá)到最優(yōu)。為了衡量并行性提高性能的效果,在本章中使用資源利用率對(duì)并行性進(jìn)行量化。在任何時(shí)刻,當(dāng)通道或者芯片處于工作狀態(tài)(busy),則該資源已經(jīng)被占用,一段時(shí)間內(nèi),資源被占用的時(shí)間越多,說(shuō)明這個(gè)資源的利用率越高。通道和芯片屬于不同的資源類型,在考慮資源利用率時(shí)需要分開(kāi)考慮。在本文中使用U表示在確定時(shí)間T內(nèi)的資源利用率。通道、閃存芯片、固態(tài)盤的資源利用率可以使用公式2.1~2.6得到。表2.1列出公式中用到的變量。公式2.1用來(lái)計(jì)算單個(gè)通道的資源利用率,為獲得某個(gè)通道在一段時(shí)間內(nèi)的利用率Uchannel_x,需要統(tǒng)計(jì)這個(gè)通道處于有效工作狀態(tài)的時(shí)間Tv_channel,將個(gè)時(shí)間除以總時(shí)間T,即得到這個(gè)通道的資源利用率。公式2.2用來(lái)計(jì)算所有通道的平均資源利用Uchannel。公式2.3為公2.4計(jì)算權(quán)值,在閃存芯片中,執(zhí)行讀寫(xiě)操作,有基本讀寫(xiě)命令和高級(jí)讀寫(xiě)命令的區(qū)別,基本讀寫(xiě)道的平均資源利用Uchannel。公式2.3為公2.4計(jì)算權(quán)值,在閃存芯片中,執(zhí)行讀寫(xiě)操作,有基本讀寫(xiě)命令和高級(jí)讀寫(xiě)命令的區(qū)別,基本讀寫(xiě)命令單位時(shí)間只完成一個(gè)物理頁(yè)的讀寫(xiě),而高級(jí)命令可以同時(shí)完成多個(gè)物理頁(yè)的讀寫(xiě)(高級(jí)命令將在2.3節(jié)詳細(xì)討論,可以看到,高級(jí)命令的讀寫(xiě)效率明顯優(yōu)于基本讀寫(xiě)命令。因此權(quán)值δ用來(lái)區(qū)分讀寫(xiě)閃存芯片的效率,其取值范圍為(0,1]。公2.4用來(lái)計(jì)算一個(gè)芯片的資源利用率Uchip_j_channel_i。公式2.5根據(jù)公式2.4到的每個(gè)芯片的資源利用率得到平均的芯片資源利用率Uchip。在公2.6中,通道的資源利用率和芯片的資源利用率乘以各自的權(quán)重值,得到固態(tài)盤整體的資源利用率USSD,當(dāng)將通道和芯片被視作重要程度相同的資源時(shí),αβ將分別賦值為0.5。公2.1~2.6中用到的變量變量含義變量含義U資源利用率T計(jì)算資源利用率的總時(shí)通道x的資源利用ij的資源利用率所有通道的平均資源利用率所有芯片的平均資源利用率通道的有效工作時(shí)間芯片的有效工作時(shí)間總時(shí)間內(nèi)普通讀寫(xiě)命令可訪問(wèn)的物理頁(yè)數(shù)量總時(shí)間內(nèi)實(shí)際訪問(wèn)的物理頁(yè)數(shù)n固態(tài)盤上通道數(shù)量m通道上芯片數(shù)量a芯片中晶圓數(shù)量b晶圓中分組數(shù)量α通道利用率權(quán)值β芯片利用率權(quán)值δ訪問(wèn)芯片權(quán)值固態(tài)盤的利用率圖2.1是固態(tài)盤中多通道示意圖,從圖中可以看到每個(gè)通道擁有獨(dú)立的通道控制器,當(dāng)兩個(gè)邏輯頁(yè)(a,b)需要寫(xiě)到固態(tài)盤時(shí),利用多通道的結(jié)構(gòu),將邏輯頁(yè)a發(fā)送到通道0,將邏圖2.1是固態(tài)盤中多通道示意圖,從圖中可以看到每個(gè)通道擁有獨(dú)立的通道控制器,當(dāng)兩個(gè)邏輯頁(yè)(a,b)需要寫(xiě)到固態(tài)盤時(shí),利用多通道的結(jié)構(gòu),將邏輯頁(yè)a發(fā)送到通道0,將邏輯頁(yè)b發(fā)送到通道1,這樣通道0和通道1同時(shí)服務(wù)兩個(gè)邏輯頁(yè),這就是通道之間的并行。一個(gè)通道上存在多個(gè)芯片,每個(gè)芯片存在獨(dú)立的片選信號(hào),芯片之間讀寫(xiě)介質(zhì)的過(guò)程也是可以相互獨(dú)立的,但是這些芯片屬于同一個(gè)通道,共用同一個(gè)數(shù)據(jù)通道。例如,將邏輯頁(yè)a發(fā)送到芯片0上之后,再將邏輯頁(yè)b發(fā)送到芯片1上,當(dāng)兩個(gè)邏輯頁(yè)的數(shù)據(jù)依次傳輸?shù)絻蓚€(gè)芯片后,兩個(gè)邏輯頁(yè)的數(shù)據(jù)寫(xiě)到各自閃存介質(zhì)的過(guò)程是相互獨(dú)立的,這就是芯片之間的并行。根據(jù)閃存芯片的結(jié)構(gòu)以及所提供的高級(jí)命令:多分組操作和交錯(cuò)操作,提供了另外兩個(gè)層次的并行性。交錯(cuò)操作命令(interleave)可以將邏輯頁(yè)a的數(shù)據(jù)寫(xiě)到晶圓0,邏輯頁(yè)b的數(shù)據(jù)寫(xiě)到同一個(gè)芯片的晶圓1,兩個(gè)寫(xiě)入介質(zhì)的過(guò)程交錯(cuò)進(jìn)行,這是晶圓之間的并行;多分組操作命令(multi-plane)將邏輯頁(yè)a的數(shù)據(jù)寫(xiě)到分組0,邏輯頁(yè)b的數(shù)據(jù)寫(xiě)到同一個(gè)晶圓的分組1,寫(xiě)入介質(zhì)的過(guò)程同時(shí)進(jìn)行,這就是分組之間的并行。圖固態(tài)盤并行性示意圖所以,綜合來(lái)說(shuō),固態(tài)盤本身?yè)碛兴膫€(gè)層次的并行性,他們分別是:通道之間的并行芯片之間的并行晶圓之間的并行分組之間的并行下面分別討論這四層并行的資源利用率。 通道之間的并行芯片之間的并行晶圓之間的并行分組之間的并行下面分別討論這四層并行的資源利用率。 各級(jí)并行性的分析在閃存中,讀寫(xiě)操作均分成三個(gè)階段,即命令地址傳輸階段、數(shù)據(jù)傳輸階段、訪問(wèn)介質(zhì)階段。這三個(gè)階段的時(shí)間長(zhǎng)短不一,通常命令地址傳輸階段時(shí)間1.2.1中討論的,存在兩種接口類型的閃存芯片,即異步總線接口類型和同步總線接口類型,為方便問(wèn)題的描述,如沒(méi)有特殊提示,在本章中采用異步總線接口的閃存芯片113334為例,并將讀寫(xiě)操作的各個(gè)階段的時(shí)間分別設(shè)置為傳輸數(shù)據(jù)階段為5個(gè)單位時(shí)間,讀介質(zhì)時(shí)間為2個(gè)單位時(shí)間,寫(xiě)介質(zhì)時(shí)間為20個(gè)單位時(shí)間,相對(duì)其他階段,命令地址傳輸階段時(shí)間很短,在這里忽略不計(jì),但該階段是讀寫(xiě)操作中所必須經(jīng)過(guò)的階段,因此在本章的所有示意圖中將該階段畫(huà)出,但是不計(jì)入到時(shí)間開(kāi)銷中。本章的所有示例中,如無(wú)特殊說(shuō)明,均假設(shè)芯片中有2個(gè)晶圓,每個(gè)晶圓中有2個(gè)分組。2.2.1串行處理從圖2.2中,可以看到,在寫(xiě)操作時(shí),首先在命令地址傳輸階段,通過(guò)數(shù)據(jù)總線發(fā)送命令和地址到閃存,然后在數(shù)據(jù)傳輸階段將數(shù)據(jù)通過(guò)總線將數(shù)據(jù)傳輸?shù)介W存,最后在訪問(wèn)介質(zhì)階段將數(shù)據(jù)寫(xiě)到閃存的目標(biāo)地址;讀操作的過(guò)程略微有差異,首先在命令地址傳輸階段,通過(guò)數(shù)據(jù)總線發(fā)送命令和地址到閃存,然后在訪問(wèn)介質(zhì)階段將數(shù)據(jù)從閃存的目標(biāo)地址讀出,最后在數(shù)據(jù)傳輸階段將數(shù)據(jù)傳輸出去。從圖中可以看到,串行處理將這些階段依次執(zhí)行。在處理寫(xiě)操作時(shí),串行處理對(duì)通道的資源利用率只有10%,這是因?yàn)閷?xiě)操作的訪問(wèn)介質(zhì)時(shí)間較長(zhǎng),串行處理導(dǎo)致通道需要等待數(shù)據(jù)寫(xiě)到介質(zhì)之后才能服務(wù)下一個(gè)操作;在處理讀操作時(shí),串行處理對(duì)通道的資源利用率為35.7%是因?yàn)樽x操作訪問(wèn)介質(zhì)的時(shí)間較短,通道等待的時(shí)間較短。在計(jì)算寫(xiě)操作的芯片利用率時(shí),利用公式2.3可以得到δ0.125(a,b,npt均為2,np1),并且在圖2.2(a)中可以看到總時(shí)間T為50個(gè)單位時(shí)間,而芯片x,y的有效片利用率時(shí),利用公式2.3可以得到δ0.125(a,b,npt均為2,np1),并且在圖2.2(a)中可以看到總時(shí)間T為50個(gè)單位時(shí)間,而芯片x,y的有效讀操作時(shí)的芯片利用率相類似??偟膩?lái)說(shuō),串行處理使得資源的利用率普遍較低。為了提高每個(gè)資源的利用率,需要對(duì)這三個(gè)階段進(jìn)行并發(fā)、流水操作。如前面提到的,命令地址傳輸階段因?yàn)闀r(shí)間較短,所以在固態(tài)盤中,只要使數(shù)據(jù)傳輸階段和訪問(wèn)介質(zhì)階段并行地或者流水地操作,固態(tài)盤的讀寫(xiě)性能就會(huì)達(dá)到最優(yōu)狀態(tài)。串行處理示意圖2.2.2通道之間的并行性通道之間的并行利用的是固態(tài)盤提供的多個(gè)獨(dú)立通道,如圖2.1所示。每個(gè)通道擁有獨(dú)立的通道控制器,所以通道之間的讀寫(xiě)操作不會(huì)相互影響,因此通道之間可以并發(fā)操作。圖2.3是通道之間并行操作的示意圖。從圖2.3(a)中可以看到,當(dāng)兩個(gè)寫(xiě)請(qǐng)求同時(shí)到達(dá)時(shí),通過(guò)通道1和通道分別獨(dú)立地執(zhí)行寫(xiě)操作,寫(xiě)操作的三個(gè)階段在通道1和通道2上被互不干擾地獨(dú)立執(zhí)行??梢钥吹剑瑢?xiě)操作的三個(gè)階段被完全并發(fā)地執(zhí)行了。同樣的情況在讀請(qǐng)求時(shí)出現(xiàn)。在這種情況的寫(xiě)操作下,通道的資源利用率為20.0%,芯片的資源利用率為25%(利用公式2.3和公式2.4,其中a,b,np,npt均為50個(gè)單位時(shí)間在這種情況的讀操作下,通道的資源利用率為芯片的資源利用率為25%(利用公式2.3和公式2.4,其中a,b均為均chip均42個(gè)單位時(shí)間。相比串行操作,利用通道之間的并行性可以使得通道和芯片的資源利用率提高一倍以上。2.3通道之間的并行示意圖2.2.3芯片之間的并行性在同一個(gè)通道上,具有多個(gè)芯片,這些芯片擁有獨(dú)立的片選信號(hào),當(dāng)一個(gè)芯片開(kāi)始處于工作狀態(tài)時(shí),不用等待其工作完畢,通道控制器可以使另外一個(gè)芯片的片選信號(hào)有效,控制這個(gè)芯片進(jìn)入工作狀態(tài)。但是同一個(gè)通道上的芯片共用同一組數(shù)據(jù)總線,因此在某個(gè)時(shí)刻該數(shù)據(jù)總線只能為一個(gè)芯片提供數(shù)據(jù)傳輸服務(wù),所以同一個(gè)通道之上的不同芯片之間可以通過(guò)性可以使得通道和芯片的資源利用率提高一倍以上。2.3通道之間的并行示意圖2.2.3芯片之間的并行性在同一個(gè)通道上,具有多個(gè)芯片,這些芯片擁有獨(dú)立的片選信號(hào),當(dāng)一個(gè)芯片開(kāi)始處于

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論