一種適合不同位寬數(shù)據(jù)的存儲裝置制造方法
【專利摘要】本發(fā)明公開了一種適合不同位寬數(shù)據(jù)的存儲裝置,包括:DI數(shù)據(jù)采集單元、DI數(shù)據(jù)輸出單元、數(shù)據(jù)輸入預存儲單元、數(shù)據(jù)輸出預存儲單元、數(shù)據(jù)量調(diào)整控制邏輯單元、數(shù)據(jù)讀寫控制邏輯單元和同步動態(tài)隨機存儲器SDRAM控制器;其中,DI數(shù)據(jù)采集單元的每通道的DI數(shù)據(jù)采集位數(shù)與DI數(shù)據(jù)輸出單元的輸出位數(shù)由數(shù)據(jù)量調(diào)整控制邏輯單元確定;數(shù)據(jù)讀寫控制邏輯單元讀取數(shù)據(jù)輸入預存儲單元的數(shù)據(jù)并寫入SDRAM控制器,還用于讀取SDRAM控制器中的數(shù)據(jù),并輸出至數(shù)據(jù)輸出預存儲單元,并最終由DI數(shù)據(jù)輸出單元輸出。本發(fā)明的存儲裝置,適用于多通道不同位寬的數(shù)據(jù)高速采集和存儲;可提高存儲效率,降低成本;具有通用性,能夠適應(yīng)不同類型的存儲器。
【專利說明】一種適合不同位寬數(shù)據(jù)的存儲裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲【技術(shù)領(lǐng)域】,特別是涉及一種適合不同位寬數(shù)據(jù)的存儲裝置?!颈尘凹夹g(shù)】
[0002]對于多通道的數(shù)字量高速采集模塊,由于總線帶寬限制,不能將數(shù)據(jù)實時傳送到上位機,因此需要將采集到的數(shù)據(jù)先進行緩存,待采集結(jié)束后由上位機讀取數(shù)字量數(shù)據(jù),進行后續(xù)數(shù)據(jù)處理和分析。在使用過程中,采集的通道數(shù)需要用戶任意配置,然而所使用的大容量存儲器位數(shù)一般都是固定的。因此,不論配置的通道數(shù)是多少,都將固定位寬的數(shù)據(jù)送入存儲器。如果輸入通道數(shù)小于該位寬數(shù),則將高位寫入0,這樣思路簡單、配置靈活,但是缺點也是顯而易見的,只有在配置的輸入通道數(shù)或輸出通道數(shù)與存儲器的位寬相同時,才能夠有效的利用存儲器空間。當配置的通道數(shù)少于確定的位寬數(shù)時,就會浪費大部分存儲空間,因此,現(xiàn)有技術(shù)存在在采集數(shù)據(jù)時經(jīng)常造成存儲器空間浪費的問題;尤其是對于要求大數(shù)據(jù)量緩存的場合,需要的存儲器容量增大會顯著提高成本。因此,對采集到的不同位寬的數(shù)據(jù)進行有效存儲、提高存儲效率、降低成本成為設(shè)計需求。
【發(fā)明內(nèi)容】
[0003]本發(fā)明要解決的技術(shù)問題是提供一種適合不同位寬數(shù)據(jù)的存儲裝置,用以解決現(xiàn)有技術(shù)在采集數(shù)據(jù)時經(jīng)常造成存儲器空間浪費的問題。
[0004]為解決上述技術(shù)問題,本發(fā)明提供一種適合不同位寬數(shù)據(jù)的存儲裝置,包括:
[0005]DI數(shù)據(jù)采集單元、DI數(shù)據(jù)輸出單元、數(shù)據(jù)輸入預存儲單元、數(shù)據(jù)輸出預存儲單元、數(shù)據(jù)量調(diào)整控制邏輯單元、數(shù)據(jù)讀寫控制邏輯單元和同步動態(tài)隨機存儲器SDRAM控制器;其中,DI數(shù)據(jù)采集單元的每通道的DI數(shù)據(jù)采集位數(shù)與DI數(shù)據(jù)輸出單元的輸出位數(shù)由數(shù)據(jù)量調(diào)整控制邏輯單元確定,DI數(shù)據(jù)采集單元采集到的數(shù)據(jù)先寫入數(shù)據(jù)輸入預存儲單元,數(shù)據(jù)讀寫控制邏輯單元讀取數(shù)據(jù)輸入預存儲單元的數(shù)據(jù)并寫入SDRAM控制器;數(shù)據(jù)讀寫控制邏輯單元讀取SDRAM控制器中的數(shù)據(jù),并將讀取的數(shù)據(jù)輸出至數(shù)據(jù)輸出預存儲單元,并最終由DI數(shù)據(jù)輸出單元輸出。
[0006]進一步,DI數(shù)據(jù)采集單元用于采集DI數(shù)據(jù),將N個單比特數(shù)據(jù)流寫入數(shù)據(jù)輸入預存儲單元;每個通道對應(yīng)一單比特數(shù)據(jù)流,每個數(shù)據(jù)流中包含的數(shù)據(jù)個數(shù)相同;DI數(shù)據(jù)輸出單元用于將數(shù)據(jù)輸出預存儲單元中的數(shù)據(jù)恢復成單獨位寬的數(shù)據(jù)流。
[0007]進一步,數(shù)據(jù)量調(diào)整控制邏輯單元,用于根據(jù)配置調(diào)整DI數(shù)據(jù)采集單元需要采集的數(shù)據(jù)量;如果要采集的數(shù)據(jù)量是SDRAM控制器輸入數(shù)據(jù)位數(shù)的整數(shù)倍,則不調(diào)整該數(shù)據(jù)量;如果不是,則將要采集的數(shù)據(jù)量增加至SDRAM控制器輸入數(shù)據(jù)位數(shù)的整數(shù)倍。
[0008]進一步,數(shù)據(jù)輸入預存儲單元包括M個I位輸入N位輸出的先入先出隊列FIFO ;其中,每個FIFO容量為2N個字;每一個FIFO對應(yīng)一個單比特數(shù)據(jù)流;采集的DI通道數(shù)即最大位寬為M, SDRAM控制器輸入數(shù)據(jù)位數(shù)也為N。
[0009]進一步,數(shù)據(jù)輸出預存儲單元包括M個N位輸入I位輸出的FIFO ;每個FIFO容量為2N個字;每一個FIFO輸出一個單比特數(shù)據(jù)流。
[0010]進一步,數(shù)據(jù)讀寫控制邏輯單元,用于根據(jù)DI總位寬,讀取數(shù)據(jù)輸入預存儲單元的數(shù)據(jù),并調(diào)整SDRAM控制器的地址,向SDRAM控制器發(fā)送寫命令,將數(shù)據(jù)寫入SDRAM控制器。
[0011]進一步,數(shù)據(jù)讀寫控制邏輯單元進行寫控制具體如下:
[0012]當數(shù)據(jù)輸入預存儲單元中至少有一個FIFO存儲有數(shù)據(jù)時,數(shù)據(jù)讀寫控制邏輯單元依次讀取每個非空FIFO中的數(shù)據(jù),并依次將固定位寬的數(shù)據(jù)寫入SDRAM控制器,直至將數(shù)據(jù)輸入預存儲單元中所有FIFO中的數(shù)據(jù)都寫入到SDRAM控制器。
[0013]進一步,數(shù)據(jù)讀寫控制邏輯單元還用于向SDRAM控制器發(fā)送讀取命令,從SDRAM中讀取數(shù)據(jù),然后將讀取的數(shù)據(jù)寫入數(shù)據(jù)輸出預存儲單元內(nèi)。
[0014]進一步,當數(shù)據(jù)輸出預存儲單元中所有的FIFO均有設(shè)定容量的存儲空間時,則數(shù)據(jù)讀寫控制邏輯單元向SDRAM控制器發(fā)送讀命令,讀取數(shù)據(jù)后,調(diào)整地址,將讀取的數(shù)據(jù)寫入數(shù)據(jù)輸出預存儲單元對應(yīng)的FIFO中。
[0015]本發(fā)明有益效果如下:
[0016]本發(fā)明的存儲裝置,適用于多通道不同位寬的數(shù)據(jù)高速采集和存儲;可提高存儲效率,降低成本;具有通用性,能夠適應(yīng)不同類型的存儲器。
【專利附圖】
【附圖說明】
[0017]圖1是本發(fā)明實施例中一種適合不同位寬數(shù)據(jù)的存儲裝置結(jié)構(gòu)示意圖;
[0018]圖2是本發(fā)明實施例中數(shù)據(jù)輸入預存儲單元的結(jié)構(gòu)示意圖;
[0019]圖3是本發(fā)明實施例中數(shù)據(jù)輸出預存儲單元的結(jié)構(gòu)示意圖;
[0020]圖4是本發(fā)明實施例中數(shù)據(jù)讀寫控制邏輯單元進行數(shù)據(jù)讀控制邏輯的流程圖;
[0021]圖5是本發(fā)明實施例中數(shù)據(jù)讀寫控制邏輯單元進行數(shù)據(jù)寫控制邏輯的流程圖。
【具體實施方式】
[0022]以下結(jié)合附圖以及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不限定本發(fā)明。
[0023]本發(fā)明提出一種高效存儲方法,并且易于現(xiàn)場可編程邏輯器件(FPGA,F(xiàn)ield 一Programmable Gate Array)的邏輯實現(xiàn)。不論配置的通道數(shù)是多少,都能夠?qū)⒉煌粚挼臄?shù)據(jù)有效存儲,提高存儲效率。
[0024]如圖1所示,本發(fā)明實施例涉及一種適合不同位寬數(shù)據(jù)的存儲裝置,包括:
[0025]DI (Digital Input,數(shù)字輸入)數(shù)據(jù)采集單元、DI數(shù)據(jù)輸出單元、數(shù)據(jù)輸入預存儲單元、數(shù)據(jù)輸出預存儲單元、數(shù)據(jù)量調(diào)整控制邏輯單元、數(shù)據(jù)讀寫控制邏輯單元、SDRAM(Synchronous Dynamic Random Access Memory,同步動態(tài)隨機存儲器)控制器;DI數(shù)據(jù)采集單元的每通道的DI數(shù)據(jù)采集位數(shù)與DI數(shù)據(jù)輸出單元的輸出位數(shù)由數(shù)據(jù)量調(diào)整控制邏輯單元確定,DI數(shù)據(jù)采集單元采集到的數(shù)據(jù)先寫入數(shù)據(jù)輸入預存儲單元,數(shù)據(jù)讀寫控制邏輯單元讀取數(shù)據(jù)輸入預存儲單元的數(shù)據(jù)并寫入SDRAM控制器;數(shù)據(jù)讀寫控制邏輯單元讀取SDRAM控制器中的數(shù)據(jù),并將讀取的數(shù)據(jù)輸出至數(shù)據(jù)輸出預存儲單元,并最終由DI數(shù)據(jù)輸出單元輸出。[0026]其中,DI數(shù)據(jù)采集單元,用于采集DI數(shù)據(jù),將N個單比特數(shù)據(jù)流寫入數(shù)據(jù)輸入預存儲單元;每個通道對應(yīng)一單比特數(shù)據(jù)流,每個數(shù)據(jù)流中包含的數(shù)據(jù)個數(shù)相同。
[0027]DI數(shù)據(jù)輸出單元,用于將數(shù)據(jù)輸出預存儲單元中的數(shù)據(jù)恢復成單獨位寬的數(shù)據(jù)流。
[0028]數(shù)據(jù)量調(diào)整控制邏輯單元,用于根據(jù)配置調(diào)整DI數(shù)據(jù)采集單元需要采集的數(shù)據(jù)量;如果要采集的數(shù)據(jù)量是SDRAM控制器輸入數(shù)據(jù)位數(shù)的整數(shù)倍,則該數(shù)據(jù)量不變;如果不是,則將要采集的數(shù)據(jù)量增加至SDRAM控制器輸入數(shù)據(jù)位數(shù)的整數(shù)倍,這樣可以保證數(shù)據(jù)與存儲單元的數(shù)據(jù)完整性。
[0029]數(shù)據(jù)輸入預存儲單元,包括M個I位輸入N位輸出的FIFO (First Input FirstOutput,先入先出隊列),其中,每個FIFO容量為2N個字;每一個FIFO對應(yīng)一個單比特數(shù)據(jù)流。采集的DI通道數(shù)即最大位寬為M,SDRAM控制器輸入數(shù)據(jù)位數(shù)為N。數(shù)據(jù)輸入預存儲單元的結(jié)構(gòu)如圖2所示。
[0030]數(shù)據(jù)輸出預存儲單元,包括M個N位輸入I位輸出的FIFO,每個FIFO容量為2N個字;每一個FIFO輸出一個單比特數(shù)據(jù)流。數(shù)據(jù)輸出預存儲單元的結(jié)構(gòu)如圖3所示。
[0031]數(shù)據(jù)讀寫控制邏輯單元,用于根據(jù)DI總位寬,讀取數(shù)據(jù)輸入預存儲單元的數(shù)據(jù),并調(diào)整SDRAM控制器的地址,向SDRAM控制器發(fā)送寫命令,將處理好的固定位寬為N的數(shù)據(jù)寫入SDRAM控制器。數(shù)據(jù)寫控制邏輯的流程如圖4所示:
[0032]DI數(shù)據(jù)采集單元采集到的數(shù)據(jù)流存入數(shù)據(jù)輸入預存儲單元,每通道數(shù)據(jù)達到N以后,半滿信號有效后,數(shù)據(jù)讀寫控制邏輯單元依次讀取每個非空FIFO中的數(shù)據(jù),并依次將固定位寬的數(shù)據(jù)寫入SDRAM控制器。每寫完一次FIFO中的數(shù)據(jù),位寬計數(shù)器會依次加1,并根據(jù)計數(shù)器的結(jié)果判斷是否讀取了最后一個FIFO中的數(shù)據(jù),如果否,則讀取下一個非空FIFO中的數(shù)據(jù);如果是,則表示已經(jīng)將每個非空FIFO中的數(shù)據(jù)都讀取一次,位寬計數(shù)器清零,返回準備狀態(tài),重新檢測,等待數(shù)據(jù)流再次存入數(shù)據(jù)輸入預存儲單元重新寫入數(shù)據(jù)流。
[0033]數(shù)據(jù)讀寫控制邏輯單元,還用于向SDRAM控制器發(fā)送讀取命令,從SDRAM中讀取數(shù)據(jù),然后將讀取的數(shù)據(jù)寫入數(shù)據(jù)輸出預存儲單元內(nèi)。數(shù)據(jù)讀控制邏輯的流程如圖5所示。
[0034]數(shù)據(jù)讀寫控制邏輯單元首先查詢數(shù)據(jù)輸出預存儲單元中每個FIFO的當前存儲量,如果至少有一個半滿,說明數(shù)據(jù)未被取走,則不啟動讀SDRAM控制器。如果所有的FIFO均未半滿,則表明數(shù)據(jù)流已經(jīng)被正常讀取,可以從SDRAM控制器中讀取下一次的數(shù)據(jù),向SDRAM控制器發(fā)送讀命令,讀取數(shù)據(jù)后,調(diào)整地址,寫入數(shù)據(jù)輸出預存儲單元對應(yīng)的FIFO中,并對位寬計數(shù)器計數(shù)。計數(shù)結(jié)果小于N時,則依次讀取SDRAM控制器中的數(shù)據(jù),當計數(shù)結(jié)果為N時,說明一次遍歷過程完成,返回準備狀態(tài),重新檢測。
[0035]本發(fā)明通過輸入輸出預存儲單元和數(shù)據(jù)讀寫控制邏輯實現(xiàn)了供一種適合不同位寬數(shù)據(jù)的高效存儲技術(shù),輸入位寬可動態(tài)調(diào)整,存儲器類型可隨意選擇??捎行岣叽鎯π剩档统杀?,非常適用于多通道數(shù)字量高速采集和存儲。
[0036]盡管為示例目的,已經(jīng)公開了本發(fā)明的優(yōu)選實施例,本領(lǐng)域的技術(shù)人員將意識到各種改進、增加和取代也是可能的,因此,本發(fā)明的范圍應(yīng)當不限于上述實施例。
【權(quán)利要求】
1.一種適合不同位寬數(shù)據(jù)的存儲裝置,其特征在于,包括: DI數(shù)據(jù)采集單元、DI數(shù)據(jù)輸出單元、數(shù)據(jù)輸入預存儲單元、數(shù)據(jù)輸出預存儲單元、數(shù)據(jù)量調(diào)整控制邏輯單元、數(shù)據(jù)讀寫控制邏輯單元和同步動態(tài)隨機存儲器SDRAM控制器;其中,DI數(shù)據(jù)采集單元的每通道的DI數(shù)據(jù)采集位數(shù)與DI數(shù)據(jù)輸出單元的輸出位數(shù)由數(shù)據(jù)量調(diào)整控制邏輯單元確定,DI數(shù)據(jù)采集單元采集到的數(shù)據(jù)先寫入數(shù)據(jù)輸入預存儲單元,數(shù)據(jù)讀寫控制邏輯單元讀取數(shù)據(jù)輸入預存儲單元的數(shù)據(jù)并寫入SDRAM控制器;數(shù)據(jù)讀寫控制邏輯單元讀取SDRAM控制器中的數(shù)據(jù),并將讀取的數(shù)據(jù)輸出至數(shù)據(jù)輸出預存儲單元,并最終由DI數(shù)據(jù)輸出單兀輸出。
2.如權(quán)利要求1所述的適合不同位寬數(shù)據(jù)的存儲裝置,其特征在于,DI數(shù)據(jù)采集單元用于采集DI數(shù)據(jù),將N個單比特數(shù)據(jù)流寫入數(shù)據(jù)輸入預存儲單元;每個通道對應(yīng)一單比特數(shù)據(jù)流,每個數(shù)據(jù)流中包含的數(shù)據(jù)個數(shù)相同;DI數(shù)據(jù)輸出單元用于將數(shù)據(jù)輸出預存儲單元中的數(shù)據(jù)恢復成單獨位寬的數(shù)據(jù)流。
3.如權(quán)利要求1或2所述的適合不同位寬數(shù)據(jù)的存儲裝置,其特征在于,數(shù)據(jù)量調(diào)整控制邏輯單元,用于根據(jù)配置調(diào)整DI數(shù)據(jù)采集單元需要采集的數(shù)據(jù)量;如果要采集的數(shù)據(jù)量是SDRAM控制器輸入數(shù)據(jù)位數(shù)的整數(shù)倍,則不調(diào)整該數(shù)據(jù)量;如果不是,則將要采集的數(shù)據(jù)量增加至SDRAM控制器輸入數(shù)據(jù)位數(shù)的整數(shù)倍。
4.如權(quán)利要求3所述的適合不同位寬數(shù)據(jù)的存儲裝置,其特征在于,數(shù)據(jù)輸入預存儲單元包括M個I位輸入N位輸出的先入先出隊列FIFO ;其中,每個FIFO容量為2N個字;每一個FIFO對應(yīng)一個單比特數(shù)據(jù)流;采集的DI通道數(shù)即最大位寬為M,SDRAM控制器輸入數(shù)據(jù)位數(shù)也為N。
5.如權(quán)利要求4所述的適合不同位寬數(shù)據(jù)的存儲裝置,其特征在于,數(shù)據(jù)輸出預存儲單元包括M個N位輸入I位輸出的FIFO ;每個FIFO容量為2N個字;每一個FIFO輸出一個單比特數(shù)據(jù)流。
6.如權(quán)利要求4或5所述的適合不同位寬數(shù)據(jù)的存儲裝置,其特征在于,數(shù)據(jù)讀寫控制邏輯單元,用于根據(jù)DI總位寬,讀取數(shù)據(jù)輸入預存儲單元的數(shù)據(jù),并調(diào)整SDRAM控制器的地址,向SDRAM控制器發(fā)送寫命令,將數(shù)據(jù)寫入SDRAM控制器。
7.如權(quán)利要求6所述的適合不同位寬數(shù)據(jù)的存儲裝置,其特征在于,數(shù)據(jù)讀寫控制邏輯單元進行寫控制具體如下: 當數(shù)據(jù)輸入預存儲單元中至少有一個FIFO存儲有數(shù)據(jù)時,數(shù)據(jù)讀寫控制邏輯單元依次讀取每個非空FIFO中的數(shù)據(jù),并依次將固定位寬的數(shù)據(jù)寫入SDRAM控制器,直至將數(shù)據(jù)輸入預存儲單元中所有FIFO中的數(shù)據(jù)都寫入到SDRAM控制器。
8.如權(quán)利要求5或7所述的適合不同位寬數(shù)據(jù)的存儲裝置,其特征在于,數(shù)據(jù)讀寫控制邏輯單元還用于向SDRAM控制器發(fā)送讀取命令,從SDRAM中讀取數(shù)據(jù),然后將讀取的數(shù)據(jù)寫入數(shù)據(jù)輸出預存儲單元內(nèi)。
9.如權(quán)利要求8所述的適合不同位寬數(shù)據(jù)的存儲裝置,其特征在于,當數(shù)據(jù)輸出預存儲單元中所有的FIFO均有設(shè)定容量的存儲空間時,則數(shù)據(jù)讀寫控制邏輯單元向SDRAM控制器發(fā)送讀命令,讀取數(shù)據(jù)后,調(diào)整地址,將讀取的數(shù)據(jù)寫入數(shù)據(jù)輸出預存儲單元對應(yīng)的FIFO中。
【文檔編號】G11C11/4063GK103680600SQ201310701576
【公開日】2014年3月26日 申請日期:2013年12月18日 優(yōu)先權(quán)日:2013年12月18日
【發(fā)明者】楊立杰, 史雄偉, 張偉楠, 胡志臣, 李浩璧 申請人:北京航天測控技術(shù)有限公司