a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 采用FLASH的嵌入式存儲系統設計

采用FLASH的嵌入式存儲系統設計

作者: 時間:2012-07-23 來源:網絡 收藏

1 引言

(閃速器)作為一種安全、快速的體,具有體積小、容量大、成本低、掉電數據不丟失等一系列優點,已成為中數據和程序最主要的載體。由于在結構和操作方式上與硬盤、E2ROM等其他介質有較大區別,使用時必須根據其自身特性,對存儲進行特殊,以保證的性能達到最優。

2 FLASH的特點

FLASH是一種非易失性存儲器NVM(Non-Volatile Memory),根據結構的不同可以將其分成NOR FLASH和NAND FLASH兩種。但不管哪一種都具有如下特點:

(1)區塊結構FLASH在物理結構上分成若干個區塊,區塊之間相互獨立。比如NOR FLASH把整個Memory分成若干個Sector,而NAND FLASH把整個Memory分成若干個Block;

(2)先擦后寫由于FLASH的寫操作只能將數據位從1寫成0,不能從0寫成1,所以在對存儲器進行寫入之前必須先執行擦操作,將預寫入的數據位初始化為1。擦操作的最小單位是一個區塊,而不是單個字節。

(3)操作指令除了NOR FLASH的讀,FLASH的其它操作不能像RAM那樣,直接對目標地址進行總線操 作。比如執行一次寫操作,它必須輸入一串特殊的指令(NOR FLASH),或者完成一段時序(NAND FLASH)才能將數據寫入到FLASH中。

(4)位反轉由于FLASH固有的電器特性,在讀寫數據過程中,偶然會產生一位或幾位數據錯誤。這就是位反轉。位反轉無法避免,只能通過其他手段對結果進行事后處理。

(5)壞塊FLASH在使用過程中,可能導致某些區塊的損壞。區塊一旦損壞,將無法進行修復。如果對已損壞的區塊進行操作,可能會帶來不可預測的錯誤。尤其是NAND FLASH在出廠時就可能存在這樣的壞塊(已經被標識出)。

3 關鍵

3.1 FLASH通用

對于一個系統,設備的兼容性越好,系統可行性就越好,產品也就越有競爭力。所以,為了兼容不同類型的FLASH設備,對FLASH進行通用設計至關重要。

對于NOR FLASH,數據的讀操作可以通過獨立的數據總線和地址總線快速完成,然而NOR FLASH的其他操作需要通過特殊的指令來完成,更糟糕的是不同廠商生產的芯片這些指令互不相同。這就導致了設備的不兼容。

對于NAND FLASH,也存在這樣的問題。NAND FLASH可以根據相同的指令讀取芯片的廠商號和設備號,從而通過識別設備號調用對應的時序流程實現操作。但是,系統中太多的判斷,會使得程序的結構變得非常復雜。所以,在一定的條件下,NAND FLASH設備還是不兼容的。

為了解決這一問題,一個較好的方法是將FLASH的各個操作指令以及結構特性按照統一的格式存放到FLASH中固定位置。系統初始化時,將這個結構讀入系統,通過分析這個結構,可以獲得關于芯片所有相關信息,包括操作指令,區塊分布等等。這樣,系統可以輕松實現對不同型號FLASH的所有操作,極大地提高了設備的擴展性。

3.2 雙模式文件系統設計

系統中文件數據的存放一般有兩種結構,一種是索引格式的線性結構,一種是非線性的鏈表式結構。這兩種結構各有優缺點。比如對于系統配置、點陣字庫等一些具有固定結構的系統數據,索引結構比鏈表式結構更有效率。但對于經常更新的用戶數據,鏈表式結構要比索引結構更靈活。如果系統能將兩種結構集成,勢必能將性能發揮到最優。

實現這種集成的方法是將設備定義成若干個分區,每個分區相互獨立,不同分區可以使用不同的文件模式。這樣,不同類型的數據就可以根據自己的屬性選擇存放的分區。比如系統數據存放在使用索引線性結構的分區,用戶數據存放在使用鏈式非線性結構的分區。

3.3 壞塊處理

FLASH中的壞塊處理是一件很棘手的問題,如果沒有有效的管理,對系統的穩定性會造成嚴重影響。一個可行的解決方法是生成一張壞塊表,壞塊表中記錄所有壞塊的塊號,并且按塊號從小到大排序,壞塊表在讀寫過程中動態更新。當讀寫數據時,遍歷壞塊表中的塊號,將文件的邏輯地址轉換成對應FLASH 物理地址,以保證所用的FLASH地址空間不存在壞塊。

4 系統實現

4.1 結構定義

系統的存儲結構如圖1所示,在FLASH的Block0位置存放整個系統最重要的數據——系統記錄SR(System Record)。選擇Block0的原因是一般FLASH出廠時,都能保證Block0是完好的,因此可以避免壞塊問題帶來的不便。SR其實就是一個定義好的數據結構,它包括媒質信息和文件系統信息兩部分。媒質信息包括FLASH存儲器的類型、容量、塊類型的大小和數量(BlockInfo)、FLASH 操作命令( CommandInfo )等。文件系統信息包括版本信息、各邏輯分區的起始地址(物理地址)和結束地址。FLASH設備可以被分成一個或多個邏輯分區,每個邏輯分區的操作方式可以互不相同,如圖1中Device0分區的是線性文件系統,Device1分區的是鏈式文件系統。如果采用的是線性文件系統,在分區信息后面加入文件索引表INDEX起始地址、大小等信息;如果采用的是鏈式文件系統,則加入文件系統頁大小、文件分配表FAT和文件登記表FRT所在的位置等信息。

本文引用地址:http://www.j9360.com/article/148729.htm

linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

電子血壓計相關文章:電子血壓計原理



上一頁 1 2 下一頁

評論


相關推薦

技術專區

關閉