国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于NANDFlash大容量數(shù)據(jù)存儲器的設(shè)計

2014-08-16 01:08孔令振穆建文
關(guān)鍵詞:狀態(tài)機存儲系統(tǒng)存儲器

孔令振,穆建文

(北京環(huán)境特性研究所,北京 100859)

圖像數(shù)據(jù)存儲系統(tǒng)是現(xiàn)代電子系統(tǒng)的重要組成部分,在航天、國防、通信等領(lǐng)域有著廣泛的應(yīng)用[1]。隨著圖像分辨率及采樣頻率的不斷提升,高速海量數(shù)據(jù)的存儲問題成為日益緊迫的研究課題。Flash作為一種新型的半導(dǎo)體器件,由于其非易失性、低功耗、體積小和可靠性高等優(yōu)點,已逐漸取代磁盤成為嵌入式系統(tǒng)中首選的存儲器件。Flash根據(jù)其內(nèi)部邏輯架構(gòu)上的差異主要分為NOR Flash和NAND Flash兩種[2]。 相比NOR Flash,NAND Flash最大優(yōu)勢就在于其容量大,單片容量已達8 GB,但其最主要的缺點是讀寫速度慢。綜合考慮存儲系統(tǒng)對帶寬的要求,本設(shè)計采用FPGA同時控制多片NAND Flash并行讀取的方式來控制帶寬。

1 NAND型Flash結(jié)構(gòu)及性能

NAND Flash是采用NAND結(jié)構(gòu)技術(shù)的非易失性存儲器,內(nèi)存有8位和16位兩種形式,其I/O接口為地址與命令復(fù)用接口。以三星公司生產(chǎn)的K9NCG08U5M芯片為例,該芯片內(nèi)分為4個器件(Device),每個器件由 8 192個塊(Block)組成,每塊又由 64個頁(Page)組成,每一頁的存儲容量為4 KB+128 B[3]。NAND Flash主要以頁為單位進行讀寫,以塊為單位進行擦除,其內(nèi)部有與頁大小相同的頁寄存器,用于數(shù)據(jù)緩存。該芯片讀寫操作典型時間為 25 ns/B,寫編程典型時間為 200 μs/Page,擦除操作時間為1.5 ms/Block,塊擦除次數(shù)可達 100萬次,其結(jié)構(gòu)如圖1所示。

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

2 大容量存儲器硬件設(shè)計

大容量存儲系統(tǒng)要實現(xiàn)存儲數(shù)據(jù)操作需要實現(xiàn)兩個方面功能:一是實現(xiàn)具體的存儲接口與存儲系統(tǒng)的數(shù)據(jù)交換;二是實現(xiàn)存儲系統(tǒng)的數(shù)據(jù)管理[4]。

2.1 接口板電路設(shè)計

接口板主要負責(zé)對CCD圖像數(shù)據(jù)進行采集及預(yù)處理,將Camera Link數(shù)據(jù)信號接收進來,按原有行、場及數(shù)據(jù)有效標志信號從LVDS接口接收通信圖像數(shù)據(jù)。由于原始數(shù)據(jù)是隨機的,需要FPGA將數(shù)據(jù)整合成有一定規(guī)律的數(shù)據(jù)格式。

輸入部分首先是Camera Link接口,LVDS圖像數(shù)據(jù)輸入包含4組數(shù)據(jù)線和1組時鐘信號,采用一片DS90CR286(將 LVDS信號轉(zhuǎn)換為TTL信號)進行數(shù)據(jù)接收,一個MDR26插頭。具體操作過程為:首先Camera Link數(shù)據(jù)接口模塊接收LVDS信號將其轉(zhuǎn)化成TTL電平,在FPGA內(nèi)部整合成64 bit數(shù)據(jù)信號和相機控制信號,然后將圖像數(shù)據(jù)暫存到雙口RAM中,采取乒乓讀取的方式將數(shù)據(jù)存入到存儲板中。接口板電路結(jié)構(gòu)如圖2所示。

圖2 接口板電路結(jié)構(gòu)框圖

2.2 存儲板電路設(shè)計

存儲板完成的任務(wù)主要是接收接口板的數(shù)據(jù)信號和控制信號,將數(shù)據(jù)存入NAND Flash芯片中,讀取NAND Flash中的數(shù)據(jù)信號并傳送給接口板。

存儲板采用型號XC2V3000FF1152的Virtex II FPGA芯片直接控制NAND Flash芯片,其指標為:720個可用I/O,1 728 KB的內(nèi)部塊 RAM[5]。NAND Flash芯片采用三星公司的K9NCG08U5M,單片大小為8 GB。存儲板載有32片NAND Flash,這樣存儲板可實現(xiàn)256 GB的存儲容量。32片NAND Flash并行存儲,單片速度為15 MB/s,并行存儲速度可達480 MB/s。具體連接方式如圖3所示。

圖3 NAND Flash存儲陣列結(jié)構(gòu)圖

3 大容量存儲器軟件設(shè)計

在搭建好存儲器硬件平臺后,需要進行相應(yīng)的軟件設(shè)計以實現(xiàn)系統(tǒng)邏輯功能。主要包括兩個部分:一是根據(jù)具體的接口編寫合適的程序?qū)崿F(xiàn)圖像數(shù)據(jù)的輸入與輸出控制,實現(xiàn)存儲板與外部接口的數(shù)據(jù)交換;二是NAND Flash邏輯控制器的設(shè)計[6]。NAND Flash邏輯控制器是大容量存儲器設(shè)計的關(guān)鍵。

NAND Flash邏輯控制器主要由主狀態(tài)機和中間狀態(tài)機兩個狀態(tài)機構(gòu)成[7]。主狀態(tài)機主要用于產(chǎn)生對NAND Flash進行各種操作時所需的控制時序,中間狀態(tài)機主要用于控制主狀態(tài)機內(nèi)各個狀態(tài)之間的跳轉(zhuǎn)。

3.1 NAND Flash邏輯控制器主狀態(tài)機設(shè)計

NAND Flash邏輯控制器主狀態(tài)機內(nèi)的狀態(tài)分為6類:空閑狀態(tài)、存儲操作狀態(tài)、讀取操作狀態(tài)、擦除操作狀態(tài)、壞塊檢測操作狀態(tài)和ID讀取操作狀態(tài),如圖4所示。

圖4 NAND Flash邏輯控制器主狀態(tài)機

系統(tǒng)上電后,主狀態(tài)機進入空閑狀態(tài),并在program_start、read_start、erase_start、check_start信 號 的 驅(qū) 動 下 進 入 相 應(yīng)的存儲操作狀態(tài)、讀取操作狀態(tài)、擦除操作狀態(tài)和壞塊查詢操作狀態(tài)。在完成主控模塊訪問請求的操作狀態(tài)后,主狀態(tài)機會自動跳回到空閑狀態(tài)。NAND Flash存儲以頁為單位進行,在對Flash某一塊進行寫操作前,需要對其進行擦除操作。先往Flash中寫命令0x60,然后往Flash里寫要擦除的塊地址,再往Flash里寫命令0xD0,最后等待。當往Flash里面寫命令0x70后讀出來的數(shù)據(jù)是0xC0時,說明擦除操作完畢。擦除操作完成后才可以向Flash里寫數(shù)據(jù)。寫數(shù)據(jù)的操作過程為:先往Flash中寫命令0x80,然后往Flash里寫要操作的地址,再向Flash搬數(shù)據(jù),搬完后,如果要對本片F(xiàn)lash進行操作,一定要等一段時間,使得Flash有足夠的時間把數(shù)據(jù)從Flash的緩存區(qū)域搬移到存儲區(qū)域內(nèi)。需要從Flash里讀取數(shù)據(jù)時,主狀態(tài)機進入讀取操作狀態(tài),數(shù)據(jù)讀取操作也是以頁為單位進行。讀取數(shù)據(jù)的過程為:先往Flash里寫入0x00控制字,然后往Flash里寫要操作的地址,再往Flash寫命令0x30,等待一段時間,使得Flash有足夠的時間把要讀的數(shù)據(jù)從存儲區(qū)搬到Flash緩存區(qū)內(nèi)。NAND Flash讀寫與擦除操作流程如圖5所示。

當Flash存儲區(qū)域讀寫操作完畢,需要對下一塊存儲區(qū)域進行操作時,主狀態(tài)機進入壞塊查詢控制模塊,產(chǎn)生壞塊查詢所需的塊地址信息和激勵信號,狀態(tài)機先進行塊擦除操作,讀取芯片狀態(tài)寄存器來檢測塊擦除是否成功,如果不成功則認為該數(shù)據(jù)塊為無效塊,并將數(shù)據(jù)塊地址寫入緩存中。狀態(tài)位讀取操作由指令控制字70H控制,在I/O數(shù)據(jù)總線寫入70H后的一個讀時鐘周期內(nèi)可以將狀態(tài)信息通過I/O總線讀出。擦除結(jié)束后讀取狀態(tài)寄存器即可判斷此塊是否為壞塊,如果為壞塊則將當前塊地址寫入壞塊緩存內(nèi)。

圖5 NAND Flash讀寫與擦除操作流程圖

3.2 NAND Flash邏輯控制器中間狀態(tài)機設(shè)計

主狀態(tài)機內(nèi)各個狀態(tài)實現(xiàn)的功能各不相同,在狀態(tài)機的循環(huán)過程中,每個子狀態(tài)并不是在內(nèi)部操作執(zhí)行完之后就可以跳到下一個狀態(tài)中去。主狀態(tài)機內(nèi)各個子狀態(tài)之間的跳轉(zhuǎn)需要中間狀態(tài)機進行控制實現(xiàn)。

中間狀態(tài)機的主要功能有兩個:計數(shù)主狀態(tài)機內(nèi)各個子狀態(tài)的內(nèi)部操作執(zhí)行次數(shù),并與實現(xiàn)相應(yīng)的存儲器控制操作時需要執(zhí)行的次數(shù)進行比較,從而控制各個子狀態(tài)之間的跳轉(zhuǎn);通過內(nèi)部狀態(tài)之間的跳轉(zhuǎn),產(chǎn)生符合Flash建立保持時間要求的各種讀寫使能信號。此設(shè)計中,中間狀態(tài)機包括4個狀態(tài),分別為觸發(fā)開始、中間狀態(tài)一、中間狀態(tài)二和觸發(fā)結(jié)束。中間狀態(tài)機轉(zhuǎn)換流程如圖6所示,在中間狀態(tài)機一次跳轉(zhuǎn)循環(huán)中,主狀態(tài)機的狀態(tài)不發(fā)生變化。

圖6 NAND Flash邏輯控制器中間狀態(tài)機

針對本文設(shè)計的大容量存儲板進行了存儲功能測試和數(shù)據(jù)采集功能測試。在FPGA內(nèi)部產(chǎn)生測試數(shù)據(jù),將測試數(shù)據(jù)存儲到NAND Flash中再啟動讀操作。數(shù)據(jù)源采用順序數(shù)、隨機數(shù)、驅(qū)動能力數(shù),順序數(shù)為按從小到大排列的數(shù)據(jù),隨機數(shù)為采用一定算法生成的隨機數(shù)據(jù),驅(qū)動數(shù)為采用0與1交替變換的數(shù)據(jù)。經(jīng)測試,存儲板存儲帶寬約為465 MB/s,讀取帶寬約為590 MB/s,滿足設(shè)計要求。

NAND Flash訪問速度快、成本低,而且存儲密度越來越大,在不同領(lǐng)域都得到了廣泛的應(yīng)用。本文針對單片F(xiàn)lash存儲速度慢的缺點,提出了一種多片NAND Flash并行讀取的方式來提高讀取帶寬。通過NAND Flash邏輯控制器來實現(xiàn)Flash文件的讀寫及擦除操作;并且針對NAND Flash的壞塊問題提出了一種壞塊檢測方法,通過不斷調(diào)用壞塊查詢函數(shù),可以跳過壞塊并將壞塊地址存儲在已建立好的RAM中,增加壞塊管理,保證了數(shù)據(jù)存儲的可靠性。

[1]雷磊.NAND型Flash海量存儲系統(tǒng)的設(shè)計與實現(xiàn)[D].北京:北京理工大學(xué),2008.

[2]趙軍偉,李宏穆,莊阿龍,等.NandFLASH和NorFLASH接口設(shè)計和驅(qū)動開發(fā)[J].現(xiàn)代電子技術(shù),2009(14):40-43.

[3]Samsung Electronics.K9NCG08U5M data sheet[Z].

[4]晏敏,龍小奇,章兢,等.開放式大容量 NAND Flash數(shù)據(jù)存儲系統(tǒng)設(shè)計與實現(xiàn)[J].微電子學(xué)與計算機,2009,26(11):13-16.

[5]Xilinx.Virtex-II user guide[EB/OL].http://www.xilinx.com.

[6]HO L S,HO P L K.An efficient NAND Flash files system for Flash memory storage[J].IEEE Transaction on Computers, 2006,55(7):906-912.

[7]劉衛(wèi).NAND Flash控制器的設(shè)計與驗證[D].長沙:國防科學(xué)技術(shù)大型,2008.

猜你喜歡
狀態(tài)機存儲系統(tǒng)存儲器
靜態(tài)隨機存儲器在軌自檢算法
分布式存儲系統(tǒng)在企業(yè)檔案管理中的應(yīng)用
基于有限狀態(tài)機的交會對接飛行任務(wù)規(guī)劃方法
天河超算存儲系統(tǒng)在美創(chuàng)佳績
三段式狀態(tài)機在單片機中的實現(xiàn)
任意2~k點存儲器結(jié)構(gòu)傅里葉處理器
華為震撼發(fā)布新一代OceanStor 18000 V3系列高端存儲系統(tǒng)
存儲器——安格爾(墨西哥)▲
基于電池管理系統(tǒng)的數(shù)據(jù)存儲系統(tǒng)設(shè)計
基于反熔絲FPGA的有限狀態(tài)機加固設(shè)計