關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 高速大容量存儲系統設計

        高速大容量存儲系統設計

        作者: 時間:2010-03-09 來源:網絡 收藏

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

        電路中Flash1~10的連接一致,即數據總線獨立連接到FPGA共用控制總線(帶驅動)。由圖3可見,若需要進一步降低單片Flash存儲速率,可進一步擴展Flash存儲器芯片數量。由于單片FPGA的I/O數有限,可將10個Flash模塊安排到5塊擴展存儲器板上,分別對應Camera Link串并轉換得到的一路數據(66 MHz×8 bit)。每個存儲器板與1片FPGA和2個Flash模塊相連后再分別與控制電路板上的FPGA相連來進行數據傳輸。其中的5塊擴展存儲器板采用相同結構。

        4 FPGA邏輯設計

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

        5 FLASH壞區管理

        對FLASH的壞區實行動態管理,在每個存儲電路板的FPGA內開辟1 K×8 bit的壞區地址存儲。所有存儲電路板的壞區地址一致。在FLASH進行寫操作前比對當前區是否為壞區,如果是壞區則跳過此區進入下一區。

        可采用寫入特定數后讀出校驗的方式來檢測壞區。存儲電路板根據命令全區寫入8 bit數據。寫入時序按的最高速率進行。然后將它們順序讀出并進行校驗,如果出現數據錯誤則登記該壓為壞區。圖5為壞區檢測管理的工作流程。

        6 結束語

        本文采用多級流水線與并行處理相結合的方式,同時利用FPGA內部的緩存來使多個FLASH存儲器并行工作,從而極大地提高了存儲速率。100片FLASH存儲器同時工作可滿足660 MB/S的速度要求。經過測試,本系統可以可靠地存儲數字圖像,并可屏蔽壞區。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 古田县| 新绛县| 泗水县| 武夷山市| 民县| 泽库县| 靖州| 台南县| 贺兰县| 尉犁县| 黄大仙区| 康保县| 新乐市| 西乡县| 奉节县| 周宁县| 沙河市| 北流市| 德保县| 河津市| 昭觉县| 东城区| 仁怀市| 承德市| 嵩明县| 藁城市| 淄博市| 康马县| 繁峙县| 湘潭县| 卢龙县| 铁岭县| 浙江省| 蕲春县| 泽库县| 九龙县| 枣庄市| 台安县| 江源县| 甘肃省| 宣威市|