999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于大容量數據記錄儀的壞塊管理設計

2014-03-28 01:53:42胡紅王少云葉艷
電子設計工程 2014年8期
關鍵詞:信息方法管理

胡紅,王少云,葉艷

(1.南京航空航天大學電子信息工程學院,江蘇南京210016;2.南京航空航天大學無人機研究院,江蘇南京210016)

Flash芯片作為一種新興的半導體存儲器件,具有集成度高、非易失性、功耗低、價格低、容量大、可擦除次數多等優點,被廣泛應用于大容量數據存儲系統中。Samsung公司的K9F8G08U0M單片容量達到8GB,可通過多片NAND Flash串聯的方法擴大系統容量。但是由于工藝和使用環境等因素,NAND Flash較其他形式的存儲芯片更易出現壞塊問題,同時由于NAND Flash存儲芯片的容量大,出現壞塊問題也更多。因此,在使用NAND Flash存儲芯片時,對壞塊的管理愈顯重要。

使用NAND Flash存儲芯片時,對壞塊的管理的一般方法有:1)基于FPGA的片內RAM,存儲有效塊信息,將有效塊地址作為數據存入RAM中。進行讀寫操作時,從RAM中讀出有效塊地址。2)基于FPGA內部RAM,RAM地址與塊地址相對應,在與壞塊地址相對應的RAM中存儲1,而其他存儲0[1]。

本文提出了一種基于FPGA的大容量數據記錄儀的壞塊管理方法,利用FPGA[2]內部RAM[3]空間建立壞塊地址信息存儲區,通過查詢存儲區中的信息,來確定當前存儲塊是否損壞,若是壞塊則跳過,從而避免對壞塊的操作,實現了對Flash存儲空間的有效管理。該壞塊管理方案在不增加FPGA使用的復雜程度的條件下,需要的內存資源比方法1、方法2明顯減少。

1 NAND Flash K 9F8G08U0M簡介

文中的大容量數據記錄儀采用9片Samsung公司的NAND Flash芯片K9F8G08U0M,其總容量達到72G。K9F8G08U0M芯片由4096個塊組成,每個塊有64頁,每個頁為(4K+128)Bytes,其中4KBytes為Main Area,128Bytes為Spare area,Main Area專門存儲數據,Spare Area存儲其他信息,如ECC校檢碼、壞塊信息等。K9F8G08U0M的讀寫操作以頁為最小單位,擦除操作以塊為最小單位進行,禁止按位擦除。8個I/O引腳為多路復用,既可以作為數據線進行數據傳輸,也可以作為地址線進行尋址。這個方案顯著減少了芯片引腳,允許在保持系統板不變的情況下升級存儲密度[4]。

2 壞塊管理設計方案

K9F8G08U0M芯片是數據記錄儀的核心部分,若某個塊發生損壞時,視為壞塊。記錄儀工作時,剔除壞塊,只將數據存儲到好塊中,從而提高存儲數據的正確性,即數據記錄儀使用NAND Flash存儲芯片時,需要對存儲板壞塊進行管理。

2.1 壞塊產生原因及分類

由于Flash的制造工藝不能保證其存儲陣列在其生命周期中保持性能的可靠,因此,在Flash的生產與使用過程中會產生壞塊。

NAND Flash的壞塊可分為兩類:固有壞塊、使用壞塊。固有壞塊是出廠前,由于生產工藝所產生的壞塊。廠商已經對固有壞塊進行了壞塊標記,在每個塊第1頁的第一個備份字節標志壞塊值,若為0xff,則為好塊,若為非0xff,則為壞塊。為了保持與固有壞塊信息一致,使用過程中發現新的壞塊時,將新的壞塊第一頁的第一個備份字節標志為非0xff。

使用壞塊是出廠后,用戶對芯片使用產生過程中產生的新壞塊。

2.2 壞塊管理設計方案分析與實現

本文提出的壞塊管理方法是對方法1上進行改進后形成的。我們稱為方法3。方法3在FPGA中內建片上RAM來存儲壞塊地址信息,通過壞塊查詢模塊來辨別當前存儲塊是否有效。壞塊管理需要做以下工作:識別壞塊并建立壞塊表(BBT,bad block table),將壞塊地址信息存儲到壞塊表中;在對當前存儲塊進行操作時,發生錯誤需更新BBT,并且通過壞塊查詢模塊來跳過壞塊,從而對有效塊進行操作。

2.2.1 識別壞塊與存儲信息

第一次對NAND Flash進行操作之前,先要識別固有壞塊,建立初始BBT。其操作流程為:設置塊初始地址為0,檢查塊中備份區的第一個字節是否為0xff,如果是,則為有效塊,如果不是,則為壞塊,產生初始壞塊表(后面的塊為壞塊,則需更新BBT),將該壞塊地址信息存儲進去,增加塊地址,繼續上面的步驟,直到最后一塊。流程圖如圖1所示。

圖1 創建壞塊表的流程圖Fig.1 Flow chart of creating initial bad block table

在壞塊管理過程中,不僅僅要識別壞塊,而且必須將壞塊地址信息存儲起來,這樣在對存儲塊進行操作時只需要檢查該塊是否在BBT中,不需要每次去識別,節省了大量時間。首先在FPGA中建立RAM空間,將壞塊地址信息存儲到RAM壞塊地址信息存儲區,然后再寫入到NAND Flash的一個有效塊中。為了防止意外掉電,每個BBT必須在Flash里保存兩份[5]。當發現兩個BBT不一樣時,說明出現狀況,必須重新建立壞塊表[7]。

NAND Flash除了固有壞塊,對NAND Flash進行讀寫擦除操作過程中也會隨機產生新的壞塊,這時需要更新BBT。NAND Flash讀操作失敗時,一般不會造成整頁全部出錯,僅僅是頁中的一個或幾個比特出錯。文中使用一種比較專用的校檢—ECC(Error Correction Code)。ECC能夠糾正一個比特錯誤以及檢測兩個比特錯誤,而且計算速度很快[6]。本設計中,對每個512Bytes原始數據生成3個字節ECC校檢碼:8比特的列校檢碼和16比特的行校檢碼。對于每頁4KB的數據來說,會產生24Bytes的ECC校檢碼。當出現1bit錯誤時,可糾正;當出現2bits以上的錯誤,就將該塊標記為壞塊,這時需要更新BBT,如圖2所示。當擦寫操作失敗時,其狀態會相應地反映到狀態寄存器上,將壞塊里面的內容備份到有效塊中,然后將其標志為壞塊,這時也需要更新BBT,如圖3所示。

圖2 讀操作失敗更新BBTFig.2 Update BBT with failure of read operation

2.2.2 壞塊查詢模塊

對當前存儲塊進行操作時,需要調用壞塊查詢模塊。上電時,首先將壞塊信息從Flash的存儲區讀入到RAM中。當對第n塊進行操作時,只需調用壞塊查詢模塊,查詢FPGA內部RAM的壞塊地址信息,如果該塊為壞塊,則對第n+1個壞塊查詢,直至查詢到一個有效塊。查詢壞塊模塊部分代碼如下所示。

always@(posedge clk or negedge rst)

if(!rst)

begin

valid_blockaddr<=12'b0;

i<=5'b0;

read<=1'b0;

圖3 擦寫操作失敗更新BBTFig.3 Update BBT with failure of erase and write operation

num<=5'b0;

end

else

begin

if(i<64)

begin

block_addr<=addr[30:19]+num;

read<=1'b1;

address<=i;

if(block_addr==data)//說明該塊為壞塊,設num為1,則塊地址加1

begin

i<=0;

num<=num+5'b1;

end

else//與下一個地址信息對比,num不變,則地址不變

begin

i<=i+5'b1;

num<=num;

end

end

else//當i大于63時,說明已與所有壞塊地址信息對比過,并且該塊不在壞塊中

begin

valid_blockaddr<=block_addr;

i<=0;

num<=5'b0;

end

end

其中read、address分別為存儲壞塊地址信息RAM的讀使能端、地址,數據寬度為12,深度為64。addr為31位操作地址,data為RAM輸出的壞塊地址,將操作地址與壞塊地址data相比較,如果數據相同,說明該塊為壞塊,則將塊地址加1,從而跳過壞塊。由于所選型號不同以及工藝上的差別,壞塊數目自然不同,因此根據實際情況建立RAM[5]。

2.3 壞塊管理設計方法比較

由于一般壞塊的數量不超過總量的2%,所以其壞塊信息量較有效塊信息量小很多。方法3只占用FPGA較少的RAM資源。對于單片K9F8GU0M而言,對方法1、方法2以及本文所提出的方法進行存儲信息以及占用RAM資源的比較,如表1所示。方法3占用RAM的資源大約是方法1的2.5%,是方法3的30%。

表1 壞塊管理設計方法比較Tab.1 The comparison of bad block storage methods

3 仿真分析

3.1 仿真試驗

本文使用Verilog HDL語言進行編程,在QuartusII軟件平臺上對實現的功能進行編譯、運行,并且在Modelsim仿真平臺上編寫測試[8]平臺,對模塊進行功能仿真。圖4、圖5分別為識別壞塊仿真圖、壞塊查詢仿真圖。

圖4 識別壞塊仿真圖Fig.4 Simulation diagram of identifying bad block

3.2 結果分析

圖5 壞塊查詢仿真圖Fig.5 Stimulation graph of checking bad block

圖4為識別固有壞塊仿真時序。該數據記錄儀由9片K9F8G08U0M組成,圖中CE_L為9位片選信號,低電平有效;ALE_H為地址鎖存使能,高電平有效;CLE_H為命令鎖存使能,高電平有效;WE_L為寫使能,低電平有效;RE_L為讀使能,低電平有效;RB為設備狀態對于識別壞塊的仿真,本設計片選第1個芯片,讀出每塊的第一個備份字節。塊的初始地址為0,讀出數據后,將塊地址加1。由仿真圖可知第0,1塊為好塊,第2塊為壞塊,依次類推。仿真結果表明該壞塊管理中的壞塊識別模塊能夠實現識別壞塊的功能。

圖5為壞塊查詢模塊仿真圖。為了便于觀察,設置RAM中第1、2、3、4地址存儲的壞塊地址為第1、3、5、6塊。圖5中addr為31位操作地址,分別設置為0x00000000、0x00180000、0x00280000,其對應的塊地址為第0、3、5塊;valid_block為12位有效塊地址。由圖5可知,當對第3塊操作時,由于該塊為壞塊,所以跳過壞塊,對第4塊進行操作;當對第5塊進行操作時,由于該塊為壞塊,并且下一個塊即第6塊也為壞塊,所以跳到第7塊進行操作。仿真結果表明,該壞塊管理中壞塊查詢模塊能夠實現辨別當前存儲塊是否為壞塊,并且跳過壞塊的功能。

4 結束語

文中的大容量數據記錄儀的存儲板由9片NAND Flash串聯組成,存儲容量大,出現壞塊問題的可能也多,因此提出了一種基于FPGA存儲壞塊地址信息的壞塊管理方案,來解決存儲板中的壞塊管理問題。仿真分析表明,該壞塊管理方案能夠有效地解決NAND Flash的壞塊管理問題,具有占用FPGA資源少的優點,也可供其他類型的大容量數據記錄儀作為參考。

[1] 張勝勇,高世杰,吳志勇,等.基于FPGA的NAND Flash壞塊處理方法[J].計算機工程,2010,36(6):239-243.ZHANG Sheng-yong,GAO Shi-jie,WU Zhi-yong,et al.Bad block handle method of NAND flash memory based on FPGA[J].Computer Engineering,2010,36(6):239-243.

[2] 華清遠見嵌入式培訓中心.FPGA應用開發入門與典型實例[M].北京:人民郵電出版社,2008.

[3] 夏宇聞.Verilog數字系統設計教程[M].北京:北京航空航天大學出版社,2008.

[4] Samsung Electronics.K9F8G08UXMFLASH Memory[M].2007.

[5] 羅曉,劉昊.一種基于FAT文件系統的NAND Flash壞塊處理方法[J].電子器件,2008,31(2):716-719.LUO Xiao,LIU Hao.Method of NAND flash memory bad block management based on FAT file system[J].Chinese Journal Of Electron Devices,2008,31(2):716-719.

[6] 韓勇豪,王少云.一種固態飛行參數記錄儀的研制[J].電子設計工程,2011,19(16)159-162.HAN Yong-hao,WANG Shao-yun.Design of a solid flight parameter recorder[J].Electronic Design Engineering,2011,19(16)159-162.

[7] 周軍.NAND Flash的壞塊管理設計[J].單片機與嵌入式系統應用,2010(9):15-17.ZHOU Jun.Bad block management for NAND flash[J].Microcontrollers&Embedded Systems,2010(9):15-17.

[8] 王文龍,張少博,陳海峰.一種試驗數據處理軟件設計[J].火箭推進,2012(1):76-80.WANG Wen-long,ZHANG Shao-bo,CHEN Hai-feng.Design of a test data processing software[J].Journal of Rocket Propulsion,2012(1):76-80.

猜你喜歡
信息方法管理
棗前期管理再好,后期管不好,前功盡棄
今日農業(2022年15期)2022-09-20 06:56:20
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
“這下管理創新了!等7則
雜文月刊(2016年1期)2016-02-11 10:35:51
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
人本管理在我國國企中的應用
現代企業(2015年8期)2015-02-28 18:54:47
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
管理的另一半
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 亚洲国产精品无码AV| 99re经典视频在线| 亚洲人成高清| 国产区福利小视频在线观看尤物| 国内精品免费| 亚洲天堂视频在线播放| 成人小视频在线观看免费| 色婷婷亚洲综合五月| 欧美有码在线观看| 久久动漫精品| 伊人蕉久影院| 99国产精品一区二区| 亚洲啪啪网| 国产91av在线| 午夜精品久久久久久久无码软件| 91久久大香线蕉| 久久国产免费观看| 亚洲天堂视频网| 丝袜亚洲综合| 中文字幕亚洲另类天堂| 国产成在线观看免费视频| 国产第一页亚洲| 国产欧美在线观看一区| 一级毛片在线免费看| 亚洲天堂网在线播放| 亚洲男女天堂| 青青热久麻豆精品视频在线观看| 国产精品嫩草影院视频| 成年人久久黄色网站| 久久精品只有这里有| 亚洲精品手机在线| 天天综合亚洲| www.精品国产| 国产成人1024精品| 中文字幕永久在线看| 一级毛片免费不卡在线视频| 亚洲日本中文综合在线| 国产精品福利社| 97在线视频免费观看| 亚洲国产日韩在线成人蜜芽| 中国毛片网| 国产高清精品在线91| JIZZ亚洲国产| 熟女日韩精品2区| 久青草网站| 国产亚洲欧美在线人成aaaa| 久久久久无码精品| 国产色爱av资源综合区| 欧洲一区二区三区无码| 欧美色综合久久| 免费一级毛片在线播放傲雪网| jizz在线免费播放| 成色7777精品在线| 亚洲人免费视频| 青草视频网站在线观看| 国内精品久久人妻无码大片高| 性欧美久久| 真实国产乱子伦高清| 婷婷综合缴情亚洲五月伊| 国产裸舞福利在线视频合集| 性欧美在线| 2021天堂在线亚洲精品专区| 久久综合久久鬼| 色丁丁毛片在线观看| 老司机aⅴ在线精品导航| 色婷婷国产精品视频| 日本黄网在线观看| 精品少妇人妻av无码久久| 欧美福利在线| 国产主播一区二区三区| 婷婷激情亚洲| 色悠久久久久久久综合网伊人| 国产真实乱人视频| 成人va亚洲va欧美天堂| 精品久久久无码专区中文字幕| 国产欧美精品专区一区二区| 免费一级毛片完整版在线看| 美女一区二区在线观看| 九九热视频在线免费观看| 亚洲 成人国产| 亚洲乱强伦| 日韩欧美网址|