?

高速大容量數據記錄儀的無效塊信息列表動態刷新算法設計

2017-04-25 08:59張志偉李祖博霍新明
電子器件 2017年2期
關鍵詞:存儲單元大容量存儲系統

張志偉,靳 鴻*,李祖博,霍新明,張 瑞

(1.中北大學電子測試技術國家重點實驗室,太原 030051;2.中北大學儀器科學與動態測試教育部重點實驗室,太原 030051)

高速大容量數據記錄儀的無效塊信息列表動態刷新算法設計

張志偉1,2,靳 鴻1,2*,李祖博1,2,霍新明1,2,張 瑞1,2

(1.中北大學電子測試技術國家重點實驗室,太原 030051;2.中北大學儀器科學與動態測試教育部重點實驗室,太原 030051)

針對流水線技術構建的高速大容量存儲陣列,設計了一種基于FPGA的“無效塊信息列表動態刷新算法”。系統以NAND型Flash為存儲介質,以FPGA為邏輯控制中心,在其內部建立一個一維RAM實現了高速大容量存儲系統的無效塊信息的記錄。仿真結果及可行性分析驗證了“無效塊信息列表動態刷新算法”的可行性,該算法建立的無效塊信息列表的容量不受存儲容量擴展的影響,減少了對FPGA內部資源的占用,在滿足大容量存儲的同時,且不影響高速存儲。

飛行器儀表、設備;高速大容量;FPGA;無效塊;Flash

隨著存儲技術和航空航天技術的飛速發展,在各種飛行器飛行試驗中,基于Flash的高速大容量固態存儲系統作為一種重要的記錄設備,記錄著飛行器的重要工作環境參數和飛行動態參數,為飛行器設計的改進提供了可靠的實驗依據。記錄儀啟動存儲后,為了保證存儲數據的有效性與完整性,在Flash執行讀寫操作之前需要跳過Flash的無效塊。目前常用的無效塊管理的方法有兩種:一是在寫入過程中“判一塊寫一塊”[1],該方法影響Flash的寫入速度,無法實現高速存儲;二是在寫入前建立好無效塊信息列表[2-4],在進行寫操作時,從列表中讀出有效塊地址,但隨著Flash存儲塊數不斷增加以及高速存儲時使用存儲陣列技術,無效塊信息列表就需要進行位擴展或者深度擴展以此滿足大容量高速存儲,該方法增加了軟件設計的復雜度,而且對于有限的FPGA資源來說,RAM的空間大小也有限。以某高速大容量機載雷達實時圖像數據記錄儀為例[5],針對流水線技術構建的高速大容量存儲陣列,設計了一種“無效塊信息列表動態刷新算法”。

1 某高速大容量存儲系統概述

某高速大容量機載雷達實時圖像數據記錄儀系統結構框圖如圖1所示,系統的接口芯片選用了與發送端LVDS串行器MAX9247匹配使用的18位LVDS解串器MAX9250[6],其中低16位用于傳輸數據信息,高2位用來傳輸控制信號;解串后的18位并行LVDS數據經數字隔離芯片ADUM3440數字隔離處理后,最后輸入到FPGA,FPGA檢測到控制信號為“11”時,FIFO開始接收低16位數據,若檢測到控制信號為其他狀態時,FIFO停止接收低16位數據;FIFO滿后,在FPGA的Flash邏輯控制器的控制下寫入Flash存儲模塊中。雷達實時圖像數據存儲系統結構框圖如圖1所示。

圖1 系統結構框圖

系統存儲模塊采用16片NAND型Flash芯片K9WBG08U1作為存儲介質[7-8],每8片組成一組Flash存儲陣列,其中4片采用了8級流水線操[5,9]作用來存儲高8位并行LVDS數據,最快存儲速率可達39.96 Mbyte/s[5],另外4片以相同的流水線方式同步存儲低8位并行LVDS數據,一組Flash存儲陣列存儲速度最高可達39.96×2=79.92 Mbyte/s。兩組Flash存儲陣列結構相同,按順序存儲方式存儲,存儲容量共64 Gbyte。存儲陣列結構原理如圖2所示。

圖2 存儲模塊結構原理圖

2 無效塊信息列表動態刷新算法設計

由于16位并行LVDS數據在寫入過程中需要實現每組Flash的高8位和低8位子存儲單元的同步并行操作,因此每組Flash的兩個子存儲單元必須使用相同的無效塊信息列表才能保證存儲數據的完整性與有效性。

“無效塊信息列表動態刷新算法”根據每組Flash子存儲單元的存儲塊數,建立一個無效塊檢測信息列表,列表地址同步跟蹤存儲單元塊地址。該無效塊檢測過程為:系統每次上電初始化完成后,提前建立第1組Flash存儲單元的無效塊檢測信息列表,第1組Flash存儲單元無效塊檢測過程為:同時對第1組Flash的高8位和低8位兩個子存儲單元執行無效塊檢測,兩子Flash存儲單元的每個相同塊地址的無效塊檢測結果進行“與”運算,“與”運算后的結果標記在無效塊信息列表地址上。第1組Flash存儲單元執行無效塊檢測完畢后,若第1組Flash存儲單元開始存儲,首先讀取無效塊信息列表地址上的內容,若為有效塊,則對該塊開始執行流水線頁加載操作,在此期間,對第2組Flash存儲單元的相同塊地址執行與第1組相同的無效塊檢測操作,“與”運算后的結果重新標記在無效塊信息列表地址上;若為無效塊,則跳過該塊,同時默認該地址對應的第2組Flash存儲單元塊也為無效塊。這樣就保證了第1組Flash存儲單元存儲滿后,第2組Flash存儲單元的無效塊信息列表已經建立完成,系統可以對第2組Flash存儲單元執行流水線頁加載操作。同理,第n組Flash存儲單元存儲滿后,第n+1組Flash存儲單元的無效塊信息列表已經建立完成,系統可以對第n+1組Flash存儲單元執行流水線頁加載操作。無效塊信息列表動態刷新算法工作流程圖如圖3所示。

K9WBG08U1M內部有16384個存儲塊,每塊容量為256kbyte,有效期內無效塊不大于320個[3],那么每組Flash的每個子存儲單元就有16384×4=65536個存儲塊,每組無效塊檢測結果用1位二進制數(‘0’代表無效塊,‘1’代表有效塊)來標記。利用FPGA內部邏輯資源開辟一個容量為64 k×1 bit的RAM,按照“無效塊信息列表動態刷新算法”,整個64 G存儲模塊只需要建立一個一維無效塊信息列表,相對于從位擴展或者深度擴展的無效塊信息列表,減少了FPGA內部資源的利用。

3 仿真與可行性分析

K9WBG08U1M在出廠時已經將每一塊的檢測信息存放在該存儲塊內第1頁和第2頁的第4 096 byte上,通過讀出這兩個字節的數據是否全部為“FF”,就可以判斷該存儲塊的好壞[10],無效塊檢測的具體流程如圖4所示。

圖3 無效塊信息列表動態刷新算法工作流程圖

圖5 Flash無效塊檢測在線仿真時序圖

圖4 Flash無效塊檢測流程圖

圖5為使用SignalTapⅡ Logic Analyzer軟件對Flash執行無效塊檢測操作的在線仿真時序圖,邏輯分析器的采樣時鐘周期選擇Flash的寫時鐘twc(頻率為30 MHz),圖6為第0塊無效塊檢測完畢后的局部放大時序圖。由圖6可以看出當某第0塊無效塊檢測完畢后時,ram數據寫使能ram_wren拉高(寫有效),并將檢測結果標記到RAM中,隨后ram的地址計數器ram_add加1,ram數據寫使能ram_wren拉低(寫無效),開始執行下一塊的無效塊檢測。

由圖5和圖6可知檢測一塊共需要N1=1 576個采樣時鐘,那么檢測一塊所需的時間tcheck為:

tcheck=N1·twc≈52.53 μs

圖6 局部放大后的仿真時序圖

圖7為Flash芯片頁編程操作部分時序圖,Flash經過頁編程的命令(80 h)、地址加載及tADL之后,開始加載數據。數據加載完畢后,再經過頁編程的命令(10 h)加載和tWB之后,Flash進入頁編程狀態。

圖7 Flash頁編程操作部分時序圖

(1)頁編程所有的命令和地址加載時間t1為

t1=7twc

(2)由芯片資料可知:tADL≥100 ns,tWB≤100 ns,取

tADL=4twc

(3)Flash寫滿一頁所需的數據加載時間t2為

t2=4 096twc

(4)Flash寫滿一頁一共所需的加載時間tLOAD為

136.9 μs≤tLOAD=t1+tADL+t2+tWB≤137 μs

tcheck

4 結束語

本文主要介紹了一種高速大容量機載雷達實時圖像數據記錄儀,針對流水線技術構建的高速大容量存儲陣列,設計了一種基于FPGA的“無效塊信息列表動態刷新算法”,該算法建立的無效塊信息列表的容量不受存儲容量擴展的影響,減少了對FPGA內部資源的占用,在滿足大容量存儲的同時,且不影響系統的高速存儲,為高速大容量存儲系統的無效塊檢測提供了一種全新的手段,且具有一定的通用性,可以擴展到所有類似Flash存儲系統中,具有一定的使用價值。

[1] 劉雪飛,馬鐵華,劉廷輝,等. 基于NiosⅡ的新型彈載雙備份數據記錄儀[J]. 火炮發射與控制學報,2015,36(4):59-63.

[2] 史玉健,任勇峰,李輝景,等. 基于Flash的高速數據記錄器的研究與設計[J]. 計算機測量與控制,2011,19(12):3158-3160.

[3] 余輝龍,何昕,魏仲慧,等. NAND型閃存大容量圖像存儲器無效塊管理[J]. 微電子學與計算機,2010,27(2):1-4.

[4] 曹翱翔,張會新,劉文怡,等. 一種高速數字視頻信號記錄裝置關鍵技術研究[J]. 電子技術應用,2015,41(4):87-90.

[5] 任敏,張艷兵,王歡,等. 基于硬件控制的雙通道機載數據記錄儀[J]. 探測與控制學報,2014,36(3):82-85.

[6] 孟令軍,周之麗,文波,等. 基于USB3.0的LVDS高速圖像記錄系統的設計[J]. 電子器件,2015,4(38):812-816.

[7] 魏敏,劉文怡,王金陵,等. 基于交叉雙平面技術的圖像采集存儲系統[J]. 電視技術,2013,37(15):63-66.

[8] 梁永剛,崔永俊,郇弢. 基于NAND型FLASH的雙備份固態存儲系統[J]. 科學技術與工程,2013,13(26):7675-7682.

[9] 任勇峰,張凱華,程海亮. 基于FPGA的高速數據采集存儲系統設計[J]. 電子器件,2015,1(38):135-139.

[10] 劉東海,任勇峰,儲成君. 基于FPGA控制的NAND Flash存儲設計[J]. 科學技術與工程,2013,13(34):10349-10353.

The Design of Invalid Block Information List Dynamic RefreshAlgorithm of High Speed and Large Capacity Data Recorder

ZHANGZhiwei1,2,JINHong1,2*,LIZubo1,2,HUOXinming1,2,ZHANGRui1,2

(1.National Key Laboratory for Electronic Measurement Technology,NUC,Taiyuan 030051,China; 2.Key Laboratory of Electronic Science and Dynamic Measurement of Ministry of Education,NUC,Taiyuan 030051,China)

Due to high speed and large capacity memory array for pipeline technology“invalid block information list dynamic refresh algorithm”based on FPGA is designed. The system takes the NAND Flash as the storage medium,its core is FPGA logic control,establishing a one-dimensional RAM in its interior realizing the detection information of invalid block of high speed and large capacity storage system. Simulation and feasibility analysis results show that its feasibility,The capacity of the invalid block information list established the algorithmis isn’t affected by the expansion of storage capacity. It reduces the occupation of the internal resources of FPGA,at the same time to meet the large capacity storageand don’t affect high speed storage of the system.

instrument and equipment of aerocraft;high speed and large capacity;FPGA;invalid block;Flash

2016-03-21 修改日期:2016-06-30

C:7210G

10.3969/j.issn.1005-9490.2017.02.032

TP333.5

A

1005-9490(2017)02-0420-05

猜你喜歡
存儲單元大容量存儲系統
一種28 nm工藝下抗單粒子翻轉SRAM的12T存儲單元設計
分布式存儲系統在企業檔案管理中的應用
天河超算存儲系統在美創佳績
數據在計算機內存中的存儲形式及實驗驗證
12-20升大容量PET瓶裝式吹瓶機
一種成本更低的全新靜態DRAM存儲單元
MiR-125a-5p is Upregulated in Plasma of Residents from An Electronic Waste Recycling Site
能變出雨衣的18升大容量背包
基于大容量指紋識別的實時身份認證系統
華為震撼發布新一代OceanStor 18000 V3系列高端存儲系統
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合