基于FPGA的高速大容量固態(tài)存儲設備設計
發(fā)布時間:2008/5/27 0:00:00 訪問次數(shù):513
    
    
    西安電子科技大學 雷達信號處理重點實驗室 楊海濤,蘇 濤1 引言
    
    高速數(shù)據采集系統(tǒng)目前已在雷達、聲納、圖像處理、語音識別、通信、瞬態(tài)信號測試等領域得到廣泛應用。它的關鍵技術是高速adc技術、數(shù)據存儲與傳輸技術和抗干擾技術。當大量的高速實時數(shù)據經過模數(shù)轉換后,必須高速存儲,多通道高采樣率的數(shù)據采集系統(tǒng)會產生巨大的數(shù)據流。這樣就需要高速大容量的存儲板將數(shù)據存儲起來,然后再讀回計算機進行處理;谝陨显,本文設計了可以同時存儲兩通道采樣數(shù)據的大容量存儲板,板中采用了64片samsung公司的高速大容量存儲器k9f2g08uom,使整塊板卡的存儲容量達到128gbit。采用fpga作為控制器,通過標準的cpci工控機箱操作存儲板,并通過cpci總線將存儲板上的數(shù)據高速讀回計算機,提高了讀取數(shù)據的速度。
    
    2 k9f2g08uom簡介
    
    nor flash和nand flash是目前市場上的兩種主要的非易失性閃存技術,本設計的目的是為了高速存儲大容量的數(shù)據,因此,選擇nand型k9f2g08u0m存儲器。它的存儲容量是2 gbit,8位位寬,頁大小為2 048×8 bit,每塊由64頁組成,共有2 048塊。每頁帶有64×8 bit的空閑存儲區(qū),共有8 192 k×8 bit的空閑存儲區(qū)。頁編程的典型時間為300μs,最大頁編程時間為700μ8。頁內連續(xù)最小訪問時間為30 ns/byte,即數(shù)據寫入flash數(shù)據寄存器的速度可達33 mb/s。但是單頁數(shù)據的典型編程速度為2 048/300μs=6.8 mb/s,最慢的編程速度為2 048/700μs=2.9 mb/s。塊擦除的典型時間為2 ms。k9f2g08u0m具有硬件數(shù)據保護功能,即在電源上電、掉電期間關閉編程/擦除操作。k9f2g08u0m內部寫控制器使得所有的編程和擦除操作自動進行,片內包含一個頁(2 048+64字節(jié))的數(shù)據寄存器,讀寫過程中始終是將存儲單元數(shù)據或外部數(shù)據先緩存到數(shù)據寄存器,然后再讀出數(shù)據或寫入存儲單元。因此,它是基于頁讀寫,基于塊擦除的。當然,它也支持隨機讀寫。但本設計目的是高速存儲數(shù)據,因此對它的讀寫操作完全是基于頁的。k9f2g08u0m的主要引腳有cle(命令鎖存允許)、ale(地址鎖存允許)、ce(片選)、we(寫允許)、re(讀允許)、wp(寫保護)、r/b(準備好/忙)、pre(上電讀使能)、i/o0~i/o7(輸入,輸出)。其中i/o0~i/o7既可作為數(shù)據輸入輸出引腳,又可作為命令地址的輸入引腳,命令、地址、數(shù)據分時復用,根據不同的命令區(qū)分地址和數(shù)據。一般的操作流程為:
    
    1) 寫入命令,通知器件所要完成的操作(讀、寫、擦除等);
    
    2) 寫入地址,即寫入要讀寫數(shù)據的起始地址,包括列地址和頁地址;
    
    3) 如果是讀或者擦除,寫入一個確認命令。如果是寫操作,輸人待編程的數(shù)據,完成后輸入編程確認命令。
    
    因為k9f2g08u0m共有128 k頁,每頁的大小為(2 048+64)×8 bit,所以在寫入地址時列地址需要12根地址線,頁地址需要17根地址線。這樣就需要5個時鐘周期來寫入地址。前兩個時鐘寫入列地址,后三個時鐘寫人頁地址。
    
    3 系統(tǒng)設計
    
    3.1 總體硬件設計
    
    外部數(shù)據采集系統(tǒng)是2個40 mhz采樣的16位a/d通道,所以設計時分成兩個通道獨立設計。雖然k9f2g08u0m的數(shù)據寄存器寫入速度可達33mb/s,但在fpga設計時,為了在時序上更加可靠,選擇使用25 mhz的時鐘設計,則k9f2g08u0m的寫入速度為50 mb/s(把兩個k9f2g08u0m并成16bit,寫入速度即為25 m×l6 b/s)。這樣,在fpga內部開辟3個頁大小的雙口ram作為緩存區(qū)就能滿足40 m×16 b/s的寫入速度,即在寫第2、3個ram的時間(25 ns×2 048×2=102.4μs)內,啟動第1個ram把數(shù)據寫入flash的數(shù)據寄存器,所需時間為40 ns×2 048=81.92μs,小于102.4μs。
    
    
    
    
    在讀回數(shù)據時,如以20 mhz讀取flash,以40mhz讀出緩沖區(qū)中的數(shù)據,3個雙口ram就能剛好滿足要求,如圖1。讀取k9f2g08u0m一頁數(shù)據能達到33 mhz的速度,為了讓讀寫flash使用同一時鐘,讀flash也采用25 mhz的速度。同時為了增加系統(tǒng)設計的冗余,采用4
    
    
    西安電子科技大學 雷達信號處理重點實驗室 楊海濤,蘇 濤1 引言
    
    高速數(shù)據采集系統(tǒng)目前已在雷達、聲納、圖像處理、語音識別、通信、瞬態(tài)信號測試等領域得到廣泛應用。它的關鍵技術是高速adc技術、數(shù)據存儲與傳輸技術和抗干擾技術。當大量的高速實時數(shù)據經過模數(shù)轉換后,必須高速存儲,多通道高采樣率的數(shù)據采集系統(tǒng)會產生巨大的數(shù)據流。這樣就需要高速大容量的存儲板將數(shù)據存儲起來,然后再讀回計算機進行處理;谝陨显颍疚脑O計了可以同時存儲兩通道采樣數(shù)據的大容量存儲板,板中采用了64片samsung公司的高速大容量存儲器k9f2g08uom,使整塊板卡的存儲容量達到128gbit。采用fpga作為控制器,通過標準的cpci工控機箱操作存儲板,并通過cpci總線將存儲板上的數(shù)據高速讀回計算機,提高了讀取數(shù)據的速度。
    
    2 k9f2g08uom簡介
    
    nor flash和nand flash是目前市場上的兩種主要的非易失性閃存技術,本設計的目的是為了高速存儲大容量的數(shù)據,因此,選擇nand型k9f2g08u0m存儲器。它的存儲容量是2 gbit,8位位寬,頁大小為2 048×8 bit,每塊由64頁組成,共有2 048塊。每頁帶有64×8 bit的空閑存儲區(qū),共有8 192 k×8 bit的空閑存儲區(qū)。頁編程的典型時間為300μs,最大頁編程時間為700μ8。頁內連續(xù)最小訪問時間為30 ns/byte,即數(shù)據寫入flash數(shù)據寄存器的速度可達33 mb/s。但是單頁數(shù)據的典型編程速度為2 048/300μs=6.8 mb/s,最慢的編程速度為2 048/700μs=2.9 mb/s。塊擦除的典型時間為2 ms。k9f2g08u0m具有硬件數(shù)據保護功能,即在電源上電、掉電期間關閉編程/擦除操作。k9f2g08u0m內部寫控制器使得所有的編程和擦除操作自動進行,片內包含一個頁(2 048+64字節(jié))的數(shù)據寄存器,讀寫過程中始終是將存儲單元數(shù)據或外部數(shù)據先緩存到數(shù)據寄存器,然后再讀出數(shù)據或寫入存儲單元。因此,它是基于頁讀寫,基于塊擦除的。當然,它也支持隨機讀寫。但本設計目的是高速存儲數(shù)據,因此對它的讀寫操作完全是基于頁的。k9f2g08u0m的主要引腳有cle(命令鎖存允許)、ale(地址鎖存允許)、ce(片選)、we(寫允許)、re(讀允許)、wp(寫保護)、r/b(準備好/忙)、pre(上電讀使能)、i/o0~i/o7(輸入,輸出)。其中i/o0~i/o7既可作為數(shù)據輸入輸出引腳,又可作為命令地址的輸入引腳,命令、地址、數(shù)據分時復用,根據不同的命令區(qū)分地址和數(shù)據。一般的操作流程為:
    
    1) 寫入命令,通知器件所要完成的操作(讀、寫、擦除等);
    
    2) 寫入地址,即寫入要讀寫數(shù)據的起始地址,包括列地址和頁地址;
    
    3) 如果是讀或者擦除,寫入一個確認命令。如果是寫操作,輸人待編程的數(shù)據,完成后輸入編程確認命令。
    
    因為k9f2g08u0m共有128 k頁,每頁的大小為(2 048+64)×8 bit,所以在寫入地址時列地址需要12根地址線,頁地址需要17根地址線。這樣就需要5個時鐘周期來寫入地址。前兩個時鐘寫入列地址,后三個時鐘寫人頁地址。
    
    3 系統(tǒng)設計
    
    3.1 總體硬件設計
    
    外部數(shù)據采集系統(tǒng)是2個40 mhz采樣的16位a/d通道,所以設計時分成兩個通道獨立設計。雖然k9f2g08u0m的數(shù)據寄存器寫入速度可達33mb/s,但在fpga設計時,為了在時序上更加可靠,選擇使用25 mhz的時鐘設計,則k9f2g08u0m的寫入速度為50 mb/s(把兩個k9f2g08u0m并成16bit,寫入速度即為25 m×l6 b/s)。這樣,在fpga內部開辟3個頁大小的雙口ram作為緩存區(qū)就能滿足40 m×16 b/s的寫入速度,即在寫第2、3個ram的時間(25 ns×2 048×2=102.4μs)內,啟動第1個ram把數(shù)據寫入flash的數(shù)據寄存器,所需時間為40 ns×2 048=81.92μs,小于102.4μs。
    
    
    
    
    在讀回數(shù)據時,如以20 mhz讀取flash,以40mhz讀出緩沖區(qū)中的數(shù)據,3個雙口ram就能剛好滿足要求,如圖1。讀取k9f2g08u0m一頁數(shù)據能達到33 mhz的速度,為了讓讀寫flash使用同一時鐘,讀flash也采用25 mhz的速度。同時為了增加系統(tǒng)設計的冗余,采用4