欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

Flash存儲(chǔ)器的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)及其數(shù)據(jù)操作方式的制作方法

文檔序號:6650656閱讀:730來源:國知局
專利名稱:Flash存儲(chǔ)器的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)及其數(shù)據(jù)操作方式的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及電子存儲(chǔ)器領(lǐng)域,尤其涉及Flash存儲(chǔ)器(閃存)領(lǐng)域。
背景技術(shù)
對于嵌入式設(shè)備而言,閃存(Flash)是很常見的一種存儲(chǔ)媒介。隨著GPS應(yīng)用的 普及,各種基于GPS的應(yīng)用開發(fā)層出不窮。GPS監(jiān)控車載終端是目前GPS在汽車行業(yè)廣泛應(yīng) 用的一種電子產(chǎn)品,常用于汽車防盜、監(jiān)控、定位、位置查詢、黑匣子、調(diào)度等功能。從本質(zhì)上 來講,GPS監(jiān)控車載終端也是一款嵌入式設(shè)備,它同樣需要有CPU,內(nèi)存,I/O 口,存儲(chǔ)媒介等 部件。故,GPS監(jiān)控車載終端的存儲(chǔ)媒介亦多是采用Flash存儲(chǔ)器。由于車載GPS監(jiān)控終端工作環(huán)境非常惡劣,經(jīng)常有電火花、電磁干擾、汽車電源不 穩(wěn)、高溫環(huán)境等各種外部因素的影響,導(dǎo)致監(jiān)控終端異常斷電,異常復(fù)位,造成數(shù)據(jù)存儲(chǔ)破 壞、丟失等問題。高溫環(huán)境下,還會(huì)導(dǎo)致Flash器件飽受位交換現(xiàn)象的困擾,造成數(shù)據(jù)錯(cuò)誤。 因此,在設(shè)計(jì)數(shù)據(jù)存儲(chǔ)時(shí),必須要充分考慮這些因素的影響,使數(shù)據(jù)存儲(chǔ)具有抗掉電性,抗 干擾,自糾錯(cuò)能力,穩(wěn)定可靠。Flash存儲(chǔ)器進(jìn)行數(shù)據(jù)存儲(chǔ)設(shè)計(jì)時(shí),還要考慮一些Flash的特性。Flash存儲(chǔ)器不 能對單個(gè)字節(jié)進(jìn)行擦除,最小的擦除單位是一個(gè)塊(Block),有時(shí)也稱為扇區(qū)(Sector)。任 何Flash存儲(chǔ)器的寫入操作只能在空或已擦除的單元內(nèi)進(jìn)行。所以大多數(shù)情況下,在進(jìn)行 寫入操作之前必須先執(zhí)行擦除。但Flash芯片的壽命是有限的,通常NAND flash中每個(gè) Block的最大擦寫次數(shù)是一百萬次,而NOR flash的擦寫次數(shù)是十萬次。如果某個(gè)Block擦 除次數(shù)超過壽命次數(shù),容易導(dǎo)致出現(xiàn)壞塊甚至整塊Flash報(bào)廢。所謂壞塊并不是整個(gè)Block 都壞了,可能只是塊中一位或某幾位損壞。而已有的Flash存儲(chǔ)器的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)及其數(shù)據(jù)操作方式默認(rèn)是比較簡單的,直 接對Flash存儲(chǔ)器中的塊(Block)依次刪除和寫入。因此,常常對排在前面的塊(Block) 和頁面(Page)頻繁進(jìn)行刪除和寫入,而排在后面的塊(Block)和頁面(Page)則相對空閑。 即,F(xiàn)lash存儲(chǔ)器中的各塊(Block)的使用頻率是不一致的。因而,往往容易產(chǎn)生壞塊而影 響Flash的使用壽命。所以,數(shù)據(jù)存儲(chǔ)設(shè)計(jì)時(shí)還需要考慮Flash的損耗平衡,即要考慮Flash所有 塊(Block)都能均勻被使用,而不是某一個(gè)塊一直被讀寫,而別的塊則空閑著,有效延長 Flash的壽命。如果不幸發(fā)生物理壞塊,必須保證該塊不能繼續(xù)被使用,這時(shí)需要考慮壞塊 處理機(jī)制。此外,已有的Flash存儲(chǔ)器的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)及其數(shù)據(jù)操作方式的設(shè)計(jì)也往往沒有 考慮到抗掉電處理和數(shù)據(jù)校驗(yàn)(ECC)處理機(jī)制。

發(fā)明內(nèi)容
因此,針對上述所言的已有技術(shù)的不足,本發(fā)明提出一種優(yōu)化的Flash存儲(chǔ)器的 數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)及其數(shù)據(jù)操作的控制方式,在讀寫操作中對Flash存儲(chǔ)進(jìn)行均衡處理,及進(jìn)
4行抗掉電處理和數(shù)據(jù)校驗(yàn)(ECC)處理機(jī)制設(shè)計(jì),避免了上述缺陷的產(chǎn)生。本發(fā)明采用如下技術(shù)方案Flash存儲(chǔ)器的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),其每個(gè)頁面(Page)的存儲(chǔ)單位內(nèi)包括存儲(chǔ)數(shù)據(jù)的 數(shù)據(jù)存儲(chǔ)空間和一備用空間。其中,所述的備用空間的被定義為以下幾部分文件名稱(FileID)記錄區(qū),用于存放文件名稱(FileID)數(shù)據(jù);頁面名稱(PageID)記錄區(qū),用于存放頁面名稱(PageID)數(shù)據(jù);頁面存儲(chǔ)狀態(tài)記錄區(qū),用于存放頁面存儲(chǔ)狀態(tài)位(Page status)數(shù)據(jù)和塊存儲(chǔ)狀 態(tài)位(Block status)數(shù)據(jù);頁面狀態(tài)(TAG)記錄區(qū),用于存放頁面系列號(Page Serial)數(shù)據(jù)和頁面數(shù)據(jù)長 & (Pagedatalen) WM ;塊擦除次數(shù)記錄區(qū),用于存放塊(Block)的擦除次數(shù)數(shù)據(jù);數(shù)據(jù)校驗(yàn)碼(ECC)記錄區(qū),用于存放數(shù)據(jù)校驗(yàn)碼(ECC,Error Correction Code) 數(shù)據(jù)。對如上所述的Flash存儲(chǔ)器的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)進(jìn)行數(shù)據(jù)操作方式,具體是包括系 統(tǒng)初始化步驟和數(shù)據(jù)操作步驟;其中,系統(tǒng)初始化步驟包括步驟a 獲取Flash存儲(chǔ)器的各種硬件參數(shù);步驟b 遍歷掃描Flash存儲(chǔ)器的每個(gè)頁面(Page)的存儲(chǔ)單位內(nèi)的備份空間,通 過讀取頁面存儲(chǔ)狀態(tài)記錄區(qū)內(nèi)的塊存儲(chǔ)狀態(tài)位(Block status)數(shù)據(jù)判斷該頁面(Page)是 不是壞塊,如果是壞塊,再次進(jìn)行壞塊判定確認(rèn),如果仍是壞塊,則標(biāo)識此塊為壞塊后停止 對此頁面所屬的塊(Block)中其他頁面(Page)的掃描,進(jìn)入到下一個(gè)塊(Block)的頁面的 掃描;步驟c 對于非壞塊的塊(Block)中的頁面O^age),通過讀取頁面狀態(tài)(TAG)記錄 區(qū)的頁面數(shù)據(jù)長度O^gedatalen)數(shù)據(jù)判斷該塊(Block)中的所有頁面(Page)是否均為 干凈頁面,如果是,則將此塊掛載到空閑塊鏈表上;步驟d 對于非干凈頁面(Page),通過讀取頁面存儲(chǔ)狀態(tài)記錄區(qū)內(nèi)的頁面存儲(chǔ)狀 態(tài)位(Page status)數(shù)據(jù)來判斷該頁面(Page)的當(dāng)前數(shù)據(jù)是否有效,如果一個(gè)塊(Block) 中的所有頁面(Page)的數(shù)據(jù)都是無效數(shù)據(jù),表示這個(gè)塊(Block)可以擦除,將其掛載到待 擦除鏈表上;步驟e 對于具有有效數(shù)據(jù)的頁面O^ge),通過讀取文件名稱(FileID)記錄區(qū)內(nèi) 的文件名稱(FileID)數(shù)據(jù)判斷該頁面所屬的文件的文件鏈表是否存在于內(nèi)存,若不存在, 則用此文件名稱創(chuàng)建一新文件鏈表;步驟f 對于文件鏈表已經(jīng)存在的頁面(I^age),通過讀取頁面名稱(PageID)記錄 區(qū)的頁面名稱(PageID)數(shù)據(jù)來判斷該頁面(Page)是否在相同文件名稱的文件鏈表上存在 頁面名稱節(jié)點(diǎn),若不存在,掛載該頁面;步驟g:對于頁面名稱節(jié)點(diǎn)已存在于文件鏈表的頁面O^ge),通過讀取頁面狀態(tài) (TAG)記錄區(qū)的頁面系列號(Page Serial)數(shù)據(jù)判斷其系列號是否最大,若不是最大,將該 頁面的頁面存儲(chǔ)狀態(tài)位(Page status)數(shù)據(jù)標(biāo)識為無效;步驟h 對于頁面系列號為最大的頁面O^ge),掛載該頁面于相同文件名稱的文件鏈表上;步驟i 通過空閑塊鏈表和文件鏈表,統(tǒng)計(jì)出當(dāng)前空閑塊(Block)個(gè)數(shù)信息和文件 個(gè)數(shù)信息;步驟j 將Flash存儲(chǔ)器的每個(gè)頁面(Page)的存儲(chǔ)單位內(nèi)的備份空間中存儲(chǔ)的信 息按一定的數(shù)據(jù)結(jié)構(gòu)讀到內(nèi)存,掛載到系統(tǒng)組織信息的雙向鏈表上,并且駐留在內(nèi)存中,最 后建立系統(tǒng)的數(shù)據(jù)結(jié)構(gòu);其中,數(shù)據(jù)操作步驟包括存儲(chǔ)空間的分配和釋放操作和/或抗掉電保護(hù)操作和/ 或均衡磨損操作和/或壞塊處理和/或數(shù)據(jù)校驗(yàn)操作。所述的步驟a中的硬件參數(shù)包括塊(Block)容量大小、頁面(Page)容量大小、塊 (Block)數(shù)量、起始塊(Block)和結(jié)束塊(Block)位置。所述的存儲(chǔ)空間的分配和釋放操作具體是新的數(shù)據(jù)文件創(chuàng)建時(shí),指定或由系統(tǒng)按順序產(chǎn)生一個(gè)文件名稱(FileID),從當(dāng) 前的空閑塊鏈表頭獲取,且分配一個(gè)干凈的空閑塊(Block),同一個(gè)數(shù)據(jù)文件的文件名稱 (FileID)都是設(shè)置為相同的,頁面名稱(PageID)按順序從0開始遞增;數(shù)據(jù)寫入時(shí),新頁面(Page)從當(dāng)前具有相同文件名稱(FileID)且頁面存儲(chǔ)狀態(tài) 記錄區(qū)的頁面存儲(chǔ)狀態(tài)位(Page status)標(biāo)識為未使用的開始分配,如果當(dāng)前塊(Block) 已經(jīng)寫滿用完,則頁面存儲(chǔ)狀態(tài)記錄區(qū)的塊存儲(chǔ)狀態(tài)位(Block status)標(biāo)志為滿,重新分 配一個(gè)新的干凈的空閑塊(Block),且保持其的文件名稱(FileID)不變;刪除一個(gè)數(shù)據(jù)文件時(shí),系統(tǒng)會(huì)根據(jù)文件名稱(FileID)找到所有相同文件名稱 (FileID)的塊(Block),確認(rèn)這些塊(Block)中當(dāng)前沒有正在執(zhí)行讀寫操作后,按順序執(zhí)行 塊(Block)擦除動(dòng)作,然后逐個(gè)又掛載回空閑塊鏈表上。所述的抗掉電保護(hù)操作具體是系統(tǒng)在每個(gè)頁面(Page)的頁面系列號O^ge Serial)數(shù)據(jù)第一次寫時(shí)都為0,以后每次寫具有同一文件名稱(FileID)和頁面名稱 (PageID)的頁面(Page)的時(shí)候都加1。所述的均衡磨損操作具體是每個(gè)頁面(Page)的塊擦除次數(shù)記錄區(qū)內(nèi)的塊 (Block)的擦除次數(shù)數(shù)據(jù)第一次操作時(shí)都為0,以后每次數(shù)據(jù)操作的時(shí)候都加1,系統(tǒng)根據(jù) 塊(Block)的擦除次數(shù)來決定該擦除之后的塊(Block)在塊空閑鏈表上的前后順序,擦除 次數(shù)較少塊(Block)在塊空閑鏈表上排序靠前,同樣擦除次數(shù)的塊(Block)以其掛載于塊 空閑鏈表的先后順序排序。所述的壞塊處理具體是系統(tǒng)對每個(gè)頁面(Page)寫完數(shù)據(jù)后馬上讀取該數(shù)據(jù)并 與數(shù)據(jù)緩存區(qū)中的寫入前數(shù)據(jù)進(jìn)行比較,如果發(fā)現(xiàn)不完全匹配,則表示此頁面(Page)所在 的塊(Block)可能出現(xiàn)壞塊,先將該塊(Block)當(dāng)前存儲(chǔ)的有效數(shù)據(jù)轉(zhuǎn)移到另外一個(gè)塊 (Block)上,待轉(zhuǎn)移成功,再將可能的壞塊進(jìn)行重新擦除后寫入待寫數(shù)據(jù),如果依然不正常, 則明確將此塊標(biāo)志為壞塊,系統(tǒng)在后續(xù)的運(yùn)行中,只要讀到這個(gè)塊的壞塊的塊存儲(chǔ)狀態(tài)位 數(shù)據(jù),便自動(dòng)跳轉(zhuǎn)到下一個(gè)塊(Block)。所述的數(shù)據(jù)校驗(yàn)操作具體是系統(tǒng)在數(shù)據(jù)每次在寫入之前會(huì)先通過ECC校驗(yàn)算法 算出存儲(chǔ)數(shù)據(jù)的校驗(yàn)碼(ECC,Error Correction Code),然后同時(shí)將校驗(yàn)碼(ECC,Error Correction Code)寫入頁面的備份空間,讀取數(shù)據(jù)時(shí),將讀取的數(shù)據(jù)先計(jì)算出ECC校驗(yàn)碼 (ECC, Error Correction Code),再將得出的ECC校驗(yàn)碼同數(shù)據(jù)校驗(yàn)碼記錄區(qū)的數(shù)據(jù)校驗(yàn)碼數(shù)據(jù)進(jìn)行比較,如果不一致,表明出現(xiàn)了錯(cuò)誤,最后調(diào)用ECC修正算法,進(jìn)行數(shù)據(jù)補(bǔ)救。本發(fā)明的技術(shù)方案提出一種優(yōu)化的Flash存儲(chǔ)器的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)及其數(shù)據(jù)操作 的控制方式。本發(fā)明的技術(shù)方案在讀寫操作中對Flash存儲(chǔ)進(jìn)行均衡處理,避免了因頻繁 寫入刪除操作對塊(Block)壽命的縮短,盡可能避免壞塊的產(chǎn)生,從而延長了 Flash存儲(chǔ) 器的使用壽命。同時(shí),還針對Flash存儲(chǔ)器在惡劣環(huán)境下使用進(jìn)行抗掉電處理和數(shù)據(jù)校驗(yàn) (ECC)處理機(jī)制設(shè)計(jì),從而使Flash存儲(chǔ)器在數(shù)據(jù)存儲(chǔ)具有抗掉電性,抗干擾,自糾錯(cuò)能力。因此,本發(fā)明是一種適合于車載環(huán)境下的GPS監(jiān)控終端的數(shù)據(jù)存儲(chǔ)使用。本發(fā)明 經(jīng)過較長時(shí)間的測試使用,證明該種數(shù)據(jù)機(jī)構(gòu)數(shù)據(jù)及其數(shù)據(jù)操作方法是安全可靠的。同樣, 本發(fā)明的Flash存儲(chǔ)器的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)及其數(shù)據(jù)操作方式也適用于車載環(huán)境下的其它嵌 入式設(shè)備,特別是內(nèi)存較小、無操作系統(tǒng)支持且對數(shù)據(jù)存儲(chǔ)要求比較嚴(yán)格的設(shè)備。
具體實(shí)施例方式本發(fā)明首先提出一種Flash存儲(chǔ)器的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),其每個(gè)頁面(Page)的存儲(chǔ)單 位內(nèi)包括存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)空間和一備用空間。其中,所述的備用空間的被定義為以下 幾部分文件名稱(FileID)記錄區(qū),用于存放文件名稱(FileID)數(shù)據(jù);頁面名稱(PageID)記錄區(qū),用于存放頁面名稱(PageID)數(shù)據(jù);頁面存儲(chǔ)狀態(tài)記錄區(qū),用于存放頁面存儲(chǔ)狀態(tài)位(Page status)數(shù)據(jù)和塊存儲(chǔ)狀 態(tài)位(Block status)數(shù)據(jù);頁面狀態(tài)(TAG)記錄區(qū),用于存放頁面系列號(Page Serial)數(shù)據(jù)和頁面數(shù)據(jù)長 & (Pagedatalen) WM ;塊擦除次數(shù)記錄區(qū),用于存放塊(Block)的擦除次數(shù)數(shù)據(jù);數(shù)據(jù)校驗(yàn)碼(ECC)記錄區(qū),用于存放數(shù)據(jù)校驗(yàn)碼(ECC,Error Correction Code) 數(shù)據(jù)。本發(fā)明主要是針對NAND Flash的特性來進(jìn)行設(shè)計(jì)的,但只要通過配置Flash塊的 大小等參數(shù),也可以移植到Nor Flash上。下面僅以NAND Flash進(jìn)行說明,本領(lǐng)域技術(shù)人 員即可根據(jù)本說明的思路原理在Nor Flash上實(shí)現(xiàn)相同的數(shù)據(jù)設(shè)計(jì)和數(shù)據(jù)操作方式。Nand Flash以塊(Block)為單位進(jìn)行擦除,以頁面(Page)為單位進(jìn)行存取的 特點(diǎn),將文件組織成固定大小的數(shù)據(jù)段。一般來說,U8MB以下容量NANDFlash芯片每個(gè) 塊大小為16K,每個(gè)塊有32頁。一頁包括大小為512字節(jié),設(shè)計(jì)時(shí)用來存放數(shù)據(jù)的數(shù)據(jù) 存儲(chǔ)空間,另外每一頁還有16字節(jié)的備用空間(SpareData),設(shè)計(jì)時(shí)用來存儲(chǔ)ECC (Error Correction Code)校驗(yàn)和數(shù)據(jù)存儲(chǔ)的組織信息。本發(fā)明的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)則是針對備用空間 (SpareData)進(jìn)行設(shè)計(jì)而實(shí)現(xiàn)本發(fā)明的思路。NAND FLASH上的每一頁數(shù)據(jù),都有額外的空間用來存儲(chǔ)附加信息,以512+16Byte 為一個(gè)PAGE的NAND FLASH芯片為例,數(shù)據(jù)的存儲(chǔ)布局如下所示
權(quán)利要求
1.Flash存儲(chǔ)器的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),其每個(gè)頁面的存儲(chǔ)單位內(nèi)包括存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)存儲(chǔ) 空間和一備用空間,其特征在于所述的備用空間的被定義為以下幾部分文件名稱記錄區(qū),用于存放文件名稱數(shù)據(jù); 頁面名稱記錄區(qū),用于存放頁面名稱數(shù)據(jù);頁面存儲(chǔ)狀態(tài)記錄區(qū),用于存放頁面存儲(chǔ)狀態(tài)位數(shù)據(jù)和塊存儲(chǔ)狀態(tài)位數(shù)據(jù); 頁面狀態(tài)記錄區(qū),用于存放頁面系列號數(shù)據(jù)和頁面數(shù)據(jù)長度數(shù)據(jù); 塊擦除次數(shù)記錄區(qū),用于存放塊的擦除次數(shù)數(shù)據(jù); 數(shù)據(jù)校驗(yàn)碼記錄區(qū),用于存放數(shù)據(jù)校驗(yàn)碼數(shù)據(jù)。
2.對如權(quán)利要求1所述的Flash存儲(chǔ)器的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)進(jìn)行數(shù)據(jù)操作方式,其特征在 于包括系統(tǒng)初始化步驟和數(shù)據(jù)操作步驟;其中,系統(tǒng)初始化步驟包括步驟a 獲取Flash存儲(chǔ)器的各種硬件參數(shù);步驟b 遍歷掃描Flash存儲(chǔ)器的每個(gè)頁面的存儲(chǔ)單位內(nèi)的備份空間,通過讀取頁面存 儲(chǔ)狀態(tài)記錄區(qū)內(nèi)的塊存儲(chǔ)狀態(tài)位數(shù)據(jù)判斷該頁面是不是壞塊,如果是壞塊,再次進(jìn)行壞塊 判定確認(rèn),如果仍是壞塊,則標(biāo)識此塊為壞塊后停止對本頁面所屬塊中其他頁面的掃描,進(jìn) 入到下一個(gè)塊的頁面的掃描;步驟c 對于非壞塊,通過讀取頁面狀態(tài)記錄區(qū)的頁面數(shù)據(jù)長度數(shù)據(jù)判斷該塊中的所 有頁面是否均為干凈頁面,如果是,則將此塊掛載到空閑塊鏈表上;步驟d 對于非干凈頁面,通過讀取頁面存儲(chǔ)狀態(tài)記錄區(qū)內(nèi)的頁面存儲(chǔ)狀態(tài)位數(shù)據(jù)來 判斷當(dāng)前數(shù)據(jù)是否有效,如果一個(gè)塊中的所有頁面的數(shù)據(jù)都是無效數(shù)據(jù),表示這個(gè)塊可以 擦除,將其掛載到待擦除鏈表上;步驟e:對于具有有效數(shù)據(jù)的頁面,通過讀取文件名稱記錄區(qū)內(nèi)的文件名稱數(shù)據(jù)判斷 該頁面所屬的文件的文件鏈表是否存在于內(nèi)存,若不存在,則用此文件名稱創(chuàng)建一新文件 鏈表;步驟f:對于文件鏈表已經(jīng)存在的頁面,通過讀取頁面名稱記錄區(qū)的頁面名稱數(shù)據(jù)來 判斷該頁面是否在相同文件名稱的文件鏈表上存在頁面名稱節(jié)點(diǎn),若不存在,掛載該頁步驟g 對于頁面名稱節(jié)點(diǎn)已存在于文件鏈表的頁面,通過讀取頁面狀態(tài)記錄區(qū)的頁 面系列號數(shù)據(jù)判斷其系列號是否最大,若不是最大,將該頁面的頁面存儲(chǔ)狀態(tài)位數(shù)據(jù)標(biāo)識 為無效;步驟h 對于頁面系列號為最大的頁面,掛載該頁面于相同文件名稱的文件鏈表上; 步驟i 通過空閑塊鏈表和文件鏈表,統(tǒng)計(jì)出當(dāng)前空閑塊個(gè)數(shù)信息和文件個(gè)數(shù)信息; 步驟j 將Flash存儲(chǔ)器的每個(gè)頁面的存儲(chǔ)單位內(nèi)的備份空間中存儲(chǔ)的信息按一定的 數(shù)據(jù)結(jié)構(gòu)讀到內(nèi)存,掛載到系統(tǒng)組織信息的雙向鏈表上,并且駐留在內(nèi)存中,最后建立系統(tǒng) 的數(shù)據(jù)結(jié)構(gòu);其中,數(shù)據(jù)操作步驟包括存儲(chǔ)空間的分配和釋放操作和/或抗掉電保護(hù)操作和/或均 衡磨損操作和/或壞塊處理和/或數(shù)據(jù)校驗(yàn)操作。
3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)操作方式,其特征在于所述的步驟a中的硬件參數(shù)包 括塊容量大小、頁面容量大小、塊數(shù)量、起始塊和結(jié)束塊位置。
4.根據(jù)權(quán)利要求2所述的數(shù)據(jù)操作方式,其特征在于所述的存儲(chǔ)空間的分配和釋放 操作具體是新的數(shù)據(jù)文件創(chuàng)建時(shí),指定或由系統(tǒng)按順序產(chǎn)生一個(gè)文件名稱,從當(dāng)前的空閑塊鏈表 頭獲取,且分配一個(gè)干凈的空閑塊,同一個(gè)數(shù)據(jù)文件各個(gè)頁面的備份空間中存放的文件名 稱相同,頁面名稱按順序從0開始遞增;數(shù)據(jù)寫入時(shí),新頁面從當(dāng)前具有相同文件名稱且頁面存儲(chǔ)狀態(tài)記錄區(qū)的頁面存儲(chǔ)狀態(tài) 位標(biāo)識為未使用的頁面開始分配,如果當(dāng)前塊已經(jīng)寫滿用完,則頁面存儲(chǔ)狀態(tài)記錄區(qū)的塊 存儲(chǔ)狀態(tài)位標(biāo)志為滿,重新分配一個(gè)新的干凈的空閑塊,且保持其的文件名稱不變;刪除一個(gè)數(shù)據(jù)文件時(shí),系統(tǒng)會(huì)根據(jù)文件名稱找到所有相同文件名稱的塊,確認(rèn)這些塊 中當(dāng)前沒有正在執(zhí)行讀寫操作后,按順序執(zhí)行塊擦除動(dòng)作,然后逐個(gè)掛回空閑塊鏈表上。
5.根據(jù)權(quán)利要求2所述的數(shù)據(jù)操作方式,其特征在于所述的抗掉電保護(hù)操作具體是 每個(gè)頁面的頁面系列號數(shù)據(jù)第一次寫時(shí)都為0,以后每次寫具有同一文件名稱和頁面名稱 的頁面的時(shí)候都加1。
6.根據(jù)權(quán)利要求2所述的數(shù)據(jù)操作方式,其特征在于所述的均衡磨損操作具體是每 個(gè)頁面的塊擦除次數(shù)記錄區(qū)內(nèi)的塊的擦除次數(shù)數(shù)據(jù)第一次操作時(shí)都為0,以后每次數(shù)據(jù)操 作的時(shí)候都加1,系統(tǒng)根據(jù)塊的擦除次數(shù)來決定該擦除之后的塊在塊空閑鏈表上的前后順 序,擦除次數(shù)較少塊在塊空閑鏈表上排序靠前,同樣擦除次數(shù)的塊以其掛載于塊空閑鏈表 的先后順序排序。
7.根據(jù)權(quán)利要求2所述的數(shù)據(jù)操作方式,其特征在于所述的壞塊處理具體是系統(tǒng)對 每個(gè)頁面寫完數(shù)據(jù)后馬上讀取該數(shù)據(jù)并與數(shù)據(jù)緩存區(qū)中的寫入前數(shù)據(jù)進(jìn)行比較,如果發(fā)現(xiàn) 不完全匹配,則表示此頁面所在的塊可能出現(xiàn)壞塊,先將該塊當(dāng)前存儲(chǔ)的有效數(shù)據(jù)轉(zhuǎn)移到 另外一個(gè)塊上,待轉(zhuǎn)移成功,再將可能的壞塊進(jìn)行重新擦除后寫入待寫數(shù)據(jù),如果依然不正 常,則明確將此塊標(biāo)志為壞塊,系統(tǒng)在后續(xù)的運(yùn)行中,只要讀到這個(gè)塊的壞塊的塊存儲(chǔ)狀態(tài) 位數(shù)據(jù),便自動(dòng)跳轉(zhuǎn)到下一個(gè)塊。
8.根據(jù)權(quán)利要求2所述的數(shù)據(jù)操作方式,其特征在于所述的數(shù)據(jù)校驗(yàn)操作具體是系 統(tǒng)在數(shù)據(jù)每次在寫入之前會(huì)先通過ECC校驗(yàn)算法算出存儲(chǔ)數(shù)據(jù)的校驗(yàn)碼,然后同時(shí)將校 驗(yàn) 碼寫入頁面的備份空間,讀取數(shù)據(jù)時(shí),將讀取的數(shù)據(jù)先計(jì)算出ECC校驗(yàn)值,再將得出的ECC 校驗(yàn)值同數(shù)據(jù)校驗(yàn)碼記錄區(qū)的數(shù)據(jù)校驗(yàn)碼數(shù)據(jù)進(jìn)行比較,如果不一致,表明出現(xiàn)了錯(cuò)誤,最 后調(diào)用ECC修正算法,進(jìn)行數(shù)據(jù)補(bǔ)救。
全文摘要
本發(fā)明涉及Flash存儲(chǔ)器領(lǐng)域。本發(fā)明的Flash存儲(chǔ)器的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),每個(gè)頁面的存儲(chǔ)單位內(nèi)包括存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)空間和一備用空間。所述的備用空間的被定義為以下幾部分文件名稱記錄區(qū)、頁面名稱記錄區(qū)、頁面存儲(chǔ)狀態(tài)記錄區(qū)、頁面狀態(tài)記錄區(qū)、塊擦除次數(shù)記錄區(qū)、數(shù)據(jù)校驗(yàn)碼記錄區(qū)。對如上所述的Flash存儲(chǔ)器的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)進(jìn)行數(shù)據(jù)操作方式,具體是包括系統(tǒng)初始化步驟和數(shù)據(jù)操作步驟,該數(shù)據(jù)操作步驟包括存儲(chǔ)空間的分配和釋放操作、抗掉電保護(hù)操作、均衡磨損操作、壞塊處理、數(shù)據(jù)校驗(yàn)操作。本發(fā)明優(yōu)化Flash存儲(chǔ)器的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)及其數(shù)據(jù)操作的控制方式,在讀寫操作中對Flash存儲(chǔ)進(jìn)行均衡處理,及進(jìn)行抗掉電處理和ECC處理機(jī)制設(shè)計(jì),避免了已有Flash存在的缺陷。
文檔編號G06F11/08GK102081577SQ20111000867
公開日2011年6月1日 申請日期2011年1月12日 優(yōu)先權(quán)日2011年1月12日
發(fā)明者莊宗輝, 潘勝, 鐘可華, 陳從華, 黃希煌 申請人:廈門雅迅網(wǎng)絡(luò)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
固镇县| 贵州省| 长治县| 靖远县| 黎城县| 丘北县| 神农架林区| 蓝田县| 吉安县| 北辰区| 丰顺县| 磐石市| 临沂市| 贵定县| 武川县| 清新县| 玛曲县| 西畴县| 正安县| 金昌市| 衢州市| 顺平县| 和平区| 高邮市| 龙里县| 贺州市| 廉江市| 石林| 通化市| 阿坝县| 东台市| 华安县| 封丘县| 姚安县| 冀州市| 庆元县| 上杭县| 呼伦贝尔市| 那坡县| 嵊泗县| 章丘市|