《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 基于4 KB數(shù)據(jù)塊映射的固態(tài)硬盤算法
基于4 KB數(shù)據(jù)塊映射的固態(tài)硬盤算法
2017年電子技術(shù)應(yīng)用第4期
駱建軍1,陳艷芬1,方立春1,Chris Tsu2
1.杭州電子科技大學(xué),浙江 杭州310018;2.Sage Microelectronics Corp,California 95008
摘要: 固態(tài)硬盤(Solid-State Drive,SSD)采用NAND型閃存(Flash Memory)為主要存儲(chǔ)介質(zhì),閃存的讀寫不同于其他介質(zhì),需要閃存轉(zhuǎn)換層(Flash Translation Layer,F(xiàn)TL)對(duì)閃存的存儲(chǔ)空間進(jìn)行管理。傳統(tǒng)方式的映射算法隨著頁(yè)面(Page-size)的逐漸擴(kuò)大,在隨機(jī)數(shù)據(jù)塊寫入的速度方面難以提升。針對(duì)這個(gè)問(wèn)題,提出一種基于4 KB數(shù)據(jù)塊映射的閃存轉(zhuǎn)換層算法,固態(tài)硬盤控制器芯片采用110 nm工藝實(shí)現(xiàn),集成了SATA-II接口(3 Gb/s數(shù)據(jù)傳輸速率),最大可以并行驅(qū)動(dòng)5通道的閃存芯片。該算法結(jié)合芯片的內(nèi)部資源,經(jīng)過(guò)了可靠性檢測(cè),達(dá)到了預(yù)期的可靠性和讀寫速度。
中圖分類號(hào): TP391.41
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2017.04.009
中文引用格式: 駱建軍,陳艷芬,方立春,等. 基于4 KB數(shù)據(jù)塊映射的固態(tài)硬盤算法[J].電子技術(shù)應(yīng)用,2017,43(4):36-38,42.
英文引用格式: Luo Jianjun,Chen Yanfen,F(xiàn)ang Lichun,et al. A solid-state drive controller design based on 4 KB-size flash translation layer[J].Application of Electronic Technique,2017,43(4):36-38,42.
A solid-state drive controller design based on 4 KB-size flash translation layer
Luo Jianjun1,Chen Yanfen1,F(xiàn)ang Lichun1,Chris Tsu2
1.Hangzhou Dianzi University,Hangzhou 310018,China;2.Sage Microelectronics Corp,Campbell,CA 95008,USA
Abstract: NAND Flash memory has been applied as the storage media in Solid State Drive(SSD). It has some unique features, for example, it needs Flash Memory Translation Layer(FTL) to manage the storage space for high read & write performance, liability and life-time guarantee. Traditional algorithms are but not the best solutions for today’s NAND flash memory while the page size and block size have grown up quickly in the past years. Those page size based algorithms were proven not good performance in random data access, which measured in 4 KB byte data throughput(called as “IOPS”, in/out per second). The paper proposed a 4 KB size mapping FTL algorithm. This algorithm was verified on a SSD controller, a real silicon chip manufactured by 110 nm process. The chip had SATA-II interface with 3 Gb/s data transfer rate and five Flash memory accessing buses to drive up to five Flash memory channels in parallel. The algorithm supported by the chip's internal resources passed the reliability test and presented the expected read & write speed.
Key words : Flash memory;SSD;FTL

0 引言

    隨著半導(dǎo)體技術(shù)的進(jìn)步,NAND型閃存(Flash Memory)容量越來(lái)越大,價(jià)格也卻越來(lái)越便宜,固態(tài)硬盤SSD在越來(lái)越多的領(lǐng)域取代以磁帶為媒介的傳統(tǒng)機(jī)械硬盤(HDD)。與傳統(tǒng)機(jī)械硬盤相比,固態(tài)盤因無(wú)伺服尋址、盤片旋轉(zhuǎn)和剩磁的影響而具有較高的帶寬、低能耗、抗震性和數(shù)據(jù)的完全可刪除性的特點(diǎn)而成為研究熱點(diǎn)[1,2]。并且固態(tài)硬盤具有更快的數(shù)據(jù)處理速度,更高的可靠性和耐用性[3,4]。固態(tài)硬盤的存儲(chǔ)器件采用的是閃存[5],具有以下幾個(gè)特點(diǎn):

    (1)讀寫基本單位是以頁(yè)(Page)為單位,擦除是以塊(Block)為單位。

    (2)每個(gè)物理塊,必須先擦除,才能夠?qū)懭霐?shù)據(jù)。

    (3)每個(gè)塊有一定的壽命,即擦除次數(shù)是有限的。

    基于這些問(wèn)題,在固態(tài)硬盤中引入了閃存轉(zhuǎn)換層FTL[6]。它包括數(shù)據(jù)映射、垃圾回收、損耗均衡、數(shù)據(jù)緩存等問(wèn)題。FTL算法,特別是閃存映射表FMT(Flash Mapping Table),是影響固態(tài)硬盤性能高低的關(guān)鍵。傳統(tǒng)的數(shù)據(jù)映射方式采用頁(yè)映射,隨著閃存頁(yè)面的增大,頁(yè)映射在隨機(jī)讀寫上速度的不足顯現(xiàn)出來(lái)。本文提出一種以4 KB數(shù)據(jù)塊為單元做映射的算法(以下簡(jiǎn)稱4 KB映射算法)來(lái)改善隨機(jī)讀寫的速度,并通過(guò)測(cè)試驗(yàn)證該算法的有效性。

1 FTL及頁(yè)映射

    FTL位于文件系統(tǒng)和物理介質(zhì)之間,把Flash的操作習(xí)慣虛擬成以傳統(tǒng)硬盤的512 B扇區(qū)進(jìn)行操作。操作系統(tǒng)就可以按照傳統(tǒng)的扇區(qū)方式操作,而不用擔(dān)心之前說(shuō)的擦除/讀/寫問(wèn)題。一切邏輯到物理的轉(zhuǎn)換,都由FTL來(lái)完成。

    頁(yè)映射是將邏輯頁(yè)映射到Flash中的任何一個(gè)物理頁(yè)。該映射算法在物理頁(yè)不大于4 KB時(shí)性能最好。但是隨著Flash物理頁(yè)的增大,目前主流基本為16 KB的物理頁(yè),并有擴(kuò)大到32 KB的趨勢(shì),寫入放大WA(Write Amplification)系數(shù)就會(huì)變大,隨著物理頁(yè)大小的增大,這種算法的劣勢(shì)會(huì)越來(lái)越大。假設(shè)Page大小為16 KB,每次寫入4 KB,基本需要:

    (1)讀出此Page內(nèi)不需要修改的12 KB;

    (2)尋找新的物理Page寫入完整的16 KB數(shù)據(jù)(包括讀出的12 KB、新寫入的4 KB)。也就是說(shuō),寫入4 KB, 實(shí)際上寫入16 KB,寫入放大系數(shù)為式(1):

    wdz1-gs1.gif

    考慮到映射表格FMT的更新以及其他管理資源的調(diào)度,實(shí)際WA肯定是大于4。顯然,按照這樣簡(jiǎn)單的映射方法是無(wú)法滿足寫入速度的要求,同時(shí),也大大消耗了閃存的“壽命”。

2 基于4 KB數(shù)據(jù)塊映射的FTL設(shè)計(jì)

2.1 4 KB數(shù)據(jù)塊映射算法

    根據(jù)隨機(jī)讀寫數(shù)據(jù)的最小單元4 KB,把FTL的最小管理單元也適應(yīng)性地調(diào)整為4 KB數(shù)據(jù)塊來(lái)進(jìn)行映射和管理?;驹頌椋簛?lái)自主機(jī)的寫入數(shù)據(jù),每4 KB給予一個(gè)地址進(jìn)行管理,連續(xù)幾個(gè)4 KB達(dá)到一個(gè)完整的閃存Page數(shù)據(jù)量的時(shí)候,把它們一次性寫入一個(gè)完整的閃存Page。如圖1所示,頁(yè)映射一個(gè)Page只是寫入了4 KB,剩余的部分用其他數(shù)據(jù)填滿,16 KB的空間只記錄了4 KB有效數(shù)據(jù),特別當(dāng)Flash讀寫采用4 KB隨機(jī)讀寫(4 KB Random R/W)時(shí),頁(yè)映射的劣勢(shì)特別明顯,而4 KB映射的寫優(yōu)勢(shì)就凸顯出來(lái)。理性狀態(tài)下,4 KB映射寫入放大系數(shù)WA=1。這種寫入方法使得隨機(jī)寫入速度幾乎接近于連續(xù)數(shù)據(jù)流的寫入,大大提高了隨機(jī)寫入的性能。

wdz1-t1.gif

    當(dāng)然,上述分析是理想狀態(tài)的,前提是具有無(wú)限的空白閃存塊(或者頁(yè))等待著使用。實(shí)際上,閃存塊(頁(yè))是有限的,閃存管理需要把一些包含了無(wú)效數(shù)據(jù)的塊釋放出來(lái),這就是通常說(shuō)的垃圾回收“Garbage Collection”,并且要把回收的塊在合適的時(shí)機(jī)擦除干凈備用。這就會(huì)引起映射表的更新(寫),使得WA略大于1。同時(shí),垃圾回收和塊擦除也需要時(shí)間,使得隨機(jī)寫入速度雖然接近連續(xù)寫入數(shù)據(jù)流,但是真實(shí)測(cè)試還是只能夠“接近”而不是“等于”或者“超過(guò)”。

    基于4 KB為單元的映射,固然大大提高了寫入性能,但在讀取信息的時(shí)候,帶來(lái)了額外的負(fù)擔(dān):

    (1)在16 KB Page的映射情況下,一次映射表的搜索,可以讀取16 KB數(shù)據(jù),即每16 KB搜索一次閃存映射表。在4 KB為單元的映射下,讀取時(shí)候的搜索就變?yōu)槊? KB就要搜索一次。因此,隨機(jī)寫性能的增加,一定程度上是以降低隨機(jī)讀性能為折中的。只是在硬件性能大大提高的前提下,搜索速度很高,隨機(jī)讀速度的降低相比于隨機(jī)寫性能的提高和寫入放大系數(shù)WA的降低,這是非常值得的。

    (2)以4 KB為最小單元的映射引起了映射表存儲(chǔ)空間的成倍增大。

     wdz1-gs2.gif

    假設(shè)硬盤存儲(chǔ)空間128 GB,每個(gè)映射單元的地址表征字節(jié)數(shù)為4,采用4 KB映射,映射表大小為128 MB。由于映射表需在集成電路芯片內(nèi)調(diào)度使用,芯片內(nèi)的緩存一般采用SRAM來(lái)實(shí)現(xiàn)。超過(guò)1 MB大小的SRAM空間對(duì)于當(dāng)前的集成電路芯片需占據(jù)很大的空間,性價(jià)比不高?,F(xiàn)實(shí)設(shè)計(jì)中,采用分段調(diào)度的方式可以解決問(wèn)題。即把當(dāng)前需用到的表格部分讀入SRAM,而把其余部分存放在芯片外部空間。芯片外部空間存放的形式有兩種:外部的DRAM(Dynamic Random Access Memory)和閃存(Flash Memory)。

2.2 算法讀寫速度及性能分析

    下面分析隨機(jī)寫入4個(gè)4 KB的數(shù)據(jù),F(xiàn)lash的頁(yè)大小為16 KB的兩種映射的速度。

    隨機(jī)寫入4個(gè)4 KB的數(shù)據(jù)時(shí),4 KB映射算法最大寫速度(不更換映射表)見式(3):

wdz1-gs3-5.gif

    最小寫速度(每個(gè)4 KB都要更換全部的映射表)見式(6):

    wdz1-gs6.gif

    Tp是一個(gè)12 KB數(shù)據(jù)的搬移時(shí)間,Tr是一個(gè)讀的延遲時(shí)間(即讀busy)。對(duì)比式(3)和式(5),式(4)和式(6),得知4 KB映射的寫速度高于頁(yè)映射。

    針對(duì)128 GB的固態(tài)硬盤,閃存映射表為32 MB,按本文芯片資源給予的8 KB SRAM,具有4 M個(gè)“映射表段”(每個(gè)8 KB大小),其中只有一段8 KB映射表段被導(dǎo)入SRAM(稱為“當(dāng)前內(nèi)存表段”),可以隨時(shí)被搜索查詢。因此,隨機(jī)寫入的4個(gè)4 KB數(shù)據(jù),有4種可能性分布對(duì)應(yīng)于落入FMT中:

wdz1-3-s1.gif

3 基于4 KB數(shù)據(jù)塊映射算法的芯片架構(gòu)

    固態(tài)硬盤控制器的算法主體最終是以固件形式在固態(tài)硬盤控制器芯片內(nèi)運(yùn)行的。針對(duì)本文的4 KB數(shù)據(jù)塊映射的算法,圖2給出了用來(lái)驗(yàn)證算法的固態(tài)硬盤控制器芯片的結(jié)構(gòu)。該芯片分成兩部分:主監(jiān)處理器模塊(Supervisor Processor Unit,SPU)和閃存通道控制器(Channel Processor,CHP)。

wdz1-t2.gif

    SPU模塊包括32位CPU、SATA接口模塊、相應(yīng)的數(shù)據(jù)緩存和芯片的周邊接口。這里特別需要SPU針對(duì)NCQ(Native Command Que)做出高效的處理,這是隨機(jī)讀寫性能的又一重點(diǎn)要素。NCQ處理需要配合閃存4 KB映射算法做一些針對(duì)性的重新排隊(duì),盡量使連續(xù)4個(gè)4 KB數(shù)據(jù)的讀(或?qū)?,不僅數(shù)據(jù)流方向一致,而且最好落在同一個(gè)映射表段內(nèi),即2.2表述的情形(1),提高情形(1)的概率對(duì)于算法是最有利的。此款控制器芯片有5個(gè)獨(dú)立的CHP,提供真正的5路并行處理能力。每個(gè)CHP模塊包括一個(gè)8位的RISC CPU、DMA(Direct Memory Access)、數(shù)據(jù)緩存和閃存總線控制。數(shù)據(jù)緩存區(qū)采用16 K Buffer和8 K FIFO,由于FMT占據(jù)空間較大,采用分段調(diào)度調(diào)用FMT表,而每次調(diào)表的大小和SRAM的大小有關(guān),SRAM內(nèi)存越大,能夠調(diào)用的映射表段越大,那么映射表段的數(shù)量會(huì)越少,根據(jù)2.2內(nèi)表述的情形(1),表段越少,相應(yīng)落入同一個(gè)映射表的概率就會(huì)增大,這也是提高算法的一個(gè)有利因素。

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

    基于算法思路和芯片架構(gòu),本文實(shí)現(xiàn)了一顆固態(tài)硬盤控制器芯片的設(shè)計(jì)。該芯片采用110 nm工藝,已在8英寸硅片上實(shí)現(xiàn)了批量生產(chǎn)。芯片尺寸3.908 mm×3.746 mm,SATA PHY為高速模擬電路,具有3 Gb/s的數(shù)據(jù)傳輸速率。映射表存儲(chǔ)采用SRAM實(shí)現(xiàn)。片上集成的電源管理電路,把5 V電源轉(zhuǎn)換成I/O電路和閃存芯片需要的3.3 V電壓,也產(chǎn)生芯片內(nèi)部需要的1.2 V電源。

    為檢驗(yàn)本文的算法的效果,采用市場(chǎng)上M公司的兩個(gè)NAND閃存型號(hào)來(lái)進(jìn)行測(cè)試和比較,其中一個(gè)閃存Page Size為8 KB,另一個(gè)閃存為16 KB,出自同系列產(chǎn)品,其余參數(shù)基本一致,如讀取等待時(shí)間為75 μs,編程(寫入)等待時(shí)間1 300 μs。通過(guò)測(cè)速軟件來(lái)測(cè)試這兩款Flash使用頁(yè)映射和4 KB映射的隨機(jī)傳輸4 KB數(shù)據(jù)的寫速度,如表1所示。可以看出:無(wú)論頁(yè)面大小是8 KB還是16 KB,4 KB映射的平均速度明顯比頁(yè)映射的速度快,并且頁(yè)面越大,4 KB映射的速度與頁(yè)映射的速度差距增大。

wdz1-b1.gif

5 結(jié)論

    本文提出了一種基于4 KB數(shù)據(jù)塊映射的FTL算法,并證明了基于4 KB數(shù)據(jù)塊大小的映射可以有效提高隨機(jī)讀寫速度,尤其是針對(duì)算法構(gòu)建了一顆固態(tài)硬盤芯片,通過(guò)真正的芯片實(shí)體驗(yàn)證了理論分析。本課題組還將進(jìn)一步研究,包括SATA-III速度匹配的電路結(jié)構(gòu)、如何以有限的片上存儲(chǔ)空間來(lái)實(shí)現(xiàn)越來(lái)越大的映射表,以及針對(duì)大數(shù)據(jù)存儲(chǔ)要求,處理熱數(shù)據(jù)和冷數(shù)據(jù)對(duì)于固態(tài)硬盤存儲(chǔ)的差異性。

參考文獻(xiàn)

[1] LAURA M G,ADRIAN M C,JOEL C,et al.Characterizing flash memory anmomalies,observations and applications[C]//Proceedings of 42nd annual IEEE/ACM international Symposium on Micro-achiteture,2009:24-33.

[2] TANAKAMARU S,DOI M,TAKEUCHI K.NAND flash Memory/ReRAM hybrid unified solid-state-storage architecture[J].IEEE Transactions on Circuits and Systems I:Regular Papers,2014,61(4):1119-1132.

[3] Huang Jian,AnirudhBadam,Moinuddin K Qureshi,et al.Unified address translation for memory-mapped SSDs with Flash Map[C]//Proceedings of the 42nd Annual International Symposium on Computer Architecture(ISCA).ACM,2015.

[4] Xia Qianbin,Xiao Weijun.Flash-aware high performance and endurable cache[C]//In 23rd IEEE International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems(MASCOTS),2015.

[5] IAN S.Osborne.Flash Memory[J].Science,2000,289(5477):217.

[6] Lee Sang-Won,Park Dong-Joo,Chung Tae-Sun,et al.A log buffer-based flash translation layer using fully-associative sector translation[J].ACM Transactions on Embedded Computing Systems,2007,6(3):1-27.



作者信息:

駱建軍1,陳艷芬1,方立春1,Chris Tsu2

(1.杭州電子科技大學(xué),浙江 杭州310018;2.Sage Microelectronics Corp,California 95008)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。