嵌入式系統之儲存設計
Storage Design for Embedded Systems
蔡亮宙 副教授
南台科技大學
ljtsai@mail.stut.edu.tw
曾文偉
南台科技大學
e041984@gmail.com
陳冠宇
南台科技大學
tasean833@gmail.com
摘要
嵌入式系統大多有其特殊的應用領
域,對於可能需要儲存檔案時,常以Flash
記憶體為其優先考量,但是若考慮其有
限的重複寫入次數與大容量的儲存需求
時,硬碟式設備還是有其特定的需求領
域。本文以醫療系統及其檔案儲存為切
入點,利用在嵌入式系統應用中儲存檔
案的容量變化不大的特性,實現一個使
用硬碟FAT 格式的驅動程式,名為FAT+。
基本上FAT+並未更動任何FAT 格
式,它主要是在驅動程式中依據應用領
域的不同,固定讀寫單位為兩種不同大
小的區塊,在我們的原型系統中顯示,
FAT+可以有效的消除或減低檔案儲存的
破碎問題,不只可以加速讀寫效能,而
且可將其視為一般的FAT 設備而在其他
不同的設備上讀取。
關鍵詞:嵌入式系統、檔案系統、FAT
Abstract
In most cases, embedded systems are
dedicated for specific applications. When
data storages are required, flash memory
devices are likely to be first considered.
However, when the rewrite counts increase
and the storage scales rise, hard disk can be
another good choice to play the role of
storing data. This article is motivated by
medical devices with embedded data storage.
Based on the phenomenon that most file
sizes of embedded applications are limited
without drastic variation, we implement a
disk driver, named FAT+, for hard disks
using FAT format.
Basically, FAT+ does not involve any
format modification on FAT. There are 2
sizes of write units for primitives issued
from upper layers, i.e. the unit of large block
is used for big files and the unit of small
block is used for small files respectively.
The prototype shows that FAT+ can
effectively eliminate or reduce storage
fragmentation and therefore increase the
read write performance. Furthermore, it still
keeps compatibility with FAT format and
can be read by generic FAT facilities.
Keywords: Embedded systems、File
systems、FAT
2
簡介
在嵌入式系統中的儲存裝置,也是
一種相當特殊的領域,因此儲存裝置本
身是否被作業系統支援也是需要被考慮
的。除此之外,依照不同的需求,也可
能需要選擇不同的檔案系統格式, 如
JFS[5]、JFFS2[6]、Ext3[7]、cramfs[8]、
romfs[9]等適用於嵌入式系統的檔案系
統,都是可能需要被使用的。
例如JFFS2 功能就是在管理MTD[10]
裝置上所實作的日誌型檔案系統。相較
於其他Flash 儲存方案,JFFS2 並沒有提
供讓傳統檔案系統也可以使用Flash 的
Translation layer,它只會直接在MTD 裝
置上實做日誌結構的檔案系統。cramfs
在嵌入式的環境之下,記憶體和Flash 資
源都需要節約使用。如果使用ramdisk 方
式來使用檔案系統,那麼在系統咝兄
後,首先要把Flash 上的映像檔解壓縮到
記憶體中,構造起ramdisk 環境,才可以
開始咝谐淌健6鴘Clinux 系統採用romfs
檔案系統,這種檔案系統相對於一般的
ext2[11]檔案系統要求更少的空間。空間的
節約來自於兩個方面, 首先核心支援
romfs 檔案系統比支援ext2 檔案系統需要
更少的代碼,其次romfs 檔案系統相對簡
單,在建立檔案系統Superblock 需要更少
的儲存空間。
目前常看到的儲存裝置大多是硬碟
與快閃記憶體裝置,如果以效能及移動
性則是以快閃記憶卡為主,但是在成本
與容量上還是以硬碟優於快閃記憶體裝
置。但是快閃記憶體裝置在嵌入式系統
中,所能進行重複讀寫操作約為10 萬次
且儲存空間也不足。而本文以醫療系統
以及檔案儲存為主,因此選用硬碟作為
實現的儲存裝置,主要就是因為存放空
間大於快閃記憶卡。
由於目前數位相機所拍攝的照片超
過1MB 與多媒體影片超過10MB 以上甚
至到幾GB 都有可能,尤其在某些特定的
應用或許更高,如醫療資訊、數位攝影
機的檔案,當讀取大檔案時如果檔案儲
存位址分散的很凌亂,此時硬碟磁頭讀
取的時間也相對的增加,如果使用傳統
FAT 檔案配置方式解決方法就是磁碟重
組。本文以醫療資訊系統為例,目前已
大量使用PACS/HIS 系統來管理院內資
訊與病患的相關影像檔案,表1 是醫療
院所每日所得到的醫療資訊影像的統
計,每種儀器所 |
|