高聰明 石 亮 劉 凱 薛 春 舒繼武
1(清華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系 北京 100083)
2(華東師范大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 上海 200062)
3(重慶大學(xué)計(jì)算機(jī)學(xué)院 重慶 400044)
4(香港城市大學(xué)計(jì)算機(jī)系 香港 999077)
20世紀(jì)80年代,東芝公司發(fā)明了閃存(flash memory).隨后,英特爾公司推出了世界上第一款商用閃存芯片,旨在應(yīng)用于計(jì)算機(jī)數(shù)據(jù)存儲.在20世紀(jì)80年代末,多家閃存廠商推出了基于閃存介質(zhì)的固態(tài)硬盤.進(jìn)入21世紀(jì)后,閃存固態(tài)硬盤(flash memory based solid state drives, SSDs)進(jìn)入了發(fā)展的快車道,其在性能、存儲容量等方面全面超越機(jī)械硬盤.閃存固態(tài)硬盤正逐步取代機(jī)械硬盤,作為外部存儲設(shè)備已被廣泛應(yīng)用于各類嵌入式設(shè)備、個(gè)人電腦和數(shù)據(jù)中心等.
相比于機(jī)械硬盤,閃存固態(tài)硬盤內(nèi)部采用電子器件實(shí)現(xiàn)數(shù)據(jù)存儲,在結(jié)構(gòu)設(shè)計(jì)方面具有完全不同的設(shè)計(jì)原理.在固態(tài)硬盤內(nèi)部,閃存介質(zhì)被封裝為閃存芯片,并以多級并行結(jié)構(gòu)進(jìn)行組織,滿足多個(gè)讀寫操作在固態(tài)硬盤內(nèi)部的并行處理.為充分利用閃存芯片的低讀寫時(shí)延以及高并行結(jié)構(gòu)等優(yōu)勢,固態(tài)硬盤通過專用控制器實(shí)現(xiàn)對閃存芯片的管理.因此,固態(tài)硬盤控制器具有多項(xiàng)關(guān)鍵技術(shù)用于實(shí)現(xiàn)數(shù)據(jù)布局和管理、空間管理、壽命維護(hù)等[1].
近10年來,隨著閃存制作工藝和微電子技術(shù)的發(fā)展,閃存固態(tài)硬盤正呈現(xiàn)著新的特性和形態(tài).當(dāng)前,為進(jìn)一步提高閃存固態(tài)硬盤的存儲容量,3D閃存固態(tài)硬盤已經(jīng)成為下一代固態(tài)硬盤的主要表現(xiàn)形態(tài)[2].相比于傳統(tǒng)固態(tài)硬盤,3D固態(tài)硬盤采用堆疊結(jié)構(gòu)實(shí)現(xiàn)單位面積內(nèi)存儲容量的增長.基于該堆疊結(jié)構(gòu),3D固態(tài)硬盤在可靠性、數(shù)據(jù)寫入方式等方面具有不同的特性.因此,針對3D閃存固態(tài)硬盤所展現(xiàn)的特性進(jìn)行固態(tài)硬盤性能和壽命優(yōu)化將成新的研究熱點(diǎn).
當(dāng)前,使用最為廣泛的閃存單元(flash memory cell)是一種基于浮柵(floating gate)技術(shù)的場效應(yīng)管(MOS晶體管)[3].根據(jù)浮柵內(nèi)存儲的電子數(shù)量所表現(xiàn)的電壓值,閃存單元能夠表現(xiàn)不同的數(shù)據(jù)值.當(dāng)前,閃存單元主要可分為4種類型:單級閃存單元(single-level cell, SLC)、二級閃存單元(multi-level cell, MLC)、三級閃存單元(triple-level cell, TLC)和四級閃存單元(quad-level cell, QLC).這4種類型閃存單元分別可存儲1,2,3和4 b數(shù)據(jù).
閃存單元存在3種基本操作,分別為“編程”“讀”和“擦除”.首先,編程操作是指電子被注入閃存單元的過程.傳統(tǒng)閃存單元編程操作普遍采用遞進(jìn)增壓編程(increment step pulse programming, ISPP)方式[4].ISPP編程方式可將閃存單元電壓值控制在預(yù)定電壓范圍內(nèi),從而提高閃存單元編程操作的可靠性.其次,讀操作是指獲取當(dāng)前閃存單元電壓值所屬的電壓范圍,從而獲得當(dāng)前閃存單元內(nèi)存儲的數(shù)據(jù)信息[3].最后,擦除操作是指將閃存單元數(shù)據(jù)信息恢復(fù)至初始值.在物理實(shí)現(xiàn)過程中,擦除操作通過在閃存單元上構(gòu)建高電場將電子從浮柵中釋放,從而降低閃存單元的電壓值至初始值.編程后的閃存單元需要先被擦除至初始狀態(tài),才能進(jìn)行下一次編程,該現(xiàn)象被稱之為“非就地更新”.
為了實(shí)現(xiàn)批量閃存單元存儲數(shù)據(jù)的讀、寫和擦除操作,閃存固態(tài)硬盤將閃存單元以陣列結(jié)構(gòu)進(jìn)行組織.如圖1所示,一定數(shù)量的閃存單元構(gòu)成了閃存固態(tài)硬盤中的最小閃存陣列——閃存塊(flash block).該閃存陣列存在2個(gè)方向,分別是字線(word line, WL)方向和位線(bit line, BL)方向[3].在字線方向,根據(jù)閃存單元的類型(SLC,MLC,TLC或QLC),一條字線中的閃存單元構(gòu)成1,2,3或4個(gè)閃存頁(flash page).
Fig. 1 Architecture of flash memory array[3]圖1 閃存陣列結(jié)構(gòu)[3]
根據(jù)閃存陣列結(jié)構(gòu),閃存固態(tài)硬盤存在3種基本操作,分別為“寫”“讀”和“擦除”.寫、讀操作的最小執(zhí)行單位是閃存頁,即同一條字線中的所有閃存單元.擦除操作的最小執(zhí)行單位是閃存塊[5].
針對閃存頁的寫操作.以圖1為例,假設(shè)當(dāng)前閃存單元為SLC類型,圖1閃存塊中的每條字線構(gòu)成一個(gè)閃存頁.首先,寫操作通過地址解碼器確定當(dāng)前寫入字線位置.隨后,根據(jù)寫操作數(shù)據(jù)內(nèi)容,對應(yīng)的位線打開閃存單元充入電子,該過程表示為對當(dāng)前字線對應(yīng)的閃存單元進(jìn)行寫“0”操作.
針對閃存頁讀操作.同樣以圖1,閃存陣列地址解碼器定位讀取閃存頁位置.隨后,讀操作對所有位線施加探測電壓.根據(jù)探測結(jié)果獲得當(dāng)前閃存頁的數(shù)據(jù)內(nèi)容.
針對閃存塊擦除操作.所有閃存塊內(nèi)字線對應(yīng)的控制門電路均施加0V電壓,隨后對閃存塊內(nèi)的所有閃存單元基質(zhì)端施加高電壓,從而在閃存單元上構(gòu)建高電場進(jìn)行電子釋放.
在本節(jié)中,我們主要介紹閃存固態(tài)硬盤的內(nèi)部關(guān)鍵組件以及高并發(fā)的結(jié)構(gòu)特征.如圖2所示,閃存固態(tài)硬盤主要由2部分構(gòu)成,分別是固態(tài)硬盤控制器(SSD controller)和閃存芯片(flash chip).控制器內(nèi)部存在多個(gè)關(guān)鍵組件,用于維護(hù)閃存固態(tài)硬盤的正常運(yùn)作.閃存芯片用于存儲數(shù)據(jù)內(nèi)容.
Fig. 2 Architecture of solid state drives[6]圖2 固態(tài)硬盤結(jié)構(gòu)[6]
根據(jù)閃存介質(zhì)的獨(dú)有特性,固態(tài)硬盤內(nèi)部配置有專用控制器用于維護(hù)固態(tài)硬盤的正常工作,主要包括6個(gè)關(guān)鍵組件:緩存(buffer)、閃存轉(zhuǎn)換層(flash translation layer, FTL)、垃圾回收(garbage collection, GC)、數(shù)據(jù)分配(data allocation, DA)、磨損均衡(wear leveling, WL)和糾錯(cuò)碼(error correction code, ECC).
2.1.1 緩 存
當(dāng)前,固態(tài)硬盤的一個(gè)主要發(fā)展趨勢是提升讀寫性能.為此,固態(tài)硬盤通過在控制器內(nèi)部配置緩存設(shè)備的方式提高固態(tài)硬盤整體性能.根據(jù)緩存存儲介質(zhì)的易失特性,緩存設(shè)備可分為2類:易失性緩存和非易失性緩存.易失性緩存具有更低的訪問時(shí)延,但存在設(shè)備斷電數(shù)據(jù)丟失的問題.非易失性緩存訪問時(shí)延介于閃存訪問時(shí)延與易失性緩存訪問時(shí)延之間,但其優(yōu)點(diǎn)在于設(shè)備斷電數(shù)據(jù)不丟失.
針對易失性緩存,緩存設(shè)備普遍采用DRAM或SRAM作為緩存介質(zhì)[7].相比于閃存us級別數(shù)據(jù)訪問時(shí)延,DRAM存儲介質(zhì)具有更低的訪問時(shí)延(ns級別).因此,主機(jī)的讀寫請求可通過訪問緩存設(shè)備的方式完成數(shù)據(jù)在固態(tài)硬盤內(nèi)部的讀寫操作,從而提高固態(tài)硬盤的整體性能.由于易失性緩存存儲空間有限,緩存設(shè)備根據(jù)數(shù)據(jù)特征進(jìn)行數(shù)據(jù)剔除,實(shí)現(xiàn)有限緩存空間的高效利用.目前,已有大量工作提出基于固態(tài)硬盤特征感知的緩存數(shù)據(jù)剔除策略.從數(shù)據(jù)剔除粒度考慮,緩存數(shù)據(jù)剔除策略可分為3類:基于頁剔除策略、基于塊剔除策略以及混合剔除策略.1)頁剔除策略.CFLRU(clean first least recently used)策略考慮了閃存頁非對稱讀寫時(shí)延的特征,數(shù)據(jù)剔除過程以頁作為剔除粒度.其主要思想是,優(yōu)先剔除緩存中的干凈頁(clean page),減少臟頁(dirty page)數(shù)據(jù)寫回帶來的閃存設(shè)備寫操作時(shí)間開銷[8].測試結(jié)果表示,相比于傳統(tǒng)LRU策略,CFLRU能夠減小緩存數(shù)據(jù)頁剔除時(shí)間達(dá)26%的.進(jìn)一步考慮到頻繁寫操作對閃存固態(tài)硬盤擦除操作的影響,WIPPA(write intensive page preserving algorithm)[9]提出延長頻繁更新的數(shù)據(jù)在緩存中的保存時(shí)間,從而提高數(shù)據(jù)在緩存中被更新的概率,進(jìn)而減少固態(tài)硬盤內(nèi)部的寫操作次數(shù).2)塊剔除策略.FAB(flash aware buffer policy)策略將緩存數(shù)據(jù)以塊的方式進(jìn)行組織[10],剔除過程選擇當(dāng)前MRU(most recently used)端具有最多數(shù)據(jù)頁個(gè)數(shù)的塊.測試結(jié)果顯示,相比于傳統(tǒng)LRU策略,F(xiàn)AB減小總處理時(shí)間達(dá)17%.基于FAB策略,BPLRU(block padding least recently used)進(jìn)一步提出頁填充機(jī)制,在緩存設(shè)備中將隨機(jī)寫填充至碎片化的數(shù)據(jù)塊中,從而減少數(shù)據(jù)剔除開銷.測試結(jié)果顯示,相比于FAB,BPLRU提升系統(tǒng)性能最高達(dá)43%.此外,VBBMS(virtual-block-based buffer management scheme)[11]在緩存中提出虛擬塊結(jié)構(gòu),并將數(shù)據(jù)分為隨機(jī)請求和順序請求,針對不同類型的訪問請求分別利用其空間局域性和時(shí)間局域性,從而實(shí)現(xiàn)性能優(yōu)化的目的.3)混合剔除策略.BPAC(block-page adaptive cache)提出在緩存中按照數(shù)據(jù)冷熱程度分別以頁和塊的方式進(jìn)行組織[12].由于熱數(shù)據(jù)具有更強(qiáng)的時(shí)間局域性,冷數(shù)據(jù)具有更強(qiáng)的空間局域性,因此,熱數(shù)據(jù)采用頁剔除策略,冷數(shù)據(jù)采用塊剔除策略.測試結(jié)果顯示,相比于BPLRU,BAPC減少緩存剔除次數(shù)最高達(dá)79.6%.
然而,由于閃存固態(tài)硬盤緩存空間有限,且傳統(tǒng)的緩存數(shù)據(jù)管理策略已經(jīng)能取得較為出色的性能表現(xiàn),因此,研究人員對緩存數(shù)據(jù)管理策略的關(guān)注逐步下降.取而代之的是,非易失性緩存設(shè)計(jì)方案逐步進(jìn)入到研究人員視野中.
針對非易失性緩存,固態(tài)硬盤內(nèi)部存在2種設(shè)計(jì)方案.1)使用非易失性存儲器(non-volatile memory, NVM)作為緩存存儲介質(zhì),例如相變位存儲器(phase change memory, PCM),自旋轉(zhuǎn)移矩存儲器(spin-transfer torque RAM, STT-RAM),以及可變電阻式存儲器(resistive RAM, RRAM)等[13-14].然而,由于NVM訪問時(shí)延低于DRAM等易失性存儲介質(zhì),因此,固態(tài)硬盤內(nèi)部采用混合式存儲方法作為非易失性緩存設(shè)計(jì)方法.以PCM/DRAM混合緩存設(shè)計(jì)方法為例,文獻(xiàn)[13]提出將熱數(shù)據(jù)存儲在DRAM緩存區(qū)域,將冷數(shù)據(jù)存儲在PCM緩存區(qū)域.該方法降低請求響應(yīng)時(shí)間最多達(dá)26%.2)使用電容器件對易失性緩存進(jìn)行斷電數(shù)據(jù)寫回保護(hù)[15].在固態(tài)硬盤正常工作期間,DRAM緩存設(shè)備提供快速數(shù)據(jù)訪問性能.在固態(tài)硬盤斷電之后,固態(tài)硬盤供電轉(zhuǎn)換器激活電容器件為固態(tài)硬盤進(jìn)行供電,使得緩存數(shù)據(jù)可被寫回閃存[16].目前,基于電容器件的非易失性緩存方案已經(jīng)被廣泛應(yīng)用于高端固態(tài)硬盤.
緩存設(shè)備能有效協(xié)調(diào)閃存與內(nèi)存之間的性能差異,提高固態(tài)硬盤訪問性能.面對目前各類新型非易失存儲器,如何選擇合適的新型非易失存儲器作為固態(tài)硬盤的緩存設(shè)備將是一個(gè)研究的熱點(diǎn).并且,如何設(shè)計(jì)高效的基于新型非易失存儲器的緩存管理策略也將是一個(gè)研究的難點(diǎn).
2.1.2 閃存轉(zhuǎn)換層
基于閃存“非就地更新”的特點(diǎn),固態(tài)硬盤在控制器內(nèi)部通過構(gòu)建閃存轉(zhuǎn)換層的方式實(shí)現(xiàn)“邏輯地址(logical address)”到“物理地址(physical address)”的地址映射轉(zhuǎn)換.閃存轉(zhuǎn)換層的設(shè)計(jì)主要考慮2方面的影響:固態(tài)硬盤性能和RAM空間需求.因此,根據(jù)地址映射單位的不同,閃存轉(zhuǎn)換層中的地址映射轉(zhuǎn)換可分為3種類型:閃存頁級別地址映射(page-level mapping)、閃存塊級別地址映射(block-level mapping)以及混合地址映射(hybrid mapping).
1) 閃存頁級別地址映射[17].該映射方式中邏輯閃存頁地址與物理閃存頁地址存在唯一對應(yīng)關(guān)系,其通過構(gòu)建頁粒度的映射條目實(shí)現(xiàn)閃存存儲空間的靈活、充分使用.然而,該映射方式需要在固態(tài)硬盤緩存中保存大量映射條目,從而造成較大的緩存空間開銷.
為減少對緩存空間的消耗,大量相關(guān)工作提出了針對閃存頁級別地址映射緩存空間優(yōu)化的設(shè)計(jì)方案,核心思想是:將當(dāng)前訪問概率低的映射條目寫回閃存,減少緩存空間開銷.DFTL(demand-based page-mapped flash translation layer)是一種典型的閃存頁級別地址映射空間優(yōu)化方案[18].為進(jìn)一步優(yōu)化DFTL,S-FTL(spatial-locality-aware FTL)設(shè)計(jì)了基于數(shù)據(jù)空間局域性感知的DFTL優(yōu)化方案[19].S-FTL提出將順序訪問數(shù)據(jù)的映射條目寫入同一轉(zhuǎn)換頁,提高轉(zhuǎn)換頁內(nèi)部映射條目的命中率,并進(jìn)一步在緩存中保存較少的隨機(jī)訪問數(shù)據(jù)映射條目,從而減少緩存數(shù)據(jù)剔除開銷.測試結(jié)果顯示,相比于DFTL,S-FTL減少系統(tǒng)想響應(yīng)時(shí)間最高達(dá)25%.在此基礎(chǔ)上,CDFTL(two-level caching DFTL)優(yōu)化方案提出構(gòu)建2層CMT緩存,分別進(jìn)行基于數(shù)據(jù)時(shí)間局域性和空間局域性的DFTL優(yōu)化方案[20].測試結(jié)果顯示,相比于DFTL,CDFTL提高CMT命中率達(dá)31.51%,平均減少31.11%系統(tǒng)響應(yīng)時(shí)間.
2) 閃存塊級別地址映射[21-23].該映射方式中邏輯閃存塊地址與物理閃存塊地址的對應(yīng)關(guān)系符合組相聯(lián)關(guān)系.對于閃存頁地址映射,閃存塊級別地址映射采用固定映射機(jī)制,即邏輯塊內(nèi)頁偏移地址與物理塊內(nèi)頁偏移地址相同.因此,閃存塊級別地址映射表僅保存閃存塊地址映射條目,然而,受限于閃存塊內(nèi)部僅支持閃存頁順序?qū)慬24],在該映射方式下,同一邏輯閃存塊內(nèi)部的閃存頁更新操作將導(dǎo)致閃存塊數(shù)據(jù)頻繁重組并遷移,從而增加垃圾回收開銷,降低固態(tài)硬盤性能.基于這些問題,閃存塊級別地址映射難以被廣泛應(yīng)用.
3) 混合地址映射.為解決上述2種映射方式的缺點(diǎn),大量相關(guān)研究工作提出閃存頁級別地址映射和閃存塊級別地址映射相結(jié)合的地址映射方式[25-27].基于混合地址映射的固態(tài)硬盤閃存塊分為2種類型,分別為數(shù)據(jù)塊和日志塊,其中數(shù)據(jù)塊采用閃存塊級別地址映射,日志塊采用閃存頁級別地址映射.針對數(shù)據(jù)塊的數(shù)據(jù)更新寫將通過閃存頁級別地址映射方式寫入日志塊.當(dāng)日志塊空間不足時(shí),固態(tài)硬盤觸發(fā)垃圾回收(在2.1.3節(jié)詳述)實(shí)現(xiàn)數(shù)據(jù)塊與日志塊的合并操作.由于合并操作存在大量數(shù)據(jù)遷移以及擦除操作,因此,研究人員提出相關(guān)工作,旨在優(yōu)化混合地址映射中的合并操作開銷.BAST(block associative sector translation)策略[25]提出了將日志塊與數(shù)據(jù)塊一一對應(yīng)的映射關(guān)系.然而,當(dāng)面對大量隨機(jī)更新寫,BAST將引起大量垃圾回收操作,導(dǎo)致性能下降.基于此,F(xiàn)AST(fully associative sector translation)策略[26]提出僅維護(hù)一個(gè)順序?qū)懭罩緣K,剩余日志塊負(fù)責(zé)隨機(jī)更新寫,減少垃圾回收頻率.然而,F(xiàn)AST卻無法滿足多個(gè)順序更新寫的數(shù)據(jù)流,且仍然無法利用隨機(jī)更新寫的時(shí)間局域性.為克服FAST所存在的問題,研究人員進(jìn)一步提出LAST(locality-aware sector translation)策略[27].該策略維護(hù)了多個(gè)順序日志塊,用于滿足多個(gè)順序更新寫數(shù)據(jù)流.此外,LAST進(jìn)一步將隨機(jī)寫日志塊分為冷日志塊和熱日志塊,減少混合地址映射中的合并操作.
因此,3種類型的地址映射方案在性能和空間開銷上各有優(yōu)勢,具體特征如表1所示.因此,針對具有較大緩存空間的閃存固態(tài)硬盤,閃存頁映射方案可取得最優(yōu)的性能表現(xiàn).但從緩存空間考慮,閃存塊映射方案可有效減少緩存空間開銷.由于閃存塊級別地址映射表僅保存閃存塊地址映射條目,相比閃存頁級別地址映射表,其所需緩存空間開銷可減少“閃存塊尺寸/閃存頁尺寸”.為實(shí)現(xiàn)性能和空間開銷之間的權(quán)衡,混合映射根據(jù)數(shù)據(jù)的訪問特征,實(shí)現(xiàn)閃存頁映射和閃存塊映射的混合管理.
Table 1 Comparison Among Page-Level, Block-Level and Hybrid Mappings表1 閃存頁級別、閃存塊級別和混合映射方案對比
閃存轉(zhuǎn)換層的效率與固態(tài)硬盤性能成正相關(guān).受限于有限的緩存空間,研制具有高命中率的地址映射表以及低空間開銷的地址映射方式將有效提高固態(tài)硬盤整體性能.然而,面對新型固態(tài)硬盤(例如,3D固態(tài)硬盤)的獨(dú)有特征,設(shè)計(jì)適配新型固態(tài)硬盤的閃存轉(zhuǎn)換層將成為后續(xù)的一個(gè)重要研究點(diǎn).
2.1.3 垃圾回收
閃存的“非就地更新”特征要求閃存單元僅在被擦除之后才可進(jìn)行下一次寫操作.基于此,更新寫操作將在固態(tài)硬盤內(nèi)部產(chǎn)生大量無效閃存頁,從而快速消耗固態(tài)硬盤剩余可用空間.為保障固態(tài)硬盤存儲空間的充分利用,固態(tài)硬盤采用垃圾回收機(jī)制實(shí)現(xiàn)無效空間的回收再利用[28].由于垃圾回收過程將導(dǎo)致大量數(shù)據(jù)讀寫以及高時(shí)間開銷的擦除操作,因此,固態(tài)硬盤性能與垃圾回收效率成正相關(guān)[29].目前,垃圾回收優(yōu)化類型可分為3類,如表2所示:
Table 2 Summary of Garbage Collection Optimizations表2 垃圾回收優(yōu)化方案總結(jié)
針對時(shí)間開銷優(yōu)化類型,目前,應(yīng)用最為廣泛的策略是貪婪式垃圾回收(greedy garbage collec-tion)[30],該策略選擇當(dāng)前具有最少有效頁個(gè)數(shù)的閃存塊作為待回收閃存塊,減少有效頁遷移次數(shù).基于此,相關(guān)研究工作提出通過冷熱數(shù)據(jù)分離的方式減少待回收閃存塊的有效頁個(gè)數(shù)[33].根據(jù)訪問數(shù)據(jù)的時(shí)間局域性,基于閃存塊粒度的冷熱分離策略通過將相同熱度的數(shù)據(jù)在同一閃存塊內(nèi)進(jìn)行聚集,從而實(shí)現(xiàn)同一閃存塊內(nèi)部數(shù)據(jù)在相近時(shí)間內(nèi)同時(shí)無效,從而減少垃圾回收所需的有效頁遷移次數(shù).貪婪式垃圾回收方案旨在減小垃圾回收遷移的有效頁個(gè)數(shù),實(shí)現(xiàn)垃圾回收效率優(yōu)化.為進(jìn)一步提高垃圾回收效率,研究人員提出一系列垃圾回收有效頁遷移過程優(yōu)化方案,通過減少有效頁遷移的時(shí)間開銷提高固態(tài)硬盤垃圾回收效率.針對有效頁遷移過程,相關(guān)工作提出了固態(tài)硬盤的高并發(fā)特性減少有效頁遷移開銷.Gao等人[34]提出了利用閃存芯片高并發(fā)的特點(diǎn)同時(shí)遷移多個(gè)有效頁,減少有效頁遷移的寫操作時(shí)間開銷.Shahidi等人[35]提出利用閃存芯片內(nèi)部分組并行性實(shí)現(xiàn)并行垃圾回收、降低垃圾回收有效頁遷移時(shí)間開銷和垃圾回收觸發(fā)次數(shù).
針對時(shí)間開銷優(yōu)化的垃圾回收方案從垃圾回收時(shí)間開銷角度出發(fā),并未考慮垃圾回收對主機(jī)讀寫請求的影響.因此,相關(guān)工作考慮了主機(jī)請求與垃圾回收之間的沖突關(guān)系,通過優(yōu)化垃圾回收執(zhí)行時(shí)機(jī)減少垃圾回收對主機(jī)讀寫請求的阻塞影響,實(shí)現(xiàn)固態(tài)硬盤性能優(yōu)化[31,36].例如,Lee等人[31]提出了可中斷式垃圾回收策略.根據(jù)主機(jī)請求到達(dá)時(shí)間點(diǎn),該策略將有效頁遷移過程拆分為幾個(gè)子階段,并優(yōu)先處理主機(jī)請求,從而減少主機(jī)請求的等待時(shí)間,提高固態(tài)硬盤性能.
針對時(shí)間開銷優(yōu)化的垃圾回收方案和可中斷式垃圾回收策略2種垃圾回收優(yōu)化思路呈正交關(guān)系,二者分別通過優(yōu)化垃圾回收有效頁遷移過程,以及選擇合適的垃圾回收時(shí)機(jī),實(shí)現(xiàn)固態(tài)硬盤性能優(yōu)化的目的.目前,研究人員進(jìn)一步提出了基于數(shù)據(jù)訪問特征預(yù)測的垃圾回收優(yōu)化方案[32,37].例如Yang等人[32]提出利用神經(jīng)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)熱度預(yù)測,從而進(jìn)行將具有相同預(yù)測熱度的數(shù)據(jù)寫入同一閃存塊,提高垃圾回收效率.然而,基于神經(jīng)網(wǎng)絡(luò)的預(yù)測算法具有較高的時(shí)間和空間開銷,因此,在保證預(yù)測算法高準(zhǔn)確度的前提下,如何優(yōu)化預(yù)測過程的開銷是一項(xiàng)關(guān)鍵技術(shù).
2.1.4 數(shù)據(jù)分配
針對寫請求數(shù)據(jù),為確定其數(shù)據(jù)的物理寫入位置,固態(tài)硬盤通過數(shù)據(jù)分配策略確定邏輯地址到物理地址的映射關(guān)系.如圖3所示,固態(tài)硬盤具有4級并行層次,分別是通道(channel)級、芯片(chip)級、晶圓(die)級和分組(plane)級.數(shù)據(jù)分配策略需依次定位寫請求在各個(gè)并行層次的物理單元位置.分配策略的目標(biāo)是最大化固態(tài)硬盤的并行性,提高固態(tài)硬盤性能.
Fig. 3 Parallel architecture of solid state drives[38]圖3 固態(tài)硬盤并行結(jié)構(gòu)[38]
目前,固態(tài)硬盤內(nèi)部的數(shù)據(jù)分配策略可分為3種類型:靜態(tài)分配(static allocation)、動(dòng)態(tài)分配(dynamic allocation)[39]以及混合式分配策略.靜態(tài)分配策略具有固定的地址轉(zhuǎn)換算法,實(shí)現(xiàn)過程開銷低,且根據(jù)4級并行層次的分配優(yōu)先級可確定多種分配方式.Hu等人[39]驗(yàn)證了多種分配優(yōu)先級下的靜態(tài)數(shù)據(jù)分配策略,發(fā)現(xiàn)最優(yōu)分配順序?yàn)椋和ǖ?、晶圓、分組、芯片.然而,由于靜態(tài)分配策略不感知閃存并行單元的當(dāng)前狀態(tài),若請求訪問正處于忙碌狀態(tài)的閃存并行單元,則導(dǎo)致請求受到阻塞,增加等待時(shí)間.為此,Gao等人[40]提出基于并行發(fā)送隊(duì)列(parallel issue queue, PIQ)的請求調(diào)度器.PIQ利用靜態(tài)分配策略的地址轉(zhuǎn)換算法提前感知請求發(fā)送位置,并將可并行處理的多個(gè)請求合并為一個(gè)并行批次,從而減少請求之間的相互阻塞影響.
相比靜態(tài)分配策略,動(dòng)態(tài)分配策略更為靈活,且具有更好的性能表現(xiàn),其核心思想是:將請求數(shù)據(jù)寫入空閑閃存頁[41].在該過程中,動(dòng)態(tài)分配策略要求數(shù)據(jù)寫入空閑閃存頁路徑上的通道、芯片、晶圓以及分組均處于空閑狀態(tài),因此,動(dòng)態(tài)分配策略需要對各級閃存并行單元進(jìn)行空閑/忙碌狀態(tài)監(jiān)測,從而增加實(shí)現(xiàn)開銷.
為增加數(shù)據(jù)分配策略的靈活性,研究人員提出基于靜態(tài)分配和動(dòng)態(tài)分配策略的混合式分配策略.該策略可在不同并行層次實(shí)現(xiàn)靜態(tài)分配和動(dòng)態(tài)分配策略,從而實(shí)現(xiàn)性能與實(shí)現(xiàn)開銷之間的權(quán)衡.例如TBM(twin block management)[42],其提出在通道、芯片和晶圓層次實(shí)現(xiàn)靜態(tài)分配策略,在分組層次采用動(dòng)態(tài)分配策略,從而提高固態(tài)硬盤的并行性利用率.
然而,固態(tài)硬盤的4級并行層次中,晶圓級和分組級并行存在限制條件,導(dǎo)致固態(tài)硬盤并行性利用不充分,具體原因?qū)⒃?.2節(jié)詳述.為實(shí)現(xiàn)固態(tài)硬盤性能優(yōu)化,數(shù)據(jù)分配策略應(yīng)進(jìn)一步考慮請求訪問特征與固態(tài)硬盤內(nèi)部數(shù)據(jù)活動(dòng),保障數(shù)據(jù)分配過程中最大化利用固態(tài)硬盤并行性,且最小化請求數(shù)據(jù)之間以及請求數(shù)據(jù)與內(nèi)部數(shù)據(jù)活動(dòng)的相互阻塞.3種數(shù)據(jù)分配策略性能及實(shí)現(xiàn)開銷如表3所示:
Table 3 Summary of Data Allocation Schemes表3 數(shù)據(jù)分配策略總結(jié)
2.1.5 磨損均衡
閃存單元具有有限的可擦除次數(shù),一旦達(dá)到擦除次數(shù)上限,閃存單元內(nèi)部存儲數(shù)據(jù)將無法保障其可靠性.從固態(tài)硬盤角度來看,若部分閃存單元被快速磨損,則將導(dǎo)致固態(tài)硬盤存儲壽命退化,性能波動(dòng),以及數(shù)據(jù)存儲不可靠.因此,固態(tài)硬盤采用磨損均衡保障固態(tài)硬盤內(nèi)部閃存塊具有相近磨損程度,從而最大化固態(tài)硬盤使用壽命.磨損均衡按照實(shí)現(xiàn)算法可分為動(dòng)態(tài)磨損均衡(dynamic wear leveling)和靜態(tài)磨損均衡(static wear leveling)[43],按照作用域可分為全局磨損均衡(global wear leveling)和本地磨損均衡(local wear leveling).4種類型的磨損均衡策略具體側(cè)重點(diǎn)和性能效果如表4所示:
Table 4 Summary of Wear Leveling Schemes表4 磨損均衡策略總結(jié)
1) 動(dòng)態(tài)磨損均衡[44].該磨損均衡算法的做法是將作用域內(nèi)可用閃存塊列入閃存塊池,在其內(nèi)部選擇擦除次數(shù)最少的閃存塊進(jìn)行數(shù)據(jù)寫入.基于此,磨損較少的閃存塊能夠被寫入更多數(shù)據(jù)內(nèi)容,從而在該閃存塊中觸發(fā)垃圾回收,實(shí)現(xiàn)磨損均衡.然而,動(dòng)態(tài)磨損均衡的不足在于,當(dāng)作用域內(nèi)存在數(shù)據(jù)長期不更新,則這部分?jǐn)?shù)據(jù)所在的閃存塊將無法列入可用閃存塊池,從而導(dǎo)致動(dòng)態(tài)磨損均衡無法作用于這部分閃存塊.因此,動(dòng)態(tài)磨損均衡難以實(shí)現(xiàn)作用域內(nèi)所有閃存塊之間的磨損均衡.
2) 靜態(tài)磨損均衡[45-46].為解決動(dòng)態(tài)磨損均衡所存在的不足,靜態(tài)磨損均衡算法提出對作用域內(nèi)所有閃存塊實(shí)現(xiàn)磨損均衡,其思想是:將作用域內(nèi)所有閃存塊列入磨損均衡閃存塊池,并選擇擦除次數(shù)最少的閃存塊進(jìn)行數(shù)據(jù)寫入.若所選閃存塊內(nèi)部存在數(shù)據(jù)內(nèi)容,則將數(shù)據(jù)內(nèi)容遷移至其他可用閃存塊.相比于動(dòng)態(tài)磨損均衡,靜態(tài)磨損均衡可更大程度延長閃存塊使用壽命,但其引入的數(shù)據(jù)遷移將影響固態(tài)硬盤性能.
3) 全局磨損均衡和本地磨損均衡[47].在傳統(tǒng)閃存固態(tài)硬盤中,由于制程精度更大,閃存單元最大可容忍擦除次數(shù)更高,因此,固態(tài)硬盤可將磨損均衡算法的作用域設(shè)置為閃存芯片,保障閃存芯片之間相對磨損均衡.然而,目前閃存制程精度越來越小,導(dǎo)致閃存單元最大可容忍擦除次數(shù)逐步下降.因此,固態(tài)硬盤對閃存芯片之間的磨損均衡要求更為嚴(yán)格,從而將磨損均衡算法作用域擴(kuò)充至全盤,實(shí)現(xiàn)全盤內(nèi)部的動(dòng)態(tài)磨損均衡或靜態(tài)磨損均衡算法.然而,全局磨損均衡將導(dǎo)致芯片之間的數(shù)據(jù)遷移,從而導(dǎo)致固態(tài)硬盤性能下降.
磨損均衡算法的高效性與固態(tài)硬盤壽命成直接關(guān)系.動(dòng)態(tài)磨損均衡和靜態(tài)磨損均衡在性能和壽命方面各有優(yōu)勢,因此,如何高效合并2種磨損均衡算法,使得在提升固態(tài)硬盤壽命的同時(shí)不影響其性能將成為關(guān)鍵研究問題.此外,面向固態(tài)硬盤日益增長的存儲容量,全局磨損均衡在信息維護(hù),數(shù)據(jù)處理等方面的開銷也將逐步增加.因此,如何減小大容量環(huán)境下的全局磨損均衡開銷也將成為一個(gè)關(guān)鍵研究內(nèi)容.
2.1.6 糾錯(cuò)碼
隨著制程工藝的進(jìn)步,閃存單元可靠性面臨更為嚴(yán)峻的挑戰(zhàn).如圖4所示,當(dāng)閃存單元受到錯(cuò)誤源干擾,其表現(xiàn)的電壓值將發(fā)生改變,從而導(dǎo)致閃存單元所代表的數(shù)據(jù)內(nèi)容出錯(cuò)[48].目前,閃存單元受到的出錯(cuò)影響主要包括:保存時(shí)間[49]、編程干擾[50]、讀干擾[51]和物理干擾[52]等.具體導(dǎo)致的閃存單元出錯(cuò)情況如表5所示.因此,為避免錯(cuò)誤源導(dǎo)致的數(shù)據(jù)錯(cuò)誤,提高數(shù)據(jù)可靠性,固態(tài)硬盤采用糾錯(cuò)碼實(shí)現(xiàn)數(shù)據(jù)出錯(cuò)之后的糾正恢復(fù).
Fig. 4 Threshold voltage distribution shifts of flash cell[48]圖4 閃存單元電壓狀態(tài)分布偏移[48]
Table 5 Summary of Flash Cell Error Sources[49-52]表5 閃存單元錯(cuò)誤源總結(jié)[49-52]
當(dāng)前,固態(tài)硬盤糾錯(cuò)碼主要2種類型:BCH(Bose-Chaudhuri-Hocquenghem)[53-54]和LDPC(low-density parity-check)[55-56].糾錯(cuò)碼的效率決定于其是否能夠有效恢復(fù)錯(cuò)誤數(shù)據(jù)并降低數(shù)據(jù)錯(cuò)誤率至JEDEC標(biāo)準(zhǔn)(10-5)[57].由于BCH糾錯(cuò)能力較低,其主要應(yīng)用于制程精度較低,閃存單元密度較小的固態(tài)硬盤或者嵌入式閃存設(shè)備[58].針對LDPC,其已被廣泛應(yīng)用于制程精度更高、密度更大、可靠性要求更高的固態(tài)硬盤,例如3D閃存固態(tài)硬盤.
LDPC采用2種方式進(jìn)行數(shù)據(jù)糾錯(cuò),包括硬判決和軟判決[59],其實(shí)現(xiàn)過程是:首先,固態(tài)硬盤控制器利用LDPC進(jìn)行解碼糾錯(cuò),若解碼成功則返回?cái)?shù)據(jù)內(nèi)容.該過程稱之為硬判決.若硬判決失敗,則進(jìn)入LDPC軟判決過程.軟判決通過不同探測電壓的讀操作獲得閃存單元數(shù)據(jù)的軟信息.軟信息表示閃存單元存儲數(shù)據(jù)是“0”或“1”的概率.根據(jù)軟信息數(shù)據(jù),LDPC再次進(jìn)行數(shù)據(jù)解碼糾錯(cuò),若解碼成功則返回?cái)?shù)據(jù)內(nèi)容,否則調(diào)整讀操作探測電壓,從而獲得更多軟信息.因此,LDPC的時(shí)間開銷與糾錯(cuò)過程的讀操作次數(shù)成正比.目前,已有大量相關(guān)工作提出對LDPC糾錯(cuò)開銷進(jìn)行優(yōu)化[60-62].
糾錯(cuò)碼的糾錯(cuò)能力與數(shù)據(jù)內(nèi)容和出錯(cuò)特征相關(guān),面對閃存單元制程精度和存儲密度的提高,糾錯(cuò)碼的糾錯(cuò)能力正面臨著更大的挑戰(zhàn).因此,一方面,如何設(shè)計(jì)具有更高糾錯(cuò)能力的糾錯(cuò)碼將成為研究方向之一;另一方面,如何充分利用數(shù)據(jù)內(nèi)容和出錯(cuò)特征,提高現(xiàn)有糾錯(cuò)碼的糾錯(cuò)能力和減少其時(shí)間開銷將成為重要關(guān)注點(diǎn).
固態(tài)硬盤具有高并行結(jié)構(gòu)特性.如圖3所示,固態(tài)硬盤內(nèi)部存在4級并行結(jié)構(gòu),數(shù)據(jù)通過訪問不同并行單元實(shí)現(xiàn)高并發(fā)訪問[63].在4級并行結(jié)構(gòu)中,“通道”和“芯片”級別并行結(jié)構(gòu)稱之為外部并行.“晶圓”和“分組”級別并行結(jié)構(gòu)稱之為內(nèi)部并行.外部并行是固態(tài)硬盤的固有并行結(jié)構(gòu),讀寫請求通過數(shù)據(jù)分配策略可完全利用該并行結(jié)構(gòu).然而,針對內(nèi)部并行,為完全利用該級并行結(jié)構(gòu),固態(tài)硬盤需支持高級命令,且讀寫請求需滿足相關(guān)限制條件[64].
固態(tài)硬盤高級命令包括3種類型:Copyback,Multiplane及Interleave.首先,針對Copyback命令,其可將閃存頁數(shù)據(jù)內(nèi)容遷移至當(dāng)前分組中的可用閃存頁.該命令的優(yōu)勢在于數(shù)據(jù)遷移過程可不經(jīng)過I/O總線,從而減小數(shù)據(jù)遷移時(shí)間開銷[65];其次,Multiplane命令通過在同一晶圓內(nèi)的不同分組中同時(shí)執(zhí)行讀、寫及擦除操作實(shí)現(xiàn)分組級別并行性.然而,Multiplane命令存在2個(gè)限制條件:1)不同分組中執(zhí)行的操作類型相同,即同時(shí)在不同分組中執(zhí)行讀操作或?qū)懖僮骰虿脸僮鳎?)訪問的分組內(nèi)偏移位置相同[66];最后,針對Interleave命令,該命令允許讀、寫及擦除操作在同一閃存芯片內(nèi)的不同分組中同時(shí)執(zhí)行,且不存在限制條件[64].為完全利用固態(tài)硬盤的4級并行結(jié)構(gòu),研究人員分別在外部并行方面和內(nèi)部并行方面進(jìn)行了相關(guān)研究.
外部并行挖掘:基于傳統(tǒng)調(diào)度策略的固態(tài)硬盤無法充分利用外部并行優(yōu)勢,如圖5所示,在配置有64個(gè)閃存芯片的固態(tài)硬盤中,大部分負(fù)載下的閃存芯片利用率均小于30%[40].為解決該問題,大量相關(guān)工作提出了一系列優(yōu)化方案.例如:動(dòng)態(tài)數(shù)據(jù)分配策略通過監(jiān)控閃存芯片狀態(tài),利用貪婪算法將寫請求數(shù)據(jù)寫入當(dāng)前空閑閃存芯片,從而有效提升固態(tài)硬盤外部并行性利用率[39].PIQ(parallel issue queuing)提出在主機(jī)端根據(jù)請求邏輯地址確定訪問的閃存芯片地址,從而通過調(diào)度器同時(shí)發(fā)送多個(gè)無訪問沖突的請求數(shù)據(jù),充分利用固態(tài)硬盤外部并行[40].文獻(xiàn)[67]提出將沖突概率較大的數(shù)據(jù)頁復(fù)制遷移至其他閃存芯片,利用閃存芯片級別并行性減小讀操作受到的沖突阻塞影響.
Fig. 5 Results of utilized flash chips in SSD[40]圖5 閃存芯片利用率測試結(jié)果[40]
內(nèi)部并行挖掘:內(nèi)部并行挖掘的目標(biāo)是如何高效利用分組級別并行性.目前,如圖6所示,在當(dāng)前固態(tài)硬盤中,由于高級命令的限制,其內(nèi)部并行性利用率仍然較低.在支持Multiplane高級命令情況下的并行寫操作平均比例僅為0.088 7%.
Fig. 6 The percentages of parallel writes in SSD[38]圖6 固態(tài)硬盤并行寫測試結(jié)果[38]
為此,相關(guān)工作提出一系列優(yōu)化方法,實(shí)現(xiàn)基于Multiplane高級命令的并行性優(yōu)化方案.例如:PAQ(physically addressed queuing)提出在固態(tài)硬盤控制器層次實(shí)現(xiàn)基于物理訪問地址的調(diào)度策略,該策略通過地址映射表和數(shù)據(jù)分配策略提前確定當(dāng)前請求訪問的分組位置,從而將訪問不同分組的請求并行處理,提高分組級別并行性[68].TBM(twin block management)提出在不同分組的寫入點(diǎn)維護(hù)機(jī)制中采用循環(huán)策略(round-robin policy),將寫入數(shù)據(jù)循環(huán)寫至不同分組內(nèi)偏移位置,從而主動(dòng)適配分組并行的2個(gè)限制條件[69].然而,由于寫請求寫入數(shù)量的不可預(yù)測性,不同分組的寫入點(diǎn)無法保障時(shí)刻對齊狀態(tài),從而限制了分組并行的挖掘.除此之外,研究人員進(jìn)一步提出通過主動(dòng)構(gòu)造滿足分組并行限制條件的數(shù)據(jù)訪問模式.PaGC(parallel GC)提出在不同分組中維護(hù)額外的寫入點(diǎn),這些寫入點(diǎn)具有相同的偏移位置.因此,垃圾回收的數(shù)據(jù)遷移可利用分組并行性同時(shí)進(jìn)行數(shù)據(jù)遷移,從而提高垃圾回收效率[38].類似地,SPD(an SSD from plane to die)提出利用固態(tài)硬盤緩存設(shè)備進(jìn)行訪問模式重構(gòu)[38].SPD通過從緩存設(shè)備中剔除與一個(gè)晶圓內(nèi)分組數(shù)量相同的數(shù)據(jù)頁個(gè)數(shù),并將剔除數(shù)據(jù)對齊寫回不同分組的相同偏移位置實(shí)現(xiàn)分組并行挖掘.基于此,SPD對垃圾回收過程的數(shù)據(jù)遷移采取相同做法,從而保證固態(tài)硬盤的一個(gè)晶圓內(nèi)部的所有分組寫入點(diǎn)均處于對齊狀態(tài),從而完全利用分組并行性.相比于TBM和PaGC,SPD寫請求時(shí)延分別下降42.05%和28.58%.
固態(tài)硬盤的并行性是性能優(yōu)化的一個(gè)重要途徑.當(dāng)前大量相關(guān)工作針對數(shù)據(jù)的訪問特征以及并行性的限制條件進(jìn)行請求調(diào)度、數(shù)據(jù)分配等優(yōu)化設(shè)計(jì),然而,僅從主機(jī)讀寫請求訪問特征角度進(jìn)行并行性挖掘仍存在一定的局限性.由于固態(tài)硬盤存在大量內(nèi)部活動(dòng),例如垃圾回收、磨損均衡、映射條目讀寫等,主機(jī)讀寫請求的訪問特征極易受到固態(tài)硬盤內(nèi)部活動(dòng)的干擾,因此,在固態(tài)硬盤并行性挖掘過程中,研究人員應(yīng)當(dāng)充分考慮固態(tài)硬盤內(nèi)部活動(dòng)帶來的數(shù)據(jù)遷移影響.
隨著制程工藝的進(jìn)步,在保障數(shù)據(jù)可靠存儲的前提下,傳統(tǒng)閃存固態(tài)硬盤的存儲容量難以進(jìn)一步增加.因此,各大閃存廠商提出利用3D堆疊式結(jié)構(gòu)增加單位物理面積下的存儲容量[70].當(dāng)前主流的堆疊技術(shù)包括BiCS[71],P-BiCS[72],VNAND[73]和TCAT[74].以三星公司推出的TCAT結(jié)構(gòu)為例,其結(jié)構(gòu)如圖7所示.閃存單元在3D閃存塊中呈立體堆疊式構(gòu)造,同一水平面上的閃存單元構(gòu)成“層”級結(jié)構(gòu)[75-76].目前,3D固態(tài)硬盤內(nèi)部的閃存單元采用TLC或QLC類型,使得存儲容量進(jìn)一步提升.基于這2種方式,3D固態(tài)硬盤存儲容量已達(dá)到TB級別.
Fig. 7 The architecture of TCAT based 3D flash block[74]圖7 基于TCAT的3D閃存塊結(jié)構(gòu)示意圖[74]
相比于傳統(tǒng)平面固態(tài)硬盤,3D固態(tài)硬盤在結(jié)構(gòu)方面的差異主要體現(xiàn)在閃存塊結(jié)構(gòu).傳統(tǒng)平面固態(tài)硬盤的閃存塊呈現(xiàn)平面結(jié)構(gòu),但3D固態(tài)硬盤閃存塊采用3D垂直堆疊式結(jié)構(gòu),該結(jié)構(gòu)可有效提高單位面積存儲容量.現(xiàn)有3D閃存芯片已實(shí)現(xiàn)128層的堆疊技術(shù).2019年,三星、美光等國外公司相繼推出128層3D閃存芯片[77-78].2020年我國長江存儲研制出128層3D閃存芯片,其推出的XTacking結(jié)構(gòu)通過控制電路與存儲電路堆疊的方式實(shí)現(xiàn)了電路面積的進(jìn)一步縮小,并提高了存儲顆粒生產(chǎn)效率[79].三星公司表示,在未來5年內(nèi)將有望實(shí)現(xiàn)500層的3D閃存芯片堆疊技術(shù),在未來10年,3D堆疊層數(shù)有望突破1 000層.
3D固態(tài)硬盤的另一結(jié)構(gòu)特征是更大尺寸的閃存頁.當(dāng)前3D固態(tài)硬盤最大閃存頁尺寸可達(dá)32KB.這一特征使得上層應(yīng)用的訪問數(shù)據(jù)粒度與3D固態(tài)硬盤閃存頁粒度難以匹配,從而在小尺寸數(shù)據(jù)訪問環(huán)境下,引起3D固態(tài)硬盤性能下降以及壽命退化.類似地,3D固態(tài)硬盤閃存塊內(nèi)部的閃存頁數(shù)量也呈現(xiàn)增長趨勢,從而導(dǎo)致3D固態(tài)硬盤閃存塊的數(shù)據(jù)遷移開銷增大,引起性能下降.
因此,基于3D固態(tài)硬盤結(jié)構(gòu)特征的改變,3D固態(tài)硬盤研究領(lǐng)域?qū)⒊霈F(xiàn)新的挑戰(zhàn):1)3D固態(tài)硬盤作為最新的仍受限于有限的電路空間,3D閃存芯片堆疊層數(shù)無法無限制增加,因此,如何在現(xiàn)有3D結(jié)構(gòu)中進(jìn)一步提高存儲容量將成為3D固態(tài)硬盤的一個(gè)研究重點(diǎn);2)3D固態(tài)硬盤閃存頁具有更大尺寸,閃存塊具有更多閃存頁,因此,如何減少大閃存頁結(jié)構(gòu)下的寫放大問題,以及如何減少閃存塊垃圾回收導(dǎo)致的數(shù)據(jù)遷移時(shí)間開銷將成為3D固態(tài)硬盤的壽命和性能優(yōu)化的研究熱點(diǎn).
在3D固態(tài)硬盤制程粒度方面,由于當(dāng)前3D堆疊技術(shù)采用的制程粒度較大(30 nm至50 nm),因此,3D閃存塊內(nèi)部的層與層之間具有較大的容錯(cuò)空間,從而使得閃存單元之間的錯(cuò)誤干擾(例如編程干擾等)影響較小[50].基于此,3D固態(tài)硬盤可采用“一次編程到位(one-shot programming)”方式提升寫操作吞吐率和性能[80].相比于傳統(tǒng)ISPP編程方式,“一次編程到位”方式可將閃存單元從初始擦除位直接編程至目標(biāo)位.該編程過程要求,所有待編程數(shù)據(jù)需提前確定,從而通過一次編程操作在閃存單元中同時(shí)寫入多個(gè)比特?cái)?shù)據(jù).
然而,由于3D固態(tài)硬盤采用的閃存單元類型從TLC,發(fā)展至QLC,甚至PLC,因此,閃存單元的電壓狀態(tài)分布更為密集,從而使得3D固態(tài)硬盤對可靠性的要求更高.此外,在更高的制程精度下,“一次編程到位”方式將導(dǎo)致3D固態(tài)硬盤比特錯(cuò)誤率增加,進(jìn)一步影響其可靠性,因此,如何進(jìn)一步提高3D固態(tài)硬盤的可靠性將成為未來3D固態(tài)硬盤發(fā)展的重要支撐點(diǎn).
針對3D固態(tài)硬盤性能優(yōu)化,ApproxFTL提出利用3D固態(tài)硬盤的高容錯(cuò)能力,通過近似數(shù)據(jù)寫操作的方式,縮短閃存單元編程電壓范圍,從而在保障數(shù)據(jù)一定可靠性的前提下,實(shí)現(xiàn)更快的編程速度[81].OSPADA提出“一次編程到位”編程方式感知的數(shù)據(jù)布局方法[82].由于“一次編程到位”編程方式在單條字線的閃存單元中同時(shí)寫入多個(gè)數(shù)據(jù),從而導(dǎo)致順序訪問的熱讀數(shù)據(jù)的順序讀性能差.因此,OSPADA提出將熱讀數(shù)據(jù)寫入不同的字線,實(shí)現(xiàn)并行讀操作,提升3D固態(tài)硬盤讀性能.
針對3D固態(tài)硬盤壽命優(yōu)化,相比于同種閃存單元類型(例如TLC)的傳統(tǒng)固態(tài)硬盤,3D固態(tài)硬盤制程粒度較大,因此,其可容忍的編程/擦除次數(shù)更大,使用壽命更長.為進(jìn)一步優(yōu)化3D固態(tài)硬盤使用壽命,ReSSD提出利用3D閃存單元重編程技術(shù)增加閃存單元在一個(gè)擦除周期內(nèi)的存儲比特量,從而減少垃圾回收次數(shù),進(jìn)而提高3D固態(tài)硬盤使用壽命[83].相比于傳統(tǒng)重編程技術(shù),由于3D閃存單元具有更大的制程粒度,且閃存單元之間存儲間距更大,因此,3D閃存單元具有更高的容錯(cuò)能力,從而針對重編程技術(shù)具有更好的適配度,可有效解決重編程問題帶來的可靠性影響.ApproxFTL提出的縮短閃存單元編程電壓范圍的方法同樣可提高3D固態(tài)硬盤的使用壽命,其方法是:對閃存單元寫操作施加小步幅編程電壓,從而減少閃存單元磨損,從而提高3D固態(tài)硬盤壽命[81].
目前,3D固態(tài)硬盤正處于興起階段,其具有不同于傳統(tǒng)固態(tài)硬盤的獨(dú)有特征,例如大閃存頁、大閃存塊以及高容錯(cuò)能力等.在未考慮3D固態(tài)硬盤獨(dú)有特征的情況下,現(xiàn)有的性能和壽命優(yōu)化工作難以取得顯著效果,從而制約了3D固態(tài)硬盤的發(fā)展.因此,如何充分考慮3D固態(tài)硬盤的獨(dú)有特征,設(shè)計(jì)高效的壽命和性能優(yōu)化技術(shù)將成為3D固態(tài)硬盤發(fā)展過程中的關(guān)鍵挑戰(zhàn).
本文從閃存固態(tài)硬盤的基本結(jié)構(gòu)特征、固態(tài)硬盤控制器組件、3D固態(tài)硬盤的結(jié)構(gòu)與優(yōu)化3個(gè)角度出發(fā),詳細(xì)分析了固態(tài)硬盤的結(jié)構(gòu)特征和發(fā)展趨勢,并針對關(guān)鍵技術(shù)內(nèi)容和發(fā)展趨勢進(jìn)行了剖析.現(xiàn)有的固態(tài)硬盤關(guān)鍵技術(shù)能有效提高其性能和壽命,但面對上層高性能應(yīng)用的興起,固態(tài)硬盤現(xiàn)有的訪問性能和使用壽命仍然無法滿足數(shù)據(jù)長期有效存儲以及快速響應(yīng)的嚴(yán)苛需求.因此,如何利用傳統(tǒng)固態(tài)硬盤的結(jié)構(gòu)特征以及高性能應(yīng)用環(huán)境下的數(shù)據(jù)訪問特征,提升固態(tài)硬盤性能和壽命將是一個(gè)重要挑戰(zhàn).此外,面對3D固態(tài)硬盤,如何實(shí)現(xiàn)存儲容量和性能以及壽命之間的權(quán)衡,在滿足大容量數(shù)據(jù)存儲的同時(shí),實(shí)現(xiàn)高性能訪問和長使用壽命也將是3D固態(tài)硬盤的重要研究方向.
首先,針對固態(tài)硬盤控制器內(nèi)部組件,基于各類新型非易失存儲器,如何在控制器緩存設(shè)備中利用新型非易失存儲器的性能優(yōu)勢將對固態(tài)硬盤的性能起到至關(guān)重要的作用.并且,基于固態(tài)硬盤的緩存優(yōu)勢,如何進(jìn)一步實(shí)現(xiàn)基于固體硬盤的智能存儲,將處理數(shù)據(jù)在緩存中進(jìn)行提前處理,從而避免數(shù)據(jù)在傳統(tǒng)I/O棧上的高軟件傳輸開銷;其次,針對閃存轉(zhuǎn)換層,如何在3D固態(tài)硬盤中設(shè)計(jì)高效的閃存轉(zhuǎn)換層,從而減小空間、時(shí)間開銷,提升命中率將是目前的一個(gè)研究難點(diǎn).并且,如何針對新型應(yīng)用,例如神經(jīng)網(wǎng)絡(luò)應(yīng)用,設(shè)計(jì)匹配神經(jīng)網(wǎng)絡(luò)應(yīng)用的閃存轉(zhuǎn)換層也將成為一個(gè)研究熱點(diǎn);此外,針對垃圾回收和磨損均衡,考慮到固態(tài)硬盤內(nèi)部活動(dòng)的復(fù)雜性,如何將請求數(shù)據(jù)特征與固態(tài)硬盤內(nèi)部結(jié)構(gòu)和內(nèi)部數(shù)據(jù)活動(dòng)想結(jié)合,減小垃圾回收頻率以及提高磨損均衡效率將有效提高固態(tài)硬盤的性能和壽命.最后,針對3D固態(tài)硬盤,傳統(tǒng)固態(tài)硬盤優(yōu)化技術(shù)將難以取得有效的性能和壽命優(yōu)化,原因在于,相比于傳統(tǒng)固態(tài)硬盤,3D固態(tài)硬盤在內(nèi)部結(jié)構(gòu)、容錯(cuò)能力、以及編程方式等方面具有不同的特征.因此,為有效提升3D固態(tài)硬盤的性能和壽命,研究人員需充分考慮3D固態(tài)硬盤的獨(dú)有特征,發(fā)揮3D堆疊式結(jié)構(gòu)、高容錯(cuò)能力等優(yōu)勢,實(shí)現(xiàn)高性能、高壽命的3D固態(tài)硬盤.此外,針對國產(chǎn)3D固態(tài)硬盤,研究其特有的堆疊結(jié)構(gòu),發(fā)揮其獨(dú)有優(yōu)勢,從而實(shí)現(xiàn)國產(chǎn)3D固態(tài)硬盤的優(yōu)化設(shè)計(jì)將有助于推動(dòng)國產(chǎn)3D固態(tài)硬盤的普及,助力存儲行業(yè)的發(fā)展.
綜上,固態(tài)硬盤將成為存儲系統(tǒng)的主流存儲設(shè)備.在高性能應(yīng)用環(huán)境下,進(jìn)一步優(yōu)化傳統(tǒng)固態(tài)硬盤和新型3D固態(tài)硬盤的性能和壽命將有助于推動(dòng)固態(tài)硬盤的廣泛應(yīng)用和存儲產(chǎn)業(yè)的發(fā)展.
作者貢獻(xiàn)聲明:高聰明進(jìn)行了該論文相關(guān)實(shí)驗(yàn)設(shè)計(jì)、編碼及測試、論文撰寫等工作;石亮進(jìn)行了前期實(shí)驗(yàn)方案的討論設(shè)計(jì)與論文修改;劉凱進(jìn)行了論文結(jié)構(gòu)討論和修改;薛春進(jìn)行了實(shí)驗(yàn)補(bǔ)充設(shè)計(jì)討論及論文修改;舒繼武進(jìn)行了論文修改以及新型固態(tài)硬盤研究討論.