管振輝
(船舶重工集團公司723所,揚州 225001)
嵌入式固態(tài)存儲器是一種將被測量信號存儲起來,用于事后分析處理、運行狀態(tài)記錄、診斷等的裝置。嵌入式存儲器要求有較高的可靠性和掉電數(shù)據(jù)不易丟失等特點,高速、高精度測量系統(tǒng)中往往要求較高的采樣速度、較多的采樣位數(shù)以滿足高保真數(shù)據(jù)還原的需要。作為一種安全、快速的存儲體,NAND FLASH存儲器具有體積小、容量大、成本低、掉電數(shù)據(jù)不丟失、可在線重復(fù)編程和擦除、抗震動和沖擊、溫度適應(yīng)范圍寬等特點,得到了非常廣泛的應(yīng)用[1]。本文以NAND FLASH為存儲介質(zhì),設(shè)計了基于大容量NAND FLASH的嵌入式固態(tài)存儲器,該系統(tǒng)具有速度快、抗震和抗干擾能力強、使用溫度范圍寬等特點,同時考慮了數(shù)據(jù)安全等因素,可方便地用于模擬訓練、雷達、電子對抗、通信對抗等方面的數(shù)據(jù)記錄,具有廣闊的應(yīng)用前景。
NAND FLASH是一種掉電非易失性存儲器,它的記憶載體是半導體材料,比傳統(tǒng)的存儲設(shè)備更能承受較大的溫度變化、較強的機械振動和沖擊,是實現(xiàn)高可靠性、高速度、低功耗和小型化存儲設(shè)備的最佳選擇。并且,隨著半導體技術(shù)的發(fā)展,其讀寫速度和容量仍在不斷提高。NAND FLASH的主要特點如下[2]:
(1)以頁為單位進行讀和寫操作,以塊為單位進行擦除操作,每個塊由多個頁組成,整個NAND FLASH芯片由多個塊組成;
(2)寫操作只能使數(shù)據(jù)位為“0”,擦除操作只能使數(shù)據(jù)位為“1”;
(3)采用1組總線完成數(shù)據(jù)、命令和地址等操作,按字節(jié)串行訪問數(shù)據(jù);
(4)芯片體積小,重量輕,存儲密度高;
(5)芯片中存在無效塊,并且使用中也會產(chǎn)生無效塊,但不影響功能。
在嵌入式設(shè)備中選取NAND FLASH存儲器作為存儲介質(zhì)已是流行趨勢。目前NAND FLASH存儲器按其技術(shù)工藝可分為單級單元技術(shù)(SLC)和多級單元技術(shù)(MLC);按其數(shù)據(jù)接口介面可分為單數(shù)據(jù)速率(SDR)、NV-雙數(shù)據(jù)速率(DDR)和 NVDDR2。對比特性見表1、表2[3]。
表1 技術(shù)工藝一覽表
表2 數(shù)據(jù)接口介面一覽表
為了保證高速的存儲,這里選取NV-DDR2+SLC結(jié)構(gòu)較為合理。NV-DDR2與常規(guī)的SDR接口有所不同,其數(shù)據(jù)接口定義如下:
DQ[7:0]引腳是數(shù)據(jù)輸入輸出總線,可以作為數(shù)據(jù)端口、地址端口和命令端口??梢酝ㄟ^控制信號ALE和CLE的狀態(tài)來確定DQ[7:0]的功能。
DQS(DQS_t)(數(shù)據(jù)閘門):指示數(shù)據(jù)有效窗口。
DQS_c(數(shù)據(jù)閘門補充信號),與DQS_t構(gòu)成差分信號。
CLE(命令鎖存使能):命令通道使能信號,高電平有效,指明當前總線周期是命令周期、地址周期還是數(shù)據(jù)周期),這時DQ[7:0]口上是命令碼數(shù)據(jù),如果WE信號有效,就可以將當前的命令碼寫入FLASH。
ALE(地址鎖存使能):地址通道使能信號,高電平有效,這時DQ[7:0]口上是地址碼數(shù)據(jù),如果WE信號有效,就可以將當前的地址碼寫入FLASH。
CE_n(片選):器件選擇管腳,低電平有效,當要選中器件時,CE_n為低電平,這時可以對器件進行讀寫操作;CE_n為高電平時,則不能對器件進行操作。
WE_n(寫使能):WE_n是用來對FLASH 芯片進行寫操作的信號,低電平有效,在 WE_n信號的上升沿,將當前DQ[7:0]口上的地址、命令或者數(shù)據(jù)寫入到FLASH芯片內(nèi)。
RE_n(RE_t)(讀使能):RE_n是用來對FLASH芯片進行讀操作的信號,低電平有效,在RE_n信號的下降沿將FLASH芯片內(nèi)部的地址計數(shù)器加1,經(jīng)時延后,數(shù)據(jù)被送到DQ[7:0]口上。
RE_c(讀允許補充):是 RE_x_t的輔助信號,可與RE_t構(gòu)成差分信號。
WP_n(寫保護):該信號低電平有效,當芯片處于寫保護狀態(tài)時,對芯片的寫操作和擦除操作均無效。
R/B_n(準備好/忙):指示FLASH 芯片的工作狀態(tài),為低電平時,表示FLASH正處于忙狀態(tài),芯片不接受外部的操作;當R/B_n引腳為高電平時,才可以對芯片進行操作。
嵌入式固態(tài)存儲器有一定的速度和容量要求,但由于單片NAND FLASH的容量和訪問速度有限,所以要構(gòu)建FLASH存儲器陣列,既可以提高存儲速度,增加存儲容量,又沒有增加太多的硬件電路復(fù)雜程度。本文采用現(xiàn)場可編程門陣列(FPGA)為主控制器,進行片上系統(tǒng)(SoC)設(shè)計來進行高速數(shù)據(jù)傳輸以及對FLASH存儲陣列的數(shù)據(jù)存儲。
硬件組成框圖如圖1所示。
8片由NAND FLASH器件進行位擴展,組成64位DDR接口界面,組成1組FLASH塊接入FPGA;64片NAND FLASH器件分為8組,分別接入FPGA中,F(xiàn)PGA同時接DDR用于高速數(shù)據(jù)緩沖、對外提供4種接口形式;高速數(shù)據(jù)口,根據(jù)需要可重配,用于高速數(shù)據(jù)接口;串行高級技術(shù)附件(SATA)及USB用于計算機訪問接口;網(wǎng)絡(luò)接口用于管理。
由于系統(tǒng)要求進行高速數(shù)據(jù)率的連續(xù)訪問,但對文件管理和整片存儲器的擦除速度要求不高,所以系統(tǒng)中可以進行低速的文件管理和擦除,連續(xù)的訪問速度是最主要考慮的指標。具體體現(xiàn)在對FLASH的操作是:數(shù)據(jù)訪問即對FLASH的頁面的讀和寫通過硬件電路實現(xiàn),而文件管理、塊擦除、格式化以及無效塊管理等是使用片上處理器通過軟件程序?qū)崿F(xiàn)的。
圖1 硬件組成框圖
圖2 FPGA功能組成框圖
本文以MT29F256G08AUAAA器件為例進行速度及容量分析,每頁數(shù)據(jù)的讀取時間為35μs,每頁的編程時間為350μs,接口速度為400 MT/s,由于是DDR操作,折合選取時間為5 ns,每頁為8 640 Byte,含連續(xù)區(qū)8 192Byte和離散區(qū)448 Byte。
對NAND FLASH操作一般分為兩部分,片內(nèi)緩沖區(qū)數(shù)據(jù)訪問部分和頁編程部分。
緩沖區(qū)數(shù)據(jù)訪問時間為:8 640 Byte/400 MT/s=21.6μs。
讀操作時,以讀時間35μs為大,采用乒乓切換方式外部緩沖,故當讀操作時,最大處理時間為35μs,8 640 Byte/35μs=246 MByte,64片的讀速度為246 MByte×64=15 GByte。
寫操作時,以讀時間350μs為大,采用乒乓切換方式外部緩沖,故當讀操作時,最大處理時間為350μs,8 640 Byte/350μs=24.6 MByte,64片的讀速度為246 MByte×64=1.5 GByte。
單片容量為256 Gbit×64/8=2 048 GByte,平均最大壞塊數(shù)為640塊,每塊容量為1 024 k Byte,故,總無效容量為:640×1 024 k Byte×64=42 GByte;該系統(tǒng)設(shè)計容量大約為2 000 GByte;如以1.5 GByte速度進行操作時,該系統(tǒng)可存儲2 000 GByte/1.5 GByte=22 min。
本文系統(tǒng)地設(shè)計了基于NAND型FLASH的高速、大容量嵌入式存儲器。從器件選型、硬件設(shè)計、性能分析到最終實現(xiàn),完整地走過了設(shè)計流程。隨著半導體技術(shù)的飛速發(fā)展,存儲技術(shù)也日新月異,更高性能的存儲器件也將不斷涌現(xiàn)。本文驗證了許多工程原理,可以為今后設(shè)計更高性能的存儲系統(tǒng)提供有益的參考。
[1]吳黎慧,蒲南江,張娟娟.基于閃存陣列的高速存儲方法[J].電子測試,2011(7):89-92.
[2]吳昊.高速大容量固態(tài)存儲系統(tǒng)設(shè)計[D].西安:西安電子科技大學,2010.
[3]Open NAND Flash Interface Specification[EB/OL].http://www.onfi.org,2011-03-09.