嵌入式系統(tǒng)之儲(chǔ)存設(shè)計(jì)
Storage Design for Embedded Systems
蔡亮宙 副教授
南臺(tái)科技大學(xué)
ljtsai@mail.stut.edu.tw
曾文偉
南臺(tái)科技大學(xué)
e041984@gmail.com
陳冠宇
南臺(tái)科技大學(xué)
tasean833@gmail.com
摘要
嵌入式系統(tǒng)大多有其特殊的應(yīng)用領(lǐng)
域,對(duì)於可能需要儲(chǔ)存檔案時(shí),常以Flash
記憶體為其優(yōu)先考量,但是若考慮其有
限的重複寫入次數(shù)與大容量的儲(chǔ)存需求
時(shí),硬碟式設(shè)備還是有其特定的需求領(lǐng)
域。本文以醫(yī)療系統(tǒng)及其檔案儲(chǔ)存為切
入點(diǎn),利用在嵌入式系統(tǒng)應(yīng)用中儲(chǔ)存檔
案的容量變化不大的特性,實(shí)現(xiàn)一個(gè)使
用硬碟FAT 格式的驅(qū)動(dòng)程式,名為FAT+。
基本上FAT+並未更動(dòng)任何FAT 格
式,它主要是在驅(qū)動(dòng)程式中依據(jù)應(yīng)用領(lǐng)
域的不同,固定讀寫單位為兩種不同大
小的區(qū)塊,在我們的原型系統(tǒng)中顯示,
FAT+可以有效的消除或減低檔案儲(chǔ)存的
破碎問題,不只可以加速讀寫效能,而
且可將其視為一般的FAT 設(shè)備而在其他
不同的設(shè)備上讀取。
關(guān)鍵詞:嵌入式系統(tǒng)、檔案系統(tǒng)、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
簡介
在嵌入式系統(tǒng)中的儲(chǔ)存裝置,也是
一種相當(dāng)特殊的領(lǐng)域,因此儲(chǔ)存裝置本
身是否被作業(yè)系統(tǒng)支援也是需要被考慮
的。除此之外,依照不同的需求,也可
能需要選擇不同的檔案系統(tǒng)格式, 如
JFS[5]、JFFS2[6]、Ext3[7]、cramfs[8]、
romfs[9]等適用於嵌入式系統(tǒng)的檔案系
統(tǒng),都是可能需要被使用的。
例如JFFS2 功能就是在管理MTD[10]
裝置上所實(shí)作的日誌型檔案系統(tǒng)。相較
於其他Flash 儲(chǔ)存方案,JFFS2 並沒有提
供讓傳統(tǒng)檔案系統(tǒng)也可以使用Flash 的
Translation layer,它只會(huì)直接在MTD 裝
置上實(shí)做日誌結(jié)構(gòu)的檔案系統(tǒng)。cramfs
在嵌入式的環(huán)境之下,記憶體和Flash 資
源都需要節(jié)約使用。如果使用ramdisk 方
式來使用檔案系統(tǒng),那麼在系統(tǒng)咝兄?br />
後,首先要把Flash 上的映像檔解壓縮到
記憶體中,構(gòu)造起ramdisk 環(huán)境,才可以
開始咝諧淌。而uClinux 系統(tǒng)採用romfs
檔案系統(tǒng),這種檔案系統(tǒng)相對(duì)於一般的
ext2[11]檔案系統(tǒng)要求更少的空間?臻g的
節(jié)約來自於兩個(gè)方面, 首先核心支援
romfs 檔案系統(tǒng)比支援ext2 檔案系統(tǒng)需要
更少的代碼,其次romfs 檔案系統(tǒng)相對(duì)簡
單,在建立檔案系統(tǒng)Superblock 需要更少
的儲(chǔ)存空間。
目前常看到的儲(chǔ)存裝置大多是硬碟
與快閃記憶體裝置,如果以效能及移動(dòng)
性則是以快閃記憶卡為主,但是在成本
與容量上還是以硬碟優(yōu)於快閃記憶體裝
置。但是快閃記憶體裝置在嵌入式系統(tǒng)
中,所能進(jìn)行重複讀寫操作約為10 萬次
且儲(chǔ)存空間也不足。而本文以醫(yī)療系統(tǒng)
以及檔案儲(chǔ)存為主,因此選用硬碟作為
實(shí)現(xiàn)的儲(chǔ)存裝置,主要就是因?yàn)榇娣趴?br />
間大於快閃記憶卡。
由於目前數(shù)位相機(jī)所拍攝的照片超
過1MB 與多媒體影片超過10MB 以上甚
至到幾GB 都有可能,尤其在某些特定的
應(yīng)用或許更高,如醫(yī)療資訊、數(shù)位攝影
機(jī)的檔案,當(dāng)讀取大檔案時(shí)如果檔案儲(chǔ)
存位址分散的很凌亂,此時(shí)硬碟磁頭讀
取的時(shí)間也相對(duì)的增加,如果使用傳統(tǒng)
FAT 檔案配置方式解決方法就是磁碟重
組。本文以醫(yī)療資訊系統(tǒng)為例,目前已
大量使用PACS/HIS 系統(tǒng)來管理院內(nèi)資
訊與病患的相關(guān)影像檔案,表1 是醫(yī)療
院所每日所得到的醫(yī)療資訊影像的統(tǒng)
計(jì),每種儀器所 |
|