趙 微,張志永,宗 宇
(北京時代民芯科技有限公司,北京 100076)
高性能海量數據存儲模擬器設計
趙 微,張志永,宗 宇
(北京時代民芯科技有限公司,北京 100076)
介紹了一種高速海量數據存儲系統的模擬器,即基于NANDFlash陣列的數據存儲器模型,該模型采用多通道和多Interleave管理模式,形成以數據存儲、傳輸為核心的數據存儲SoC平臺。主要完成對FTL算法和系統結構的有效性能測試,目前該模型具有一定的有效性,速度快,穩定性高。
數據存儲;高性能;多通道;海量
在社會高度信息化和大數據廣泛應用的今天,如何實現高速采集和海量存儲已經成為數據存儲管理的研究熱點,傳統數據存儲器已經不能夠滿足高速存儲的需求。Flash作為一種半導體存儲器,具有體積小、功耗低、重量輕、堅固耐用等特點,因此被廣泛應用于大數據存儲中。Flash分為NOR和NAND兩種類型[1],NAND相比NOR具有存儲密度大、寫入和擦除速度快、功耗更低、芯片引腳兼容性更好等優點,缺點是存儲容量小、無效塊、管理復雜,使控制管理SoC電路的系統結構復雜。
在軍事和航空航天領域,Flash經常被用作衛星數據存儲器、遙感數據記錄儀、衛星機載微存儲器等。面對星載高性能數據存儲器對大容量、高速度的要求,以及Flash芯片型號的差異、硬件資源和成本等不同因素的存在,使系統資源分配和系統結構評估困難,因此本文重點研究突破高性能海量數據存儲系統中涉及的關鍵管理算法和技術,并基于此用C++語言編寫完成Flash存儲管理軟件模擬器,該模擬器對各個模塊以及相關參數建立有效模型,對數據存儲系統的復雜性、可行性以及系統性能進行有效評估,為真正的高性能海量存儲系統提供可靠技術基礎。
1.1 多通道技術
本模型采用多通道技術,即同時支持多個通道并行傳輸,通過拓寬FlashI/O的位數實現數據宏觀上的并行操作,由4片8位Flash芯片組成32位寬的Flash子模塊,使Flash芯片在邏輯上是連續的,共用相同的控制信號,包括片選信號、讀寫信號、芯片內部地址等。該技術使數據吞吐量提高4倍、8倍甚至16倍。
1.2 多級Interleave級技術
多級Interleave技術讓多個Flash芯片流水線式交替工作。在Flash芯片加載命令、地址和數據之后,芯片開始自動編程,將載入到頁寄存器的數據寫入內部存儲單元,最后進行數據檢測,如果正確,繼續加載數據,如果不正確,則重新編程。本模型采用多級Interleave設計,在時間上實現了復用,以避免Flash芯片由于自動加載時間過長而導致系統性能下降,有效提高存儲速率和存儲容量。
1.3 編碼與解碼
為了保證數據的完整性和可靠性,同時降低電路面積,本模型采用了一種伴隨式-錢搜索混合結構的ECC算法[2]。經過測試表明,該ECC編碼電路通過104個校驗比特可以糾正碼組中任意8位隨機錯誤并且運行可靠,ECC編碼是保證MLCFlash數據可靠性的關鍵,對于2KB/Page的MLCFlash,該算法可以滿足32位隨機錯誤的糾正。

圖2 Flash陣列結構圖
1.4FTL管理算法
閃存轉換層(FTL)使Flash被上層文件系統訪問時就像一個普通的磁盤存儲器,將其模擬成標準的塊設備以屏蔽其寫前擦除的特點,實現文件系統對Flash的讀、寫、擦除操作。目前經典FTL算法的映射策略有很多,本文采用的是改進的S-FTL算法[3],基于分組映射技術的FTL算法,充分減小系統的RAM系統消耗,均衡實現對各擦除單元(塊)的擦除操作,從而延長Flash的使用壽命。
基于多通道技術和多級Interleave技術對系統模型進行設計,使用C++軟件語言完成系統模型的編寫。
2.1 模型的整體框架
模擬器的運行是按照事件驅動來推動各個子模塊的運行,相對于時間驅動,事件驅動使存儲模型的仿真時間大大縮短并且流程更清晰明確。整體結構如圖1所示。該模型由MCU、Buffer、Interleave、Trace、Encoder、Decoder、Dnlink、Uplink8個獨立子模塊組成,其中Trace為輸入激勵模塊,Buffer為緩沖區模塊,Interleave為Flash芯片模塊,Encoder和Decoder分別為編碼和譯碼模塊,各個模塊之間相互獨立并且相互關聯。

圖1 NAND存儲系統的設計框架
2.2Flash存儲優先級
采用多通道和多級Interleave結構設計,NAND的連接框圖如圖2所示。不同通道的NAND結構完全相同,每級Interleave包括相同個數的NAND芯片,所有芯片完全相同且互相獨立,數據最小單位是扇區(Sector),Flash的最小存儲單位是頁。
2.3 編碼與譯碼
Encoder模塊主要功能是對每個數據塊(Sector)生成校驗碼(Crc),校驗碼的位寬通過變量Crcwidth來表示,Crcwidth大小主要由糾錯位數和碼長計算而得,當模擬器寫數據時,Encoder模塊將每個數據塊以及校驗碼共同寫入緩沖區中。Encoder模塊工作示意圖如圖3所示。

圖3 Encoder模塊工作示意圖
Decoder模塊主要功能是計算出每個數據塊進行解碼,并計算出譯碼需要的時鐘周期。譯碼過程如圖4所示,譯碼由取余迭代、錢搜索和ECC糾錯三部分組成,當數據塊譯碼之后將有效數據寫入緩沖區中。

圖4 Decoder模塊工作示意圖
2.4 各模塊的接口
軟件模型借助系統硬件接口的思想,通過某些接口變量實現各個模塊之間的通信,完成不同模塊之間的相互控制和反饋。各個模塊之間的參數接口如圖5所示。整個模擬器看似一個硬件系統,每個子模塊都對各自運作的時鐘進行記錄,子模塊通過事件計算出需要的時鐘周期,依次累加。每個時間節點都需要對參數狀態變量進行更新。
2.5MCU控制單元
MCU模塊作為模型的主要控制單元,對數據的讀寫控制是核心,決定整個模型的運作流程。MCU模塊主要功能是對其他各個模塊進行初始化和設置、狀態監控、發送指令以及中斷處理等,另外內嵌FTL算法和均衡損耗等計算。
在Flash的讀寫控制中,約定不同通道訪問的優先級為channel1>channel2>channel3>…,而每個通道中Flash的優先級是Flash1>Flash2>Flash3…。

圖5 軟件模型中不同模塊之間的接口實現
2.5.1 讀控制
(1)系統上電以后,MCU向各個通道的Flash芯片發送讀指令和讀地址,其發送順序與優先級順序一致,Flash接收到命令后準備需要讀出的數據。
(2)在某一個通道中,一旦某一片Flash進入數據準備好狀態,則Dnlink總線暫停MCU指令的傳輸,開始譯碼數據并存儲至Buffer的空閑頁中。
(3)一旦Buffer中有頁滿狀態,向MCU申請中斷,開啟Uplink總線向主機讀出數據。
2.5.2 寫控制
(1)系統上電以后,Trace模塊作為輸入激勵,開始向Buffer輸入數據直到所有數據都傳輸完畢。同時MCU依次向各個通道的Flash發送寫指令和地址,直到Buffer出現頁滿中斷或者所有的Flash處于等待數據的狀態。
(2)一旦Buffer中有頁滿狀態,向MCU申請滿中斷,如果對應Flash寫入指令結束,則開始啟動數據傳輸,否則等待繼續等待指令。
(3)Buffer向Flash傳輸一個整頁之后,相應頁為空,繼續從Trace模塊接收新的數據。
根據理論硬件系統,設定模型的各個參數:Decoder和Flash的工作頻率為40MHz,其他模塊的工作頻率為80MHz,扇區大小為1 024B,Flash頁大小為4 096B,Uplink的數據帶寬為64bit,Dnlink的數據帶寬為8bit。Flash的命令和地址以及編程、讀、擦除需要的時間均根據對應的芯片手冊進行參數設置。本次仿真中Flash的頁編程時間為200μs,頁讀取時間為25ns,塊擦除時間為1 500μs。模擬器的工作流程如圖6所示。

圖6 主函數流程圖
為了獲得最優的系統結構,對1 024個扇區數據進行讀寫測試,針對系統通道(channel)數量、Interleave級別數量以及Buffer中的頁(page)數量進行仿真測試,對應結果分別如圖7、圖8、圖9所示。其中左側為讀測試結果,右側為寫測試結果。
圖7中,在Page頁數和Interleave級別不變的情況下,通道個數對讀、寫速度均有很大的影響,隨著通道個數的增多,讀寫速度越來越快,呈現線性增長的趨勢。但代價是通道個數越多對緩沖區的空間需求就越大。圖8中,無論通道個數為多少,Interleave級別對讀速度影響很小,對寫速度來說有一個飽和值,當Interleave級別達到3之后,寫速度保持峰值不變。圖9中,緩沖頁個數對讀和寫速度的影響均很小。

圖7 通道個數對速度的影響

圖8 Interleave級別個數對速度的影響

圖9 Buffer中Page個數對速度的影響
因此,在配置系統結構時應使通道個數盡量取大,但是應該避免出現只有一個緩沖頁或者Interleave級別大于3的情況。從結果看出,本模擬器能夠為FTL算法和ECC算法進行評估,而且為優化系統資源和系統結構提供可靠的技術支持。
本文介紹了一種大容量、高數據吞吐率的數據存儲模擬器,以系統結構和系統性能作為主要出發點,對系統中涉及的關鍵技術和算法進行重點分析。多次仿真結果表明該模擬器能真實有效地對資源優化配置和性能評估提供可靠的技術指導,下一步需要對模擬器繼續優化完善,例如增加數據壓縮等功能。
[1] 朱知博.基于NANDFLASH的高速大容量存儲系統設計[J].現代電子技術,2011,34(8):170-173.
[2] 張志永,宗宇,褚曉斌.航天計算機與微電子專業組學術會議經文集[C].北京:中國航天科技集團公司科技委,2013.
[3] 張志永,宗宇,謝俊玲,等.航天計算機與微電子專業組學術會議論文集[C].北京:中國航天科技集團公司科技委,2014:326-331.
Designofhighperformancemassdatastoragesimulator
ZhaoWei,ZhangZhiyong,ZongYu
(MXTronicsCorporation,Beijing100076,China)
Thepaperintroducesadesignschemeofhigh-speedmassdatastorage,whichisbasedonFlasharray.Themodelusesthemuti-channelandmulti-interleavemanagementmode.Itformsasystemonachip(SoC)platformofdatastoragewhichtakesdatastorageanddatatransmissionascore.MaintagetistocompletetheperformancetestofFlashtranslationlayer(FTL)algorithmandstoragesystemstructure.Nowthismodelisprovedtobevalid,fastspeedandhighstability.
datastorage;highperformance;multiplechannel;massstorage
TP
ADOI: 10.19358/j.issn.1674- 7720.2016.22.012
趙微,張志永,宗宇. 高性能海量數據存儲模擬器設計[J].微型機與應用,2016,35(22):43-46.
2016-05-22)
趙微(1988-),通信作者,女,碩士,工程師,主要研究方向:嵌入式系統。E-mail:zhaowei0425@126.com。
張志永(1981-),男,碩士,高級工程師,主要研究方向:嵌入式系統。
宗宇(1972-),男,本科,研究員,主要研究方向:IC設計。