本發明涉及電子技術領域,尤其涉及一種存儲器的割包控制器、存儲器及存儲器的割包控制方法。
背景技術:
根據DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory,雙倍速率同步動態隨機存儲器)協議(JESD79-3E,JESD79-2C,JESD209B)的規定,數據的傳輸是通過對DDR SDRAM發出讀寫命令以及收發相應的數據來完成的。用戶對DDR SDRAM的操作,通常都是通過DDR controller(DDR控制器)進行。
DDR controller與PHY(物理層)之間通過工業標準協議DFI接口(DFI3.0,DFI3.1,DFI4.0)進行命令的傳遞和數據的交換。PHY的工作頻率一般是DDR controller的2倍或4倍。由于DDR SDRAM自身的構造限制,在正常讀寫模式下,大部分命令之間都存在最小延時要求,而且讀寫命令與相應的數據之間也有延時要求。為減少延時限制和最大限度的利用DFI接口(DDR PHY Interface,雙倍速率同步動態隨機存儲器物理層接口)的帶寬,DDR controller設計復雜的指令重排和調度策略必不可少。由于DDR controller調度算法的存在,導致指令在不同的通道之間切換,同時也可能導致指令的先后順序發生改變,因此對于PHY通過DFI接口返回的讀數據重新進行割包尤為關鍵。
當用戶連續下發多個讀請求指令后,DFI接口從PHY側接收的讀數據是連續的,丟失了數據的邊界。為了從返回的數據中確定出哪些數據屬于哪個讀請求指令,現有的DDR controller從用戶接口側接收到用戶的讀請求指令后,會解析讀請求指令獲得對應的ID號和包長存儲到FIFO(First Input First Output,先入先出隊列),存儲的格式如圖1所示:一個讀請求指令對應的ID號和包長存儲在一行中。同時,DDR controller還會將讀請求指令通過DFI接口發送到PHY。讀數據返回后,DDR controller通過提取FIFO中存儲的包長,重新對讀數據進行割包,割包完成后將對應的數據與ID號打包返回給用戶。DFI接口從PHY側接收到的除了連續的讀數據以外,還包括有效數據指示信號。根據包長對返回的連續數據進行割包處理時,需要在接收到有效數據指示信號時,從FIFO中提取出包長,進而根據包長對有效數據指示信號進行處理,為其添加結束標識,這個處理過程需要一定的時間,而為了保證經過處理后的有效數據指示信號依舊與返回的讀數據的步調一致,則需要對返回的數據也進行延時。而對數據進行延時需消耗大量資源,且返回數據位寬越大,則資源消耗越大。同時直接在FIFO中存儲包長,包長越長,對FIFO的位寬要求越大,這會進一步增大資源消耗。
綜上,現在亟需提出一種新的割包方案,用以解決現有技術中根據包長進行割包需要花費時間對有效數據指示信號進行處理,從而造成返回數據延時大,資源消耗大的問題。
技術實現要素:
本發明提供的存儲器的割包控制器、存儲器及存儲器的割包控制方法,主要解決的技術問題是:解決現有技術中的割包方案中利用包長實現割包,而通過包長實現割包導致電路延時增加,造成資源消耗較多。
為解決上述技術問題,本發明提供一種存儲器的割包控制器,包括用戶接口、控制器、指令信息存儲器以及數據命令接口;
所述控制器用于通過所述用戶接口接收讀請求指令,提取該讀請求指令的標識信息以及結束標識并按先入先出原則綁定存入所述指令信息存儲器中,并將所述讀請求指令下發給所述數據命令接口;以及用于根據所述指令信息存儲器中存儲的標識信息和結束標識對所述數據命令接口從數據存儲器獲取到的數據進行割包處理,并將所述標識信息與割包處理得到的數據包進行綁定后通過所述用戶接口發出;
所述數據命令接口用于通過物理層傳輸通道將所述讀請求指令下發給所述數據存儲器,并接收所述數據存儲器根據所述讀請求指令通過所述物理層傳輸通道反饋的數據。
進一步地,所述控制器用于從所述讀請求指令中提取標識信息并對所述讀請求指令進行時序邏輯處理,在讀有效指示信號處于有效狀態時,在每一個數據命令接口時鐘周期對結束標識時序信號進行一次提取并與所述標識信息綁定存入到所述指令信息存儲器對應的信息存儲行,直到提取到所述讀請求指令的結束標識。
進一步地,所述控制器在當前數據命令接口時鐘周期從讀結束標識時序信號提取到結束標識時,將當前讀取結果設置為1與所述標識信息綁定存入到所述指令信息存儲器對應的信息存儲行;否則,將當前讀取結果設置為0與所述標識信息綁定存入到所述指令信息存儲器對應的信息存儲行。
進一步地,所述數據命令接口還用于接收所述數據存儲器通過所述物理層傳輸通道反饋的與所述數據對應的有效數據指示信號,并將所述有效數據指示信號輸入所述指令信息存儲器的數據輸出使能端;
所述指令信息存儲器用于在所述有效數據指示信號處于有效狀態時,按照先入先出原則將當前信息存儲行中的信息輸出;
所述控制器用于根據所述指令信息存儲器輸出的信息中是否包含結束標識對所述數據進行割包處理。
進一步地,所述指令信息存儲器的深度大于等于16個數據命令接口時鐘周期,小于等于32個數據命令接口時鐘周期。
本發明還提供一種存儲器,包括數據存儲器以及如上所述的割包控制器;所述割包控制器的數據命令接口通過物理層傳輸通道與所述數據存儲器連接。
本發明還提供一種存儲器的割包控制方法,包括:
接收到讀請求指令后,提取該讀請求指令的標識信息以及結束標識并按先入先出原則綁定存入指令信息存儲器中,并將所述讀請求指令下發給數據存儲器;
接收所述數據存儲器根據所述讀請求指令反饋的數據;
根據所述指令信息存儲器中存儲的標識信息和結束標識對所述數據進行割包處理,并將所述標識信息與割包處理得到的數據包進行綁定后發出。
進一步地,所述提取該讀請求指令的標識信息以及結束標識并按先入先出原則綁定存入指令信息存儲器包括:
從所述讀請求指令中提取標識信息并對所述讀請求指令進行時序邏輯處理得到讀有效指示信號及結束標識;
在讀有效指示信號處于有效狀態時,在每一個數據命令接口時鐘周期對結束標識時序信號進行一次提取并與所述標識信息綁定存入到所述指令信息存儲器對應的信息存儲行,直到提取到所述讀請求指令的結束標識。
進一步地,在當前時鐘周期從讀結束標識時序信號提取到結束標識時,將當前讀取結果設置為1與所述標識信息綁定存入到所述指令信息存儲器對應的信息存儲行;否則,將當前讀取結果設置為0與所述標識信息綁定存入到所述指令信息存儲器對應的信息存儲行。
進一步地,還包括接收所述數據存儲器根據所述讀請求指令反饋的數據的同時,接收所述數據存儲器反饋的與所述數據對應的有效數據指示信號,并將所述有效數據指示信號輸入所述指令信息存儲器的數據輸出使能端;
所述指令信息存儲器在所述有效數據指示信號處于有效狀態時,按照先入先出原則將當前信息存儲行中的信息輸出;
所述根據所述指令信息存儲器中存儲的標識信息和結束標識對所述數據進行割包處理包括:
根據所述指令信息存儲器輸出的信息中是否包含結束標識對所述數據進行割包處理。
本發明的有益效果是:
本發明提供一種存儲器的割包控制器、存儲器及存儲器的割包控制方法,割包控制器中的控制器通過用戶接口接收讀請求指令,從中提取到標識信息和結束標識后按照先入先出原則綁定存儲到指令信息存儲器中,并同時將讀請求指令下發到數據命令接口,然后由數據命令接口通過物理層傳輸通道將讀請求指令下發給數據存儲器。數據命令接口接收到根據讀請求指令返回的數據后,控制器根據指令信息存儲器中存儲的標識信息和結束標識對返回的數據進行割包處理,并將標識信息與割包處理得到的數據包綁定后通過用戶接口返回給用戶。由于本發明提供的數據割包方案根據結束標識信息進行,不需要參考包長,因此本發明的方案中不需要存儲包長,自然也不需要提取包長,不需要根據包長對有效時序信號進行處理,因此也不需要對返回的數據進行延時,這減少了資源的消耗。同時,相對于二進制包長的長度而言,結束標識的長度僅為一位,因此,指令信息存儲器的位寬將顯著減小,降低了資源消耗。
附圖說明
圖1為現有技術中ID號和包長的存儲格式示意圖;
圖2為本發明實施例一提供的割包控制器的一種結構示意圖;
圖3為本發明各實施例中控制器對兩個讀請求指令進行時序邏輯處理得到的時序圖;
圖4為本發明各實施例中標識信息與結束標識的一種存儲格式示意圖;
圖5為本發明實施例一提供的存儲器的一種硬件結構示意圖;
圖6為本發明實施例一提供的預取隊列的一種結構框圖;
圖7為本發明實施例二提供的存儲器的割包控制方法的一種流程圖;
圖8為本發明實施例二提供的提取標識信息與結束標識進行存儲的一種流程圖。
具體實施方式
下面通過具體實施方式結合附圖對本發明實施例作進一步詳細說明。
實施例一:
由于現有技術中基于包長進行數據割包處理,依據包長割包會導致電路延時增加,同時而包長轉化成二進制存儲在指令信息存儲器時需要占據多位,進而使得指令信息存儲器的位寬較大,本實施例先提供一種割包控制器,請參見圖2:
割包控制器2包括用戶接口21、控制器22、指令信息存儲器23以及數據命令接口24。用戶接口21、指令信息存儲器23以及數據命令接口24分別與控制器22連接。其中用戶接口21是與用戶進行交互的通道,用戶可以通過用戶接口21下發請求指令,用戶接口21將接收到的請求指令發送給控制器22,由控制器22對請求指令進行解析處理。控制器22從用戶接口處接收到的請求指令包括與數據存儲器上的數據讀寫相關的請求指令,例如rd(讀指令)、wr(寫指令)、act(激活指令)、pre(預充電指令)、wra(帶預充電的寫指令)和rda(帶預充電的讀指令)等。除了與數據讀寫相關的請求指令以外,還包括控制使DDR SDRAM進入低功耗的掉電(Power Down)模式或自刷新(Self-Refresh)模式的請求指令;對DDR3SDRAM內部的寄存器中的讀寫時序參數進行修改以滿足不同頻率讀寫需求的請求指令;定期對DDR SDRAM進行數據刷新的刷新(Refresh)請求指令等。同時,請求指令的響應結果也會通過用戶接口21反饋給用戶,例如根據用戶的讀請求指令向用戶返回需要讀取的數據等。
指令信息存儲器23中可以存儲控制器22對用戶的請求指令進行解析后獲得的信息,例如,在本實施例中,當控制器22對用戶的讀請求指令進行解析之后,將會把讀請求信息對應的標識信息與結束標識存儲到指令信息存儲器23中。
控制器22對讀請求指令的解析過程中包括這樣兩個過程:從讀請求指令中提取出標識信息,也即讀請求的ID號。同時,控制器22還會對讀請求指令進行時序邏輯處理得到讀有效指示信號和結束標識。圖3所示出的是控制器22對用戶兩個讀請求指令進行時序邏輯處理得到的時序圖。在讀有效指示信號處于有效狀態時,在每一個數據命令接口時鐘周期對讀結束標識時序信號進行一次提取,并與標識信息綁定存入到指令信息存儲器對應的信息存儲行。
在本實施例中,控制器22在當前數據命令接口時鐘周期從讀結束標識時序信號提取到結束標識時,如果提取到結束標識,則將當前讀取結果設置為1與標識信息綁定存入到指令信息存儲器對應的信息存儲行;否則,將當前讀取結果設置為0與標識信息綁定存入到指令信息存儲器對應的信息存儲行。這就相當于將讀請求指令的結束標識設置為“1”,應當理解的是,控制器22也可以將讀請求指令的結束標識設置為“0”,即控制器22在當前數據命令接口時鐘周期從讀結束標識時序信號提取到結束標識,如果提取到結束標識,則將當前讀取結果設置為0與標識信息綁定存入到指令信息存儲器對應的信息存儲行;否則,將當前讀取結果設置為1與標識信息綁定存入到指令信息存儲器對應的信息存儲行。
圖4示出的本實施例中指令信息存儲器23對標識信息與結束標識的一種存儲格式的示意圖:在圖4當中,指令信息存儲器23通過先入先出隊列的形式進行管理,FIFO的位寬等于ID號所占寬度加1,相對于現有方案中由ID號所占寬度與包長所占寬度之和形成的位寬,要小太多了。對于FIFO的深度,則與用戶接口21接收到讀請求指令到根據讀請求指令返回讀取數據的時間長短有關系,也就是存儲器完整處理一個讀請求所需要的時間T有關。因為在T時間內,雖然存儲器只能完整處理一個讀請求指令,但是用戶可能還會在這個時間內下發一個或多個讀請求指令,控制器22需要對接收到的讀請求指令進行解析,并將對應的標識信息與結束標識存儲到FIFO中。假定在T時間內,控制器22從用戶接口21又處接收到3個讀請求,則FIFO不僅需要對之前存儲的一個讀請求的信息進行存儲,還要保證后面3個讀請求對應的結束標識與標識信息也能夠被存儲到FIFO中,所以在T時間內,FIFO需要保證能夠存儲4個讀請求指令的相關信息,而每一個讀請求指令的標識信息與結束標識在FIFO中所占用的行數是不盡相同的,也就是各讀請求指令信息存儲所占用的FIFO深度不相同。為了保證FIFO自身的深度足以存儲任意4個讀請求指令,則通常會根據一個讀請求指令所占用的最大深度來計算確定FIFO的深度。例如,假定根據工程經驗發現一個讀請求指令相關信息的存儲做多占用4行,則可以確定出FIFO所需要的最大深度為16行。假定控制器22開始向FIFO寫入一個讀請求的標識信息與結束標識的時刻為t1,控制器22開始從FIFO讀出該讀請求對應的標識信息與結束標識的時刻為t2。則應當理解的是,FIFO的深度僅與t2與t1間時間差值的大小相關。實際上,可以將指令信息存儲器的深度設置為大于等于16個數據命令接口時鐘周期,小于等于32個數據命令接口時鐘周期。
在控制器22對讀請求指令進行解析的同時,還會將讀請求指令通過數據接口24傳輸到物理層傳輸通道上。在本實施例中,數據命令接口可以傳輸數據信息、命令信息、狀態信息、Debug(調試)信息、Training(訓練)信息等,其可以通過DFI接口實現。在本實施例的一種示例當中,還提供一種包括上述割包控制器2的存儲器,請參見圖5,存儲器50包括割包控制器2、數據存儲器5以及連接割包控制器2和數據存儲器5的物理層傳輸通道6。存儲器50可以是DDR存儲器,DDR存儲器又分為DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM以及DDR4 SDRAM、LPDDR SDRAM,LPDDR2 SDRAM等類型。
控制器22將讀請求指令下發到數據命令接口24后,物理層傳輸通道6將讀請求指令傳輸給數據存儲器5,以便從數據存儲器5上讀取到用戶所請求的數據后通過物理層傳輸通道6再反饋到數據命令接口24上。當數據命令接口24接收到返回的數據之后,控制器22將會可以從指令信息存儲器23中提取ID號與結束標識對數據進行割包處理。由于本實施例中針對一個讀請求指令的結束標識的存儲是根據時鐘信號進行綁定存儲的,因此,在割包處理的時候,也應當與時鐘信息綁定輸出,即控制器22接收數據命令接口24返回的數據的過程應當與從指令信息存儲器23中提取結束標識的過程同步。為了保證二者步調一致,在數據存儲器5向割包控制器2的數據命令接口24返回的信息中,除了包括讀請求指令對應的數據以外,還包括與數據對應的有效數據指示信號。有效數據指示信號可以輸入指令信息存儲器23的數據輸出使能端,從而控制指令信息存儲器23輸出結束標識的步調。
當有效數據指示信號處于有效狀態時,控制器22控制指令信息存儲器23按照先入先出的原則將之前存儲的標識信息與結束標識進行輸出,從而根據結束標識對數據命令接口24返回的數據進行割包處理。和提取結束標識的過程類似,控制器22也是在每一個數據命令接口時鐘周期后確定一次是否進行割包,具體的,控制器22會在每一個數據命令接口時鐘周期后確定指令信息存儲器23當前是否輸出了結束標識,若否,則說明割包時機未到,若是,則證明應當立即執行割包動作。
若之前向指令存儲器23中寫入結束標識的時候是將結束標識設置為“1”,在各數據命令接口時鐘周期到達時,控制器22判斷指令信息存儲器23的輸出是“0”還是“1”,若輸出為“0”則標識讀請求指令還未結束,若輸出結果為“1”,則表征對應一個讀請求指令的數據已經輸出完成,可以進行割包了。同樣的,若之前向指令存儲器23中寫入結束標識的時候是將結束標識設置為“0”,則輸出結果與執行割包的動作與上述示例相反,這里不再贅述。
本實施例還提供一種可作為指令信息存儲器的預取隊列(Prefetch FIFO)的結構框圖,請參見圖6,預取隊列60包括數據輸入端61、數據輸入使能端62、數據輸出端63、數據輸出使能端64。數據輸入端61、數據輸入使能端62相互配合實現讀請求指令相關信息的寫入。當“Ready-in”端輸出的信號處于有效狀態時,表征預取隊列60已經準備好接受寫入了。由于本申請中已經保證預取隊列60中有足夠的存儲空間來存儲讀請求指令的結束標識與標識信息,因此,為了保證整個電路的流水,本實施例中“Ready-in”端可以一直處于有效狀態。在數據輸入使能端62輸入的輸入控制信號處于有效狀態時,預取隊列60寫入從數據輸入端61輸入的信息。數據輸出端63、數據輸出使能端64相互配合實現數據的輸出:從數據輸出使能端64輸入的有效數據指示信號處于有效狀態時,預取隊列60控制預先寫入的信息按照先入先出原則從數據輸出端63輸出。有效數據指示信號是同數據存儲器返回給DFI接口的數據一起的,輸出的信息包括讀請求指令的標識信息和結束標識。由于預取隊列60的輸出帶寄存器,為了防止結束標識被異常保持,在本實施例中,可以通過有效數據指示信號與“Valid-out”端輸出信號的與邏輯控制結束標識從數據選擇器(MUX)65的輸出,進而控制割包處理。
割包處理之后將會得到一個讀請求指令對應的數據包,控制器22還能將獲得的數據包與指令信息存儲器23中輸出的標識信息進行綁定打包處理后通過用戶接口21返回給用戶,以響應用戶的讀請求指令。
本發明實施例提供的割包控制器與存儲器,其中割包控制器通過對用戶接口處接收到的讀請求指令進行解析,提取出讀請求指令的標識信息與結束標識并按先入先出原則綁定存入到指令信息存儲器中;同時將讀請求指令下發到數據命令接口處,由數據命令接口將讀請求指令發送給數據存儲器獲得對應于讀請求指令的數據。當數據命令接口接收到返回的數據之后,控制器將會提取指令信息存儲器中的標識信息和結束標識,基于結束標識實現割包,從而得到與讀請求指令對應的數據包返回給用戶接口。由于割包處理不需要依賴于包長,不需要根據包長對有效時序信號進行處理,因此也不需要對返回的數據進行延時,這減少了資源的消耗。同時,相對于二進制包長的長度而言,結束標識的長度僅為一位,因此,指令信息存儲器的位寬將顯著減小。進一步地,由于割包是借助比包長更簡單、長度更小的結束標識進行,因此指令信息存儲器中針對讀請求指令的存儲位寬變小,減少了資源浪費。
實施例二:
本實施例提供一種存儲器的割包控制方法,該方法可以由實施例一中的割包控制器實施,具體的過程請參見圖7:
S702、接收到讀請求指令后,提取該讀請求指令的標識信息以及結束標識并按先入先出原則綁定存入指令信息存儲器中,并將讀請求指令下發給數據存儲器。
實施本實施例中存儲器的割包控制方法的割包控制器的結構示意圖請繼續參見圖2。控制器22從用戶接口處接收到讀請求指令之后,會同時進行兩個過程:一個是將讀請求指令下發到數據命令接口24,以便讓數據命令接口24通過物理層傳輸通道將讀請求指令發送給數據存儲器,進而實現數據的讀取;另一個是提取該讀請求指令的標識信息以及結束標識并按先入先出原則綁定存入指令信息存儲器23。下面結合圖8對提取標識信息與結束標識并進行存儲的過程進行介紹:
S802、從讀請求指令中提取標識信息并對讀請求指令進行時序邏輯處理。
從讀請求指令中提取出標識信息,也即讀請求的ID號。同時,控制器還會對讀請求指令進行時序邏輯處理得到讀有效指示信號和結束標識。圖3所示出的是控制器22對用戶兩個讀請求指令進行時序邏輯處理得到的時序圖。
S804、在讀有效指示信號處于有效狀態時,在每一個數據命令接口時鐘周期對結束標識時序信號進行一次提取并與標識信息綁定存入到指令信息存儲器對應的信息存儲行,直到提取到讀請求指令的結束標識。
在讀有效指示信號處于有效狀態時,在每一個數據命令接口時鐘周期對讀結束標識時序信號進行一次提取,并與標識信息綁定存入到指令信息存儲器對應的信息存儲行,直到提取到讀請求指令的結束標識。
在本實施例中,控制器22在當前數據命令接口時鐘周期從讀結束標識時序信號提取到結束標識時,如果提取到結束標識,則將當前讀取結果設置為1與標識信息綁定存入到指令信息存儲器對應的信息存儲行;否則,將當前讀取結果設置為0與標識信息綁定存入到指令信息存儲器對應的信息存儲行。這就相當于將讀請求指令的結束標識設置為“1”,應當理解的是,也可以將讀請求指令的結束標識設置為“0”,即控制器22在當前數據命令接口時鐘周期從讀結束標識時序信號提取到結束標識時,如果提取到結束標識,則將當前讀取結果設置為0與標識信息綁定存入到指令信息存儲器對應的信息存儲行;否則,將當前讀取結果設置為1與標識信息綁定存入到指令信息存儲器對應的信息存儲行。
圖4示出的本實施例中指令信息存儲器23對標識信息與結束標識的一種存儲格式的示意圖:在圖4當中,指令信息存儲器23通過先入先出隊列的形式進行管理,FIFO的位寬等于ID號所占寬度加1,相對于現有方案中由ID號所占寬度與包長所占寬度之和形成的位寬,要小太多了。對于FIFO的深度,則與用戶接口接收到讀請求指令到根據讀請求指令返回讀取數據的時間長短有關系,也就是存儲器完整處理一個讀請求所需要的時間T有關。因為在T時間內,雖然存儲器只能完整處理一個讀請求指令,但是用戶可能會在這個時間內下發多個讀請求指令,控制器22需要對接收到的讀請求指令進行解析,并將對應的標識信息與結束標識存儲到FIFO中。假定在T時間內,控制器22從用戶接口21又處接收到3個讀請求,則FIFI不僅需要對之前存儲的一個讀請求的信息進行存儲,還要保證后面3個讀請求對應的結束標識與標識信息也能夠被存儲到FIFO中,所以在T時間內,FIFO需要保證能夠存儲4個讀請求指令的相關信息,而每一個讀請求指令的標識信息與結束標識在FIFO中所占用的行數是不盡相同的,也就是各讀請求指令信息存儲所占用的FIFO深度不相同。為了保證FIFO自身的深度足以存儲任意4個讀請求指令,則通常會按照一個讀請求指令所占用的最大深度來計算確定FIFO的深度。例如,假定根據工程經驗發現一個讀請求指令相關信息的存儲做多占用4行,則可以確定出FIFO所需要的最大深度為16行。假定控制器22開始向FIFO寫入一個讀請求的標識信息與結束標識的時刻為t1,控制器22開始從FIFO讀出該讀請求對應的標識信息與結束標識的時刻為t2。則應當理解的是,FIFO的深度僅與t2與t1間時間差值的大小相關。實際上,可以將指令信息存儲器的深度設置為大于等于16個數據命令接口時鐘周期,小于等于32個數據命令接口時鐘周期。
在控制器22對讀請求指令進行解析的同時,還會將讀請求指令通過數據命令接口24傳輸到物理層傳輸通道上。在本實施例中,數據命令接口可以傳輸數據信息、命令信息、狀態信息、Debug(調試)信息、Training(訓練)信息等,其可以通過DFI接口實現。在本實施例的一種示例當中,還提供一種包括上述割包控制器2的存儲器,請參見圖5,存儲器50包括割包控制器2、數據存儲器5以及連接割包控制器2和數據存儲器5的物理層傳輸通道6。存儲器50可以是DDR存儲器中的任意一種,DDR存儲器又可以分為DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM以及DDR4 SDRAM、LPDDR SDRAM,LPDDR2 SDRAM等類型。
S704、接收數據存儲器根據讀請求指令反饋的數據。
控制器22將讀請求指令下發到數據命令接口24后,物理層傳輸通道6將讀請求指令傳輸給數據存儲器5,以便從數據存儲器5上讀取到用戶所請求的數據后通過物理層傳輸通道6再反饋到數據命令接口24上。
S706、根據指令信息存儲器中存儲的標識信息和結束標識對數據進行割包處理,并將標識信息與割包處理得到的數據包進行綁定后發出。
當數據命令接口24接收到返回的數據之后,控制器22將會可以從指令信息存儲器23中提取ID號與結束標識對數據進行割包處理。由于本實施例中針對一個讀請求指令的結束標識的存儲是根據時鐘信號進行綁定存儲的,因此,在割包處理的時候,也應當與時鐘信息綁定輸出,即控制器22接收數據命令接口24返回的數據的過程應當與從指令信息存儲器23中提取結束標識的過程同步。為了保證二者步調一致,在數據存儲器5向割包控制器2的數據命令接口24返回的信息中,除了包括讀請求指令對應的數據以外,還包括與數據對應的有效數據指示信號。有效數據指示信號可以輸入指令信息存儲器23的數據輸出使能端,從而控制指令信息存儲器23輸出結束標識的步調。
當有效數據指示信號處于有效狀態時,控制器22控制指令信息存儲器23按照先入先出的原則將之前存儲的標識信息與結束標識進行輸出,從而根據結束標識對數據命令接口24返回的數據進行割包處理。和提取結束標識的過程類似,控制器22也是在每一個數據命令接口時鐘周期后確定一次是否進行割包,具體的,控制器22會在每一個數據命令接口時鐘周期后確定指令信息存儲器23當前是否輸出了結束標識,若否,則說明割包時機未到,若是,則證明應當立即執行割包動作。
若之前向指令存儲器23中寫入結束標識的時候是將結束標識設置為“1”,在各數據命令接口時鐘周期到達時,控制器22判斷指令信息存儲器23的輸出是“0”還是“1”,若輸出為“0”則標識讀請求指令還未結束,若輸出結果為“1”,則表征對應一個讀請求指令的數據已經輸出完成,可以進行割包了。同樣的,若之前向指令存儲器23中寫入結束標識的時候是將結束標識設置為“0”,則輸出結果與執行割包的動作與上述示例相反,這里不再贅述。
本實施例還提供一種可作為指令信息存儲器的預取隊列的結構框圖,請參見圖6,預取隊列60包括數據輸入端61、數據輸入使能端62、數據輸出端63、數據輸出使能端64。數據輸入端61、數據輸入使能端62相互配合實現讀請求指令相關信息的寫入。當“Ready-in”端輸出的信號處于有效狀態時,表征預取隊列60已經準備好接受寫入了。由于本申請中已經保證預取隊列60中有足夠的存儲空間來存儲讀請求指令的結束標識與標識信息,因此,為了保證整個電路的流水,本實施例中“Ready-in”端可以一直處于有效狀態。在數據輸入使能端62輸入的讀有效指示信號處于有效狀態時,預取隊列60寫入從數據輸入端61輸入的信息。數據輸出端63、數據輸出使能端64相互配合實現數據的輸出:從數據輸出使能端64輸入的有效數據指示信號處于有效狀態時,預取隊列60控制預先寫入的信息按照先入先出原則從數據輸出端63輸出。有效數據指示信號是同數據存儲器返回給DFI接口的數據一起的,輸出的信息包括讀請求指令的標識信息和結束標識。由于預取隊列60的輸出帶寄存器,為了防止結束標識被異常保持,在本實施例中,可以通過有效數據指示信號與“Valid-out”端輸出信號的與邏輯控制結束標識從數據選擇器65的輸出,進而控制割包處理。
割包處理之后將會得到一個讀請求指令對應的數據包,控制器22還能將獲得的數據包與指令信息存儲器23中輸出的標識信息進行綁定打包處理后通過用戶接口21返回給用戶,以響應用戶的讀請求指令。
本發明實施例提供的存儲器的割包控制方法,控制器通過對用戶接口處接收到的讀請求指令進行解析,提取出讀請求指令的標識信息與結束標識并按先入先出原則綁定存入到指令信息存儲器中;同時將讀請求指令下發到數據命令接口處,由數據命令接口將讀請求指令發送給數據存儲器獲得對應于讀請求指令的數據。當數據命令接口接收到返回的數據之后,控制器將會提取指令信息存儲器中的標識信息和結束標識,基于結束標識實現割包,從而得到與讀請求指令對應的數據包返回給用戶接口。由于割包處理不需要依賴于包長,不需要根據包長對有效時序信號進行處理,因此也不需要對返回的數據進行延時,這減少了資源的消耗。同時,相對于二進制包長的長度而言,結束標識的長度僅為一位,因此,指令信息存儲器的位寬將顯著減小。進一步地,由于割包是借助比包長更簡單、長度更小的結束標識進行,因此指令信息存儲器中針對讀請求指令的存儲位寬變小,減少了資源浪費。
顯然,本領域的技術人員應該明白,上述本發明實施例的各模塊或各步驟可以用通用的計算裝置來實現,它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網絡上,可選地,它們可以用計算裝置可執行的程序代碼來實現,從而,可以將它們存儲在計算機存儲介質(ROM/RAM、磁碟、光盤)中由計算裝置來執行,并且在某些情況下,可以以不同于此處的順序執行所示出或描述的步驟,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現。所以,本發明不限制于任何特定的硬件和軟件結合。
以上內容是結合具體的實施方式對本發明實施例所作的進一步詳細說明,不能認定本發明的具體實施只局限于這些說明。對于本發明所屬技術領域的普通技術人員來說,在不脫離本發明構思的前提下,還可以做出若干簡單推演或替換,都應當視為屬于本發明的保護范圍。