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

實現流水存儲及壞塊處理的Flash控制器設計

2016-09-09 02:51:25閆夢婷安軍社江源源
電子設計工程 2016年16期
關鍵詞:流水機制信息

閆夢婷,安軍社,江源源

(1.中國科學院空間科學與應用研究中心 北京100190;2.中國科學院大學 北京100190)

實現流水存儲及壞塊處理的Flash控制器設計

閆夢婷1,2,安軍社1,江源源1

(1.中國科學院空間科學與應用研究中心 北京100190;2.中國科學院大學 北京100190)

實現了一種適用于航天設備的大容量存儲方案。給出一個基于FPGA實現的Flash控制器設計,該控制器可以完成航天應用的大容量數據存取工作。其中存儲操作中設計了流水編程機制,實現了疊裝芯片內部的流水編程操作,大幅度提高系統的整體存儲速率,實現了高速存儲的目的。同時,提出了一種完備的壞塊處理機制,可以屏蔽對已知壞塊的使用,并且在新的壞塊產生時確保存取操作正常執行,使得大容量存儲系統的存儲數據無誤差、無丟失,讀出正常有序的數據。經板級驗證,該方案的整體可以實現的最高存儲速率可達100 Mbps,壞塊處理機制可保證數據的正確性、完整性和連續性。

大容量;固態存儲;NAND Flash控制器;壞塊處理;流水存儲;FPGA應用

隨著航天領域對固態存儲器(Solid State Recorder)研制工作的不斷發展,NAND Flash以其高密度、大容量、高數據存儲速率以及更多的擦除次數等特點得到了大量的使用,逐步開始成為存儲介質的主流選擇。但是,NAND Flash由于其制造工藝和航天器的特殊使用環境等因素,會在存在壞塊,并在使用過程中產生新的壞塊,對壞塊的處理是NAND Flash實際應用中必須要解決的問題。大量的Flash使用實例中已經出現了常見的壞塊處理方法,主要是在使用前建立壞塊信息表,根據壞塊信息表來檢索出可以使用的有效塊,避免對壞塊進行誤操作。根據壞塊信息表存儲的方式可以分為兩類:1)建立存儲區,將有效塊的地址存儲在存儲區內,每次將有效塊地址從存儲器中取出后進行使用。2)建立與Flash塊地址空間大小一致的狀態寄存區,在狀態寄存區里對應的位標記出對應的Flash塊地址是否為有效塊,提取塊地址時,對狀態寄存區里的標記進行判斷。這兩種方法的存儲區域可以使用實現Flash控制器的FPGA建立片內RAM來實現,也可以使用Flash的某一塊的指定的頁空間來作為存儲區域。后者可以節約FPGA使用資源,但讀取以及修改壞塊信息的時間周期過長,不易于高速系統選用[1]。另外,還有基于FAT文件系統處理壞塊方法,該方法在文件系統層解決壞塊問題,對軟件、操作等存在一定難度,以硬件系統作為主要實現平臺的系統一般不選用該方法[2]。

但是,上述常用的壞塊處理方法只是以塊為單位進行壞塊處理,檢測已存在的壞塊情況,并避免已確定的使用壞塊,沒有提出當壞塊產生時保證數據完整的處理機制。因此,文中介紹了該Flash控制器實現的一種壞塊處理機制,在實現了高速流水存儲方式的基礎上,能夠保證數據完整性,提高了整個固態存儲器的性能,滿足實際應用的高速存儲、無數據丟失的要求。

1 NANDFlash主控制器設計

本設計中的NAND Flash控制器內部分為初始化、擦除、編程、讀取、標記以及主控制器6個模塊[3]。如圖1所示,系統上電后自動進入初始化模塊,Flash廠家將初始壞塊信息存放在每一塊首頁的第2 048和2 049字節,初始化模塊的任務是讀取所有的Flash塊的壞塊標記字節以及Spare區域的用戶使用信息,生成完備的塊信息表,后續存儲系統的全部工作都將根據塊信息表提供的信息來執行。本設計為達到存儲系統對高速率的要求,必須減少讀取塊信息表所需的時鐘周期,因此選擇在FPGA建立RAM區用來存放壞塊信息表。

圖1 控制器主要工作流程圖

編程和讀取操作的基本單位為頁,每次編程讀取操作可以一次性存儲、讀取一頁容量的數據[3]。編程操作模塊中,為了提高存儲系統的整體編程速率,利用了流水操作的方法對編程操作進行了改進,并且嵌入了完備的壞塊處理機制用于處理編程操作中產生壞塊的數據丟失問題,編程模塊將在下文詳述。讀取模塊會在接收到讀取指令后,按照順序從Flash中將數據讀出發送給接收器件。Flash存儲單元在執行數據寫入之前需要進行擦除操作,擦除模塊完成以塊為單位的擦除操作,擦除操作執行時也會產生新的壞塊,此時需要啟用標記模塊對壞塊進行標記。每次執行擦除操作實際上是將把整塊Flash的全部字節單元恢復為“FF”,即把所有的位全部恢復為“1”。編程操作則是將字節單元中相應的位從“1”置為“0”,以此將每個字節編程為相應的十六進制數。而壞塊的常見情況是無法將字節單元里的‘1'值置為‘0',或者無法將“0”的位恢復為“1”,因此對壞塊進行編程操作,將導致存入數據與實際編程成功的數據不一致,讀出錯誤數據,故而對Flash的使用要避免使用壞塊。

2 塊信息表的維護

初始化模塊的作用是檢索Flash所有塊的第0頁的第2 048、2 049單元,判斷該塊是否為壞塊,以及讀取本設計使用的Spare區信息存儲單元里的使用信息,并在FPGA中開辟空間作為塊信息表的存儲區。本設計為了保證Flash控制器的正常運作,將為每一個塊建立5個字節的塊信息,存儲完備的塊信息表以供后續操作使用。其中,物理塊地址表示該塊在Flash單片芯片中的實際物理地址,需要用物理地址對Flash的操作進行尋址。塊類型是將在使用過程中可能出現的八種塊進行了分類標記,8種塊類型圖2中所示,分別是:未寫塊、正常寫滿塊、正常寫未寫滿塊、頁寫失敗塊、替代寫滿塊、替代未寫滿塊、替代頁寫失敗塊以及初始壞塊。邏輯塊地址,表示該塊在該次數據存儲操作中的實際使用的塊計數。數據的讀取操作將根據邏輯塊地址來進行,以此保證數據的連續性。尾頁地址是該塊最后一個存儲數據的頁的地址,數據讀取時將根據尾頁地址進行讀取,對該塊的尾頁地址之后的頁將不進行讀取操作。

圖2 塊信息及塊分類示意圖

初始化的重要性在于,檢索Spare區域的使用信息建立起來的塊信息表記錄了Flash芯片所有的信息,對Flash的全部使用都將根據塊信息表來進行。編程操作所需的地址將根據塊信息表判斷一個物理地址所指向的塊是否為有效塊,是否可以執行正常的編程操作;讀取操作根據塊信息表的邏輯塊地址和尾頁地址來檢索出需要進行讀取操作的塊和頁,并且以此來調整數據讀取的順序,保證數據的連續性。擦除操作也將根據塊信息表來決定是否要對該物理地址塊進行擦除操作,Flash需要避免對其壞塊進行擦除操作,一旦對壞塊執行擦除操作,會將壞塊的第0頁的2 048和2 049字節的壞塊標記信息恢復為 “FF”,將壞塊誤標記為可操作的有效塊,在后續的使用中造成錯誤操作等現象。一旦在使用過程中產生了新的壞塊,需要立即修改塊信息表中的對應塊信息,以保證后續操作的正確性。

3 壞塊替代機制的設計

3.1流水編程機制

根據Flash的工作要求,當需要對某一片Flash某一頁進行編程操作時,需要向Flash芯片的操作如下:1)發送起始指令和地址,2)發送2 048字節數據和Spare區的若干字節使用信息,3)發送結束指令。實際上,每一片Flash都有一個數據緩存區可以用于緩存一頁最大容量的數據,當接收到結束指令后,Flash會將緩存區的數據按順序固化到當前物理地址指向的頁中。根據Flash廠家提供的數據,可以得出以下數據:1)從緩存區固化到頁所需時間區間為[300~700]μs。2)如果系統時鐘選用16 MHz的時鐘,完成一頁數據編程操作的所需時間區間為[430~800]μs。此外還需要讀取反饋狀態的時間,無法保證在實際使用中編程操作的整體速率達到100 Mbps的要求,因此本設計提出流水編程機制。

本設計利用8片Flash單片疊裝的特點,采取流水方式進行編程操作,每次對8個單片Flash的同一邏輯塊地址的同一頁進行編程操作,并將此稱為一個流水級。CE0~CE7為8個單片Flash對應的片選使能信號,CE0為低電平時,IO口以及其他共用的信號對應操作第0片Flash,同樣的,其他CE信號使能時各個共用信號口對應相應的單片Flash。為了敘述簡便,我們將8片Flash單片分別定義為CE0~CE7。流水編程的具體實現步驟為:1)依次對CE0到CE7加載數據,CE0加載完成后,立即對CE1進行加載,直到CE7加載完成,使各個單片Flash的固化時間得到復用。2)一個流水級的加載工作全部完成之后,進行檢查工作。依次檢查CE0到CE7的RB信號,當RB信號為高時,意味著該單片Flash已經完成之前操作處于空閑狀態,此時才可以對Flash發送70 h指令去讀取編程操作狀態。如果RB信號為低,則表示該片Flash的固化工作仍未完成,則等待RB變低后再進行狀態讀取。

具體流程如圖3所示。實際上,當CE7開始自主固化編程時,距離CE0開始固化已經過去的時間為910 μs(130 μs*7),即使出現最長固化編程時間的情況,也完全可以確保CE0已經完成了固化工作。若Flash的固化操作都以典型值固化成功,則計算出當CE7開始固化數據時,RB0到RB3都已經變成高電平表示CE0到CE3都已經完成了固化工作,檢查前4片Flash編程操作是否成功的操作可以依次立即執行,而CE4 到CE7則仍需要等待一段時間,直到相應的RB信號變為高電平才能執行狀態判斷的操作。如圖3所示,固化時間得到了復用,利用流水編程機制,可以大幅提高整體存儲速率。如果8個Flash單片的頁編程操作都成功,則稱這一級流水編程成功;若有某一個Flash單片的頁編程操作失敗則稱該流水級編程失敗,開始調用壞塊替代機制。

3.2壞塊替代機制

Flash在使用過程中有可能會產生新的壞塊,編程操作和擦除操作都會導致壞塊產生,其中擦除操作產生的壞塊只需要對該壞塊進行標記,并及時更新塊信息表即可,因此本設計的控制器將擦除產生的壞塊處理操作設計在擦除模塊中。但是編程操作產生的壞塊涉及到數據的完整性,在一級流水編程操作完成后,對某一頁發送狀態檢測指令檢測到編程失敗,表示當前頁的數據沒有正常寫入Flash,我們稱該頁為編程失敗頁。當出現編程失敗頁的時候,無法確保該頁的數據編程完成,不能作為有效數據頁供后續的讀取操作直接訪問,即加載到該頁的2 048字節的數據因頁編程失敗而丟失。編程失敗頁所在的塊就是新產生的壞塊,該頁物理地址之后的頁也不能再執行編程操作。為了保證已寫入的數據正常讀出,編程失敗頁的數據不丟失,同時實現讀取數據的連續性和完整性,需要做更多復雜的處理,針對Flash工作特點和本設計的流水編程機制,下面介紹本設計采用的壞塊處理機制。

壞塊處理機制涉及到數據備份、Flash編程操作地址以及數據讀取順序3個方面,下面將對這3方面進行詳述。為了保證在任何一次壞塊產生時都不丟失數據,則需要進行數據備份,即在FPGA實現的控制器內部例化出一級流水數據量的存儲空間用于數據備份,這8個2 048字節的SRAM地址空間由CE0~CE7信號組合進行片選。當執行某一級流水級的數據寫入工作時,同時將2 048字節的數據寫入到對應的數據備份存儲空間中,一旦檢測到頁編程失敗,立即在替代塊中的同一頁地址作為替代頁的物理地址,將發生頁編程失敗的第n片Flash對應的數據備份空間里的數據寫入到替代塊的替代頁中。

圖4 壞塊產生存儲示意圖

8片疊裝式的芯片在編程操作時執行并行拓展式操作。一旦編程操作中產生了新的壞塊,要從緩存的地址中提取新的可以使用的替代塊,對替代塊標記的仍然是當前使用的邏輯塊地址。讀取數據時,根據初始化信息表中的塊類型,當開始讀取的一個流水級的邏輯塊含有壞塊時,正常讀取壞塊中的已寫成功的頁中的數據,當讀取完已寫尾頁地址指向的頁,下一輪將開始讀取緊接著壞塊地址的替代塊的替代頁中的數據,未發生壞塊的其他塊按正常讀取進行操作。如圖4所示,為方便說明,將一頁的2 048字節數據作為一個包來表示,物理塊地址n之前都未發生頁編程失敗,直到物理塊地址n的CE3單片Flash的第n頁發生了頁編程失敗,于是將第n+3包數據再次編程到替代塊中,可見替代塊的物理塊地址為n+1(假設該塊為有效塊),邏輯塊地址仍為n,并且后續的編程操作將用替代塊代替壞塊繼續進行,這樣設計可以保證數據的連續性和完整性。

4 仿真測試結果

為了便于觀察,圖5給出了一個流水級編程的仿真波形,并且模擬了檢測出壞塊后的替代編程的波形。如圖5所示,CE從“00000001”開始選中第一片Flash,對某個地址進行頁編程工作,完成之后CE變為“00000010”,開始對第二片Flash進行頁編程,直到最后一片Flash頁編程完成,開始發送檢測指令。測試平臺將第二片設定為編程失敗頁,圖5中可以看出,檢測到第二片的頁編程失敗后,error_w信號變為高,并對下一個可用塊該頁地址進行替代編程,可以看出替代編程的數據仍是之前頁編程的數據。

圖5 壞塊處理機制仿真波形

通過包含CPU和數據源等配合的板級測試,在頻率為16 MHz的系統時鐘下,驗證本設計的數據存儲速率最高可達100 Mbps,數據讀取速率最大達到13 Mbps,產生壞塊時能夠執行替代機制保證數據的完整性和連續性,已成功在某航天型號任務中的作為大容量數據存儲器使用。

5 結 論

文中在常用的壞塊處理機制的基礎上,提出了恢復數據精確到頁的壞塊處理機制,并且利用流水操作機制,大幅提高了Flash的寫入速率,利用邏輯塊計數索引讀取操作的頁,以此保證了數據的連續性。流水編程機制和壞塊替代機制的提出和使用,使得本設計的Flash控制器成功滿足某航天型號任務的實際使用需求,并且對Flash的實際使用中性能的改善,提供了參考機制。

[1]張勝勇,高世杰.基于FPGA的NAND Flash壞塊處理方法[J].計算機工程,2010,36(6):239-243.

[2]王立峰,胡善清.基于閃存的高速海量存儲模塊設計[J].計算機工程.2011,37(7):255-257.

[3]NAND Flash Applications Design Guide.[EB/OL].(2004-05-19).[2013-10-21].http://pdf1.alldatasheet.com/datasheet-pdf/ view/85039/SAMSUNG/K9W4G08U1M.html.

[4]Takeuchi K.Novel co-design of NAND Flash memory and high-speed solid-state drives[J].VLSI circuit,2009,44(4): 1224-1227.

[5]Nguyen Q,Yuknis W,Pursley S,et al.A high performance command and data handling system for NASA's Lunar Reconnaissance Orbiter[C].//AIAA Space 2008 Conference& Exposition.Washington:AIAA 2008.

[6]Shibata N,Maejima H,Isobe K,et al.70nm 16Gb 16-Level-Cell NAND Flash Memory[J].IEEE Journal of Solid-State Circuits,2008,43(4):929-937.

[7]Takeuchi K.Novel co-design of NAND Flash memory and high-speed solid-state drives[J].VLSI circuit,2009,44(4): 1224-1227.

[8]邢開宇,曹曉曼,方火能.基于FPGA和NAND FLASH的存儲器ECC設計與實現[J].電子科技,2012,25(10):69-73.

[9]潘立陽,朱鈞 .FLASH存儲器技術與發展[J].微電子學. 2002,32(1):1-6.

[10]Virtex-5 FPGA Configuration User Guide[EB/OL].(2012-10-19)[2013-10-21]http://www.xilinx.com/support/ documentation/user_guides/ug191.pdf.

Design of a NAND Flash controller with high-speed pipelining program and invalid block handle method

YAN Meng-ting1,2,AN Jun-she1,JIANG Yuan-yuan1
(1.Center for Space science and Applied Research Chinese Academy of Science,Beijing 100190,China;2.University of Chinese Academy Sciences,Beijing 100190,China)

A design about Solid State Recorder used in aerospace field is presented.A Flash controller based on FPGA is designed.The controller can finish regular recording work in aerospace field.In storage operation,a pipelining-programming method is presented.It is operated inside of the chip to improve the overall system storage speed,and it can achieve a highspeed storage purpose.A complete bad block handling mechanism is presented.It can shield using known bad blocks.And it ensures storage operation is executed and the data is correct and complete when new bad blocks occur.The result show that the maximum storage rate of the program can achieve up to 100 Mbps.The bad block handling mechanism can ensure accuracy,completeness and continuity of data.

large capacity;solid state recorder;NAND flash controller;invalid block handle;pipelining program;FPGA application

TN431

A

1674-6236(2016)16-0050-04

2015-08-21稿件編號:201508117

閆夢婷(1989—),女,廣西桂林人,博士研究生。研究方向:星載高速總線的系統架構研究及性能分析,高性能星載存儲系統。

猜你喜歡
流水機制信息
流水
文苑(2020年10期)2020-11-07 03:15:26
自制力是一種很好的篩選機制
文苑(2018年21期)2018-11-09 01:23:06
流水有心
天津詩人(2017年2期)2017-11-29 01:24:12
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
破除舊機制要分步推進
中國衛生(2015年9期)2015-11-10 03:11:12
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
注重機制的相互配合
中國衛生(2014年3期)2014-11-12 13:18:12
打基礎 抓機制 顯成效
中國火炬(2014年4期)2014-07-24 14:22:19
落紅只逐東流水
海峽姐妹(2014年5期)2014-02-27 15:09:38
時間似流水
主站蜘蛛池模板: 日韩在线网址| 国禁国产you女视频网站| 成人精品免费视频| 亚洲国产精品不卡在线| 这里只有精品在线| 婷婷激情五月网| 精品国产美女福到在线不卡f| 亚洲无线视频| 嫩草国产在线| 久久国产亚洲偷自| 日韩高清一区 | 人妻中文久热无码丝袜| 免费激情网址| 亚洲第一福利视频导航| 欧美日韩亚洲国产主播第一区| 免费啪啪网址| 麻豆a级片| 91在线一9|永久视频在线| 国产一区二区三区视频| 亚洲三级色| 欧美精品高清| av大片在线无码免费| 国产成人8x视频一区二区| 国产午夜精品一区二区三区软件| 成人综合网址| 四虎影视无码永久免费观看| m男亚洲一区中文字幕| 成人免费午间影院在线观看| 伊人色综合久久天天| 欧美日韩中文字幕在线| 亚洲精品国产精品乱码不卞 | 国产亚洲精品97在线观看| 午夜精品区| 男女猛烈无遮挡午夜视频| 国产精品99久久久久久董美香| 91久久精品日日躁夜夜躁欧美| 日本三级欧美三级| 免费视频在线2021入口| 亚洲日本在线免费观看| 成人va亚洲va欧美天堂| 97青青青国产在线播放| 亚洲欧洲日韩综合色天使| 久久中文电影| 综合色天天| 国产成人精品2021欧美日韩| 亚洲色欲色欲www网| 国产剧情一区二区| 国产精品v欧美| 国外欧美一区另类中文字幕| 四虎永久免费地址| 成人av手机在线观看| 日本午夜在线视频| 国产H片无码不卡在线视频| 91久草视频| 日韩在线播放欧美字幕| 亚洲 日韩 激情 无码 中出| 亚洲第一国产综合| 伊大人香蕉久久网欧美| 激情成人综合网| 在线免费a视频| 国产精品永久免费嫩草研究院| 成人在线观看不卡| 激情無極限的亚洲一区免费| 国产99视频免费精品是看6| 综合社区亚洲熟妇p| 五月天久久综合| 久久伊人色| 国产欧美视频在线观看| 色哟哟精品无码网站在线播放视频| 国产欧美日韩视频怡春院| 亚洲一级毛片免费看| 色综合五月婷婷| 精品无码一区二区在线观看| 波多野结衣一二三| 香港一级毛片免费看| 亚洲综合经典在线一区二区| 午夜不卡视频| 中文字幕永久在线观看| 精久久久久无码区中文字幕| 香蕉eeww99国产在线观看| 永久免费无码日韩视频| 欧洲亚洲一区|