<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于FPGA的NAND Flash的分區續存的功能設計實(shí)現

基于FPGA的NAND Flash的分區續存的功能設計實(shí)現

作者:曾鋒,徐忠錦(北京青云航空儀表有限公司,北京 101399) 時(shí)間:2023-08-19 來(lái)源:電子產(chǎn)品世界 收藏
編者按:傳統的控制器只能從NAND Flash存儲器的起始位置開(kāi)始存儲數據,會(huì )覆蓋上次存儲的數據,無(wú)法進(jìn)行數據的連續存儲。針對該問(wèn)題,本文設計了一種基于FPGA的簡(jiǎn)單方便的NAND Flash分區管理的方法。該方法在NAND Flash上開(kāi)辟專(zhuān)用的存儲空間,記錄最新分區信息,將剩余的NAND Flash空間劃成多個(gè)分區。本文給出了分區工作機理以及分區控制的狀態(tài)機圖,并進(jìn)行了驗證。


本文引用地址:http://dyxdggzs.com/article/202308/449749.htm

0 引言

隨著(zhù)現代技術(shù)的發(fā)展,越來(lái)越多的系統采用芯片實(shí)時(shí)記錄數據, 越來(lái)越大的容量讓系統可以存儲更大量的數據和更長(cháng)的時(shí)間。但是,隨著(zhù)系統的變得復雜,對數據的存儲也提出了更高的要求。傳統的 控制器每次存儲都是從Flash 的零地址開(kāi)始,本次存儲任務(wù)結束后,當系統再次開(kāi)啟存儲后,再次從零地址開(kāi)始存儲。新的數據會(huì )寫(xiě)覆蓋之前的數據,無(wú)法實(shí)現數據的續存,使得NAND Flash使用起來(lái)十分不便;而且數據反復地從零地址開(kāi)始存儲,造成NAND Flash存儲器的使用上的不均衡,影響其壽命[1]。

本文提出了一種基于的NAND Flash 續存功能的控制器實(shí)現方法:NAND Flash控制器根據控制對象的特點(diǎn),將NAND Flash劃分多個(gè),利用其自身的某一空間記錄最新的地址信息,控制器在初始化時(shí)通過(guò)讀取最新的分區地址信息,自動(dòng)跳過(guò)該分區,在下一分區開(kāi)始存儲,同時(shí)更新最新的分區地址信息。通過(guò)這種方法,可以靈活地實(shí)現NAND Flash 控制器分區續存的功能,解決了數據不能續存的問(wèn)題,同時(shí)也解決了NAND Flash 存儲器的使用的不均衡的問(wèn)題。

1 電路說(shuō)明

NAND Flash芯片使用型號是三星公司的K9K8G08U0A,單片容量為1 G x 8 Bit。該芯片總共有8 192 個(gè)塊(Block),每個(gè)塊中含有64 頁(yè)(Page),每頁(yè)共2112 個(gè)字節(前2 048 個(gè)主存儲空間+64 個(gè)擴展空間)。芯片容量結構如圖1 所示。

1692436589846785.png

圖1 NAND Flash內部存儲空間結構圖

使用型號為Xilinx 公司Virtex II 系列的XC2V1000,芯片內部有5 120 個(gè)Slice、40 個(gè)乘法器、720 kbit 的RAM 模塊資源、320 個(gè)用戶(hù)I/O 引腳。

2 NAND Flash控制器設計

2.1 控制器概述

NAND Flash 控制器結構框圖如圖2 所示,一共分為應用層和接口層2 部分,接口層負責與NAND Flash的讀、寫(xiě),擦操作的接口;應用層負責調用接口層模塊,同時(shí)完成NAND Flash 控制器的控制功能,分區續存功能設計在工作控制模塊中[2]。

1692436690797181.png

圖2 控制器結構框圖

2.1.1 分區設計

本型號NAND Flash 一共有8 192 個(gè)塊,塊地址從0~8 191。其中塊0、塊 1 用作狀態(tài)存儲區,其中塊0 用于壞塊表的存儲,塊1 用于存儲本次數據記錄用到的最新分區的地址信息;塊2~ 塊8 191 作用數據存儲區,共計8 190 個(gè)塊,在本設計中,將這8 190 個(gè)塊分為10個(gè)分區,分別為分區0~9,每個(gè)分區有819 個(gè)塊。分區設計結構如圖3 所示[3]。

1692436812272021.png

圖3 NAND Flash分區結構

數據存儲區的每個(gè)分區的和結束地址見(jiàn)表1。

表1 分區與結束地址

1692436905496616.png

2.1.2 分區工作機理

NAND Flash 控制器上電后,需要先讀取到上一次存儲的NAND Flash 的分區地址信息,所以需要有一塊專(zhuān)門(mén)的空間用于存儲該地址[4-5]。在本設計中,利用NAND Flash 的塊1 的第0 頁(yè)專(zhuān)門(mén)的用于存儲該地址信息,使用分區的作為分區的地址信息。

最新分區的地址信息需要動(dòng)態(tài)更新??刂破鳙@取起始地址信息后,根據分區大小,自動(dòng)計算出下一分區的首地址作為本次存儲操作的起始地址??刂破飨葘⒂嬎愫蟮钠鹗嫉刂沸畔⒏轮翂K1 的第0 頁(yè)處,然后從計算后的起始地址開(kāi)始,進(jìn)行數據存儲操作。當數據存儲操作超過(guò)本次分區的地址范圍,則控制器在跨分區時(shí),再次計算出下一分區的起始地址,并更新最新分區地址至塊1 的第0 頁(yè)處,從而實(shí)現了最新分區起始地址的實(shí)時(shí)更新[6]。

2.1.3 分區地址的存儲

NAND Flash 存儲器塊1 中的第0 頁(yè)為最新分區的首地址存儲區,存儲的數據格式如圖4 所示。第0 頁(yè)的第0、1 字節為最新分區首地址;第0 頁(yè)的其他的數據皆為0xCB,該數據用于大量數據讀取時(shí)的檢索,能夠方便地找到最新分區的首地址存儲區。

1692437298911344.png

圖4 分區信息存儲結構

由于塊1 反復地被更新寫(xiě)入最新分區的起始地址,需要估算塊1 的使用壽命:本次應用中,根據系統的要求,要存儲的數據量為每間隔5 ms 存儲256 個(gè)字節,可計算得到存儲的數據量為51 kbit/s,則存滿(mǎn)1 頁(yè)需要40 ms,存滿(mǎn)1 塊需要2.56 s,存滿(mǎn)1 個(gè)分區需要約38 min, 即大約每隔38 min 就要對塊1 進(jìn)行1 次寫(xiě)操作。根據NANDFlash 壽命按10 萬(wàn)次寫(xiě)操作計算[7],則NAND Flash 塊1 在本系統中的使用時(shí)長(cháng)約為6.3 萬(wàn)h,能夠滿(mǎn)足正常的使用需求。

2.1.4 分區狀態(tài)機的設計

根據分區機理, 的工作控制模塊設計了分區相關(guān)的狀態(tài)機,狀態(tài)機流程如圖5 所示,狀態(tài)跳轉如下:上電后,狀態(tài)機從狀態(tài)1 跳轉至狀態(tài)2,判斷初始化是否結束。等待初始化結束后,狀態(tài)機跳轉至狀態(tài)3,讀取塊1的第0 頁(yè)中的數據,得到上一次的分區信息;在狀態(tài)4 中計算中更新本次要操作的最新的分區地址。狀態(tài)機依次跳轉至狀態(tài)5、6,將更新后的最新分區地址寫(xiě)入塊1 的第0 頁(yè),且更新本次操作的塊地址。狀態(tài)機跳轉至狀態(tài)6,進(jìn)行正常的數據存儲操作。狀態(tài)7、8,9 為正常的連續寫(xiě)操作狀態(tài)。狀態(tài)10 時(shí)判斷是否超出本分區,如果超出,則跳轉至狀態(tài)4 重新計算并更新分區地址,否則跳轉至狀態(tài)6 繼續存儲數據。

1692437704657426.png

圖5 狀態(tài)機轉換圖

當電路下電,再次上電后,狀態(tài)機會(huì )跳過(guò)上一次操作的分區,從下一分區開(kāi)始存儲數據,保證了數據存儲的連續性,前一次的存儲的數據不會(huì )被本次數據覆蓋,本次數據前一次操作的分區的下一分區進(jìn)行存儲。

3 驗證情況

驗證的電路框圖如圖6 所示。在NAND Flash控制器中進(jìn)行驗證,分區功能嵌入在工作控制模塊中,在FPGA 中設計1 個(gè)模擬數據源,模擬系統發(fā)送的數據,每隔5 ms 寫(xiě)入256 個(gè)字節數據;通過(guò)維護串口與上位機進(jìn)行通信,可以通過(guò)上位機啟動(dòng)控制器工作和停止,讀取塊1 的數據等[8]。

1692437796223128.png

圖6 壞塊表模塊驗證電路框圖

驗證內容分為兩部分,首先為不跨分區的自動(dòng)續存功能驗證,其次為跨分區的自動(dòng)續存功能驗證。

不跨分區驗證時(shí),驗證的存儲時(shí)長(cháng)約為1 min。先通過(guò)維護串口與上位機發(fā)送讀取命令,先讀取塊1 的數據,得到本次存儲前的最新分區信息,然后發(fā)送存儲命令,1 分鐘后直接下電重啟,再次讀取塊1 的數據,對比第2 次讀到的最新分區信息,如圖7 所示。存儲前分區信息為0×0CCE,即分區4。存儲后分區信息為0×1001,即分區5。說(shuō)明本次存儲的數據在分區5,成功跳過(guò)了分區4,分區4 為上一次存儲的空間。

image.png

image.png

圖7 不跨分區試驗結果

跨分區驗證的存儲時(shí)長(cháng)約為45 min,大于38 min,以確保存儲的數據能夠超過(guò)1 個(gè)分區。先通過(guò)上位機發(fā)送讀取命令,先讀取塊1 的數據,得到本次存儲前的最新分區信息,然后發(fā)送存儲命令,45 分鐘后下電重啟,再次讀取塊1 的數據,對比第2 次讀到的最新分區信息,如圖8 所示。存儲前分區信息為0×1001,即分區5。存儲后分區信息為0×1667,即分區7。說(shuō)明本次存儲的數據在分區6 和分區7,成功實(shí)現了跨過(guò)分區的存儲和更新了最新分區地址信息。

image.png

image.png

圖8 跨分區試驗結果

綜上,通過(guò)實(shí)驗證明,本文設計的基于FPGA 的自動(dòng)分區續存功能夠正確地實(shí)現,方法簡(jiǎn)單便捷,滿(mǎn)足系統對NAND Flash 存儲器芯片的多次存儲的控制需求。

4 結束語(yǔ)

本文提出了一種基于FPGA 的自動(dòng)分區續存功能的方法,該方法簡(jiǎn)單方便的實(shí)現了存儲器的分區管理,滿(mǎn)足了數據分區續存的需求,并得到了試驗證明。該方法的分區續存功能準確可靠,目前已經(jīng)在實(shí)際產(chǎn)品中得到了應用和驗證。

參考文獻:

[1] 賈鑫,張少平.基于貪婪策略的NAND Flash存儲器的磨損均衡算法研究[J].計算機科學(xué),2017,44(11).

[2] 劉俊.基于FPGA的FLASH控制器設計[J].電子技術(shù)與軟件工程,2016,23(11).

[3] 任勇峰,周濤.基于Flash的侵徹關(guān)鍵信號分區存儲方法[J].探測與控制學(xué)報,2015,37(5).

[4] 李遠哲,賀海文.嵌入式系統大容量NANDFlash存儲器分區管理設計[J].計算機測量與控制,2019,2.

[5] 濮建福, 李世健.延長(cháng)E E PROM使用壽命的均勻磨損算法[J].電子設計工程,2016,24(8).

[6] 鄒姍蓉,李杰.基于FPGA的智能分區存儲系統設計[J].電子器件,2016,39(6).

[7] 張卓,任家峪.一種基于NAND Flash基帶數據模擬源的設計與實(shí)現[J].太赫茲科學(xué)與電子信息學(xué)報,2016,14(5).

[8] 張子明, 吳海建, 等. 基于F P G A的閃存XX29F系列讀寫(xiě)裝置的設計[J].測控技術(shù),2016,35(7).

(本文來(lái)源于《電子產(chǎn)品世界》雜志2023年8月期)



關(guān)鍵詞: 202308 NAND Flash FPGA 分區 起始地址

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>