亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于鐵電存儲(chǔ)器的事務(wù)型文件系統(tǒng)

        2013-04-25 07:28:26余松濤俞大磊
        電子科技 2013年6期
        關(guān)鍵詞:電子盤鐵電存儲(chǔ)器

        余松濤,俞大磊

        (中國航空工業(yè)西安航空計(jì)算技術(shù)研究所10室,陜西 西安710119)

        鐵電存儲(chǔ)技術(shù)于1921年被提出,1993年,美國Ramtron公司推出了商用鐵電存儲(chǔ)器,其具有快速寫入、高耐久性和低功耗的特點(diǎn),常被用于存儲(chǔ)設(shè)置、配置、期間狀態(tài)和日后使用的數(shù)據(jù),適用于嵌入式系統(tǒng)中。隨著現(xiàn)代工藝的進(jìn)步,目前已有單片8 Mbit的產(chǎn)品出現(xiàn),所能存儲(chǔ)數(shù)據(jù)量日益增大。對(duì)其中存儲(chǔ)的數(shù)據(jù)的管理和使用逐漸復(fù)雜,因此需要提出一個(gè)簡明合理的應(yīng)用方法來解決此問題。

        將鐵電存儲(chǔ)器視為一個(gè)電子盤,采用文件讀寫的方法較符合日常的編程習(xí)慣,其使用的靈活性也是通過實(shí)踐公認(rèn)的。例如Unix族操作系統(tǒng),其大量的功能就是基于文件系統(tǒng)。但嵌入式系統(tǒng)有其實(shí)現(xiàn)上的特殊性,主要表現(xiàn)在突然的斷電動(dòng)作。此動(dòng)作一旦發(fā)生在文件系統(tǒng)寫入過程中,將造成文件數(shù)據(jù)丟失,嚴(yán)重的會(huì)導(dǎo)致整個(gè)文件系統(tǒng)損壞。而事務(wù)型文件系統(tǒng)Reliance Nitro可較好地解決這一問題。

        1 關(guān)鍵技術(shù)分析

        1.1 鐵電存儲(chǔ)技術(shù)

        鐵電存儲(chǔ)器F-RAM利用鐵電晶體的鐵電效應(yīng)實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)。鐵電效應(yīng)是指在其晶體上施加一定的電場時(shí),晶體中心原子在電場的作用下移動(dòng),并達(dá)到一種穩(wěn)定狀態(tài);當(dāng)電場從晶體移走時(shí),中心原子將保持在原來的位置。由于晶體的中間層是一個(gè)高能階,中心原子在未獲得外部能量時(shí)無法越過高能階到達(dá)另一穩(wěn)定狀態(tài),因此F-RAM保持?jǐn)?shù)據(jù)無需電壓和與SDRAM類似的周期刷新。而存儲(chǔ)的數(shù)據(jù)掉電后依然存在,并不受外界磁場條件的影響。其特點(diǎn)是讀寫速度快、功耗低。但由于鐵電晶體的固有限制,對(duì)數(shù)據(jù)存儲(chǔ)位的寫入或檢測(cè)均會(huì)引起存儲(chǔ)數(shù)據(jù)位的變動(dòng),需增加一次內(nèi)部的寫操作,因此鐵電存儲(chǔ)器存在最大讀寫次數(shù)的限制,RAMTRON公司給出的最大訪問次數(shù)是1014次。

        由于讀寫次數(shù)的限制和時(shí)序的不同,F(xiàn)-RAM不能用于直接替換SRAM和SDRAM器件,只適合替換Flash和EEPROM器件。目前并行Flash單片容量已達(dá)到1 Gbit,遠(yuǎn)大于F-RAM,直接替換大容量的Flash芯片在經(jīng)濟(jì)上是不可行的。F-RAM適合用于對(duì)體積和功耗敏感且所提供的容量可滿足要求的嵌入式系統(tǒng)。

        在應(yīng)用程序編寫中,可直接將F-RAM作為普通存儲(chǔ)器使用,存儲(chǔ)變量、數(shù)組、鏈表及樹等數(shù)據(jù)結(jié)構(gòu)。但嵌入式系統(tǒng)特定的突然下電問題解決上較為困難。在編程時(shí)要考慮存儲(chǔ)數(shù)據(jù)的合法性和一致性等問題。需利用較多算法和編程技巧來解決此問題,比如對(duì)數(shù)據(jù)進(jìn)行CRC32數(shù)字簽名,對(duì)數(shù)據(jù)的改寫采用事務(wù)機(jī)制來保持?jǐn)?shù)據(jù)的一致性。這些算法對(duì)編程水平要求較高,對(duì)只需存儲(chǔ)/讀取數(shù)據(jù)參數(shù)等應(yīng)用而言實(shí)現(xiàn)復(fù)雜,缺乏一致的使用界面,使得大數(shù)據(jù)量的存儲(chǔ)與管理困難。雖然鐵電存儲(chǔ)器最大訪問次數(shù)可達(dá)1014次,但訪問周期可達(dá)到120 ns,若將其作為普通內(nèi)存使用,在最差情況下,只能提供120 ns×1014=3 333 h,約139天的訪問壽命,不適用于連續(xù)長時(shí)間運(yùn)行的嵌入式系統(tǒng)。數(shù)據(jù)訪問的聚集性使有些存儲(chǔ)單元的訪問次數(shù)遠(yuǎn)大于其他單元,將造成器件磨損不均衡。

        1.2 TrueFFS文件系統(tǒng)

        Vxworks自帶的TrueFFS文件系統(tǒng)是一種MSystems Flite的實(shí)現(xiàn)方式,可多種Flash存儲(chǔ)設(shè)備提供統(tǒng)一的塊設(shè)備接口,具有可重入及線程安全的特點(diǎn)。圖1是TrueFFS的體系結(jié)構(gòu)圖。

        圖1 TrueFFS體系結(jié)構(gòu)

        核心層主要起到連接其他層的作用。同時(shí)也可進(jìn)行碎片回收、定時(shí)器以及其他系統(tǒng)資源的維護(hù)。翻譯層主要實(shí)現(xiàn)從文件系統(tǒng)角度所看到的存儲(chǔ)塊與Flash可擦除塊間的映射。MTD層實(shí)現(xiàn)對(duì)具體的Flash進(jìn)行讀、寫擦除等功能,需要開發(fā)者根據(jù)自身的實(shí)際硬件按照標(biāo)準(zhǔn)的接口格式編寫驅(qū)動(dòng)。Socket層提供TrueFFS和板載硬件之間的接口服務(wù),可用于能源管理、硬件卡檢測(cè)、窗口映射管理和向系統(tǒng)注冊(cè)設(shè)備。TrueFFS具有損耗均衡的功能,確保每個(gè)可擦除塊被平均使用[1]。在Vxworks5.X中,TrueFFS僅支持MS-DOS兼容的文件系統(tǒng)[2]。一旦在寫入數(shù)據(jù)時(shí)突然斷電,將造成數(shù)據(jù)丟失、目錄結(jié)構(gòu)破壞甚至整個(gè)文件系統(tǒng)結(jié)構(gòu)損壞,甚至出現(xiàn)chkdsk無法恢復(fù),只能重新格式化電子盤[3]。

        1.3 Reliance Nitro事務(wù)型文件系統(tǒng)

        Reliance Nitro事務(wù)型文件系統(tǒng)是保證在斷電環(huán)境下仍可正常工作的可靠文件系統(tǒng)[4]。其跟蹤文件系統(tǒng)最終的穩(wěn)定狀態(tài),包括目錄數(shù)據(jù)和用戶數(shù)據(jù),在用戶設(shè)定的事務(wù)點(diǎn)上將內(nèi)存中的數(shù)據(jù)更新到磁盤上,當(dāng)系統(tǒng)在兩個(gè)事務(wù)點(diǎn)間發(fā)生斷電時(shí),Reliance Nitro將文件數(shù)據(jù)還原至文件系統(tǒng)最后的穩(wěn)定狀態(tài)。由于Reliance Nitro文件系統(tǒng)始終一致,所以設(shè)備通電啟動(dòng)時(shí)無需運(yùn)行類似chkdsk等應(yīng)用程序檢查文件系統(tǒng)的完整性,這使得Reliance Nitro可提供比DosFS等文件系統(tǒng)更快的啟動(dòng)時(shí)間[4]。在嵌入式環(huán)境下,其可通過FlashFX Tera對(duì)Vxworks實(shí)時(shí)操作系統(tǒng)中的NAND和NOR Flash存儲(chǔ)器提供支持。也可通過TrueFFS文件系統(tǒng)支持NAND和NOR Flash存儲(chǔ)器[5]。VXworks6.8中包含的TrueFFS已直接支持Reliance Nitro文件系統(tǒng)。

        2 事務(wù)型文件系統(tǒng)體系結(jié)構(gòu)

        基于鐵電存儲(chǔ)器的事務(wù)文件系統(tǒng)軟件體系結(jié)構(gòu)如圖2所示。其主要技術(shù)特點(diǎn)是擴(kuò)充了TrueFFS的MTD驅(qū)動(dòng),使其能夠支持鐵電存儲(chǔ)器。

        圖2 基于鐵電存儲(chǔ)器的事務(wù)型文件系統(tǒng)體系結(jié)構(gòu)

        2.1 鐵電存儲(chǔ)器底層驅(qū)動(dòng)設(shè)計(jì)

        鐵電存儲(chǔ)器底層驅(qū)動(dòng)主要提供對(duì)存儲(chǔ)器的擦除/寫入等操作,修改后的代碼仿真了NOR Flash芯片的塊擦除與寫入動(dòng)作。

        擦除函數(shù)實(shí)現(xiàn)了塊擦除功能,針對(duì)NOR Flash芯片,此函數(shù)的動(dòng)作是針對(duì)所需擦除的物理塊發(fā)出擦除命令序列,然后讀取芯片狀態(tài),判斷是否完成。對(duì)于S29GL256P芯片,擦除一塊的典型時(shí)間為500 ms。針對(duì)鐵電存儲(chǔ)器,此動(dòng)作改為將所需擦出的數(shù)據(jù)塊全部填充為0xffffffff,典型時(shí)間為120 ns×65 536,約7.9 ms。

        寫入函數(shù)實(shí)現(xiàn)了數(shù)據(jù)記錄功能,針對(duì)NOR Flash芯片,此函數(shù)的動(dòng)作是針對(duì)所需擦除的物理塊發(fā)出編程命令序列,向目標(biāo)地址寫入數(shù)據(jù),隨后讀取芯片狀態(tài),判斷是否完成,對(duì)于S29GL256P芯片而言,寫入一個(gè)32位字的典型時(shí)間為60μs,若采用緩沖寫入方式,平均每個(gè)32位字的典型時(shí)間為15μs。針對(duì)鐵電存儲(chǔ)器,此動(dòng)作改為直接賦值,典型時(shí)間為120 ns。

        2.2 TrueFFS驅(qū)動(dòng)層

        為使TrueFFS支持鐵電存儲(chǔ)器,需擴(kuò)充TrueFFS的MTD驅(qū)動(dòng)[6-8]??紤]到鐵電存儲(chǔ)器的操作方式接近于并行的NOR Flash芯片,可將鐵電存儲(chǔ)器仿真并行的NOR Flash芯片的使用方式,將鐵電存儲(chǔ)器分成塊,每塊256 kByte進(jìn)行管理。所采用的鐵電存儲(chǔ)器為Ramtron公司生產(chǎn)的FM32MLD16 512×103×16 Byte,其單片容量為8 Mbit。在設(shè)計(jì)中,兩片并聯(lián),提供了32位寬度,2 MB容量。針對(duì)采用的芯片,應(yīng)修改TrueFFS文件系統(tǒng)中的MTD識(shí)別函數(shù),將片容量改為1 MB。

        TrueFFS在原始設(shè)計(jì)中只支持Flash類芯片,在初始化設(shè)備過程中會(huì)判斷目標(biāo)地址的行為是否為RAM。作為鐵電存儲(chǔ)器,其行為類似于RAM,因此TrueFFS進(jìn)行判斷后即不再繼續(xù)進(jìn)行初始化。必須修改TrueFFS的核心代碼,使鐵電存儲(chǔ)器芯片能仿真NOR Flash芯片。修改TrueFFS核心代碼中的flFlash.c文件,將其中函數(shù)static FLBoolean isRAM(FLFlash vol)的返回值改為恒假。重新編譯生成后的驅(qū)動(dòng)庫即可支持鐵電存儲(chǔ)器。

        3 應(yīng)用程序接口設(shè)計(jì)

        Reliance Nitro事務(wù)型文件系統(tǒng)為Vxworks提供了標(biāo)準(zhǔn)的文件系統(tǒng)設(shè)備接口,從應(yīng)用程序的角度看,可通過設(shè)備名使用Vxworks提供的所有文件系統(tǒng)調(diào)用。Vxworks提供的文件系統(tǒng)API包含POSIX標(biāo)準(zhǔn)規(guī)定文件系統(tǒng)操作的大部分,已實(shí)現(xiàn)的API接口及其功能嚴(yán)格遵循POSIX標(biāo)準(zhǔn)。通過該接口,用戶只需關(guān)心文件名和文件對(duì)象屬性,無需了解底層實(shí)現(xiàn)細(xì)節(jié)。由于Vxworks是一個(gè)多任務(wù)實(shí)時(shí)操作系統(tǒng),可同時(shí)運(yùn)行多個(gè)用戶任務(wù),因此,文件系統(tǒng)提供了多任務(wù)的支持,所提供的API均可被同時(shí)調(diào)用,滿足代碼可重入要求。Vxworks提供了有緩沖的文件操作API,包括:fopen()fclose()fread()fwrite()等文件操作函數(shù)。同時(shí)還提供了基礎(chǔ)I/O API。基礎(chǔ)I/O是Vxworks最底層的I/O操作,是源代碼級(jí)兼容的,其包括:creat()delete()open()close()read()write()ioctl()等文件操作函數(shù)??捎糜趯?shí)現(xiàn)創(chuàng)建、刪除、打開、關(guān)閉、讀取、寫入及文件特殊控制等編程接口。

        所有對(duì)文件操作均是事務(wù)化的,Reliance Nitro提供了3種不同的事務(wù)機(jī)制模式:(1)自動(dòng)事務(wù)模式:自動(dòng)事務(wù)模式依賴于文件系統(tǒng)操作。例如:Reliance Nitro可被設(shè)置為當(dāng)一個(gè)文件被關(guān)閉時(shí)執(zhí)行事務(wù),對(duì)數(shù)據(jù)進(jìn)行實(shí)際的寫入動(dòng)作,將數(shù)據(jù)真正穩(wěn)妥地記錄入電子盤。自動(dòng)事務(wù)模式適用于遺留的應(yīng)用代碼,在應(yīng)用中并不了解底層的文件系統(tǒng)提供事務(wù)操作能力。在實(shí)際中發(fā)現(xiàn),對(duì)Vxworks提供基礎(chǔ)I/O的每一次調(diào)用均會(huì)引起自動(dòng)事務(wù)操作,而有緩沖的文件操作API在調(diào)用fclose或fflush時(shí)才進(jìn)行事務(wù)操作。(2)定時(shí)事務(wù)模式:是按照預(yù)先定義的時(shí)間周期執(zhí)行事務(wù)。比如周期可定義為200 ms,這保證只丟失本周期內(nèi)的數(shù)據(jù),適用于數(shù)據(jù)記錄功能。(3)可編程事務(wù)模式:可編程事務(wù)模式是在應(yīng)用程序控制下執(zhí)行的。當(dāng)應(yīng)用程序進(jìn)入一個(gè)里程碑點(diǎn),其確切要求將特定的數(shù)據(jù)寫入電子盤中,并可強(qiáng)制進(jìn)行一次立刻的事務(wù)操作,確保數(shù)據(jù)正確寫入??删幊淌聞?wù)模式是最靈活的應(yīng)用方式,它提供了強(qiáng)有力的功能。在應(yīng)用程序中,可以使能/禁止自動(dòng)事務(wù)模式和周期事務(wù)模式。同時(shí)改變周期事務(wù)模式的周期,發(fā)起立刻事務(wù)操作。以上3種事務(wù)操作模式不是互斥的,應(yīng)用程序可根據(jù)要求同時(shí)混合使用。

        應(yīng)用程序可調(diào)用usrRelFsTFFSInit()函數(shù)創(chuàng)建Reliance Nitro文件系統(tǒng)。其參數(shù)有:Int tffsDriveNo TFFS為盤號(hào),一般為0。int fRemovable為是否可拆除,0表示固定盤,1表示可拆除。char*szDevName是設(shè)備名稱,一般為”/RELFS0”。int fFormat為是否要格式化,1表示需要,0表示不需要。返回值為ERROR表示未成功,返回值為OK表示成功。

        在usrRelFsTFFSInit()函數(shù)中,按照以下步驟完成文件系統(tǒng)創(chuàng)建工作:(1)調(diào)用tffsDevCreate(),初始化TrueFFS文件系統(tǒng),創(chuàng)建TrueFFS設(shè)備。(2)調(diào)用tffsDevOptionsSet(),禁止TrueFFS設(shè)備的FAT監(jiān)視功能,直接將Reliance Nitro文件系統(tǒng)的扇區(qū)映射到TrueFFS塊設(shè)備驅(qū)動(dòng)程序。(3)調(diào)用discardWrapperTFFSDevCreate(),在TrueFFS塊設(shè)備上創(chuàng)建Reliance Nitro的驅(qū)動(dòng)實(shí)例,使Reliance將不使用的塊直接報(bào)告給TrueFFS塊設(shè)備驅(qū)動(dòng)程序,用于提高性能。(4)調(diào)用relFsDevCreate(),創(chuàng)建Reliance Nitro電子盤實(shí)例。(5)如需要,調(diào)用relFsVolFormat(),格式化Reliance Nitro電子盤。

        例如,應(yīng)用程序調(diào)用usrRelFsTFFSInit(0,0,"/RELFS0",1),創(chuàng)建并格式化電子盤,一旦執(zhí)行成功,應(yīng)用程序會(huì)顯示如圖3 Reliance Nitro初始化成功提示的內(nèi)容。在tornado的shell下用devs命令可看到/RELFS0設(shè)備,即可對(duì)其上的文件進(jìn)行操作。

        圖3 Reliance Nitro初始化成功提示

        4 性能對(duì)比

        使用上述軟件,在兩片S29GL256P芯片組成的32位電子盤上和兩片F(xiàn)M32MLD1芯片組成的32位電子盤上均實(shí)現(xiàn)了Reliance文件系統(tǒng)。經(jīng)實(shí)測(cè),兩片S29GL256P芯片組成的32位電子盤,其最快的文件寫入速度為300 kByte/s,兩片F(xiàn)M32MLD1芯片組成的32位電子盤,其最快的文件寫入速度為7 952 kB/s,有26倍的差距。模擬在寫入過程中突然下電,上電后文件系統(tǒng)和文件內(nèi)容均正確,無需進(jìn)行任何檢測(cè)工作。具體性能對(duì)比結(jié)果如表1所示。

        表1 兩種架構(gòu)性能對(duì)比

        5 結(jié)束語

        通常認(rèn)為鐵電存儲(chǔ)器可直接做為普通內(nèi)存使用,在廠商提供的器件介紹中也有說明[9]。但應(yīng)該注意到,對(duì)于需連續(xù)長時(shí)間運(yùn)行的嵌入式系統(tǒng),須仔細(xì)考慮器件磨損問題。文中將TrueFFS中的適用于Flash芯片的磨損均衡算法應(yīng)用到鐵電存儲(chǔ)器上,可保證寫入操作的磨損均衡。按照文件接口方式訪問鐵電存儲(chǔ)器,確保不會(huì)出現(xiàn)集中對(duì)一個(gè)數(shù)據(jù)單元進(jìn)行讀寫的最壞情形。這可大幅增加鐵電存儲(chǔ)器的使用壽命。采用事務(wù)型文件系統(tǒng),使得數(shù)據(jù)存儲(chǔ)不受突然斷電的影響,無需在重啟時(shí)進(jìn)行磁盤檢測(cè),降低了應(yīng)用程序編寫難度,加快了重啟時(shí)間。考慮到兩種芯片的寫入速度相差125倍、讀出速度相等的性能差距,文件的寫入速度只差26倍。說明使用鐵電存儲(chǔ)器仿真Flash的算法功能可以達(dá)到要求,但性能低下。在進(jìn)一步研究鐵電存儲(chǔ)器專用的磨損均衡算法,使其不通過TrueFFS層直接和Reliance Nitro事務(wù)型文件系統(tǒng)進(jìn)行交互,能顯著提高讀寫性能。

        [1]Spansion Conpration.Wear leveling[EB/OL].(2011-08-25)[2013-01-27]http://www.spansion.com.

        [2]Windriver Conpration.VxWorks programmer's guide 5.5[EB/OL].(2011-06-07)[2013-01-27]http://www.windriver.com.

        [3]Microsoft Conpration.FAT:genetal overview of on-disk format version 1.02[EB/OL].(2010-02-19)[2013-01-27]http://www.microsoft.com.

        [4] 楊瓊,崔西寧,周波.事務(wù)性文件系統(tǒng)存儲(chǔ)管理機(jī)制的研究與實(shí)現(xiàn)[J].航空電子技術(shù),2011,41(5):81-84.

        [5]Datalight Conpration.Datalight reliance nitro SDK for wind river VxWorks[EB/OL].(2012-03-27)[2013-01-27]http://www.datalight.com.

        [6] 王學(xué)龍.嵌入式Vxworks系統(tǒng)開發(fā)與應(yīng)用[M].北京:人民郵電出版社,2003.

        [7] 張楊,于銀濤.Vxworks內(nèi)核、設(shè)備驅(qū)動(dòng)與BSP開發(fā)詳解[M].北京:人民郵電出版社,2011.

        [8] 周啟平,張楊.Vxworks下設(shè)備驅(qū)動(dòng)程序及BSP開發(fā)指南[M].北京:中國電力出版社,2004.

        [9]TI Conpration.LOw-power FRAM microcontrollers and their application[EB/OL].(2012-09-18)[2013-01-27]http://www.ti.com.

        猜你喜歡
        電子盤鐵電存儲(chǔ)器
        硅片上集成高介電調(diào)諧率的柱狀納米晶BaTiO3鐵電薄膜
        靜態(tài)隨機(jī)存儲(chǔ)器在軌自檢算法
        鐵電材料中發(fā)現(xiàn)周期性半子晶格
        科學(xué)(2020年4期)2020-11-26 08:27:12
        郵幣卡電子盤發(fā)展研究
        列控裝置設(shè)計(jì)與應(yīng)用化
        科技尚品(2017年5期)2017-05-30 04:46:51
        鐵電隧道結(jié)界面效應(yīng)與界面調(diào)控
        鐵電-介電復(fù)合陶瓷的介電響應(yīng)
        雙刃郵幣電子盤
        存儲(chǔ)器——安格爾(墨西哥)▲
        基于Nand Flash的高速存儲(chǔ)器結(jié)構(gòu)設(shè)計(jì)
        真正免费一级毛片在线播放| 人妻丰满熟妇aⅴ无码| 国产高潮视频在线观看| 日韩欧美亚洲综合久久影院d3| 国产AV秘 无码一区二区三区| av天堂网手机在线观看| 一本大道综合久久丝袜精品| 亚洲天堂亚洲天堂亚洲色图| 人妻av无码一区二区三区| 国农村精品国产自线拍| 无码视频一区=区| 少妇一级内射精品免费| 国产人妻熟女高跟丝袜| 免费看黄色电影| 级毛片免费看无码| 白白在线免费观看视频| 久久不见久久见www日本网| 伊人久久五月丁香综合中文亚洲| 99久久综合九九亚洲| 亚洲女人天堂成人av在线| 国产suv精品一区二区四| 国产肉丝袜在线观看| 区无码字幕中文色| 亚洲女av中文字幕一区二区| 亚洲av美国av产亚洲av图片| 亚欧国产女人天堂Av在线播放| 亚洲国产av一区二区三| 亚洲精品国产av成人精品| 日韩一卡2卡3卡4卡新区亚洲| 日韩亚洲制服丝袜中文字幕| 国产亚洲一区二区精品| 国产专区一线二线三线码| 亚洲av成人精品日韩一区| 91孕妇精品一区二区三区| 亚洲av一区二区在线| 潮喷失禁大喷水aⅴ无码| 国产精品国语对白露脸在线播放 | 极品少妇小泬50pthepon| 亚洲成a人片在线看| 中文字幕一区二区区免| 亚洲熟妇无码av在线播放|