提高ddr控制器效率的方法和裝置的製作方法
2023-06-04 05:54:21 1
專利名稱:提高ddr控制器效率的方法和裝置的製作方法
技術領域:
本發明涉及數據通訊技術領域,尤其涉及一種提高DDR控制器效率的方法和裝置。
背景技術:
目前,高速數據存儲要求的帶寬越來越大,DDR(Double Data Rate,雙數據率同步動態緩存)由於價格等多種因素,成為數據存儲領域常用的設備。但由於DDR內部的刷新操作以及各種內部結構引起的時間參數約束,使得其總的帶寬利用率不高。在DDR的操作中,相鄰命令的關係是同BANK (存儲體)同ROW(行)時,可以連續發送讀或寫命令,而不必發送額外的命令,從而不必等待相應的延時,最終可在DDR的數據總線上出現長時間的有效數據,得到很高的帶寬利用率。其次,當相鄰命令的關係為不同BANK時,前後兩個命令之間的操作相對獨立,後面的命令操作可以不等待前面命令的完全關閉,從而隱藏大部分的命令預充電延時,使得 DDR的數據總線上出現較長時間的有效數據,得到較高的帶寬利用率。參照圖1,DDR操作命令輸入時,tRC是一個對效率影響較大的參數。tRC是指在同一個BANK內,相鄰兩個命令之間的最小延時。該參數相對較大,對於DDR3晶片來說,tRC 為50ns左右,因此,在相鄰兩個命令出現同BANK不同ROW關係時,50ns時間內只能輸出一個Burst的數據,當工作在400MHz時鐘下,可以得到的效率僅僅為16%。但當相鄰兩個命令的關係為同BANK同ROW或者不同BANK時,tRC有可能被隱藏,從而使得其對效率影響降低。在應用當中,除了要求有高的DDR操作效率之外,還要求設計中的資源和數據輸出延時都儘可能小。因此在調整DDR的命令操作順序的同時,需要考慮命令的先後優先級。 保證了先進的命令先得到執行可以很好的降低資源和數據輸出延時。現有DDR提高效率的策略是根據命令所在的BANK不同,分為不同的命令組,在操作DDR時,在不同的命令組進行輪詢,從而避免相鄰兩個命令之間出現同BANK不同ROW的關係,主要利用不同BANK命令之間操作的相對獨立性,隱藏大部分的等待延時。這種策略的著眼點只在DDR的操作效率,不能兼顧用戶命令的前後輸入順序,容易造成前面進入的命令長時間得不到服務,導致數據延時增大,或者大量數據在靜態緩存中積壓,浪費靜態緩存資源。
發明內容
本發明的主要目的在於提供一種提高DDR控制器效率的方法和裝置,旨在降低數據輸出延時,節省內部靜態緩存的空間消耗。本發明提供一種提高DDR控制器效率的方法,包括以下步驟按時序以隊列形式緩存並管理用戶命令;將隊列中的其它命令與當前操作命令進行比較,獲取與當前操作命令之間的關係;在最先輸入的命令處於等待狀態時,優先提取與當前操作命令之間為同存儲體 BANK同行ROW的命令輸出至雙數據率同步動態緩存DDR。優選地,所述按時序以隊列形式緩存並管理用戶命令具體包括將先輸入的命令緩存在隊頭,後輸入的緩存在隊尾;在隊列中某個單元的命令被讀取時,將其後面的命令集體前移,覆蓋被讀取的單元,完成隊列的更新。優選地,所述按時序以隊列形式緩存並管理用戶命令還包括接收BANK狀態信息;所述BANK狀態信息包含可被直接操作的BANK的信息;根據BANK狀態信息生成與可被直接操作的BANK對應命令的標識信號;輸出所述標識信號,以獲取隊列中最先輸入且可直接執行操作的命令的位置信肩、ο優選地,所述在最先輸入的命令處於等待狀態時,優先提取與當前操作命令之間為同存儲體BANK同行ROW的命令輸出至雙數據率同步動態緩存DDR包括在隊列中不包含與當前操作命令之間為同BANK同ROW關係的命令時,根據所述位置信息提取與對應的命令輸出至DDR。優選地,上述方法還可包括在最先輸入的命令與當前操作命令的關係為同BANK不同ROW,而後續命令中又存在同BANK同ROW命令時,計算最先輸入的命令等待的時鐘數tRC ;當tRC滿足時,提示停止當前同BANK同ROW命令的輸出。本發明提供一種提高DDR控制器效率的裝置,包括緩存調序模塊,用於按時序以隊列形式緩存並管理用戶命令;主控模塊,用於將隊列中的其它命令與當前操作命令進行比較,獲取與當前操作命令之間的關係;比較輸出模塊,用於在最先輸入的命令處於等待狀態時,優先提取與當前操作命令之間為同存儲體BANK同行ROW的命令輸出至雙數據率同步動態緩存DDR。優選地,所述緩存調序模塊具體用於將先輸入的命令緩存在隊頭,後輸入的緩存在隊尾;在隊列中某個單元的命令被讀取時,將其後面的命令集體前移,覆蓋被讀取的單元,完成隊列的更新。優選地,所述緩存調序模塊還用於接收BANK狀態信息;所述BANK狀態信息包含可被直接操作的BANK的信息;根據BANK狀態信息生成與可被直接操作的BANK對應命令的標識信號;輸出所述標識信號,以獲取隊列中最先輸入且可直接執行操作的命令的位置信肩、ο優選地,所述比較輸出模塊還用於在隊列中不包含與當前操作命令之間為同BANK同ROW關係的命令時,根據所述位置信息提取與對應的命令輸出至DDR。優選地,上述裝置還可包括
時鐘計算模塊,用於在最先輸入的命令與當前操作命令的關係為同BANK不同 ROW,而後續命令中又存在同BANK同ROW命令時,計算最先輸入的命令等待的時鐘數tRC ;提示模塊,用於當tRC滿足時,提示停止當前同BANK同ROW命令的輸出。本發明所提供的提高DDR控制器效率的方法或裝置,採用隊列的形式緩存用戶命令,保持了命令的先後順序;並且可以使得同BANK同ROW或者不同的命令得到提前操作,與現有的DDR提效方法相比,在提高DDR的帶寬效率的同時還可降低數據輸出延時,節省內部靜態緩存的空間消耗。
圖1為現有技術中DDR的操作時序圖;圖2為本發明的一個實施方式中提高DDR控制器效率的方法的流程圖;圖3為本發明的一個實施例中隊列的操作示意圖;圖4為本發明的一個實施例中以隊列形式緩存並管理命令的步驟流程圖;圖5為本發明的一個實施例中獲取不同BANK命令位置的步驟流程圖;圖6為本發明的一個實施例中提高DDR控制器效率的方法的流程;圖7為本發明的一個實施方式中提高DDR控制器效率的裝置的結構示意圖;圖8為本發明的一個實施例中提高DDR控制器效率的裝置的結構示意圖。本發明目的實現、功能特點及優點將結合實施例,參照附圖做進一步說明。
具體實施例方式應當理解,此處所描述的具體實施例僅僅用以解釋本發明,並不用於限定本發明。圖2示出了本發明的一個實施方式中提高DDR控制器效率的方法的流程,該流程包括以下步驟步驟S10,按時序以隊列形式緩存並管理用戶命令;在一實施例中,可利用一移位寄存器實現按時序以隊列形式緩存並管理用戶命令,例如當有多個用戶命令輸入時,按照先後順序緩存在移位寄存器的各存儲單元。在一具體示例中,該移位寄存器不僅僅在頭部有命令輸出口,每個存儲單元也都有命令輸出口,可按隊頭至隊尾順序輸出命令,也可隨機抽取命令輸出。步驟S20,將隊列中的其它命令與當前操作命令進行比較,獲取與當前操作命令之間的關係;DDR包括MC(Memory Controller,內存控制器)模塊,該MC模塊是DDR的主控模塊,可產生控制命令並發送至DDR晶片,還可獲取DDR晶片中各BANK的狀態信息BANKSTATE 等。命令被緩存後,可通過MC模塊將隊列中的其它命令與當前操作命令進行相等比較,獲取移位寄存器中與當前操作命令關係較好的命令,例如與當前操作命令之間是同BANK同 ROff或者不同BANK的命令,以便進行操作,以提高帶寬利用率。步驟S30,在最先輸入的命令處於等待狀態時,優先提取與當前操作命令之間為同存儲體BANK同行ROW的命令輸出至雙數據率同步動態緩存DDR。在當前操作命令在執行操作時,最先輸入的命令處於等待狀態。但其與當前操作命令之間的關係可能不佳,例如與當前操作命令之間可能是同BANK但不同ROW的關係,不一定是下一個執行命令;而等待的時間tRC又較長,此時,可將上述比較結果輸出至優先編碼器,通過優先編碼器輸出至DDR中可MC模塊,產生控制命令對DDR進行讀、寫操作,從而在提高帶寬利用率的同時,實現按命令先後順序對DDR的操作。本發明實施方式通過以隊列形式緩存命令,並隨機抽取與當前操作命令同BANK 同ROW的命令進行操作,實現在提高DDR的帶寬效率的同時,降低了數據輸出延時,節省了內部靜態緩存的空間消耗。參照圖3和圖4,在一實施例中,上述步驟SlO可進一步包括步驟S11,將先輸入的命令緩存在隊頭,後輸入的緩存在隊尾;將隊頭至隊尾按先後輸入順序排列命令,簡單的保證了命令輸入的先後順序,成本較低且實現較為容易。步驟S12,在隊列中某個單元的命令被讀取時,將其後面的命令集體前移,覆蓋被讀取的單元,完成隊列的更新。本實施例中隊列更新也按輸入順序進行,在下次命令輸出時也能體現先後順序,進一步降低了數據輸出延時,節省了內部靜態緩存的空間消耗。參照圖5,上述步驟SlO還可包括步驟S14,接收BANK狀態信息;所述BANK狀態信息包含可被直接操作的BANK的信息;可利用MC模塊獲取各BANK狀態信息並輸出至移位寄存器。該BANK狀態信息以BIT MAP的形式輸入,標識DDR當前時刻各個BANK是否被佔用或者是否可以執行激活操作。步驟S15,根據BANK狀態信息生成與可被直接操作的BANK對應命令的標識信號; 上述被緩存在移位寄存器中的命令,各對應一個DDR晶片中BANK的操作地址,根據上述 BANK狀態信息,可生成對應命令的標識信號,以指示該命令所對應的BANK是否可以被立刻執行DDR的讀或寫操作,如此一來就可以得到多個信號線,以便輸出。步驟S16,輸出所述標識信號,以獲取隊列中最先輸入且可直接執行操作的命令的位置信息。將上述信號線接至一優先編碼器,就可以得到當前時刻,最先進入移位寄存器並且可以直接激活操作的命令所在的位置。上述步驟S30中可包括在隊列中不包含與當前操作命令之間為同BANK同ROW關係的命令時,根據所述位置信息提取與對應的命令輸出至DDR。例如,可通過優先編碼器根據標識信號對信號進行處理提取與對應的命令輸出至DDR。本發明實施例優先執行同BANK 同ROW命令,其次執行不同BANK關係的地址,可進一步達到提高DDR帶寬利用率的目的。參照圖6,在一實施例中,上述方法還可包括以下步驟步驟S40,在最先輸入的命令與當前操作命令的關係為同BANK不同ROW,而後續命令中又存在同BANK同ROW命令時,計算最先輸入的命令等待的時鐘數tRC ;步驟S50,當tRC滿足時,提示停止當前同BANK同ROW命令的輸出。在隊頭命令與當前操作命令的關係為同bank不同row,而後續一直有同bank同row的命令出現時,會導致隊頭一直得不到服務。為了避免隊頭地址出現過多額外的時間等待,可以給隊頭在該情況下採用一個保護機制,通過計算隊頭地址等待的時鐘數,當tRC滿足之後,向外部MC模塊發出信號,提示停止當前同BANK同ROW命令的輸出。本發明提供一種提高DDR控制器效率的裝置,參照圖7,在一實施方式中,該裝置包括緩存調序模塊10,用於按時序以隊列形式緩存並管理用戶命令;在一實施例中, 緩存調序模塊10可以為移位寄存器,可將用戶輸入的命令按先後順序緩存在各存儲單元。 移位寄存器不僅僅在頭部有命令輸出口,每個存儲單元也都有命令輸出口,可按隊頭至隊尾順序輸出命令,也可隨機抽取命令輸出。主控模塊20,用於將隊列中的其它命令與當前操作命令進行比較,獲取與當前操作命令之間的關係;在一實施例中,主控模塊20可以是DDR中的MC模塊,可產生控制命令並發送至DDR晶片,還可獲取DDR晶片中各BANK的狀態信息BANKSTATE等。命令被上述緩存調序模塊10緩存後,可通過MC模塊將隊列中的其它命令與當前操作命令進行相等比較, 獲取移位寄存器中與當前操作命令關係較好的命令,例如與當前操作命令之間是同BANK 同ROW或者不同BANK的命令,以便進行操作,以提高帶寬利用率。比較輸出模塊30,用於在最先輸入的命令處於等待狀態時,優先提取與當前操作命令之間為同存儲體BANK同行ROW的命令輸出至雙數據率同步動態緩存DDR。在一實施例中,比較輸出模塊30可以是一優先編碼器。在當前操作命令在執行操作時,最先輸入的命令處於等待狀態。但其與當前操作命令之間的關係可能不佳,例如與當前操作命令之間可能是同BANK但不同ROW的關係,不一定是下一個執行命令;而等待的時間tRC又較長,此時,可將上述比較結果輸出至優先編碼器,通過優先編碼器輸出至DDR中可MC模塊,產生控制命令對DDR進行讀、寫操作,從而在提高帶寬利用率的同時,實現按命令先後順序對DDR 的操作。在一實施例中,上述緩存調序模塊10可具體用於將先輸入的命令緩存在隊頭,後輸入的緩存在隊尾;在隊列中某個單元的命令被讀取時,將其後面的命令集體前移,覆蓋被讀取的單元,完成隊列的更新。例如,可通過移位寄存器對命令進行緩存,先進入的命令緩存在隊列的頭部,後進的則存在隊列的尾部,體現命令的先後順序。緩存調序模塊10還可用於接收BANK狀態信息;所述BANK狀態信息包含可被直接操作的BANK的信息;可利用MC模塊獲取各BANK狀態信息並輸出至移位寄存器。該BANK狀態信息以BIT MAP的形式輸入,標識DDR當前時刻各個BANK是否被佔用或者是否可以執行激活操作。根據BANK狀態信息生成與可被直接操作的BANK對應命令的標識信號;上述被緩存在移位寄存器中的命令,各對應一個DDR晶片中BANK的操作地址,根據上述BANK狀態信息,可生成對應命令的標識信號,以指示該命令所對應的BANK是否可以被立刻執行DDR的讀或寫操作,如此一來就可以得到多個信號線,以便輸出。輸出所述標識信號,以獲取隊列中最先輸入且可直接執行操作的命令的位置信息。將上述信號線接至一優先編碼器,就可以得到當前時刻,最先進入移位寄存器並且可以直接激活操作的命令所在的位置。在一實施例中,上述比較輸出模塊30還用於在隊列中不包含與當前操作命令之間為同BANK同ROW關係的命令時,根據位置信息提取與對應的命令輸出至雙數據率同步動態緩存DDR。例如,當上述信號線接入到優先編碼器時,可通過優先編碼器對信號進行處理提取與對應的命令輸出至DDR。參照圖8,在一實施例中,上述裝置還包括時鐘計算模塊40,用於在最先輸入的命令與當前操作命令的關係為同BANK不同 ROW,而後續命令中又存在同BANK同ROW命令時,計算最先輸入的命令等待的時鐘數tRC ;
8
提示模塊50,用於當tRC滿足時,提示停止當前同BANK同ROW命令的輸出。在隊頭命令與當前操作命令的關係為同bank不同row,而後續一直有同bank同 row的命令出現時,會導致隊頭一直得不到服務。為了避免隊頭地址出現過多額外的時間等待,可以給隊頭在該情況下採用一個保護機制,通過時鐘計算模塊40計算隊頭地址等待的時鐘數,當tRC滿足之後,提示模塊50向主控模塊20發出信號,提示停止當前同BANK同 ROW命令的輸出。以上僅為本發明的優選實施例,並非因此限制本發明的專利範圍,凡是利用本發明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的技術領域,均同理包括在本發明的專利保護範圍內。
權利要求
1.一種提高DDR控制器效率的方法,其特徵在於,包括以下步驟按時序以隊列形式緩存並管理用戶命令;將隊列中的其它命令與當前操作命令進行比較,獲取與當前操作命令之間的關係;在最先輸入的命令處於等待狀態時,優先提取與當前操作命令之間為同存儲體BANK 同行ROW的命令輸出至雙數據率同步動態緩存DDR。
2.如權利要求1所述的提高DDR控制器效率的方法,其特徵在於,所述按時序以隊列形式緩存並管理用戶命令具體包括將先輸入的命令緩存在隊頭,後輸入的緩存在隊尾;在隊列中某個單元的命令被讀取時,將其後面的命令集體前移,覆蓋被讀取的單元,完成隊列的更新。
3.如權利要求2所述的提高DDR控制器效率的方法,其特徵在於,所述按時序以隊列形式緩存並管理用戶命令還包括接收BANK狀態信息;所述BANK狀態信息包含可被直接操作的BANK的信息;根據BANK狀態信息生成與可被直接操作的BANK對應命令的標識信號;輸出所述標識信號,以獲取隊列中最先輸入且可直接執行操作的命令的位置信息。
4.如權利要求3所述的提高DDR控制器效率的方法,其特徵在於,所述在最先輸入的命令處於等待狀態時,優先提取與當前操作命令之間為同存儲體BANK同行ROW的命令輸出至雙數據率同步動態緩存DDR包括在隊列中不包含與當前操作命令之間為同BANK同ROW關係的命令時,根據所述位置信息提取與對應的命令輸出至DDR。
5.如權利要求1至3中任一項所述的提高DDR控制器效率的方法,其特徵在於,還包括在最先輸入的命令與當前操作命令的關係為同BANK不同ROW,而後續命令中又存在同 BANK同ROW命令時,計算最先輸入的命令等待的時鐘數tRC ;當tRC滿足時,提示停止當前同BANK同ROW命令的輸出。
6.一種提高DDR控制器效率的裝置,其特徵在於,包括緩存調序模塊,用於按時序以隊列形式緩存並管理用戶命令;主控模塊,用於將隊列中的其它命令與當前操作命令進行比較,獲取與當前操作命令之間的關係;比較輸出模塊,用於在最先輸入的命令處於等待狀態時,優先提取與當前操作命令之間為同存儲體BANK同行ROW的命令輸出至雙數據率同步動態緩存DDR。
7.如權利要求6所述的提高DDR控制器效率的裝置,其特徵在於,所述緩存調序模塊具體用於將先輸入的命令緩存在隊頭,後輸入的緩存在隊尾;在隊列中某個單元的命令被讀取時,將其後面的命令集體前移,覆蓋被讀取的單元,完成隊列的更新。
8.如權利要求7所述的提高DDR控制器效率的裝置,其特徵在於,所述緩存調序模塊還用於接收BANK狀態信息;所述BANK狀態信息包含可被直接操作的BANK的信息;根據BANK狀態信息生成與可被直接操作的BANK對應命令的標識信號; 輸出所述標識信號,以獲取隊列中最先輸入且可直接執行操作的命令的位置信息。
9.如權利要求8所述的提高DDR控制器效率的裝置,其特徵在於,所述比較輸出模塊還用於在隊列中不包含與當前操作命令之間為同BANK同ROW關係的命令時,根據所述位置信息提取與對應的命令輸出至DDR。
10.如權利要求6至9中任一項所述的提高DDR控制器效率的裝置,其特徵在於,還包括時鐘計算模塊,用於在最先輸入的命令與當前操作命令的關係為同BANK不同ROW,而後續命令中又存在同BANK同ROW命令時,計算最先輸入的命令等待的時鐘數tRC ; 提示模塊,用於當tRC滿足時,提示停止當前同BANK同ROW命令的輸出。
全文摘要
本發明涉及數據通訊領域,提供了一種提高DDR控制器效率的方法,包括以下步驟按時序以隊列形式緩存並管理用戶命令;將隊列中的其它命令與當前操作命令進行比較,獲取與當前操作命令之間的關係;在最先輸入的命令處於等待狀態時,優先提取與當前操作命令之間為同存儲體BANK同行ROW的命令輸出至雙數據率同步動態緩存DDR。本發明還提供了一種提高DDR控制器效率的裝置本發明所提供的提高DDR控制器效率的方法或裝置,在提高DDR的帶寬效率的同時還可降低數據輸出延時,節省內部靜態緩存的空間消耗。
文檔編號G11C7/22GK102456391SQ20101052010
公開日2012年5月16日 申請日期2010年10月26日 優先權日2010年10月26日
發明者葉紹鎮, 徐健 申請人:中興通訊股份有限公司