基于NAND FLASH的高速大容量存儲系統(tǒng)設(shè)計(jì)
3 系統(tǒng)設(shè)計(jì)
3.1 系統(tǒng)硬件結(jié)構(gòu)組成
本文所設(shè)計(jì)的高速大容量存儲系統(tǒng)的結(jié)構(gòu)框圖如圖4所示。系統(tǒng)中FLASH芯片選用三星公司的K9WBG08U1M,存儲陣列分為8組,采用流水線操作,每組由8片FLASH并聯(lián)共用控制線,各組對應(yīng)行的FLASH共用數(shù)據(jù)線。系統(tǒng)存儲容量達(dá)到4×8×8=256 GB,存儲速度理論值為40MB/ s×8=320 MB/s。FPGA是整個系統(tǒng)的控制核心,它將產(chǎn)生各種復(fù)雜的邏輯時(shí)序來控制外圍芯片協(xié)調(diào)有序地工作,選用Altera公司StratixⅡ系列的EP2S60F484I4芯片,該芯片有48 352個邏輯單元,內(nèi)置存儲RAM容量達(dá)2.5 MB,滿足緩存數(shù)據(jù)的要求。USB接口電路選用CYPRESS公司的CY7C68013A,該芯片集成了一個8.5 KB片上RAM的8051核、4 KB的FIFO以及USB 2.0收發(fā)器,滿足USB2.0通信協(xié)議,是進(jìn)行USB2.0開發(fā)的常用芯片。壞塊信息存儲電路用于存儲和更新FLASH存儲陣列隨機(jī)出現(xiàn)的壞塊位置,它必須是非易失零出錯的存儲介質(zhì),因此選用AMD公司的Am29LV800B NOR型FLASH,存儲容量為8 Mb,保證無壞塊。本文引用地址:http://butianyuan.cn/article/191199.htm
3.2 系統(tǒng)具體實(shí)現(xiàn)
FPGA是整個硬件系統(tǒng)的核心,它完成電路的復(fù)雜時(shí)序控制,使系統(tǒng)有條不紊地運(yùn)行。FPGA上電后進(jìn)行初始化和加載配置信息,完成后進(jìn)入工作狀態(tài)。首先根據(jù)USB接口電壓判斷是進(jìn)入數(shù)據(jù)記錄狀態(tài)還是數(shù)據(jù)下載狀態(tài),然后分別按照各自流程進(jìn)行工作。FPGA內(nèi)部邏輯設(shè)計(jì)如圖5所示。
由于FLASH存儲陣列是8片并聯(lián)一起操作,因此數(shù)據(jù)總線寬度便為64位,同時(shí)由于USB的接口數(shù)據(jù)寬度為16位,因此系統(tǒng)中使用了2個FIFO分別進(jìn)行緩存。在系統(tǒng)記錄狀態(tài)下,前端接收到高速串行數(shù)據(jù)后首先進(jìn)行串/并轉(zhuǎn)換,然后為其添加一個64位的標(biāo)志頭一并存入FIFO緩存,標(biāo)識頭是用來標(biāo)記每次的加電情況,方便FLASH數(shù)據(jù)的分段下載。同時(shí)將外部NORFLASH內(nèi)所存儲的壞塊信息讀入FPGA內(nèi)部建立的RAM中,在總接口控制下,屏蔽FLASH存儲陣列內(nèi)部的壞塊,并按一定順序?qū)?shù)據(jù)寫入FLASH芯片。由于數(shù)據(jù)在存儲過程中會產(chǎn)生新的壞塊,因此在每頁寫操作結(jié)束后需判斷此頁編程是否成功,若編程失敗,則對照此壞塊地址更新RAM中的壞塊信息,等待FLASH的存儲操作結(jié)束后,再將更新后的RAM數(shù)據(jù)寫入外部NOR FLASH進(jìn)行保存。
在系統(tǒng)下載狀態(tài)時(shí),首先對FLASH內(nèi)部的存儲數(shù)據(jù)進(jìn)行搜索,找到標(biāo)識頭所在存儲陣列中的位置并將此位置信息寫入FPGA內(nèi)部的RAM中,這樣便可知道每次加電后存儲數(shù)據(jù)在FLASH陣列中的起始塊位置和所占塊的容量。然后通過上位機(jī)軟件輸入起始位置,塊容量和下載命令后,F(xiàn)PGA內(nèi)部的總接口控制便可根據(jù)這些命令信息,同時(shí)屏蔽壞塊后將FLASH存儲陣列中相應(yīng)的數(shù)據(jù)寫入16位FIFO緩存中,隨后便可通過USB接口下載至計(jì)算機(jī)進(jìn)行數(shù)據(jù)分析。
4 結(jié)語
隨著基于NAND技術(shù)的FLASH固態(tài)存儲器的快速發(fā)展,其存儲密度也越來越大,而體積、功耗和成本卻在減小,這使得NAND型FLASH在大容量高速存儲設(shè)備的研制中得到廣泛應(yīng)用。本文針對單片F(xiàn)LASH存儲速度慢的缺點(diǎn),將多片低速FLASH芯片并行起來工作,同時(shí)又運(yùn)用流水線操作節(jié)省了FLASH的自身編程時(shí)間,從而使得整個存儲系統(tǒng)的存儲速度大大提高。針對NAND FLASH內(nèi)部存在壞塊的問題,建立了一套完善的壞塊處理機(jī)制,使得系統(tǒng)能夠準(zhǔn)確的存儲數(shù)據(jù),保證數(shù)據(jù)的可靠性。使用FPGA對FLASH存儲陣列及USB下載電路進(jìn)行控制,充分發(fā)揮了FPGA處理復(fù)雜邏輯的特點(diǎn),簡化了系統(tǒng)的硬件結(jié)構(gòu)。
評論