999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

極小嵌入式系統中閃存轉換層的設計與實現

2017-07-06 10:29:02任小平萬瑞罡羅正華黃建剛
成都大學學報(自然科學版) 2017年2期
關鍵詞:嵌入式系統設計

任小平, 萬瑞罡, 羅正華, 黃建剛

(成都大學 信息科學與工程學院, 四川 成都 610106)

?

極小嵌入式系統中閃存轉換層的設計與實現

任小平, 萬瑞罡, 羅正華, 黃建剛

(成都大學 信息科學與工程學院, 四川 成都 610106)

為解決極小嵌入式系統中大數據量的存儲問題,在對嵌入式設備廣泛采用的NAND Flash的特點進行深入研究的基礎上,設計了一種極小嵌入式設備NAND Flash存儲系統的解決方案.說明了其系統分層結構和功能用途,詳細闡述了閃存轉換層中地址映射、糾錯、壞塊管理、磨損均衡及垃圾收集等算法的設計與實現,并在STM32微控制器上實現了NAND Flash的驅動和管理,驗證了設計的可行性和有效性.

極小嵌入式系統;閃存轉換;磨損均衡;地址映射;壞塊管理

0 引 言

嵌入式系統主要由微控制器、存儲設備、系統總線及I/O外設等結構組成[1].嵌入式系統的存儲能力決定了系統的可定制性、模塊化程度和可編程能力.NAND Flash因其存儲容量大、相對成本低、對機械振動耐受程度高等特點,成為嵌入式設備的主要存儲解決方案[1].隨著智能互聯的發展,在極小嵌入式系統中引入NAND Flash存儲設備已經成為趨勢.由于極小嵌入式系統的資源嚴重受限(RAM<20 KB,ROM<128 KB),因此,系統在引入NAND Flash時需要設計高效的管理算法,并提高NAND Flash的糾錯能力,增強系統的可靠性和掉電恢復能力.

目前,NAND Flash的管理算法[2]分為2種:一種是設計專用的Flash文件系統,這樣具有開銷小、吞吐量大且對Flash友好的特點,但此種方式無法兼容廣泛流行的傳統磁盤文件系統,并且移植困難;另一種是通過設計NAND Flash和傳統磁盤文件系統之間的轉換層(flash translation layer,FTL)來解決上述專用Flash文件系統存在的問題.第2種方式雖然開銷相對較大,但其可兼容磁盤文件系統,方便文件交流,并且對系統改動較小,移植方便,因而得到了廣泛的認可和應用.本研究基于STM32F103C8T6微控制器和GD5F1GQ4UAYIG NAND Flash(規格為1 024塊,每塊64頁,每頁2 112 Byte)的硬件平臺,設計了FTL層,實現了在極小嵌入式系統中NAND Flash存儲系統的有效管理.

1 NAND Flash存儲系統結構

NAND Flash存儲系統總體框圖如圖1所示.硬件部分由NAND Flash器件及其輔助電路組成;軟件部分分為用戶層、文件系統層、FTL層與存儲技術設備(memory technology device,MTD)層.

圖1 存儲系統框圖

系統的用戶層主要為用戶提供文件訪問服務.文件系統層由通用的文件系統實現(如FAT16/FAT32等),主要完成文件管理和為用戶層提供服務接口.FTL層主要實現邏輯的數據讀取與地址管理等功能,對上層提供類似磁盤的固定512 Byte的扇區式操作接口.另外,由于NAND Flash的存儲原理和制造工藝,在設計FTL層時,還需要考慮壞塊的檢測、管理與維護、碎片回收、磨損均衡及異常恢復等情況[3].MTD層實現對Flash類設備的抽象化管理,對上層提供讀、寫、擦除及拷貝頁等功能接口,對下層實現硬件的操作,是系統內最底層的驅動程序.

2 NAND Flash FTL的實現

從功能上劃分,FTL層主要完成地址映射、糾錯、壞塊管理、磨損均衡及垃圾收集等.

2.1 地址映射

地址映射方式有多種,大體上可以分為3類:頁映射、塊映射及混合映射[4].綜合考慮RAM開銷與系統I/O開銷,可以采用以下幾種方法實現地址映射:使用樹狀頁映射,如μ-FTL等;使用緩存映射表算法,如DFTL等;使用混合映射算法,如BAST、LAST、FAST、KAST及Super Block等[5].

在極小嵌入式系統中,受限于系統資源,選擇BAST算法較為合適,同時,也可以通過對BAST算法進行針對化的優化,使其效率得到有效提高.

本設計中,保留5%的物理空間,以3%的數據塊作為日志塊(即32塊).在初始無壞塊的情況下,NAND Flash的用戶空間容量為120 MB.塊地址映射表將包含972個條目,一共2 KB.映射表數據結構如表1所示.

表1 映射表數據結構

單個日志塊的映射表大小為64 Byte,則32個日志塊的映射表大小為2 KB.采用二叉查找樹(binary search tree,BST)構建查找表,地址映射部分僅占用4 KB內存,很好地平衡了內存開銷和I/O調用,滿足了設計要求.

2.2 糾錯算法

NAND Flash由于工藝上的限制,位翻轉的問題較NOR Flash和EEPROM嚴重.因此,設計FTL層時必須考慮糾錯算法.本設計采用GD5F1GQ4UAYIG數據手冊中建議的ECC碼,通過使用芯片本身內置的Hamming ECC引擎來實現數據的糾錯.其數據結構如表2所示.

表2 每頁數據結構

2.3 壞塊管理與保留塊

在初始化NAND Flash時,由于NAND Flash廠商保證第0塊為好塊,因此FTL將選擇第0塊及后續完好的一塊作為保留塊,寫入壞塊表和擦寫次數等信息,并在系統初始化時載入內存.每塊占用2 bit,塊狀態定義如表3所示.

表3 塊狀態表

作為嵌入式系統,穩定性和可靠性應為系統的最基本要求.若系統在運行過程中出現壞塊率大于閾值(2%)或平均擦除次數接近NAND Flash理論擦寫總次數的5/6時,系統將自動進行寫保護,并將出現的不穩定情況通知上層文件系統NAND Flash.

2.4 磨損均衡

GD5F1GQ4UAYIG NAND Flash為SLC結構,單塊僅10 000次的擦寫壽命,因此需要對其實現動態磨損均衡功能,避免對常用塊的頻繁擦寫而出現壞塊.常用的磨損均衡算法可參見文獻[6]所述.與其他算法相比,HWL算法在內存較低的情況下擁有更好的磨損均衡效果,故本研究選擇HWL算法來實現磨損均衡管理.HWL算法本身是不確定性算法,所以在實現該算法時,本研究通過使用在擦除塊/重寫塊時統計每個塊的擦除次數并寫入該塊的方法來統計Flash的預期壽命,進而實現磨損均衡管理.

2.5 垃圾回收算法

根據實際情況,本設計在實現垃圾回收時設定垃圾回收的閾值為系統日志塊的1/2.當日志數量大于日志塊容量的1/2時,系統監視進程將依據HWL算法的計算結果選取相對最“冷”的日志塊與其數據塊進行合并.當系統的日志塊數量接近用完時,程序設計為在寫扇區過程中自動進行日志塊的整理.

被動垃圾回收操作由文件系統實現.文件系統在刪除文件后調用FTL層的刪除扇區命令,然后FTL層將計算扇區范圍和刪除扇區的開銷,若滿足含有1個或多個連續塊的情況,則會啟動垃圾回收算法.

2.6 讀寫操作

在讀操作時,依次對塊映射表和頁映射表的內容進行判斷.如果邏輯地址不存在于塊映射表中,則返回空數據,否則對頁映射表進行判斷.如果邏輯基站不存于頁映射表中,則返回塊映射表內容,否則返回頁映射表中對應內容.其流程圖如圖2所示.

圖2 讀操作流程圖

在寫操作時,由于應用層以512 Byte作為扇區的大小,而NAND Flash每頁的容量為2 048 Byte,所以程序先將數據寫入緩沖區,在下列情況之一發生時,執行寫入操作:系統刷新周期;應用層要求回讀;向其他扇區寫數據,會破壞緩沖區原本數據內容.

具體在寫操作時,先讀取塊映射表,若塊映射表無此邏輯塊的映射信息,則由HWL算法選擇一個空塊,在指定偏移處寫入數據并修改映射表.若塊映射表中有此邏輯塊的映射信息,則判斷此偏移頁是否為空.如果邏輯地址偏移頁為空,則寫入數據,否則,判斷此邏輯塊的映射信息是否存在于頁映射表中.如果邏輯塊的映射信息存在于頁映射表中,則判斷日志塊是否有空頁,否則,以HWL算法分配空塊,并新建頁映射條目.若日志塊的映射狀態為完全連續的狀態,則擦除數據塊,并將原映射塊標記為數據塊.若出現日志塊滿的情況,則啟動垃圾回收.其流程圖如圖3所示.

2.7 FTL接口實現

根據系統工作原理,本研究針對不同的功能,軟件分模塊實現為不同的函數.各函數接口名稱和功能如表4所示.

表4 FTL函數定義及功能說明

圖3 寫操作流程圖

3 MTD子系統的實現

MTD子系統實現對Flash的實際操作,具體函數定義及功能說明如表5所示.

表5 MTD函數定義及功能說明

4 測試與結果

測試在STM32F103C8T6與GD5F1GQ4UAYIG組合的硬件平臺上完成,設置通信速率為18 Mibit/s,以保證不影響NAND Flash的讀寫性能,其硬件實物如圖4所示.

圖4 硬件實物圖

在硬件平臺上運行整個軟件系統,共占用8 KB SRAM與20 KB ROM(包括調試符號),實現了在極小嵌入式系統中大容量存儲系統的高效訪問.同時,對存儲系統進行大塊數據訪問的情況下進行測試,其測試結果如圖5所示.

圖5 大塊數據訪問測試結果

由圖5可知,隨著Flash剩余存儲容量的減少,對Flash訪問速度并未受到影響,系統工作正常.

最后,對系統進行掉電測試,其測試條件為系統正在寫入日志/數據或垃圾回收時,關斷系統電源.測試結果表明,在循環進行1 000次后,系統可順利回滾到上一狀態,沒有出現數據破壞或數據結構損壞的情況.

5 結 論

在資源極度受限的極小嵌入式系統中,本研究通過合理設計FTL層實現了大容量存儲器的訪問,為設備的智能互聯提供了可能.后續的研究可進一步從主動垃圾回收和應用新的頁/日志搜索樹的方式等方面來進一步提升系統的吞吐量和實時性能,實現在極小嵌入式系統中以較低的資源消耗達到類似NAND Flash專用文件系統的效果.

[1]秦曉康,徐惠民.嵌入式設備NAND Flash存儲系統的設計與實現[J].計算機工程與設計,2010,31(3):514-517.

[2]Park C,Cheon W,Kang J,et al.AreconfigurableFTL(flashtranslationlayer)architectureforNANDflash-basedapplications[J].ACM Trans Emb Comp Sys,2008,7(4):202-208.

[3]Chung T S,Park D J,Park S,et al.AsurveyofFlashTranslationLayer[J].J Syst Arch,2009,55(5-6):332-343.

[4]Gupta A,Kim Y,Urgaonkar B.DFTL:aflashtranslationlayeremployingdemand-basedselectivecachingofpage-leveladdressmappings[C]//Proceedingsofthe14thInternatioanlConferenceonArchitecturalSupportforProgrammingLanguagesandOperatingSystems.Washington,DC,USA:ACM Press,2009:229-240.

[5]Lee Y G,Jung D,Kang D,et al.μ-FTL:amemory-efficientflashtranslationlayersupportingmultiplemappinggranularities[C]//ACMInternationalConferenceonEmbeddedSoftware,EMSOFT2008.Atlanta,GA,USA:ACM Press,2008:21-30.

[6]Chang L P.Onefficientwearlevelingforlarge-scaleflash-memorystoragesystems[C]//SAC’07Proceedingsofthe2007ACMSymposiumonAppliedComputing.Seoul,Korea:ACM Press,2007:1126-1130.

Design and Implementation of Flash Translation Layer in Small Embedded System

RENXiaoping,WANRuigang,LUOZhenghua,HUANGJiangang

(School of Information Science and Engineering, Chengdu University, Chengdu 610106, China)

In order to meet the demands of intelligent interconnection development and to deal with the problems of big data storage in small embedded system,the paper,based on a thorough study of the features of the widely used NAND Flash in embedded device,designs a solution to deal with the problems in NAND flash storage system in small device system.The paper also introduces the hierarchical structure of the system and its functions,giving detailed account of the design and implementation of the address mapping,error correction,bad block management,wear leveling,and garbage collection in flash translation layer.Meanwhile,the driving and management of NAND Flash are realized on a STM32F103 board.Furthermore,the study verifies the efficiency and feasibility of this design.

small embedded system;flash translation layer;wear leveling;address mapping;bad block management

1004-5422(2017)02-0168-04

2017-05-02.

任小平(1990 — ), 男, 碩士, 從事嵌入式系統與無線自組織網絡研究.

TP333

A

猜你喜歡
嵌入式系統設計
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
Altera加入嵌入式視覺聯盟
主站蜘蛛池模板: 中国精品久久| 亚洲人成网站观看在线观看| 污污网站在线观看| 18禁不卡免费网站| 日韩无码黄色网站| 一级片免费网站| 久久久噜噜噜久久中文字幕色伊伊| 啪啪永久免费av| 女人18毛片水真多国产| 91综合色区亚洲熟妇p| 久久精品91麻豆| 狠狠亚洲五月天| 欧美伊人色综合久久天天| 国产精品浪潮Av| 久久久久久高潮白浆| 操国产美女| 国产免费高清无需播放器| 美女被躁出白浆视频播放| 成人午夜视频免费看欧美| 国产在线一二三区| 国产欧美中文字幕| 国产成人亚洲欧美激情| 国产欧美精品专区一区二区| 亚洲欧美日韩另类在线一| 九九香蕉视频| 亚洲第一色视频| 无码aⅴ精品一区二区三区| 国产综合亚洲欧洲区精品无码| 久久久久夜色精品波多野结衣| AV网站中文| 国产精品综合久久久| 日本精品一在线观看视频| 91福利片| 久久精品无码专区免费| 亚洲中久无码永久在线观看软件| 国产精品一区二区国产主播| 青青青国产视频手机| 亚洲精品自产拍在线观看APP| av性天堂网| 天天操天天噜| 狼友视频国产精品首页| 国产欧美日韩va另类在线播放 | 这里只有精品在线播放| 亚洲av无码久久无遮挡| av免费在线观看美女叉开腿| 欧美不卡二区| 综合色在线| 99热在线只有精品| 亚洲欧美综合另类图片小说区| 99久视频| 亚洲熟妇AV日韩熟妇在线| 波多野结衣一二三| 欧美精品v| 国产精品永久在线| 欧美影院久久| 久久黄色视频影| 久久综合成人| 香蕉eeww99国产在线观看| 亚洲一级毛片在线播放| 亚洲成a人片77777在线播放| 国产成人1024精品| 欧洲亚洲欧美国产日本高清| 国产v精品成人免费视频71pao| 精品视频一区在线观看| 老司机午夜精品网站在线观看 | AV天堂资源福利在线观看| 免费观看欧美性一级| www亚洲精品| 婷五月综合| 韩日无码在线不卡| 国产一区在线观看无码| 欧美国产三级| 国产色伊人| 孕妇高潮太爽了在线观看免费| 久久永久视频| 亚洲无码久久久久| 亚洲激情区| 97人人做人人爽香蕉精品| 欧美在线综合视频| 欧美一区福利| 亚洲第一av网站| 91久久精品国产|