
表1 閃存I/O軟件各部分代碼尺寸
(2)閃存I/O軟件有效性的驗(yàn)證:
I/O軟件的一個(gè)重要性能指標(biāo)是設(shè)備的數(shù)據(jù)吞吐率。當(dāng)應(yīng)用程序訪問(wèn)閃存設(shè)備文件時(shí),由于每次讀/寫請(qǐng)求的數(shù)據(jù)長(zhǎng)度不同,使得設(shè)備的瞬時(shí)吞吐率也不同。由于我們的I/O系統(tǒng)實(shí)現(xiàn)了閃存設(shè)備的兩種管理方式:字符設(shè)備和塊設(shè)備,因此下面我們首先針對(duì)字符設(shè)備方式測(cè)試它的讀/寫吞吐率(見(jiàn)圖2和圖3)。

圖2 字符設(shè)備讀吞吐率
通過(guò)分析圖2、圖3的數(shù)據(jù)我們發(fā)現(xiàn),當(dāng)系統(tǒng)從閃存設(shè)備中讀取或?qū)懭胄K數(shù)據(jù)時(shí),吞吐率會(huì)隨著請(qǐng)求數(shù)據(jù)長(zhǎng)度的增加而增大;但是當(dāng)請(qǐng)求數(shù)據(jù)長(zhǎng)度超過(guò)某一臨界值時(shí),讀/寫吞吐率近似都穩(wěn)定在一個(gè)固定值上。
為了進(jìn)一步驗(yàn)證上述規(guī)律,我們又按照33%的寫請(qǐng)求和67%的讀請(qǐng)求比例,對(duì)各種請(qǐng)求數(shù)據(jù)長(zhǎng)度進(jìn)行了10次讀/寫混合操作測(cè)試,其結(jié)果如圖4所示。由此可看出,在請(qǐng)求數(shù)據(jù)長(zhǎng)度大于512KB之后,讀寫混合的數(shù)據(jù)吞吐率穩(wěn)定在3.59MB/S上,這一結(jié)果與圖2和圖3所示結(jié)果完全一致。并且該吞吐率變化規(guī)律符合常見(jiàn)嵌入式應(yīng)用中閃存的讀、寫特性,其指標(biāo)也基本上能夠達(dá)到應(yīng)用需求。

圖4 字符設(shè)備讀寫平均吞吐率
對(duì)于塊設(shè)備方式,我們主要測(cè)試基于閃存文件系統(tǒng)的一些典型文件操作性能。其結(jié)果如表2所示。該表的第一列代表了執(zhí)行的文件操作,其中create和wirte代表創(chuàng)建文件并向該文件寫入X個(gè)字節(jié)數(shù)據(jù)的操作;open和read則代表打開(kāi)文件并從該文件讀出X個(gè)字節(jié)數(shù)據(jù)的操作。X的大小按照表中第一行數(shù)值的變化而變化。測(cè)試數(shù)據(jù)表明閃存I/O軟件塊設(shè)備功能是正確和有效的。
6、結(jié)束語(yǔ)
本文在分析了嵌入式系統(tǒng)現(xiàn)有的各種閃存管理技術(shù)缺點(diǎn)的基礎(chǔ)上,設(shè)計(jì)并實(shí)現(xiàn)了一種分層合理、模塊劃分清晰且移植性好的閃存I/O軟件。系統(tǒng)的測(cè)試數(shù)據(jù)表明,該I/O軟件能夠?qū)崿F(xiàn)對(duì)閃存設(shè)備的基本管理和訪問(wèn),可以滿足一般嵌入式系統(tǒng)對(duì)數(shù)據(jù)存儲(chǔ)器的應(yīng)用需要。另一方面,由于硬件平臺(tái)的資源所限,我們只實(shí)現(xiàn)了對(duì)NOR型閃存的管理;隨著性能更優(yōu)的NAND型閃存的廣泛使用,我們下一步的工作就是要將上述軟件代碼移植到NAND型閃存器件上,進(jìn)一步檢驗(yàn)該軟件的性能。







