一種海量數據存儲控制模塊的制作方法
【專利摘要】本發明涉及一種海量數據存儲控制模塊,屬于光電產品應用【技術領域】。本發明采用可編程邏輯器件來控制存儲器讀寫,操作靈活,可通過改變時鐘,來實現提高或降低數據讀寫速率,且存儲器單片存儲容量高,設計可以采用多片存儲方式,而使存儲容量滿足設計需求;還通過同時操作多片存儲器芯片,可使讀寫速率提高為單片的多倍。由此,該方案憑借功能強大的可編程邏輯器件和大容量存儲芯片,實現高速、海量數據的實時存儲。通過改進可編程邏輯器件的操作策略,在硬件平臺基礎上,可提高或降低數據的讀寫速率,而且采用寬溫的存儲器芯片,使得可以工作在惡劣的環境中,滿足不同的用戶需求。
【專利說明】一種海量數據存儲控制模塊
【技術領域】
[0001]本發明涉及光電產品應用【技術領域】,具體涉及一種海量數據存儲控制模塊。
【背景技術】
[0002]隨著微機的廣泛應用和各類總線數據采集產品的不斷完善,現在許多工作場所都建立了以微機為基礎的數據采集與處理系統。但是,這些設備大多數是在低速和常溫下工作的,適用于低速信號的連續采集與處理,而針對某些高速數據采集系統,目前大都采集有限的數據,之所以如此,是因為主要受到缺乏高速、大容量外部存儲器設備的限制。
[0003]近年來,微機技術發展極為迅速,運算速度不斷提高,內存和外部容量不斷增加,能否利用微機本身的資源來實現連續高速數據采集與存儲,就是人們努力的方向。
[0004]在這方面,人們已經進行了許多工作,并取得了不少積極成果。通常在內存開辟一個較大的存儲區,例如1MB,將高速采集到的數據利用DMA方式(Direct Memory Access,成組數據傳送方式)連續存儲到內存緩沖區,待內存存滿之后,再將數據迅速送往硬盤進行永久性存儲。或是利用中斷方式將采集到的一個個數據塊送到硬盤存儲。此外,還可以在內存區開辟兩個數據緩沖區或是一個“環形”的數據緩沖區,高速采集到的數據源源不斷地送往緩沖區,同時不失時機地將緩沖區的數據送往硬盤加以存儲。
[0005]上述采用的方式在較低速率下可以滿足設計需求,但是當對存儲帶寬有較高要求時,上述的方式可能不能夠滿足設計要求。將大量的數據,例如幾十GB甚至上百GB的數據存儲到外部芯片中,這時會對存儲速度及其外部芯片的存儲容量都會有嚴格要求。通常方式下,對于存儲器的讀寫等操作控制,通常是通過存儲器控制器來實現的。但是物理的控制器件一般不能滿足復雜的設計要求。因此,迫切需要一種可編程的存儲器控制器。此外,目前國內海量數據存儲中,基本上采取硬盤存儲方式。使用硬盤存儲方式需要為存儲設備提供較大的安裝空間,同時對工作溫度、濕度有較高要求,不能應用于惡劣的工作環境中。
【發明內容】
[0006](一)要解決的技術問題
[0007]本發明要解決的技術問題是如何設計出一種海量數據存儲控制系統,通過可編程邏輯器件來控制存儲器芯片的操縱,實現數據的編程、讀出操作,要求該系統可工作在惡劣環境中,實現對數據的高速實時存儲。
[0008](二)技術方案
[0009]為了解決上述技術問題,本發明提供一種海量數據存儲控制模塊,其包括:
[0010]可編程邏輯器件,其用于根據用戶需求指令來控制存儲器組進行相應操作;
[0011]存儲器陣列,其用于在所述可編程邏輯器件的控制下,執行數據寫入、讀出、擦出等操作。
[0012]其中,所述可編程邏輯器件包括:操作項目選擇單元、無效塊校驗單元、擦除操縱單元、寫入操縱單元以及讀出操縱單元;[0013]所述操作項目選擇單元用于根據用戶需求指令來選擇具體操作單元,生成對應的操作單元指令;
[0014]所述無效塊校驗單元用于根據與其對應的所述操作單元指令進行數據字符串中無效塊的檢驗操作,檢測存儲器中的無效塊地址;
[0015]所述擦除操縱單元用于在無效塊以外的其他數據存儲區內,根據與其對應的操作單元指令對存儲器芯片中的數據進行擦除操作;
[0016]所述寫入操縱單元用于在無效塊以外的其他數據存儲區內,根據與其對應的操作單元指令對存儲器芯片中的數據進行寫入操作;
[0017]所述讀出操縱單元用于在無效塊以外的其他數據存儲區內,根據與其對應的操作單元指令對存儲器芯片中的數據進行讀出操作。
[0018]其中,所述可編程邏輯器件為FPGA可編程邏輯器件,其采用同時操縱多片存儲器芯片的方式來工作。
[0019]其中,通過改變所述FPGA可編程邏輯器件預設置的時鐘,來實現提高或降低數據的讀寫速率。
[0020]其中,所述FPGA可編程邏輯器件為XILINX公司的Virtex-ΙΙ系列FPGA可編程邏輯器件。
[0021]其中,所述存儲器陣列包括若干組存儲器組合。
[0022]其中,所述存儲器組合中包含若干片存儲器芯片。
[0023]其中,所述存儲器芯片為寬溫芯片。
[0024](三)有益效果
[0025]與現有技術相比較,本發明具有以下技術特點:
[0026](I)本發明技術方案采用可編程邏輯器件來控制存儲器的讀寫,操作過程靈活,可以通過改變預設置的時鐘,來實現提高或降低數據的讀寫速率。
[0027](2)本發明技術方案中所采用的存儲器單片存儲容量高達P GB (P可以為1、2、4、8),設計可以采用多片存儲方式,從而使存儲容量滿足設計需求,存儲容量為PGBXNXM,其中,N為每組存儲器片數、M為組數。
[0028](3)在現有技術中,存儲器的單片讀寫速率可能很難滿足設計需求,因此,本發明技術方案通過同時操作多片存儲器芯片,可以使讀寫速率提高為單片的N倍,其中,N為每組存儲器片數。
[0029]綜上所述,本發明提供的海量數據存儲控制模塊采用功能強大的可編程邏輯器件和大容量存儲芯片,實現了高速、海量數據的實時存儲。通過改進可編程邏輯器件的操作策略,在硬件平臺基礎上,可以提高或降低數據的讀寫速率,而且采用寬溫的存儲器芯片,海量數據存儲控制模塊可以工作在惡劣的環境中,滿足不同的用戶需求。
【專利附圖】
【附圖說明】
[0030]圖1為本發明的海量數據存儲控制模塊的結構框圖。
[0031]圖2為本發明的存儲器芯片的陣列組織示意圖。
【具體實施方式】[0032]為使本發明的目的、內容和優點更加清楚,下面結合附圖和實施例,對本發明的【具體實施方式】作進一步詳細描述。
[0033]針對現有技術的迫切需求,本發明利用可編程邏輯器件,比如,利用FPGA(Field-Programmable Gate Array,現場可編程門陣列)可以設計復雜的存儲器控制器,它具有很高的靈活性,可以方便地和其他數據緩存接口電路進行連接,實現復雜的設計要求。具體而言,本發明所提供的海量數據存儲控制模塊,其包括:可編程邏輯器件,其用于根據用戶需求指令來控制存儲器組進行相應操作;存儲器陣列,其用于在所述可編程邏輯器件的控制下,執行數據寫入、讀出、擦出等操作。
[0034]其中,所述可編程邏輯器件包括:操作項目選擇單元、無效塊校驗單元、擦除操縱單元、寫入操縱單元以及讀出操縱單元;所述操作項目選擇單元用于根據用戶需求指令來選擇具體操作單元,生成對應的操作單元指令;所述無效塊校驗單元用于根據與其對應的所述操作單元指令進行數據字符串中無效塊的檢驗操作,檢測存儲器中的無效塊地址;所述擦除操縱單元用于在無效塊以外的其他數據存儲區內,根據與其對應的操作單元指令對存儲器芯片中的數據進行擦除操作;所述寫入操縱單元用于在無效塊以外的其他數據存儲區內,根據與其對應的操作單元指令對存儲器芯片中的數據進行寫入操作;所述讀出操縱單元用于在無效塊以外的其他數據存儲區內,根據與其對應的操作單元指令對存儲器芯片中的數據進行讀出操作。
[0035]其中,所述可編程邏輯器件為FPGA可編程邏輯器件,其采用同時操縱多片存儲器芯片的方式來工作。所述FPGA可編程邏輯器件為XILINX公司的Virtex-1I系列FPGA可編程邏輯器件。
[0036]其中,所述存儲器陣列包括若干組存儲器組合。所述存儲器組合中包含若干片存儲器芯片,并且,所述存儲器芯片為寬溫芯片。
[0037]下面結合附圖及具體實施例來詳細描述本發明技術方案的實施方法。
[0038]實施例
[0039]本實施例所提供的海量數據存儲控制模塊,主要由可編程邏輯器件和存儲器芯片組成。
[0040]可編程邏輯器件采用美國XILINX公司的Virtex-1I系列芯片,該系列器件邏輯門最大可達800萬門,用戶管腳最大可達1108個,編程操作靈活,工作溫度范圍為_40°C?100°C。本實施例中所選用的型號規格為XC2V1500-5FG676I,該芯片邏輯資源可達150萬門,內含8個DCM,封裝為FG676,用戶管腳最多可達392個。芯片I/O電壓3.3V,核電壓
1.5V。可編程邏輯器件負責實現存儲器的控制操作,主要操作有校驗無效塊操作、擦除操縱、寫入操作及讀出操作等,上述操縱通過在FPGA內編程實現。為了提高存儲系統的讀寫速率,設計采用可編程邏輯器件同時操作多片存儲器方式,從而使系統讀寫速率是單片讀寫速率的N倍,其中,N為同時操作的存儲器片數。海量數據存儲控制模塊的結構框圖如圖1所示。
[0041]存儲器芯片選用SAMSUNG公司的FLASH大容量存儲器,芯片型號規格為K9K8G08U0M,該芯片單片存儲容量為1GB,數據總線8位,無地址線,芯片封裝為TS0P48。隨著工藝發展,SAMSUNG公司陸續推出同封裝,容量加倍的存儲器,目前市面上該類存儲器單片容量可達8GB,工作溫度為-40°C?85°C,數據寫入速率典型值為lOMB/s,讀出速率典型值為38MB/s,數據保存時間長達10年,芯片的陣列組織見圖2所示。其中,Iblock (塊)=64Pages (頁),則:
[0042]IPage = (2K+64) Bytes ;
[0043]IBlock = (2K+64)BX64Pages = (128K+4K) Bytes ;
[0044]IDevice = (2K+64)BX64PagesX8.192Blocks = 8.448Mbits。
[0045]因此可以在保持硬件平臺不變的情況下,通過更換大容量存儲芯片,升級可編程邏輯器件程序來提高存儲系統的存儲容量。
[0046]其中,芯片的操作是通過執行相應的命令字來完成的,芯片的操作命令字見表1所示。可編程邏輯器件負責實現存儲器控制器功能,同時控制多片存儲器的無效塊校驗、讀出操作、編程操作和擦除操作等。廠家保證每一片存儲器的第一個Block —定是有效的,SP可以進行擦除和編程操作。在無效塊校驗過程中,可編程邏輯器件記錄每片存儲器的無效塊地址,并將無效塊地址存儲到第一個Block中。在以后的編程、讀出操作時,可編程邏輯器件首先將第一個Block中的無效塊地址讀到內部RAM中。在進行編程、讀出操作時,會進行要操縱地址與無效塊地址的比較。若地址相同,說明該地址為無效塊地址,則會跳過該地址,操作下一個地址。
[0047]表1.操作命令字
[0048]
【權利要求】
1.一種海量數據存儲控制模塊,其特征在于,所述海量存儲控制模塊包括: 可編程邏輯器件,其用于根據用戶需求指令來控制存儲器組進行相應操作; 存儲器陣列,其用于在所述可編程邏輯器件的控制下,執行數據寫入、讀出、擦出操作。
2.如權利要求1所述的海量數據存儲控制模塊,其特征在于,所述可編程邏輯器件包括:操作項目選擇單元、無效塊校驗單元、擦除操縱單元、寫入操縱單元以及讀出操縱單元; 所述操作項目選擇單元用于根據用戶需求指令來選擇具體操作單元,生成對應的操作單元指令; 所述無效塊校驗單元用于根據與其對應的所述操作單元指令進行數據字符串中無效塊的檢驗操作,檢測存儲器中的無效塊地址; 所述擦除操縱單元用于在無效塊以外的其他數據存儲區內,根據與其對應的操作單元指令對存儲器芯片中的數據進行擦除操作; 所述寫入操縱單元用于在無效塊以外的其他數據存儲區內,根據與其對應的操作單元指令對存儲器芯片中的數據進行寫入操作; 所述讀出操縱單元用于在無效塊以外的其他數據存儲區內,根據與其對應的操作單元指令對存儲器芯片中的數據進行讀出操作。
3.如權利要求1所述的海量數據存儲控制模塊,其特征在于,所述可編程邏輯器件為FPGA可編程邏輯器件,其采用同時操縱多片存儲器芯片的方式來工作。
4.如權利要求3所述的海量數據存儲控制模塊,其特征在于,通過改變所述FPGA可編程邏輯器件預設置的時鐘,來實現提高或降低數據的讀寫速率。
5.如權利要求3所述的海量數據存儲控制模塊,其特征在于,所述FPGA可編程邏輯器件為XILINX公司的Virtex-1I系列FPGA可編程邏輯器件。
6.如權利要求1所述的海量數據存儲控制模塊,其特征在于,所述存儲器陣列包括若干組存儲器組合。
7.如權利要求6所述的海量數據存儲控制模塊,其特征在于,所述存儲器組合中包含若干片存儲器芯片。
8.如權利要求7所述的海量數據存儲控制模塊,其特征在于,所述存儲器芯片為寬溫-H-* I I心/T O
【文檔編號】G06F12/06GK103699333SQ201210371101
【公開日】2014年4月2日 申請日期:2012年9月27日 優先權日:2012年9月27日
【發明者】穆建文, 楊舒, 覃奮 申請人:中國航天科工集團第二研究院二O七所