<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于磨損均衡思想的Nand Flash存儲(chǔ)管理在TMS320F28x中的實(shí)現(xiàn)

          基于磨損均衡思想的Nand Flash存儲(chǔ)管理在TMS320F28x中的實(shí)現(xiàn)

          作者: 時(shí)間:2012-02-18 來源:網(wǎng)絡(luò) 收藏

            作為一種安全、快速的體,因其具有體積小、容量大、成本低、掉電數(shù) 據(jù)不丟失等一系列優(yōu)點(diǎn),已逐步取代其它半導(dǎo)體元件,成為嵌入式系統(tǒng)中數(shù)據(jù)的主 要載體。盡管 的每個(gè)單元塊相互獨(dú)立,且每塊一般可擦除次數(shù)高達(dá)10~100萬次, 但是隨著擦寫次數(shù)增加,會(huì)有一些單元塊逐漸變得不穩(wěn)定或失效從而形成永久性壞塊。因此, 要避免頻繁地對(duì)同一塊進(jìn)行操作,盡量達(dá)到擦寫次數(shù);同時(shí),由于擦除操作耗時(shí)較多, 會(huì)對(duì)系統(tǒng)的實(shí)時(shí)性造成影響。為此,本文介紹了一種基于 存儲(chǔ)管 理方式,并深入討論了該方式在Ti公司的DSP 中的程序。

          本文引用地址:http://www.ex-cimer.com/article/149637.htm

            1 器件介紹

            本文中采用的Nand Flash芯片K9F6408U0C是一塊擁有8M(8,388,608)×8bit存儲(chǔ)空間及 256K(262,144)×8bit輔用存儲(chǔ)空間的存儲(chǔ)芯片,電源電壓為1.8V-3.3V。芯片內(nèi)部按塊和 頁的方式來組織的,如圖1所示,共分成1024個(gè)塊,每塊包含16個(gè)頁,每頁內(nèi)有528個(gè)字節(jié)。 F28x系列DSP是美國TI公司最新推出的C2000平臺(tái)上的定點(diǎn)DSP芯片。

          K9F6408UOC內(nèi)部結(jié)構(gòu)示意圖

          圖1 K9F6408UOC內(nèi)部結(jié)構(gòu)示意圖

            F28x系列芯片具有 低成本、低功耗和高效能等特點(diǎn),特別適用于有大量數(shù)據(jù)處理的測(cè)控場(chǎng)合。

            2 Flash的特點(diǎn)及存儲(chǔ)的作用

            由K9F6408U0C的基本結(jié)構(gòu)可以知道,它的基本單位有塊、頁、字節(jié)等。 Nand Flash 芯片具有如下特點(diǎn):

            Flash寫:通過寫命令將每個(gè)字節(jié)存儲(chǔ)單元中的1變?yōu)?;寫操作不能把0變?yōu)?。

            Flash擦除:擦除命令是Flash中存儲(chǔ)單元0變?yōu)?的唯一途徑,一旦對(duì)某一塊中的某一位 寫0,要再改變成1,則必須執(zhí)行擦除命令。

            通常,對(duì)于容量較小的Flash塊的操作過程是:先把整個(gè)塊的數(shù)據(jù)讀到RAM中,在RAM中 修改數(shù)據(jù)內(nèi)容,再擦除整個(gè)塊,最后寫入修改后的數(shù)據(jù)。顯然,這樣頻繁復(fù)雜的讀-擦除- 寫操作,對(duì)于Flash的使用壽命以及系統(tǒng)性能是很不利的,而且微處理器中通常RAM大小有限。 因此在硬件條件苛刻的嵌入式系統(tǒng)中就迫切需要一種合理的存儲(chǔ)方式以便有效地 Flash各個(gè)存儲(chǔ)塊的擦寫次數(shù),提高Flash的使用壽命,從而提高數(shù)據(jù)存儲(chǔ)的安全性。

            3 存儲(chǔ)系統(tǒng)的設(shè)計(jì)

            3.1建立壞塊管理表

            Nand Flash由于生產(chǎn)工藝的問題,不可避免的會(huì)存在一些壞塊,這些壞塊在芯片出廠前 都已被標(biāo)識(shí)好。根據(jù)Nand Flash數(shù)據(jù)手冊(cè)中的介紹,在每一塊的第一頁與第二頁的Spare area 的第六個(gè)字節(jié)(也就是該頁的第517字節(jié))即是出廠時(shí)的壞塊標(biāo)識(shí)位,如果某塊的該兩頁的 第517字節(jié)內(nèi)容不同時(shí)為0xFF,則代表該塊為廠家標(biāo)識(shí)壞塊。這種壞塊的檢測(cè)必須在對(duì)芯 片進(jìn)行擦除前進(jìn)行,因?yàn)閺S家壞塊有可能也能夠被進(jìn)行擦除操作,如使用這種塊將對(duì)數(shù)據(jù)安 全留下一定的隱患。

            Nand Flash在出廠前會(huì)保證每塊芯片的第一塊與第二塊是完好的,所以在本文的設(shè)計(jì)中,采用的方式是將壞塊管理表存放在第一塊的第一頁的前128個(gè)字節(jié)中,每個(gè)字節(jié)的一位代表芯片的一塊,如該位為1剛表明該塊是好的,為0則表示對(duì)應(yīng)塊為壞塊。壞塊管理表的建立是必需的,而且最好是在芯片進(jìn)行其它擦寫操作前進(jìn)行。

          壞塊管理表

            3.2 Flash存儲(chǔ)空間管理

            在本文設(shè)計(jì)的Flash空間管理中,F(xiàn)lash的存儲(chǔ)塊被分為空閑塊(Free,即空白沒寫數(shù)據(jù) 的好塊),有效塊(Valid,即存有有效數(shù)據(jù)的塊,不能被擦除),無效塊(Invalid,即數(shù) 據(jù)已無效或是寫入錯(cuò)誤塊,可被擦除),保留塊(Reserve,用于替換新產(chǎn)生的壞塊),其它的則為壞塊,所有存儲(chǔ)塊的管理均采用單向鏈表方式進(jìn)行管理。

            在大部分的Flash存儲(chǔ)空間管理系統(tǒng)中可能并不存在保留塊,在本系統(tǒng)中增加保留塊的 作用主要是,當(dāng)部分存儲(chǔ)塊因?yàn)榉磸?fù)擦寫成為新的壞塊時(shí),可以用保留塊取而代之成為新的空閑塊,從而使得留給用戶的可用存儲(chǔ)塊總數(shù)在一定時(shí)期內(nèi)是一定的,這樣做的優(yōu)點(diǎn)是可以增強(qiáng)數(shù)據(jù)的安全性,延長整個(gè)Flash的使用周期,缺點(diǎn)是用戶可用的存儲(chǔ)空間相對(duì)減少,不過在Flash芯片技術(shù)迅速發(fā)展的今天,大容量的Flash芯片價(jià)格已經(jīng)十分低廉,數(shù)據(jù)安全才是嵌入式系統(tǒng)設(shè)計(jì)最值得重視的。

            在本文的設(shè)計(jì)中,統(tǒng)一規(guī)定Flash每一塊的第一頁的Spare Area為數(shù)據(jù)塊狀態(tài)信息標(biāo)記區(qū),具體規(guī)定如表2所示:

          數(shù)據(jù)塊狀態(tài)信息表


          上一頁 1 2 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();