<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于FLASH星載存儲器的高效管理研究

基于FLASH星載存儲器的高效管理研究

作者: 時(shí)間:2010-02-25 來(lái)源:網(wǎng)絡(luò ) 收藏

為了提高存儲速率,引入并行擴展和流水線(xiàn)操作的概念,將存儲陣列劃分為流水線(xiàn)組,每組多片芯片構成并行結構。并行擴展的概念較為直接,由于單片 芯片的數據總線(xiàn) 位寬較小,因而將多片芯片的IO 端口進(jìn)行并行擴展,而所有控制信號直接連接在一起,這 樣每組芯片可以看作一個(gè)整體進(jìn)行控制,實(shí)現了數據的并行操作。并行N 片的寬總線(xiàn)結構數據處理能力可以達到單片芯片的N 倍。另外由于 芯片為串行操作接口,數據的寫(xiě)入需要經(jīng)過(guò)數據加載、芯片自動(dòng)編程、狀態(tài)讀取的過(guò)程才能執行下一次的寫(xiě)入操作,因而寫(xiě)入性能較差??紤]到芯片自動(dòng)編程過(guò)程的時(shí)間較長(cháng)且不需要外部干預,可以借鑒流水線(xiàn)的設計思想,利用這段空閑時(shí)間對其他組芯片進(jìn)行控制,提高數據吞吐率。流水線(xiàn)操作示意圖如 圖2 所示。假設數據加載時(shí)間為T(mén)load,芯片自動(dòng)編程時(shí)間為T(mén)prog,狀態(tài)讀取時(shí)間為 Tcheck,采用M 級流水線(xiàn)完成一次流水操作的總時(shí)間不超過(guò)(Tload+Tcheck)*M+Tprog, 相比不采用流水線(xiàn)操作縮短了(M-1)*Tprog 時(shí)間,提高了數據吞吐率。具體的總線(xiàn)寬度以及 流水線(xiàn)級數設置可以根據具體應用需求確定。

最后,為了提高數據的可靠性,在 控制模塊中增加數據檢錯糾錯處理模塊。

圖 2 流水線(xiàn)操作示意圖

3. YAFFS2 分析與改進(jìn)

YAFFS2 具有優(yōu)良的文件管理特性,但是畢竟YAFFS2 是針對商用領(lǐng)域設計的文件系統,對于空間應用并沒(méi)有特殊考慮,直接應用有其局限性。本節針對空間的特點(diǎn),對 YAFFS2 不適合空間應用的方面提出具體的修改方案,使得修改后的文件系統能夠滿(mǎn)足空間 數據存儲的需求。

3.1 硬件結構適應性

YAFFS2 文件系統只是針對單片FLASH 設計的系統,對于FLASH 存儲陣列的結構沒(méi)有 考慮,因而不適宜于直接在陣列結構上面使用,需要進(jìn)行修改。

并行結構的處理比較簡(jiǎn)單,將同組內的所有芯片當作整體統一進(jìn)行處理即可。這樣的設計簡(jiǎn)單,但也會(huì )帶來(lái)一些額外的問(wèn)題需要注意。比如當某一片芯片出現壞塊的時(shí)候,組內其他芯片相應塊也需標記為壞塊,造成一定的存儲空間浪費。另外讀取該組狀態(tài)的時(shí)候需要同時(shí)兼顧并行多片的狀態(tài)。這些問(wèn)題需要在文件系統設計中進(jìn)行相應的修改。 流水線(xiàn)的設計較為復雜。由于YAFFS2 的存儲區管理是基于單片芯片的,因而在多級流 水線(xiàn)結構中,每級流水線(xiàn)需要單獨維護自己的存儲區,比如存儲塊的分配、壞塊的標記等。數據寫(xiě)入的時(shí)候首先需要選擇流水線(xiàn)級,在流水線(xiàn)級內部再采用現有的存儲區管理方式。

3.2 壞塊管理策略

FLASH 壞塊的類(lèi)型可以分為初始壞塊和使用時(shí)產(chǎn)生壞塊兩類(lèi),不同芯片廠(chǎng)家采用不同 的方式標示初始壞塊,用戶(hù)可以根據具體的芯片手冊進(jìn)行壞塊識別。三星NAND FLASH 通 過(guò)在每塊的第一頁(yè)或第二頁(yè)的第2048 字節寫(xiě)入非0xFF 來(lái)標示初始壞塊,新產(chǎn)生的壞塊則 需要用戶(hù)自己進(jìn)行記錄。

壞塊管理的首要任務(wù)就是對壞塊進(jìn)行識別和標記,并且對于壞塊盡量不再進(jìn)行擦寫(xiě)操 作。YAFFS2 文件系統要求底層FLASH 驅動(dòng)提供壞塊識別和標記的函數,文件系統對這部分 功能并沒(méi)有實(shí)現,也沒(méi)有要求具體的實(shí)現方式??紤]到存儲區的并行結構特點(diǎn),本方案對新產(chǎn)生的壞塊也采用在該塊第一頁(yè)的第2048 字節寫(xiě)入非0xFF 的方法進(jìn)行標記。由于寫(xiě)入或者擦除是對組內并行多片芯片同時(shí)進(jìn)行操作,而這些芯片同時(shí)發(fā)生壞塊的概率可以認為接近于0,因而對于壞塊的標記總能夠成功寫(xiě)入某個(gè)芯片。該方法將新產(chǎn)生壞塊和原始壞塊進(jìn)行了統一,設計簡(jiǎn)單并且不需要額外的存儲空間來(lái)存儲壞塊表,缺點(diǎn)是對于新產(chǎn)生的壞塊還有 一次寫(xiě)入操作。



關(guān)鍵詞: FLASH 星載 存儲器

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>