《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 基于K9K8G08UOI的高速大容量存儲系統(tǒng)設(shè)計(jì)
基于K9K8G08UOI的高速大容量存儲系統(tǒng)設(shè)計(jì)
摘要: 基于K9K8G08UOI的高速大容量存儲系統(tǒng)設(shè)計(jì)在測量技術(shù)中,高速數(shù)字?jǐn)z像機(jī)所拍攝到的大量數(shù)字圖像需要高 ...
Abstract:
Key words :

基于K9K8G08UOI的高速大容量存儲系統(tǒng)設(shè)計(jì)

在測量技術(shù)中,高速數(shù)字?jǐn)z像機(jī)所拍攝到的大量數(shù)字圖像需要高速、大容量的圖像存儲設(shè)備來實(shí)時(shí)快速地存儲。用傳統(tǒng)的磁帶方式來記錄數(shù)據(jù),其效率和安全性不高;靜態(tài)存儲器讀寫方便,但是存儲的數(shù)據(jù)會因斷電而丟失,所以不利于數(shù)據(jù)的長時(shí)間保存。而近幾年問世的閃存以其存儲容量大、體積小、可靠性高等優(yōu)點(diǎn),逐步向存儲系統(tǒng)進(jìn)軍。

1 設(shè)計(jì)原理

   設(shè)計(jì)中相機(jī)輸出LVDS串行數(shù)據(jù)通過接收電平轉(zhuǎn)換和串并轉(zhuǎn)換" title="串并轉(zhuǎn)換">串并轉(zhuǎn)換后得到10路×8 bit的并行數(shù)據(jù)流,其數(shù)據(jù)流速率最大為66 MHz。之后根據(jù)相機(jī)MC1311的性能指標(biāo)可計(jì)算出Camera Link高速接口與數(shù)據(jù)存儲" title="數(shù)據(jù)存儲">數(shù)據(jù)存儲系統(tǒng)的存儲容量要求與存儲速度要求,即:單幀數(shù)據(jù)量為1280×1024×8 bit;每秒最大數(shù)據(jù)量為500×1280×1024×8 bit;Camera Link高速接口單路數(shù)據(jù)速率為65.536 MByte,如果需要連續(xù)存儲60秒的視頻數(shù)據(jù)" title="視頻數(shù)據(jù)">視頻數(shù)據(jù),則需要40 G Byte存儲器容量。100 GByte的存儲容量最多大約可存儲2.5分鐘視頻數(shù)據(jù)。圖1為系統(tǒng)結(jié)構(gòu)圖。

2 核心器件選擇

   設(shè)計(jì)中的存儲芯片采用SAMSUNG公司的NAND FLASH芯片K9 K8G08UOI,它的外部接口最高速度為40 MHz,接口寬度8位。每個(gè)芯片有8192塊,每塊有64頁,每頁大小為(2K+64)Bytes,其中64 Bytes為空閑區(qū),存儲容量為8Gbit。它以頁為單位進(jìn)行讀寫,以塊為單位進(jìn)行擦除??刂坪诵腇PGA采用ALTERA公司STRATIXⅡ系列的EP2S30F672I4,它有著豐富的觸發(fā)器和LUT,非常適合復(fù)雜時(shí)序邏輯的設(shè)計(jì),具有1.3Mbit的內(nèi)置存儲RAM,可以緩存一定量的數(shù)據(jù)。

3 系統(tǒng)設(shè)計(jì)

NAND Flash的數(shù)據(jù)存儲采用頁編程方式寫入,K9K8G08UOI的頁寫入時(shí)序如圖2所示。

根據(jù)圖2的時(shí)序可以估算出單片K9K8G08UOI的數(shù)據(jù)存儲速率,其中tWC最小為25 ns,tADL為75ns,tWB為100 ns,tPROG為200μs。因此,寫入一頁所需時(shí)間大約為:200μs+100 ns+(2048+64) ×25ns+75 ns=252.975μs,由于一頁數(shù)據(jù)為(2K+64)B,所以單片K9K8G08UOI每Byte的數(shù)據(jù)存儲速率為:1/(252.975μs/(2048+64)B)=8.4152 MHz??梢妴纹琄9K8G08UOI的寫入速度不能滿足Camera,Link的接口要求,故需用多片進(jìn)行數(shù)據(jù)位擴(kuò)展。為了解決NAND Hash存取數(shù)據(jù)速度較慢向題,可將相鄰10個(gè)8 bit視頻數(shù)據(jù)在FPGA內(nèi)展寬為80 bit進(jìn)行存取。而NAND Flash每Byte的存儲速率要求可降為6.6 MHz,故可滿足單片K9K8G08UOI的存儲速度要求。系統(tǒng)中每10片K9K8G08UOI組成一個(gè)1 G×80 bit的Flash模塊,共10個(gè)Flash模塊。每個(gè)Hash模塊共用一套控制線,數(shù)據(jù)線分別與FPGA相連。單Flash模塊的組成原理如圖3所示。

電路中Flash1~10的連接一致,即數(shù)據(jù)總線獨(dú)立連接到FPGA共用控制總線(帶驅(qū)動(dòng))。由圖3可見,若需要進(jìn)一步降低單片F(xiàn)lash存儲速率,可進(jìn)一步擴(kuò)展Flash存儲器芯片數(shù)量。由于單片F(xiàn)PGA的I/O數(shù)有限,可將10個(gè)Flash模塊安排到5塊擴(kuò)展存儲器板上,分別對應(yīng)Camera Link串并轉(zhuǎn)換得到的一路數(shù)據(jù)(66 MHz×8 bit)。每個(gè)存儲器板與1片F(xiàn)PGA和2個(gè)Flash模塊相連后再分別與控制電路板上的FPGA相連來進(jìn)行數(shù)據(jù)傳輸。其中的5塊擴(kuò)展存儲器板采用相同結(jié)構(gòu)。

4 FPGA邏輯設(shè)計(jì)

FLASH的基本操作分為兩個(gè)階段:加載" title="加載">加載時(shí)間和編程時(shí)間,寫入的時(shí)間瓶頸并不在加載時(shí)間,而是FLASH的編程時(shí)間。為了解決高速數(shù)據(jù)與低速FLASH之間的矛盾,可采用數(shù)據(jù)流串并轉(zhuǎn)換、多個(gè)模塊并行處理的方法??稍贔PGA內(nèi)部構(gòu)建10個(gè)雙口" title="雙口">雙口RAM用來緩存數(shù)據(jù),每個(gè)雙口RAM對應(yīng)一個(gè)FLASH,相機(jī)過來的數(shù)據(jù)先緩存到RAM里,然后再寫到FLASH。數(shù)據(jù)寫到RAM可采用流水操作,數(shù)據(jù)寫滿第一個(gè)雙口RAM,接著寫第二個(gè)RAM,依次進(jìn)行,當(dāng)寫滿第十個(gè)RAM時(shí),將十個(gè)RAM緩存的數(shù)據(jù)寫到對應(yīng)的FLASH里。FLASH操作按最高速度40MB進(jìn)行,加載時(shí)間為51.2μs,之后進(jìn)入編程時(shí)間,再來的數(shù)據(jù)繼續(xù)緩存在第一個(gè)RAM里。相機(jī)的時(shí)鐘是66 MHz,每個(gè)RAM的深度為2048 Bytes,那么寫10個(gè)RAM的時(shí)間是310μs,即FALSH編程時(shí)間可以達(dá)到310-51.2=258.8μs,可以滿足FLASH的典型編程時(shí)間200μs。其FLASH流水操作見圖4。

5 FLASH壞區(qū)管理

  對FLASH的壞區(qū)實(shí)行動(dòng)態(tài)管理,在每個(gè)存儲電路板的FPGA內(nèi)開辟1 K×8 bit的壞區(qū)地址存儲。所有存儲電路板的壞區(qū)地址一致。在FLASH進(jìn)行寫操作前比對當(dāng)前區(qū)是否為壞區(qū),如果是壞區(qū)則跳過此區(qū)進(jìn)入下一區(qū)。

   可采用寫入特定數(shù)后讀出校驗(yàn)的方式來檢測壞區(qū)。存儲電路板根據(jù)命令全區(qū)寫入8 bit數(shù)據(jù)。寫入時(shí)序按系統(tǒng)設(shè)計(jì)的最高速率進(jìn)行。然后將它們順序讀出并進(jìn)行校驗(yàn),如果出現(xiàn)數(shù)據(jù)錯(cuò)誤則登記該壓為壞區(qū)。圖5為壞區(qū)檢測管理的工作流程。

6 結(jié)束語

    本文采用多級流水線與并行處理相結(jié)合的方式,同時(shí)利用FPGA內(nèi)部的緩存來使多個(gè)FLASH存儲器并行工作,從而極大地提高了存儲速率。100片F(xiàn)LASH存儲器同時(shí)工作可滿足660 MB/S的速度要求。經(jīng)過測試,本系統(tǒng)可以可靠地存儲數(shù)字圖像,并可屏蔽壞區(qū)。

基于K9K8G08UOI的高速大容量存儲系統(tǒng)設(shè)計(jì)

在測量技術(shù)中,高速數(shù)字?jǐn)z像機(jī)所拍攝到的大量數(shù)字圖像需要高速、大容量的圖像存儲設(shè)備來實(shí)時(shí)快速地存儲。用傳統(tǒng)的磁帶方式來記錄數(shù)據(jù),其效率和安全性不高;靜態(tài)存儲器讀寫方便,但是存儲的數(shù)據(jù)會因斷電而丟失,所以不利于數(shù)據(jù)的長時(shí)間保存。而近幾年問世的閃存以其存儲容量大、體積小、可靠性高等優(yōu)點(diǎn),逐步向存儲系統(tǒng)進(jìn)軍。

1 設(shè)計(jì)原理

   設(shè)計(jì)中相機(jī)輸出LVDS串行數(shù)據(jù)通過接收電平轉(zhuǎn)換和串并轉(zhuǎn)換后得到10路×8 bit的并行數(shù)據(jù)流,其數(shù)據(jù)流速率最大為66 MHz。之后根據(jù)相機(jī)MC1311的性能指標(biāo)可計(jì)算出Camera Link高速接口與數(shù)據(jù)存儲系統(tǒng)的存儲容量要求與存儲速度要求,即:單幀數(shù)據(jù)量為1280×1024×8 bit;每秒最大數(shù)據(jù)量為500×1280×1024×8 bit;Camera Link高速接口單路數(shù)據(jù)速率為65.536 MByte,如果需要連續(xù)存儲60秒的視頻數(shù)據(jù),則需要40 G Byte存儲器容量。100 GByte的存儲容量最多大約可存儲2.5分鐘視頻數(shù)據(jù)。圖1為系統(tǒng)結(jié)構(gòu)圖。

2 核心器件選擇

   設(shè)計(jì)中的存儲芯片采用SAMSUNG公司的NAND FLASH芯片K9 K8G08UOI,它的外部接口最高速度為40 MHz,接口寬度8位。每個(gè)芯片有8192塊,每塊有64頁,每頁大小為(2K+64)Bytes,其中64 Bytes為空閑區(qū),存儲容量為8Gbit。它以頁為單位進(jìn)行讀寫,以塊為單位進(jìn)行擦除。控制核心FPGA采用ALTERA公司STRATIXⅡ系列的EP2S30F672I4,它有著豐富的觸發(fā)器和LUT,非常適合復(fù)雜時(shí)序邏輯的設(shè)計(jì),具有1.3Mbit的內(nèi)置存儲RAM,可以緩存一定量的數(shù)據(jù)。

3 系統(tǒng)設(shè)計(jì)

NAND Flash的數(shù)據(jù)存儲采用頁編程方式寫入,K9K8G08UOI的頁寫入時(shí)序如圖2所示。

根據(jù)圖2的時(shí)序可以估算出單片K9K8G08UOI的數(shù)據(jù)存儲速率,其中tWC最小為25 ns,tADL為75ns,tWB為100 ns,tPROG為200μs。因此,寫入一頁所需時(shí)間大約為:200μs+100 ns+(2048+64) ×25ns+75 ns=252.975μs,由于一頁數(shù)據(jù)為(2K+64)B,所以單片K9K8G08UOI每Byte的數(shù)據(jù)存儲速率為:1/(252.975μs/(2048+64)B)=8.4152 MHz??梢妴纹琄9K8G08UOI的寫入速度不能滿足Camera,Link的接口要求,故需用多片進(jìn)行數(shù)據(jù)位擴(kuò)展。為了解決NAND Hash存取數(shù)據(jù)速度較慢向題,可將相鄰10個(gè)8 bit視頻數(shù)據(jù)在FPGA內(nèi)展寬為80 bit進(jìn)行存取。而NAND Flash每Byte的存儲速率要求可降為6.6 MHz,故可滿足單片K9K8G08UOI的存儲速度要求。系統(tǒng)中每10片K9K8G08UOI組成一個(gè)1 G×80 bit的Flash模塊,共10個(gè)Flash模塊。每個(gè)Hash模塊共用一套控制線,數(shù)據(jù)線分別與FPGA相連。單Flash模塊的組成原理如圖3所示。

電路中Flash1~10的連接一致,即數(shù)據(jù)總線獨(dú)立連接到FPGA共用控制總線(帶驅(qū)動(dòng))。由圖3可見,若需要進(jìn)一步降低單片F(xiàn)lash存儲速率,可進(jìn)一步擴(kuò)展Flash存儲器芯片數(shù)量。由于單片F(xiàn)PGA的I/O數(shù)有限,可將10個(gè)Flash模塊安排到5塊擴(kuò)展存儲器板上,分別對應(yīng)Camera Link串并轉(zhuǎn)換得到的一路數(shù)據(jù)(66 MHz×8 bit)。每個(gè)存儲器板與1片F(xiàn)PGA和2個(gè)Flash模塊相連后再分別與控制電路板上的FPGA相連來進(jìn)行數(shù)據(jù)傳輸。其中的5塊擴(kuò)展存儲器板采用相同結(jié)構(gòu)。

4 FPGA邏輯設(shè)計(jì)

FLASH的基本操作分為兩個(gè)階段:加載時(shí)間和編程時(shí)間,寫入的時(shí)間瓶頸并不在加載時(shí)間,而是FLASH的編程時(shí)間。為了解決高速數(shù)據(jù)與低速FLASH之間的矛盾,可采用數(shù)據(jù)流串并轉(zhuǎn)換、多個(gè)模塊并行處理的方法??稍贔PGA內(nèi)部構(gòu)建10個(gè)雙口RAM用來緩存數(shù)據(jù),每個(gè)雙口RAM對應(yīng)一個(gè)FLASH,相機(jī)過來的數(shù)據(jù)先緩存到RAM里,然后再寫到FLASH。數(shù)據(jù)寫到RAM可采用流水操作,數(shù)據(jù)寫滿第一個(gè)雙口RAM,接著寫第二個(gè)RAM,依次進(jìn)行,當(dāng)寫滿第十個(gè)RAM時(shí),將十個(gè)RAM緩存的數(shù)據(jù)寫到對應(yīng)的FLASH里。FLASH操作按最高速度40MB進(jìn)行,加載時(shí)間為51.2μs,之后進(jìn)入編程時(shí)間,再來的數(shù)據(jù)繼續(xù)緩存在第一個(gè)RAM里。相機(jī)的時(shí)鐘是66 MHz,每個(gè)RAM的深度為2048 Bytes,那么寫10個(gè)RAM的時(shí)間是310μs,即FALSH編程時(shí)間可以達(dá)到310-51.2=258.8μs,可以滿足FLASH的典型編程時(shí)間200μs。其FLASH流水操作見圖4。

5 FLASH壞區(qū)管理

  對FLASH的壞區(qū)實(shí)行動(dòng)態(tài)管理,在每個(gè)存儲電路板的FPGA內(nèi)開辟1 K×8 bit的壞區(qū)地址存儲。所有存儲電路板的壞區(qū)地址一致。在FLASH進(jìn)行寫操作前比對當(dāng)前區(qū)是否為壞區(qū),如果是壞區(qū)則跳過此區(qū)進(jìn)入下一區(qū)。

   可采用寫入特定數(shù)后讀出校驗(yàn)的方式來檢測壞區(qū)。存儲電路板根據(jù)命令全區(qū)寫入8 bit數(shù)據(jù)。寫入時(shí)序按系統(tǒng)設(shè)計(jì)的最高速率進(jìn)行。然后將它們順序讀出并進(jìn)行校驗(yàn),如果出現(xiàn)數(shù)據(jù)錯(cuò)誤則登記該壓為壞區(qū)。圖5為壞區(qū)檢測管理的工作流程。

6 結(jié)束語

    本文采用多級流水線與并行處理相結(jié)合的方式,同時(shí)利用FPGA內(nèi)部的緩存來使多個(gè)FLASH存儲器并行工作,從而極大地提高了存儲速率。100片F(xiàn)LASH存儲器同時(shí)工作可滿足660 MB/S的速度要求。經(jīng)過測試,本系統(tǒng)可以可靠地存儲數(shù)字圖像,并可屏蔽壞區(qū)。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。