王靜, 馬婷婷, 杜科, 丁德鋒
(上海無線電設備研究所,上海 200090)
基于FLASH陣列的高速存儲系統設計
王靜, 馬婷婷, 杜科, 丁德鋒
(上海無線電設備研究所,上海 200090)
介紹了一種高速存儲系統的設計方案。系統采用NAND Flash構建存儲陣列,通過并行操作技術和流水操作技術提高存儲帶寬和存儲容量。針對Flash陣列的操作管理和壞塊檢測問題,引入信息表管理方式進行高效智能化管理,保證系統可靠性同時提高了系統靈活性。測試結果表明,該系統存儲速度高、存儲容量大、穩定性高。
高速存儲器;FLASH陣列;智能化管理
數據存儲系統是現代多功能雷達系統的重要組成部分,以保存在研制過程中各種試驗數據進行后續分析處理。由于現代雷達系統采樣率、分辨率較高,對存儲系統的存儲容量和存儲帶寬提出了較高的要求。
另外,由于彈載或者掛飛試驗時環境相對比較惡劣,而且其系統存放空間有限,這就要求存儲系統體積小、能夠抗震動沖擊。
目前常用的存儲方案主要有磁帶存儲、磁盤存儲、光存儲、半導體存儲等。這些存儲技術由于各自的缺點已經不適用對惡劣環境下的高速數據存儲。Flash作為一種新興半導體存儲器具有非易失、功耗低、體積小、重量輕、可靠性高等優點,成為復雜環境下數據存儲設備的首選存儲介質[1]。
Flash技術主要有2種類型:NOR和NAND。相比NOR Flash,NAND Flash具有存儲密度更高、功耗更低、芯片引腳兼容性更好和成本效益更高等優點,因此,更適于大容量數據存儲場合[2]。
單片NAND Flash芯片本身存在存儲容量小、寫入速度慢、存在無效塊等缺點[3],因此必須采用合理的硬件設計和邏輯控制來克服。當前主流的存儲模塊多采用多片Flash并行的思想來提高存儲速度,但卻存在存儲帶寬不夠、存儲功能單一等缺點。本文構建Flash陣列采用并行加流水操作模式獲得較大存儲帶寬,另外,本文通過操作信息管理模塊來進行無效塊和操作信息的管理,在保證存儲可靠性同時提高了存儲的靈活性,可以實現更高效和智能化的Flash陣列管理和訪問機制。
1.1 存儲系統硬件架構
基于Flash陣列高速存儲系統主要由NAND Flash陣列、高性能FPGA、高速ADC、USB數據傳輸等模塊構成,其結構框圖如圖1所示。
系統分為外場試驗模式和數據驗證模式兩種工作模式。外場試驗模式時,高速ADC根據USB命令傳輸來的控制參數按照特定的時序采集原始信號,經FPGA緩存后存儲在Flash陣列中。試驗結束后,根據USB命令傳輸的數據讀取指令,將Flash陣列中的數據經FPGA緩存后通過USB將數據傳輸到計算機。
數據驗證模式時,將PC機上原始數據文件寫入到Flash陣列中,FPGA控制Flash陣列按照時序將數據讀出,并通過高速接口傳輸到信號處理板進行信號處理的驗證。
1.2 Flash陣列設計

圖1 彈載SAR高速存儲系統結構框圖
NAND Flash芯片選用SAMSUNG公司的K9WBG08U1M,位寬為8位,容量為4 G*8 bit,最大訪問速度為40 MB/s[4]。為了達到200 MB的讀寫帶寬和256 GB的存儲容量,系統中采用8組Flash芯片并行操作,每組內8片FLASH流水讀寫的方式,另外為了進行操作信息和壞塊信息的存儲,每組內又多加了一片Flash。這樣,整個存儲系統由72片Flash芯片組成Flash陣列,其結構框圖如圖2所示。
為了在有限的面積內排放72片Flash芯片,在布局布線時需要采取一些措施在減少體積的同時保證系統功能,例如Flash器件正反面重疊放置、共用Flash寫保護電路、電源模塊電路、重組Flash數據線方便FPGA連線等。
2.1 Flash陣列管理的模塊組成
彈載SAR高速存儲系統的Flash陣列管理架構如圖3所示。FPGA接收USB的命令,判斷并解析命令的類型對Flash進行相應操作。整個管理系統主要包括輸入數據控制模塊、存儲表信息模塊、Flash控制模塊、非流水模式Flash控制模塊、流水模式Flash控制模塊、輸出數據控制模塊以及USB命令解析模塊。其中,流水模式Flash控制模塊用于管理每組前8片芯片,完成流水模式下Flash的擦除、讀、寫等操作,非流水模式Flash控制模塊用于管理每組第9片芯片,完成信息的存儲功能。

圖2 Flash陣列結構圖

圖3 FLASH陣列管理的整體架構
整個系統的信息管理由非流水模式Flash控制模塊和存儲表信息模塊共同組成,用于存儲和管理所有Flash芯片的操作信息和壞塊信息。Flash控制模塊控制整個Flash陣列操作的過程,完成Flash芯片的擦除、寫、讀等操作。
2.2 流水操作技術
Flash的寫入首先是寫寄存器,再進行自動頁編程。寫寄存器時間很短,以每個Flash芯片的接口速度為25 MB/s來進行設計,一頁寫寄存器的時間為105.6 us,而頁編程時間最大為700 us[5],利用這一特點,對Flash采用流水方式進行讀寫操作,在頁編程期間,可以進行頁編程時間/寫頁寄存器時間=700 us/105.6 us≈7,說明經過7組的頁寫入加載操作后,第1組Flash編程結束,又可以進行再次循環加載。因此,采取每組并行8片Flash組成流水線結構,如圖4所示。這樣在時間上實現了復用,縮短了整個Flash陣列的頁編程周期,提升了整體Flash陣列的寫速度。

圖4 Flash流水操作示意圖
2.3 壞塊列表建立和更新
Flash芯片在出廠時,在每一塊第1頁和第2頁的空閑區的首字節處標記了是否為壞塊[6],因此初步建立壞塊列表時要檢查第1頁和第2頁信息,如果不是FFH則為壞塊,需要做出標記,這樣進行讀寫或擦除時才能屏蔽掉壞塊保證信息存儲的正確性。
另外,Flash在長期使用過程會產生新的壞塊[7],需要及時對壞塊信息進行更新。建立壞塊列表和更新壞塊列表流程如圖5(a)所示。RAM存儲列表更換的詳圖,如圖5(b)所示。

圖5 建立及更新無效塊列表流程圖
在進行壞塊表存儲時,若每片Flash都獨自建立壞塊列表,會大大增加存儲容量和復雜度,由于Flash芯片總的壞塊數量很少,把每組8片Flash各自的壞塊信息相與,建立一個以組為基準的壞塊列表,那么對每組Flash的操作控制都基于一個壞塊列表,實現和操作起來更加簡單。
2.4 操作信息管理
為了保證信息存儲的可靠性與靈活性,必須對Flash陣列的操作信息和壞塊信息進行管理。在對Flash陣列進行流水線讀寫和擦除之前,需要讀取壞塊列表信息以及相應的操作基本信息, Flash操作完成以后,需要相應的更新這些信息,為后續操作提供依據。
在進行壞塊信息管理時,對讀、寫操作分別建立獨立的壞塊列表,讀操作時對應的壞塊列表為讀表,寫操作時對應的壞塊列表為寫表,寫表更新以后,讀表相應的進行更新,保證讀寫表的一致性。讀寫表的獨立管理不僅使得設計簡明操作簡單,而且還可以防止寫操作過程中出現新的壞塊。
本文對寫表、讀表和操作基本信息表統一管理,管理流程及存儲表信息如圖6所示。采用FPGA內部的雙口RAM和每組第9片Flash來共同存儲信息表,Flash地址與RAM地址是一一對應的。
操作過程中出現壞塊以及產生的操作基本信息,可以先更新RAM信息,等存儲操作結束后再將更新的RAM信息寫入Flash中保存。這樣讀取或更新所有表信息時,只需對FPGA內部RAM進行操作,提高了訪問速度,而系統掉電后所有信息都保存在Flash中,保證信息不會丟失。

圖6 操作信息管理流程及存儲表信息
在實驗室環境下,以彈載SAR雷達導引頭為例,按照圖7所示搭建的測試平臺對整個系統進行測試。

圖7 系統測試平臺
3.1 存儲基本功能測試
該高速存儲系統具有的基本功能:擦除、數據文件寫入、數據讀取、Flash狀態檢測(包括ID號、當前狀態、操作次數以及使用量等)。
讀寫測試時,PC機將指定數據文件write. bin通過USB接口寫入到Flash陣列中,存儲結束后,再通過USB接口將讀取的數據上傳到PC機并存儲在read.bin中,通過write.bin和read. bin的數據對比,可以驗證該高速存儲系統數據讀、寫、無效塊管理的正確性。
3.2 實時存儲驗證
對彈載SAR雷達導引頭產生的信號進行采集和存儲,高速ADC的采集速率為200 MB/s,存儲時間持續20 min。采集結束后,從FLASH陣列中讀取的數據通過USB上傳到PC機中,在PC機中對存儲的數據進行分析。通過數據對比和驗證,該高速存儲系統能夠完成20 min的數據完整不間斷的存儲,圖8為利用ChipScope軟件進行讀、寫操作并將數據讀入到Matlab中畫圖顯示結果。

圖8 實時存儲驗證結果
本文采用FPGA和NAND Flash陣列構建高速存儲陣列,通過并行+流水的方式提高了數據存儲的帶寬,增大了存儲容量。采用對操作信息表及無效塊進行專項管理技術,增強了Flash操作的靈活性,避免了對壞塊的操作,保證了數據高度準確性。
試驗表明,該高速存儲系統具有體積小、操作靈活、可靠性高等特點,既可以作為高速數據實時采集存儲系統也可以作為數據回放驗證系統,可以滿足SAR雷達或者寬帶雷達的數據存儲需求。
[1] 朱知博.基于NAND FLASH的高速大容量存儲系統設計[J].現代電子技術,2011,34(8):170-173.
[2] 胡世明,康懷祺,騰云龍.高速大容量存儲系統的應用設計[J].火控雷達技術,2012,41(1):34-38.
[3] 李毅.高速數據采集、存儲及處理系統設計[D].西安:西安電子科技大學,2009.
[4] Samsung.K9XXGG08XXM Flash Memory Data-Sheet rev.13[EB/OL].http://www.sumsung.com,2011.
[5] 李超,王虹現,邢孟道.高速大容量Flash存儲系統設計[J].火控雷達技術,2007,36(3).
[6] 張勝勇,高世杰,吳志勇,等.基于FPGA的NAND FLASH壞塊處理方法[J].計算機工程,2010,36(6):239-241.
[7] 侯佳娜,姚愛琴,孫運強.提高FLASH存儲系統速度和安全性的研究[J].儀表技術,2009,(12):45-47.
Design of High-speed Storage System Based on FLASH Array
WANG Jing, MA Ting-ting, DU Ke DING De-feng
(Shanghai Radio Equipment Institute,Shanghai 200090,China)
Design of storage system and the implementation of the system is preduced. NAND Flash is used to construct the storage array;the parallel bus operation and pipeline operation technique is used in the system to improve storage capacity and bandwidth.The information table is introduced to solve the problem of management of this Flash array and invalid-block problem reliability and flexibility.Test results indicate that this storage system features high-speed,large capacity and stable performance.
high-speed storage;FLASH array;intelligent managenat
TN958
A
1671-0576(2014)02-0028-06
2013-10-08
王靜(1984-),女,工程師,碩士,主要從事SAR信號處理技術研究。