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

高可靠文件系統(tǒng)在傳動(dòng)控制領(lǐng)域的實(shí)現(xiàn)與優(yōu)化

2022-01-25 06:30:42王成杰付建國
船電技術(shù) 2022年1期
關(guān)鍵詞:工程

周 斌,李 益,王成杰,付建國

應(yīng)用研究

高可靠文件系統(tǒng)在傳動(dòng)控制領(lǐng)域的實(shí)現(xiàn)與優(yōu)化

周 斌,李 益,王成杰,付建國

(中車株洲電力機(jī)車研究所有限公司,湖南株洲 412000)

工業(yè)傳動(dòng)控制領(lǐng)域具有大容量數(shù)據(jù)存儲(chǔ)的需求,為了防止數(shù)據(jù)存儲(chǔ)過程中突發(fā)斷電引起的文件系統(tǒng)損壞,本文提出在VxWorks操作系統(tǒng)上掛載高可靠文件系統(tǒng)。該事務(wù)型文件系統(tǒng)具備掉電安全特性,可確保數(shù)據(jù)可靠穩(wěn)定存儲(chǔ)。針對NAND閃存,本文提出一種驅(qū)動(dòng)層映射方案,實(shí)現(xiàn)存儲(chǔ)容量的擴(kuò)展;另外,將硬件ECC校驗(yàn)嵌入高可靠文件系統(tǒng)中,有效提升了系統(tǒng)的校驗(yàn)?zāi)芰驮L問速度。

高可靠文件系統(tǒng) VxWorks 掉電安全 硬件ECC校驗(yàn)

0 引言

伴隨著工業(yè)智能化的發(fā)展,工業(yè)傳動(dòng)控制領(lǐng)域需要大量的數(shù)據(jù)采集與分析,要求具備穩(wěn)定的大容量數(shù)據(jù)存儲(chǔ)和高效的I/O讀寫能力。但由于現(xiàn)場掉電不可控,可能發(fā)生異常掉電導(dǎo)致系統(tǒng)崩潰的問題,為了保證數(shù)據(jù)可靠存儲(chǔ),一款掉電安全的文件系統(tǒng)尤為必要。

目前嵌入式領(lǐng)域廣泛應(yīng)用的文件系統(tǒng)主要有FAT[1]、JFFS[2]、YAFFS[3~4]、TureFFS[5]。其中FAT雖然兼容性好,但空間開銷大,磁盤利用率低。JFFS是一款針對閃存設(shè)計(jì)的日志型文件系統(tǒng),TrueFFS實(shí)現(xiàn)了對閃存的磁盤模擬功能,但兩者對NAND閃存支持效果都不佳。而YAFFS雖然是一款根據(jù)NAND閃存特性而設(shè)計(jì)的高效文件系統(tǒng),但以上文件系統(tǒng)需要較大的額外開銷來存放文件元信息,依舊存在異常崩潰的風(fēng)險(xiǎn)[6]。

高可靠文件系統(tǒng)是Datalight公司開發(fā)的一款事務(wù)型文件系統(tǒng),數(shù)據(jù)更新時(shí)不影響原始數(shù)據(jù),更新完成后才進(jìn)行事務(wù)點(diǎn)切換。由于切換屬于原子級操作,保證了數(shù)據(jù)時(shí)刻有效,真正實(shí)現(xiàn)了掉電安全,并且掛載和訪問速度快,非常適用于系統(tǒng)穩(wěn)定性要求高的工業(yè)傳動(dòng)控制領(lǐng)域,同時(shí)支持NOR、NAND、EMMC等各類存儲(chǔ)器。

本文實(shí)現(xiàn)了在VxWorks硬實(shí)時(shí)操作系統(tǒng)上掛載高可靠文件系統(tǒng),并且在一套系統(tǒng)中基于NOR、NAND閃存分別掛載了兩個(gè)獨(dú)立盤符。同時(shí)考慮NAND閃存的比特翻轉(zhuǎn)等物理特性[7~9],將硬件ECC校驗(yàn)嵌入高可靠文件系統(tǒng)中,極大提升系統(tǒng)校驗(yàn)?zāi)芰?。此外提出了一種驅(qū)動(dòng)層映射方案,整合多片NAND閃存容量進(jìn)行統(tǒng)一管理,提升存儲(chǔ)容量。

1 系統(tǒng)架構(gòu)

工業(yè)傳動(dòng)控制領(lǐng)域某型控制平臺,CPU采用飛思卡爾的MPC5125RM處理器,配置兩片M29W256GL70N6F型NOR閃存,每片容量32 MB,兩片MT29F8G08ABABAWP型NAND閃存,每片容量1 GB。

圖1 控制平臺系統(tǒng)框架

為了保證實(shí)時(shí)性和可靠性,采用風(fēng)河硬實(shí)時(shí)VxWorks操作系統(tǒng)。其中NOR閃存1不掛載文件系統(tǒng),用于存放BOOTROM引導(dǎo)程序、VxWorks鏡像程序以及環(huán)境變量,NOR閃存2掛載高可靠文件系統(tǒng),用于存放用戶的應(yīng)用程序和配置文件。兩片NAND閃存集成掛載高可靠文件系統(tǒng),用于記錄運(yùn)行過程中的狀態(tài)和故障信息,通過驅(qū)動(dòng)層映射,兩片NAND通過掛載在同一盤符下,擴(kuò)展閃存容量。

系統(tǒng)上電后,處理器中固化的RBL文件被加載至片內(nèi)RAM運(yùn)行,然后運(yùn)行NOR閃存1的BOOTROM程序進(jìn)行必要硬件初始化,進(jìn)而啟動(dòng)加載VxWorks鏡像程序。VxWorks進(jìn)行底層BSP和內(nèi)核初始化后,根據(jù)內(nèi)核組件配置分別針對NOR閃存2和NAND閃存掛載高可靠文件系統(tǒng)。然后開始解析和執(zhí)行存放在NOR文件系統(tǒng)中的應(yīng)用程序,并將運(yùn)行中的狀態(tài)數(shù)據(jù)和故障信息存放在NAND文件系統(tǒng)中。

2 高可靠文件系統(tǒng)實(shí)現(xiàn)

2.1 高可靠文件系統(tǒng)介紹

本系統(tǒng)采用Datalight公司的高可靠文件系統(tǒng),主要包括FlashFX和Reliance兩部分。

FlashFX為FLASH驅(qū)動(dòng)管理層,負(fù)責(zé)與底層FLASH通信,并為上層文件系統(tǒng)提供支撐。它負(fù)責(zé)提供塊設(shè)備驅(qū)動(dòng),其可變的塊格式提供了高效的閃存訪問,支持磨損均衡和垃圾回收機(jī)制,并針對NAND閃存提供高效的版塊管理機(jī)制。

Reliance為一款事務(wù)型文件系統(tǒng),專為嵌入式領(lǐng)域設(shè)計(jì),主要實(shí)現(xiàn)文件邏輯管理,具備掉電安全特性。如下圖所示,它在執(zhí)行數(shù)據(jù)更新時(shí),所有文件系統(tǒng)修改都存儲(chǔ)在未生效的工作態(tài)空間中,不會(huì)覆蓋原始數(shù)據(jù)。只有在完成數(shù)據(jù)更新,設(shè)置新事務(wù)點(diǎn)后,才進(jìn)行工作態(tài)到確定態(tài)的切換。該切換過程屬原子級操作,確保了有異常發(fā)生時(shí),或者采信事務(wù)點(diǎn)之前的原始數(shù)據(jù),或者采信新數(shù)據(jù),保證即使異常掉電時(shí)元數(shù)據(jù)和文件數(shù)據(jù)的完整性。同時(shí)由于消除了冗長的文件系統(tǒng)檢查,還具備掛載速度快、高性能I/O讀寫等優(yōu)點(diǎn)。

圖2 文件系統(tǒng)掉電安全機(jī)制

2.2 高可靠文件系統(tǒng)移植

2.2.1 FlashFX組件生成

安裝FlashFX的SDK包,SDK提供的工程樣例中沒有MPC5125處理器對應(yīng)工程,可使用newproj.bat新建,或基于現(xiàn)有工程修改prjinfo.dat文件。主要配置或修改的參數(shù)有FlashFX安裝路徑、工程路徑、CPU類型、編譯器工具集。

掛載NOR閃存2。FlashFX針對該閃存實(shí)現(xiàn)了底層驅(qū)動(dòng)接口,只需要修改ffxconf.h文件,增加如圖3宏定義:

圖3 基于NOR閃存的FlashFX配置

其中FFX_DEV0_SETTINGS宏定義中,0xFC000000L表示NOR的基地址,0x00008000L為NOR容量(單位KByte)。

掛載NAND閃存1,ffxconf.h文件中增加如圖4宏定義:

圖4 基于NAND閃存的FlashFX配置

FlashFX沒有提供該型號的底層驅(qū)動(dòng),需要自實(shí)現(xiàn)NAND初始化、ID獲取、讀、寫、擦驅(qū)動(dòng)函數(shù),然后修改fhpageio.c文件,該文件負(fù)責(zé)與底層驅(qū)動(dòng)交互,將其中所有涉及驅(qū)動(dòng)調(diào)用的修改為調(diào)用自實(shí)現(xiàn)驅(qū)動(dòng)即可。

如果FlashFX支持該閃存型號,系統(tǒng)將根據(jù)獲取的ID號自動(dòng)設(shè)置閃存參數(shù)。如果不支持該型號閃存,需要修改nandid.c文件,按實(shí)際器件型號配置FLASH的ID號,在宏定義中修改閃存的容量、頁、塊以及OOB尺寸等信息。

修改dclconf.h文件,不使能VxWorks的高精度定時(shí)器,否則延遲時(shí)可能出錯(cuò)。

工程修改完成后,使用workbench3.2的shell窗口,切換至FlashFX工程路徑,輸入指令prjclean.bat清除編譯信息,然后輸入prjbuild.bat [n]編譯,其中n取值0~2,數(shù)值越大編譯涵蓋的調(diào)試信息越多。編譯成功后,將生成“flashfxPPC603diab.a”庫文件。

2.2.2 Reliance組件生成

安裝Reliance的SDK包,然后使用newproj.bat新建工程,或者基于現(xiàn)有工程修改prjinfo.dat文件。主要配置或修改Reliance安裝路徑、工程路徑、、CPU族、CPU類型、編譯器工具集等參數(shù)。

修改dclconf.h文件,不使用VxWorks的高精度定時(shí)器。Reliance工程一般不需要修改額外的源碼即可編譯,使用指令prjclean.bat和prjbuild.bat,編譯成功后將生成“relFsLibPPC603diab.a”庫文件。

2.3 集成至VxWorks內(nèi)核

風(fēng)河VxWorks內(nèi)核支持高可靠文件系統(tǒng),其中內(nèi)核組件50ffx62.cdf和50relFs62.cdf分別為FlashFX和Reliance組件,這里需要將其替換成文件系統(tǒng)SDK中最新文件。

FlashFX和Reliance庫文件都編譯成功后,將其拷貝至VxWorks安裝路徑WindRiver6.8vxworks-6.8 argetlib下,并在VxWorks工程的屬性LIBS一欄添加庫路徑。

然后打開VxWorks工程的內(nèi)核配置,使能FlashFX組件的配置如下:根據(jù)ffxconf.h文件的設(shè)置,將NOR文件系統(tǒng)設(shè)置為盤符0,命名為“/tffs0”,將NAND文件系統(tǒng)設(shè)置為盤符1,命名為“/yaffs”。

圖5 VxWorks內(nèi)核中關(guān)于FlashFX的配置

使能Reliance組件的配置如下:

圖6 VxWorks內(nèi)核中關(guān)于Reliance的配置

另外修改VxWorks內(nèi)核的xbdBlkDev.c和erfLib.c文件,調(diào)整擴(kuò)大任務(wù)的堆棧大小。

最終編譯VxWorks工程即可生成可用的底層鏡像文件,即前文介紹的VxWorks鏡像程序。

3 針對NAND閃存的文件系統(tǒng)優(yōu)化

3.1 嵌入硬件ECC校驗(yàn)

對于NAND閃存,高可靠文件系統(tǒng)僅支持軟件ECC校驗(yàn),其具體思路是:寫操作時(shí),對數(shù)據(jù)進(jìn)行軟件ECC校驗(yàn),并將ECC校驗(yàn)值存到閃存的OOB區(qū),下次讀數(shù)據(jù)時(shí),同樣對數(shù)據(jù)做ECC校驗(yàn),并將校驗(yàn)值與OOB區(qū)存放的值比對是否一致。其校驗(yàn)?zāi)芰?比特/256字節(jié)。而本系統(tǒng)架構(gòu)可支持硬件ECC校驗(yàn),硬件ECC不需要軟件計(jì)算,直接硬件生成并存放在OOB區(qū),其速度更快,且校驗(yàn)?zāi)芰Ω鼜?qiáng),最高可達(dá)32比特/2048字節(jié)。

本文提出將硬件ECC校驗(yàn)嵌入高可靠文件系統(tǒng)中。首先修改底層驅(qū)動(dòng),修改NAND初始化函數(shù),使能硬件ECC校驗(yàn)算法,配置校驗(yàn)?zāi)芰?4比特/2048字節(jié)。修改NAND讀驅(qū)動(dòng),將硬件ECC校驗(yàn)結(jié)果作為函數(shù)返回值,具體返回值狀態(tài)表1所示:

表1 NAND閃存讀驅(qū)動(dòng)返回值對照表

同步修改FlashFX。fhpageio.c文件中FfxHookNTPageRead()讀接口在調(diào)用讀驅(qū)動(dòng)時(shí),保存返回值中的ECC校驗(yàn)結(jié)果。然后修改dlecc.c中的DclEccCorrect()函數(shù),屏蔽掉其中的軟件ECC校驗(yàn)值計(jì)算過程,直接使用讀驅(qū)動(dòng)中返回的硬件ECC校驗(yàn)結(jié)果。

3.2 構(gòu)建驅(qū)動(dòng)映射層

本系統(tǒng)采用兩片同型號的NAND閃存,分別連接MPC5125處理器的CS0和CS3片選。通過構(gòu)建驅(qū)動(dòng)映射層,可以將兩片閃存掛載在同一盤符下,使兩片獨(dú)立閃存可視作整體進(jìn)行統(tǒng)一管理,擴(kuò)展了存儲(chǔ)容量。

首先需要修改文件系統(tǒng)FlashFX中的nandid.c文件,將兩片視作一個(gè)整體,調(diào)整閃存的總?cè)萘繛樵袃杀?,閃存的塊個(gè)數(shù)也為原有兩倍,頁尺寸信息不變,重新編譯FLashFX庫文件。

然后構(gòu)建驅(qū)動(dòng)映射層,負(fù)責(zé)銜接上層文件系統(tǒng)和底層驅(qū)動(dòng)。它會(huì)解析文件系統(tǒng)需要訪問的地址空間,當(dāng)需要讀寫前2048*128個(gè)頁,或者需擦除前2048個(gè)塊時(shí),映射調(diào)用對應(yīng)CS0的NAND底層驅(qū)動(dòng),反之則映射調(diào)用對應(yīng)CS3的NAND底層驅(qū)動(dòng)。

4 文件系統(tǒng)驗(yàn)證與分析

高可靠文件系統(tǒng)在VxWorks實(shí)時(shí)操作系統(tǒng)上的實(shí)現(xiàn)移植和優(yōu)化后,這里對其方案可行性進(jìn)行驗(yàn)證,并與yaffs2文件系統(tǒng)進(jìn)行對比,比對兩種文件系統(tǒng)的掛載和訪問速度。

4.1 文件系統(tǒng)掛載驗(yàn)證

超級終端中輸入relFsVolFormat “/tffs0”格式化NOR閃存的文件系統(tǒng),返回值0表示格式化成功。接著輸入relFsShow “/tffs0”可查看NOR文件系統(tǒng)的基本信息,返回值為0即驗(yàn)證掛載成功,顯示其容量約為NOR閃存容量。

同樣,輸入relFsVolFormat “/yaffs”格式化NAND閃存的文件系統(tǒng),返回值0表示格式化成功,接著輸入relFsShow “/yaffs”可查看NAND文件系統(tǒng)的基本信息。返回值為0即驗(yàn)證掛載成功,其容量約為兩片NAND閃存容量總和。

具體的掛載成功信息參見圖7所示。

FlashFX和Reliance都分別提供了全套的測試組件和工具組件,使能了這些組件后,可以對移植的文件系統(tǒng)進(jìn)行細(xì)致而全方位的測試。

4.2 性能分析

基于本文的文件系統(tǒng)優(yōu)化方案,針對本系統(tǒng)的NAND閃存,在VxWorks實(shí)時(shí)操作系統(tǒng)上,對比yaffs2和reliance高可靠文件系統(tǒng)的掛載和訪問速度,性能對比如圖8所示。高可靠文件系統(tǒng),由于始終處于有效狀態(tài),初始化時(shí)不需要進(jìn)行冗長的存儲(chǔ)介質(zhì)掃描,相較而言掛載速度更快。作為事務(wù)型文件系統(tǒng),避免了費(fèi)時(shí)的日志操作,并通過使用虛擬邏輯塊和緩沖區(qū),其I/O讀寫性能要更好。而且,基于原始數(shù)據(jù)保存,直到數(shù)據(jù)更新完成才進(jìn)行事務(wù)切換,真正確保了掉電安全。

圖8 高可靠文件系統(tǒng)性能分析

5 結(jié)語

本文針對工業(yè)傳動(dòng)控制領(lǐng)域因?yàn)楫惓5綦娍赡軐?dǎo)致文件系統(tǒng)損壞的問題,實(shí)現(xiàn)了在VxWorks實(shí)時(shí)操作系統(tǒng)上基于兩種不同類型的閃存掛載了高可靠文件系統(tǒng)。該事務(wù)型文件系統(tǒng),因?yàn)槭冀K保證事務(wù)點(diǎn)切換的原子級操作,具備掉電安全特性?;贜AND閃存,本文提出將硬件ECC嵌入高可靠文件系統(tǒng),提升了系統(tǒng)校驗(yàn)?zāi)芰驮L問速度,并通過構(gòu)建驅(qū)動(dòng)映射層,擴(kuò)大了存儲(chǔ)容量。通過驗(yàn)證與分析,本系統(tǒng)方案下的文件系統(tǒng)掛載和訪問速度均要優(yōu)于yaffs文件系統(tǒng)。且本方案不局限于工業(yè)傳動(dòng)控制領(lǐng)域,有望在任何有掉電安全需求的嵌入式領(lǐng)域應(yīng)用。

[1] 王丹, 姚磊, 楊云川, 楊向鋒. 基于FAT文件系統(tǒng)的高速大數(shù)據(jù)記錄儀的設(shè)計(jì)[J],電子設(shè)計(jì)工程, 2019, 27(20): 75-78.

[2] 胡海明, 周楠, 龔宬, 等. JFFS2文件系統(tǒng)在天熠操作系統(tǒng)中的實(shí)現(xiàn)[J],計(jì)算機(jī)工程與設(shè)計(jì), 2017, 38(12): 3461-3467.

[3] 柴權(quán)珂, 嚴(yán)華. 基于無效頁年齡的NAND閃存垃圾回收算法[J], 微電子學(xué)與計(jì)算機(jī), 2021, 38(3): 8-13.

[4] 劉世杰. 基于YAFFS2文件系統(tǒng)元數(shù)據(jù)的數(shù)字取證研究[D], 武漢: 武漢輕工大學(xué), 2020.

[5] 陳陽, 姜育生, 劉寶恒. 基于TureFFS的FLASH驅(qū)動(dòng)程序分析與實(shí)現(xiàn)[J], 電子設(shè)計(jì)工程,2020, 28(14): 190-193.

[6] 李書根, 潘海燕, 王培. 一種嵌入式實(shí)時(shí)操作系統(tǒng)高可靠文件系統(tǒng)[J],微電子學(xué)與計(jì)算機(jī), 2014, 31(3): 14-22.

[7] 劉洋, 李杰, 李金強(qiáng), 等. 一種基于RCRF+BCH算法的NAND FLASH糾錯(cuò)方案的FPGA設(shè)計(jì)與實(shí)現(xiàn)[J],空軍工程大學(xué)學(xué)報(bào)(自然科學(xué)版), 2020, 21(6): 46-52.

[8] Zhou B, Wan S G, Xie C S. Isolation: Inexpensively separating cold data via garbage collection to improve the lifetime and performance of NAND flash SSDs[J]. Concurrency and Computation: Practice and Experience, 2019(3).

[9] Seo S B, Kim W, Kwon SJ. Efficient page collection scheme for QLC NAND Flash memory using cache[J]. International Journal of Advanced Computer Science and Applications, 2018, 9(11): 458-461.

Implement and optimization of highly reliable file system

Zhou Bin, Li Yi, Wang Chengjie, Fu Jianguo

( CRRC Zhuzhou Electric Locomotive Research Institute Co., Ltd, Zhuzhou 412000, Hunan China)

TP316

A

1003-4862(2022)01-0044-05

2021-06-19

周斌(1992-),男,工程師。主要從事嵌入式驅(qū)動(dòng)軟件開發(fā)。Email:zhoubin0920@163.com

猜你喜歡
工程
《工程爆破》》征稿征訂
工程爆破(2022年3期)2022-07-26 01:58:56
《工程爆破》征稿簡則
工程爆破(2022年2期)2022-06-17 14:13:56
子午工程
太空探索(2016年6期)2016-07-10 12:09:06
工程
工程
工程
工程
工程
工程
工程
主站蜘蛛池模板: 国产成人乱码一区二区三区在线| 国产欧美精品一区二区| 亚洲一区二区在线无码| 狠狠色香婷婷久久亚洲精品| 午夜精品一区二区蜜桃| 亚洲侵犯无码网址在线观看| 一区二区三区四区精品视频| 亚洲一级毛片免费观看| 永久免费精品视频| 欧美成人免费| 国产免费久久精品99re不卡| 欧美天堂久久| 亚欧成人无码AV在线播放| 一本大道视频精品人妻| 亚洲中文精品人人永久免费| 伊人久热这里只有精品视频99| 无码福利日韩神码福利片| 日韩a级毛片| 国产国产人成免费视频77777| 2022精品国偷自产免费观看| 久久免费视频播放| 欧美午夜在线视频| 亚洲高清在线播放| 99视频国产精品| 激情乱人伦| 久久久久久国产精品mv| 在线播放91| 免费xxxxx在线观看网站| 国产人免费人成免费视频| 4虎影视国产在线观看精品| 直接黄91麻豆网站| 国产一级在线观看www色| 亚洲视频四区| 久久不卡精品| 国产人成在线视频| 91精品啪在线观看国产91九色| 制服丝袜亚洲| 97精品国产高清久久久久蜜芽| 婷婷综合色| 日韩精品一区二区三区免费在线观看| 亚洲熟妇AV日韩熟妇在线| 中文字幕亚洲综久久2021| 中文字幕亚洲专区第19页| 亚洲人妖在线| 国产美女主播一级成人毛片| 亚洲av无码专区久久蜜芽| 婷婷开心中文字幕| 国产免费网址| 无码丝袜人妻| 91麻豆精品国产91久久久久| 国产精品开放后亚洲| 2022国产91精品久久久久久| 亚洲一区二区三区中文字幕5566| 国产h视频在线观看视频| 亚洲综合18p| 找国产毛片看| 中文字幕人成乱码熟女免费| 日本一区二区三区精品国产| 国产亚洲视频免费播放| 国产一区二区三区免费| 中国特黄美女一级视频| 精品无码专区亚洲| 色偷偷男人的天堂亚洲av| 午夜a视频| 夜夜操国产| 国产丰满大乳无码免费播放| 国产成人精彩在线视频50| 午夜毛片免费观看视频 | 婷婷丁香在线观看| 欧美日本一区二区三区免费| 精品国产香蕉在线播出| 欧美亚洲欧美区| 亚洲资源在线视频| 亚洲高清日韩heyzo| 免费看av在线网站网址| 在线欧美日韩| 乱系列中文字幕在线视频| 亚洲va欧美ⅴa国产va影院| 日韩高清成人| www.av男人.com| 欧美午夜理伦三级在线观看| 色婷婷国产精品视频|