NAND FLASH在儲存測試系統(tǒng)中的應(yīng)用
0 引言
計(jì)算機(jī)技術(shù)的高速發(fā)展,存儲系統(tǒng)容量從過去的幾KB存儲空間,到現(xiàn)在的T8;乃至不久的將來要達(dá)到的PB存儲空間,其數(shù)據(jù)存取的能力在飛速擴(kuò)展。隨之而來產(chǎn)生的SCSI、FC、SAN、iSCSI、IPStorage和數(shù)據(jù)生命周期管理等嶄新的領(lǐng)域,更給計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)賦予了蓬勃的生命力。存數(shù)性能的提升通常是通過在基礎(chǔ)結(jié)構(gòu)上增加更多的物理磁盤驅(qū)動數(shù)目或者采用更快轉(zhuǎn)速的磁盤驅(qū)動器來完成。
機(jī)載存儲設(shè)備要求具有高的可靠性和高抗撞擊、抗震、防潮、耐高壓和承受高溫的特點(diǎn),而磁盤驅(qū)動器存取數(shù)據(jù)時(shí)有機(jī)械轉(zhuǎn)動,其抗沖擊,抗震動性不強(qiáng),所以不適用于航空航天等惡劣環(huán)境下使用。基于半導(dǎo)體存儲芯片閃存的固態(tài)存儲器(SSD)的出現(xiàn)很好的解決了以上問題。SSD作為儲存介質(zhì),沒有機(jī)械轉(zhuǎn)動部件、存儲密度高、可靠性高、體積小、重量輕,并且抗震動、抗沖擊、溫度適應(yīng)范圍寬,具有很強(qiáng)的環(huán)境適應(yīng)性,可以滿足苛刻條件下的數(shù)據(jù)儲存要求,因此,高性能大容量固態(tài)存儲器已成為軍用重大項(xiàng)目中的只要數(shù)據(jù)儲存方式。
1 NAND FLASH Memory的控制要求
1.1 NAND FLASI-1存儲器結(jié)構(gòu)功能介紹
我們選用的是三星公司的K9K8G08UOM型FLASH芯片作為存儲系統(tǒng)的介質(zhì),該款NAND F1ash存儲容量為8448Mbit,其中主數(shù)據(jù)區(qū)為8192M bit,輔助數(shù)據(jù)區(qū)為256Mbit,工作電壓為2.7V~3.6V,I/O端口的寬度為8位。NAND FLASH不同于NOR FLASH,NOR FLASH在出廠時(shí)不容許芯片有壞塊存在,而NAND FLASH容許成品中存在壞塊,這是NAND技術(shù)所特有的現(xiàn)象。
芯片內(nèi)的8448M bit內(nèi)存是按塊和頁的概念來組織的,一個(gè)FLASH存儲器包含8192塊(block),每塊包含64頁(page),每頁有2112 Bytes。芯片內(nèi)具有一個(gè)容量為2112 Bytes的數(shù)據(jù)寄存器,稱為頁寄存器,用來在數(shù)據(jù)存取時(shí)作為緩沖區(qū),當(dāng)對芯片內(nèi)的某一頁進(jìn)行讀寫時(shí),其數(shù)據(jù)首選被轉(zhuǎn)移到此數(shù)據(jù)寄存器內(nèi),通過數(shù)據(jù)緩沖區(qū)和芯片外進(jìn)行數(shù)據(jù)交換,以完成讀寫功能。頁內(nèi)的2112Bytes被劃分為2048 Bytes的主數(shù)據(jù)區(qū)和164 Bytes的輔助數(shù)據(jù)區(qū),主數(shù)據(jù)區(qū)存放用戶數(shù)據(jù),輔助數(shù)據(jù)區(qū)被用來儲存ECC(Error correction Code,錯(cuò)誤校驗(yàn)碼)、壞塊信息和文件系統(tǒng)相關(guān)代碼。其組織關(guān)系如圖1所示:
K9K8GOSUOM地址是通過復(fù)用8個(gè)I/O口送入芯片的。這樣的設(shè)計(jì)顯著減少了芯片的管腳數(shù)目,并為系統(tǒng)升級帶來了方便。在CE和WP為低時(shí),把WE 置低可以把K9K8G08UOM的命令、地址和數(shù)據(jù)通過I/O口寫進(jìn)去。數(shù)據(jù)在WE的上升沿寫入芯片。命令鎖存使能(CLE)和地址使能鎖存(ALE)用來區(qū)分I/O口的數(shù)據(jù)是命令還是地址。K9K8G08UOM有1G字節(jié)地址空間,需要30位的地址,所以字節(jié)的地址需要五個(gè)周期依次送入:行低地址、行高地址、列低地址、列中地址、列高地址。頁的讀操作和編程操作都需要同樣的五個(gè)地址周期緊跟在相應(yīng)的命令輸入之后。然而,在塊的擦除操作中,只要有三個(gè)地址周期。不同的操作通過往命令寄存器寫不同的命令來區(qū)分。
1.2 K9K8G08UOM控制器技術(shù)
本系統(tǒng)中采用FPGA作為K9K8G08UOM存儲器的控制器,可以在極少的軟件操作下獨(dú)立完成K9K8G08UOM的各種操作,從而降低系統(tǒng)對 FLASH存儲器的額外支出,提高讀寫速度。FPGA的控制邏輯時(shí)序是通過硬件語言VHDL開發(fā)的,VHDL語言以其快捷、獨(dú)立、可讀性等優(yōu)點(diǎn)很好的完成 FLASH基本操作的時(shí)序控制。下面是以VHDL語言以狀態(tài)機(jī)的形式開發(fā)的部分讀操作程序。
K9K8G08UOM儲存器的基本操作由三種類型:讀操作、頁編程操作、擦除操作,其流程圖如圖2所示。
進(jìn)行讀操作時(shí),首先通過FPGA的端口置低K9K8G08UJOM的片選信號/CS,然后置高CLE命令腳,并發(fā)送read1(0x00)命令,WE的上升沿發(fā)送,命令發(fā)送完畢后,置低CLE。在發(fā)送地址之前,置高ALE,在每一個(gè)WE上升沿依次寫入5個(gè)地址周期,之后置低ALE,完成地址的選定。接著發(fā)送read2(0x30h),開始讀取地址單元的數(shù)據(jù)。
數(shù)據(jù)頁編程操作和讀取操作流程類似。操作都是以頁為單位進(jìn)行的。當(dāng)R/Bur信號為低時(shí),說明正在對FALSH進(jìn)行寫入操作,當(dāng)為高時(shí),說明頁編程操作結(jié)束。
擦除操作是以塊為單位進(jìn)行的,即一次擦除塊內(nèi)的64頁,在發(fā)送地址時(shí)只需要3個(gè)地址周期。
圖3是從K9K8G08UOM存儲器中存入數(shù)據(jù)以后通過上位機(jī)軟件讀取的數(shù)據(jù)。經(jīng)驗(yàn)證,讀取的數(shù)據(jù)與往K9K8G08UOM存儲器中寫入的數(shù)據(jù)一致。
?NAND FLASkI Memory的硬件部分
本設(shè)計(jì)當(dāng)中,F(xiàn)LASH的數(shù)據(jù)輸入輸出口、控制端口通過調(diào)理電路與FPGA的端口相連,圖4所示是其硬件連接電路。
從圖4中可知,F(xiàn)LASH的數(shù)據(jù)輸入輸出端口I/00~7、控制端口/CE、是通過芯片SN54LV245與FPGA相連;FLASH的控制端口cLE、 ALE、/WE、/RE通過芯片SN54LV245和芯片74HCl4與ITGA相連。其中F-CLE、F-ALE、F—WE、F-RE、F—CE、F- R/Bur是FPGA的I/O口,是FPGA邏輯的輸入輸出口。CLE、ALE信號是FLASH存儲器命令、地址鎖存使能信號,/WE是保證命令、地址、數(shù)據(jù)能否及時(shí)正確的寫入FLASH的信號,/RE信號控制著數(shù)據(jù)的讀取,這些信號的精確度關(guān)系著FLASH存儲、讀數(shù)功能的實(shí)現(xiàn)。所以,這些信號的好壞直接關(guān)系著FLASH的正常工作。經(jīng)實(shí)踐的電路調(diào)試,這些信號在傳輸過程中受到了其它因素的干擾,信號明顯失真,在電路中加入74HCl4(非門)以后,信號會變得光滑,準(zhǔn)確。
芯片SN54LV245是八進(jìn)制三態(tài)總線收發(fā)器,DIR=1時(shí),總線傳輸方向從A→B;DIR=0時(shí),總線傳輸方向從B→A。/OE是片選信號。/0E,DIR信號是由FPGA內(nèi)部編程邏輯控制的。
FL,ASH接口中,為了保證/wE、/RE、/CE、R/B控制信號初始狀態(tài)無效,由硬件電路實(shí)現(xiàn)端口值拉高。本設(shè)計(jì)中不使用寫保護(hù)功能,所以/WP端口也接上了上拉電阻。
3 結(jié)束語
基于閃存技術(shù)的固態(tài)存儲器存儲密度大,功耗小,可靠性高,體積小重量輕且成本也在不斷降f氐,在航空應(yīng)用中有良好的應(yīng)用前景。在設(shè)計(jì)儲存測試系統(tǒng)時(shí)選用大容量的NAIXD FLASH存儲器大大提高了儲存、讀取速度,并且設(shè)計(jì)電路結(jié)構(gòu)簡單,易于修改。
評論
查看更多