專利名稱:一種同步動(dòng)態(tài)存儲(chǔ)器讀寫控制方法、裝置和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及存儲(chǔ)器技術(shù)領(lǐng)域,尤其涉及一種同步動(dòng)態(tài)存儲(chǔ)器讀寫控制方法、裝置 和系統(tǒng)。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,路由交換設(shè)備帶寬增加使得對數(shù)據(jù)動(dòng)態(tài)緩存容量的需求越 來越大,因而存儲(chǔ)器的成本、容量、速度和存儲(chǔ)帶寬就成為不得不綜合考慮的問題。受到成 本和容量的制約,一味的通過使用速度最快的存儲(chǔ)器來緩解緩存容量緊張的狀況是不切實(shí) 際的。目前,業(yè)界普遍將同步動(dòng)態(tài)存儲(chǔ)器作為數(shù)據(jù)緩存的第一選擇。在路由交換設(shè)備中, 通常是將數(shù)據(jù)包按照一定的規(guī)則拆分成多個(gè)數(shù)據(jù)片寫入同步動(dòng)態(tài)存儲(chǔ)器的內(nèi)部體Bank,在 數(shù)據(jù)包輸出時(shí),再將同步動(dòng)態(tài)存儲(chǔ)器中的多個(gè)數(shù)據(jù)片進(jìn)行組合,恢復(fù)成原來的數(shù)據(jù)包。由數(shù) 據(jù)包拆分成的數(shù)據(jù)片長度應(yīng)該與數(shù)據(jù)包最小長度、內(nèi)部包處理速度、存儲(chǔ)器數(shù)據(jù)位寬等因 素有關(guān)。現(xiàn)有同步動(dòng)態(tài)存儲(chǔ)器單條指令時(shí)序如圖1所示,對每一個(gè)同步動(dòng)態(tài)存儲(chǔ)器內(nèi)部體 Bank的指令均包括激活命令A(yù)ctive、操作命令Cmd和預(yù)充電命令!^recharge,當(dāng)上一個(gè)指令 結(jié)束之后下一個(gè)指令的激活命令A(yù)ctive才開始,操作命令Cmd與數(shù)據(jù)線上的數(shù)據(jù)響應(yīng)指令 D之間的間隔即指令響應(yīng)時(shí)間通常為4 6個(gè)時(shí)鐘周期Clk,圖1中8個(gè)數(shù)據(jù)響應(yīng)指令D所 占的帶寬為存取數(shù)據(jù)帶寬,每個(gè)數(shù)據(jù)響應(yīng)指令D占半個(gè)時(shí)鐘周期Clk。在網(wǎng)絡(luò)數(shù)據(jù)包緩存時(shí) 采用的將數(shù)據(jù)包切成小數(shù)據(jù)片的方式,使得存取數(shù)據(jù)帶寬利用成為影響存儲(chǔ)器使用的關(guān)鍵 問題。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是,提供一種同步動(dòng)態(tài)存儲(chǔ)器讀寫控制方法、裝置和系 統(tǒng),在不增加硬件成本的情況下提高數(shù)據(jù)緩存過程中的存儲(chǔ)帶寬利用率。本發(fā)明采用的技術(shù)方案是,所述同步動(dòng)態(tài)存儲(chǔ)器讀寫控制方法,包括當(dāng)產(chǎn)生訪問同步動(dòng)態(tài)存儲(chǔ)器的指令時(shí),在所述指令對應(yīng)的內(nèi)部體滿足內(nèi)部體平均 分布的情況下,對所述指令進(jìn)行時(shí)間壓縮后執(zhí)行。進(jìn)一步的,該方法在產(chǎn)生訪問同步動(dòng)態(tài)存儲(chǔ)器的指令之前還包括對同步動(dòng)態(tài)存儲(chǔ)器的內(nèi)部體地址進(jìn)行隨機(jī)化處理。進(jìn)一步的,所述指令包括激活命令、操作命令和預(yù)充電命令,激活命令與操作命令 之間以及操作命令與預(yù)充電命令之間的時(shí)間為指令的空閑;或者,所述指令包括激活命令、 操作命令和自動(dòng)預(yù)充電命令,激活命令與操作命令之間以及操作命令與自動(dòng)預(yù)充電命令之 間的時(shí)間為指令的空閑;所述在指令對應(yīng)的內(nèi)部體滿足內(nèi)部體平均分布的情況下,對所述指令進(jìn)行時(shí)間壓 縮,具體包括從指令緩存中取出指令,判斷所述指令對應(yīng)的內(nèi)部體是否滿足內(nèi)部體平均分布,若是,則在滿足時(shí)序要求的情況下,順次將后面的指令插入前面指令的空閑處,否則進(jìn)行現(xiàn) 有常規(guī)處理。進(jìn)一步的,所述滿足時(shí)序要求的情況,具體包括被插入的指令的操作命令與前一個(gè)指令的操作命令之間間隔至少為內(nèi)部體數(shù)量 一半的時(shí)鐘周期。進(jìn)一步的,該方法還包括當(dāng)產(chǎn)生訪問同步動(dòng)態(tài)存儲(chǔ)器中同一數(shù)據(jù)流的指令時(shí),直接對所述指令進(jìn)行時(shí)間壓縮。本發(fā)明還提供一種同步動(dòng)態(tài)存儲(chǔ)器讀寫控制裝置,包括指令緩存模塊,用于存儲(chǔ)產(chǎn)生的訪問同步動(dòng)態(tài)存儲(chǔ)器的指令;緩存控制模塊,用于在指令緩存模塊中的指令對應(yīng)的內(nèi)部體滿足內(nèi)部體平均分布 的情況下,對所述指令進(jìn)行時(shí)間壓縮后執(zhí)行。進(jìn)一步的,所述緩存控制模塊進(jìn)一步包括地址處理模塊,用于在產(chǎn)生的訪問同步動(dòng)態(tài)存儲(chǔ)器的指令之前,對同步動(dòng)態(tài)存儲(chǔ) 器的內(nèi)部體地址進(jìn)行隨機(jī)化處理。進(jìn)一步的,所述指令包括激活命令、操作命令和預(yù)充電命令,激活命令與操作命令 之間以及操作命令與預(yù)充電命令之間的時(shí)間為指令的空閑;或者,所述指令包括激活命令、 操作命令和自動(dòng)預(yù)充電命令,激活命令與操作命令之間以及操作命令與自動(dòng)預(yù)充電命令之 間的時(shí)間為指令的空閑;所述緩存控制模塊進(jìn)一步包括判斷模塊,用于從指令緩存中取出指令,判斷所述指令對應(yīng)的內(nèi)部體是否滿足內(nèi) 部體平均分布,若是,則調(diào)用時(shí)間壓縮模塊,否則進(jìn)行現(xiàn)有常規(guī)處理;時(shí)間壓縮模塊,用于在滿足時(shí)序要求的情況下,順次將后面的指令插入前面指令 的空閑處。進(jìn)一步的,所述滿足時(shí)序要求的情況,具體包括被插入的指令的操作命令與前一個(gè)指令的操作命令之間間隔至少為內(nèi)部體數(shù)量 一半的時(shí)鐘周期。進(jìn)一步的,所述緩存控制模塊進(jìn)一步用于當(dāng)指令緩存模塊中的指令屬于同一數(shù)據(jù)流時(shí),直接對所述指令進(jìn)行時(shí)間壓縮后執(zhí) 行。本發(fā)明還提供一種同步動(dòng)態(tài)存儲(chǔ)器讀寫控制系統(tǒng),包括指令緩存模塊,用于存儲(chǔ)產(chǎn)生的訪問同步動(dòng)態(tài)存儲(chǔ)器的指令;緩存控制模塊,用于在指令緩存模塊中的指令對應(yīng)的內(nèi)部體滿足內(nèi)部體平均分布 的情況下,對所述指令進(jìn)行時(shí)間壓縮后通過訪問數(shù)據(jù)緩存模塊執(zhí)行;數(shù)據(jù)緩存模塊,用于在緩存控制模塊的控制下存取所述指令對應(yīng)的數(shù)據(jù);數(shù)據(jù)包輸入處理模塊,用于當(dāng)緩存控制模塊執(zhí)行寫指令時(shí),將輸入的數(shù)據(jù)包拆分 成固定長度的數(shù)據(jù)片傳送到緩存控制模塊;數(shù)據(jù)包輸出處理模塊,用于當(dāng)緩存控制模塊執(zhí)行讀指令時(shí),將緩存控制模塊從數(shù) 據(jù)緩存模塊中讀出的數(shù)據(jù)片重新組成數(shù)據(jù)包發(fā)送出去。
采用上述技術(shù)方案,本發(fā)明至少具有下列優(yōu)點(diǎn)本發(fā)明所述同步動(dòng)態(tài)存儲(chǔ)器讀寫控制方法、裝置和系統(tǒng),當(dāng)產(chǎn)生訪問同步動(dòng)態(tài)存 儲(chǔ)器的指令時(shí),在所述指令對應(yīng)的內(nèi)部體滿足內(nèi)部體平均分布的情況下,對所述指令進(jìn)行 時(shí)間壓縮后執(zhí)行。在現(xiàn)有的IP核的基礎(chǔ)上,以比較小的硬件成本大幅度提高路由交換設(shè)備 同步動(dòng)態(tài)存儲(chǔ)器的帶寬利用效率。
圖1為現(xiàn)有同步動(dòng)態(tài)存儲(chǔ)器單條指令時(shí)序圖;圖2為本發(fā)明第一實(shí)施例中所述同步動(dòng)態(tài)存儲(chǔ)器讀寫控制方法流程圖;圖3為在滿足時(shí)序要求的情況下將后一個(gè)指令插入前面指令的時(shí)序圖;圖4為本發(fā)明第二實(shí)施例中所述同步動(dòng)態(tài)存儲(chǔ)器讀寫控制方法流程圖;圖5為本發(fā)明第三實(shí)施例中所述同步動(dòng)態(tài)存儲(chǔ)器讀寫控制裝置組成示意圖;圖6為本發(fā)明第四實(shí)施例中所述同步動(dòng)態(tài)存儲(chǔ)器讀寫控制裝置組成示意圖;圖7為本發(fā)明第五實(shí)施例中所述同步動(dòng)態(tài)存儲(chǔ)器讀寫控制系統(tǒng)組成示意圖。
具體實(shí)施例方式為更進(jìn)一步闡述本發(fā)明為達(dá)成預(yù)定目的所采取的技術(shù)手段及功效,以下結(jié)合附圖 及較佳實(shí)施例,對本發(fā)明進(jìn)行詳細(xì)說明如后。本發(fā)明第一實(shí)施例,一種同步動(dòng)態(tài)存儲(chǔ)器讀寫控制方法,如圖2所示,包括以下具 體步驟步驟S101,當(dāng)指令緩存中產(chǎn)生訪問同步動(dòng)態(tài)存儲(chǔ)器的指令時(shí),判斷其是否為訪問 同一數(shù)據(jù)流的指令,若是,則跳轉(zhuǎn)步驟S103,否則跳轉(zhuǎn)步驟S102。該指令可以為寫指令,也 可以為讀指令。本領(lǐng)域中,若產(chǎn)生的訪問同步動(dòng)態(tài)存儲(chǔ)器的指令為寫指令,將同時(shí)有數(shù)據(jù)包的輸 入,將輸入的數(shù)據(jù)包拆分成的固定長度的數(shù)據(jù)片,數(shù)據(jù)片的固定長度在64 1. 字節(jié)之間 選取,通常選擇64字節(jié)。寫指令中包含有數(shù)據(jù)片與內(nèi)部體的對應(yīng)關(guān)系。若產(chǎn)生的訪問同步動(dòng)態(tài)存儲(chǔ)器的指令為讀指令,由于讀指令中包含有數(shù)據(jù)片與內(nèi) 部體的對應(yīng)關(guān)系,后續(xù)將會(huì)從同步動(dòng)態(tài)存儲(chǔ)器的相應(yīng)內(nèi)部體中讀取數(shù)據(jù)片。步驟S102,從指令緩存中每次取出固定個(gè)數(shù)的指令,判斷這些指令對應(yīng)的內(nèi)部體 是否滿足內(nèi)部體平均分布,若是,則跳轉(zhuǎn)步驟S103,否則跳轉(zhuǎn)步驟S105。,從指令緩存中每 次取出固定個(gè)數(shù)的指令時(shí),由指令緩存容量的限制,通常是每次取8個(gè)寫指令,然后再取8 個(gè)讀指令,交替進(jìn)行。該指令包括激活命令、操作命令和預(yù)充電命令,激活命令與操作命令 之間以及操作命令與預(yù)充電命令之間的時(shí)間為指令的空閑;另外,因?yàn)轭A(yù)充電命令還有自動(dòng)模式,即自動(dòng)預(yù)充電命令,對于指令緩存中每次取 出的指令,可以在最后一條指令的操作命令之后使用一個(gè)自動(dòng)預(yù)充電命令即可。因此,該命 令也可包括激活命令、操作命令和自動(dòng)預(yù)充電命令,激活命令與操作命令之間以及操作命 令與自動(dòng)預(yù)充電命令之間的時(shí)間為指令的空閑。步驟S103,在滿足時(shí)序要求的情況下,順次將后面的指令插入前面指令的空閑處。 滿足時(shí)序要求的情況具體包括
被插入的指令的操作命令與前一個(gè)指令的操作命令之間間隔至少為內(nèi)部體數(shù)量 一半的時(shí)鐘周期。另外,被插入的指令的激活命令以及預(yù)充電命令或者自動(dòng)預(yù)充電命令只須滿足現(xiàn) 有的指令時(shí)序要求即可,具體要求如下被插入的指令的激活命令與操作命令之間的時(shí)間間隔至少為tRCD(ActiVe to Read/Write Command time,激活命令和操作命令之間的最小時(shí)間);被插入的指令的操作命令與預(yù)充電命令或者自動(dòng)預(yù)充電命令之間的時(shí)間間隔至 少為tRAS (Active to Precharge Command time,激活命令和預(yù)充電命令之間的最小時(shí) 間)減去tRCD的差值。圖3為在滿足時(shí)序要求的情況下將后一個(gè)指令插入前面指令的時(shí)序圖,指令響應(yīng) 時(shí)間通常為5. 5個(gè)時(shí)鐘周期Clk,第二操作命令Cmdl與第一操作命令CmdO之間的間隔為 4個(gè)時(shí)鐘周期。當(dāng)?shù)诙僮髅頒mdl與第一操作命令CmdO之間的間隔大于4個(gè)時(shí)鐘周期 時(shí),同步動(dòng)態(tài)存儲(chǔ)器的存取數(shù)據(jù)帶寬就可能出現(xiàn)短暫的中斷,帶寬利用率還未達(dá)到最大。步驟S104,執(zhí)行經(jīng)過時(shí)間壓縮后的指令,流程結(jié)束。此時(shí)同步動(dòng)態(tài)存儲(chǔ)器的存取數(shù) 據(jù)帶寬利用率可以大于90%。步驟S105,進(jìn)行現(xiàn)有常規(guī)處理,流程結(jié)束。本發(fā)明第二實(shí)施例,一種同步動(dòng)態(tài)存儲(chǔ)器讀寫控制方法,如圖4所示,包括以下具 體步驟步驟S201,對同步動(dòng)態(tài)存儲(chǔ)器的內(nèi)部體地址進(jìn)行隨機(jī)化處理。假設(shè)同步動(dòng)態(tài)存儲(chǔ)器的內(nèi)部體個(gè)數(shù)為8個(gè),分別為BankO Bank7,經(jīng)過隨機(jī)化處 理的同步動(dòng)態(tài)存儲(chǔ)器的內(nèi)部體地址不再按照從小到大的順序?qū)?yīng)BankO Bank7,設(shè)內(nèi)部 體地址均由三位二進(jìn)制數(shù)a[2]a[l]a
表示,那么隨機(jī)化處理后的BankO Bank7的體地 址映射為BankO = {a[2], a[l], a
};Bankl = { ! a[2], ! a[l], ! a
};Bank2 = {a[2], ! a[l], ! a
};Bank3 = { ! a[2],a[l],a
};Bank4 = {a[2], a[l], ! a
};Bank5 = { ! a[2], ! a[l],a
};Bank6 = {a [2], ! a[l],a
};Bank7 = { ! a[2],a[l],! a
};在本領(lǐng)域中針對數(shù)據(jù)緩存都是以流為處理對象,在存取地址的分配時(shí)為每一條流 的操作命令分配對應(yīng)的內(nèi)部體地址時(shí),由連續(xù)的8個(gè)內(nèi)部體地址按照二進(jìn)制數(shù)值從小到大 循環(huán)提供。本實(shí)施例與第一實(shí)施例相比,增加了針對內(nèi)部體地址與內(nèi)部體的映射做隨機(jī)化 處理的步驟,在隨機(jī)化處理之后執(zhí)行寫指令,可以增加后續(xù)在數(shù)據(jù)片讀取時(shí)的內(nèi)部體平均 分布的概率。步驟S202,當(dāng)指令緩存中產(chǎn)生訪問同步動(dòng)態(tài)存儲(chǔ)器的指令時(shí),判斷其是否為訪問 同一數(shù)據(jù)流的指令,若是,則跳轉(zhuǎn)步驟S204,否則跳轉(zhuǎn)步驟S203。該指令可以為寫指令,也 可以為讀指令。
步驟S203,從指令緩存中每次取出固定個(gè)數(shù)的指令,判斷這些指令對應(yīng)的內(nèi)部體 是否滿足內(nèi)部體平均分布,若是,則跳轉(zhuǎn)步驟S204,否則跳轉(zhuǎn)步驟S206。該指令包括激活命 令、操作命令和預(yù)充電命令,激活命令與操作命令之間以及操作命令與預(yù)充電命令之間的 時(shí)間為指令的空閑;另外,因?yàn)轭A(yù)充電命令還有自動(dòng)模式,即自動(dòng)預(yù)充電命令,對于指令緩存中每次取 出的指令,可以在最后一條指令的操作命令之后使用一個(gè)自動(dòng)預(yù)充電命令即可。因此,該命 令也可包括激活命令、操作命令和自動(dòng)預(yù)充電命令,激活命令與操作命令之間以及操作命 令與自動(dòng)預(yù)充電命令之間的時(shí)間為指令的空閑。步驟S204,在滿足時(shí)序要求的情況下,順次將后面的指令插入前面指令的空閑處。 滿足時(shí)序要求的情況具體包括被插入的指令的操作命令與前一個(gè)指令的操作命令之間間隔至少為內(nèi)部體數(shù)量 一半的時(shí)鐘周期。另外,被插入的指令的激活命令以及預(yù)充電命令或者自動(dòng)預(yù)充電命令只須滿足現(xiàn) 有的指令時(shí)序要求即可,具體要求如下被插入的指令的激活命令與操作命令之間的時(shí)間間隔至少為tRCD(ActiVe to Read/Write Command time,激活命令和操作命令之間的最小時(shí)間);被插入的指令的操作命令與預(yù)充電命令或者自動(dòng)預(yù)充電命令之間的時(shí)間間隔至 少為tRAS (Active to Precharge Command time,激活命令和預(yù)充電命令之間的最小時(shí) 間)減去tRCD的差值。步驟S205,執(zhí)行經(jīng)過時(shí)間壓縮后的指令,流程結(jié)束。此時(shí)同步動(dòng)態(tài)存儲(chǔ)器的存取數(shù) 據(jù)帶寬利用率可以大于90%。步驟S206,進(jìn)行現(xiàn)有常規(guī)處理,流程結(jié)束。本發(fā)明第三實(shí)施例,一種同步動(dòng)態(tài)存儲(chǔ)器讀寫控制裝置,如圖5所示,包括以下組 成部分1)指令緩存模塊,用于存儲(chǔ)產(chǎn)生的訪問同步動(dòng)態(tài)存儲(chǔ)器的指令。該指令包括激活 命令、操作命令和預(yù)充電命令,激活命令與操作命令之間以及操作命令與預(yù)充電命令之間 的時(shí)間為指令的空閑;另外,因?yàn)轭A(yù)充電命令還有自動(dòng)模式,即自動(dòng)預(yù)充電命令,對于指令緩存模塊中每 次取出的指令,可以在最后一條指令的操作命令之后使用一個(gè)自動(dòng)預(yù)充電命令即可。因此, 該命令也可包括激活命令、操作命令和自動(dòng)預(yù)充電命令,激活命令與操作命令之間以及操 作命令與自動(dòng)預(yù)充電命令之間的時(shí)間為指令的空閑。2)緩存控制模塊,用于在指令緩存模塊中的指令對應(yīng)的內(nèi)部體滿足內(nèi)部體平均分 布的情況下,對這些指令進(jìn)行時(shí)間壓縮后執(zhí)行。該緩存控制模塊進(jìn)一步包括判斷模塊,用于從指令緩存中每次取出固定個(gè)數(shù)的指令,判斷所述指令對應(yīng)的內(nèi) 部體是否滿足內(nèi)部體平均分布,若是,則調(diào)用時(shí)間壓縮模塊,否則進(jìn)行現(xiàn)有常規(guī)處理;時(shí)間壓縮模塊,用于在滿足時(shí)序要求的情況下,順次將后面的指令插入前面指令 的空閑處。這里,滿足時(shí)序要求的情況具體包括被插入的指令的操作命令與前一個(gè)指令的操作命令之間間隔至少為內(nèi)部體數(shù)量 一半的時(shí)鐘周期。
另外,被插入的指令的激活命令以及預(yù)充電命令或者自動(dòng)預(yù)充電命令只須滿足現(xiàn) 有的指令時(shí)序要求即可,具體要求如下被插入的指令的激活命令與操作命令之間的時(shí)間間隔至少為tRCD(ActiVe to Read/Write Command time,激活命令和操作命令之間的最小時(shí)間);被插入的指令的操作命令與預(yù)充電命令或者自動(dòng)預(yù)充電命令之間的時(shí)間間隔至 少為tRAS (Active to Precharge Command time,激活命令和預(yù)充電命令之間的最小時(shí) 間)減去tRCD的差值。還存在一種特殊的情況,即當(dāng)指令緩存模塊中的指令屬于同一數(shù)據(jù)流時(shí),因?yàn)檫@ 部分指令對應(yīng)的內(nèi)部體必然滿足內(nèi)部體平均分布,所以緩存控制模塊可以直接對這部分指 令進(jìn)行時(shí)間壓縮后執(zhí)行。本發(fā)明第四實(shí)施例,一種同步動(dòng)態(tài)存儲(chǔ)器讀寫控制裝置,如圖6所示,包括以下組 成部分1)指令緩存模塊,用于存儲(chǔ)產(chǎn)生的訪問同步動(dòng)態(tài)存儲(chǔ)器的指令。該指令包括激活 命令、操作命令和預(yù)充電命令,激活命令與操作命令之間以及操作命令與預(yù)充電命令之間 的時(shí)間為指令的空閑;另外,因?yàn)轭A(yù)充電命令還有自動(dòng)模式,即自動(dòng)預(yù)充電命令,對于指令緩存模塊中每 次取出的指令,可以在最后一條指令的操作命令之后使用一個(gè)自動(dòng)預(yù)充電命令即可。因此, 該命令也可包括激活命令、操作命令和自動(dòng)預(yù)充電命令,激活命令與操作命令之間以及操 作命令與自動(dòng)預(yù)充電命令之間的時(shí)間為指令的空閑。2)緩存控制模塊,用于在指令緩存模塊中的指令對應(yīng)的內(nèi)部體滿足內(nèi)部體平均分 布的情況下,對這些指令進(jìn)行時(shí)間壓縮后執(zhí)行。該緩存控制模塊進(jìn)一步包括地址處理模塊,用于對同步動(dòng)態(tài)存儲(chǔ)器的內(nèi)部體地址進(jìn)行隨機(jī)化處理。假設(shè)同步 動(dòng)態(tài)存儲(chǔ)器的內(nèi)部體個(gè)數(shù)為8個(gè),分別為BankO Bank7,經(jīng)過隨機(jī)化處理的同步動(dòng)態(tài)存儲(chǔ) 器的內(nèi)部體地址不再按照從小到大的順序?qū)?yīng)BankO Bank7,設(shè)內(nèi)部體地址均由三位二 進(jìn)制數(shù)a[2]a[l]a
表示,那么隨機(jī)化處理后的BankO Bank7的體地址映射為BankO = {a[2], a[l], a
};Bankl = { ! a[2], ! a[l], ! a
};Bank2 = {a[2], ! a[l], ! a
};Bank3 = { ! a[2],a[l],a
};Bank4 = {a[2], a[l], ! a
};Bank5 = { ! a[2], ! a[l],a
};Bank6 = {a [2], ! a[l],a
};Bank7 = { ! a[2],a[l],! a
};在本領(lǐng)域中針對數(shù)據(jù)緩存都是以流為處理對象,在存取地址的分配時(shí)為每一條流 的操作命令分配對應(yīng)的內(nèi)部體地址時(shí),由連續(xù)的8個(gè)內(nèi)部體地址按照二進(jìn)制數(shù)值從小到大 循環(huán)提供。本實(shí)施例與第一實(shí)施例相比,增加了針對內(nèi)部體地址與內(nèi)部體的映射做隨機(jī)化 處理的步驟,在隨機(jī)化處理之后執(zhí)行寫指令,可以增加后續(xù)在數(shù)據(jù)片讀取時(shí)的內(nèi)部體平均 分布的概率。判斷模塊,用于從指令緩存中每次取出固定個(gè)數(shù)的指令,判斷所述指令對應(yīng)的內(nèi)部體是否滿足內(nèi)部體平均分布,若是,則調(diào)用時(shí)間壓縮模塊,否則進(jìn)行現(xiàn)有常規(guī)處理;時(shí)間壓縮模塊,用于在滿足時(shí)序要求的情況下,順次將后面的指令插入前面指令 的空閑處。這里,滿足時(shí)序要求的情況具體包括被插入的指令的操作命令與前一個(gè)指令的操作命令之間間隔至少為內(nèi)部體數(shù)量 一半的時(shí)鐘周期。另外,被插入的指令的激活命令以及預(yù)充電命令或者自動(dòng)預(yù)充電命令只須滿足現(xiàn) 有的指令時(shí)序要求即可,具體要求如下被插入的指令的激活命令與操作命令之間的時(shí)間間隔至少為tRCD ;被插入的指令的操作命令與預(yù)充電命令或者自動(dòng)預(yù)充電命令之間的時(shí)間間隔至 少為tRAS減去tRCD的差值。還存在一種特殊的情況,即當(dāng)指令緩存模塊中的指令屬于同一數(shù)據(jù)流時(shí),因?yàn)檫@ 部分指令對應(yīng)的內(nèi)部體必然滿足內(nèi)部體平均分布,所以緩存控制模塊可以直接對這部分指 令進(jìn)行時(shí)間壓縮后執(zhí)行。本發(fā)明第五實(shí)施例,一種同步動(dòng)態(tài)存儲(chǔ)器讀寫控制系統(tǒng),如圖7所示,包括以下組 成部分1)指令緩存模塊,用于存儲(chǔ)產(chǎn)生的訪問同步動(dòng)態(tài)存儲(chǔ)器的指令。2)緩存控制模塊,用于在指令緩存模塊中的指令對應(yīng)的內(nèi)部體滿足內(nèi)部體平均分 布的情況下,對所述指令進(jìn)行時(shí)間壓縮后通過訪問數(shù)據(jù)緩存模塊執(zhí)行。當(dāng)指令緩存模塊中 的指令屬于同一數(shù)據(jù)流時(shí),直接對所述指令進(jìn)行時(shí)間壓縮后執(zhí)行。3)數(shù)據(jù)緩存模塊,用于在緩存控制模塊的控制下存取所述指令對應(yīng)的數(shù)據(jù)。4)數(shù)據(jù)包輸入處理模塊,用于當(dāng)緩存控制模塊執(zhí)行寫指令時(shí),將輸入的數(shù)據(jù)包拆 分成固定長度的數(shù)據(jù)片傳送到緩存控制模塊。5)數(shù)據(jù)包輸出處理模塊,用于當(dāng)緩存控制模塊執(zhí)行讀指令時(shí),將緩存控制模塊從 數(shù)據(jù)緩存模塊中讀出的數(shù)據(jù)片重新組成數(shù)據(jù)包發(fā)送出去。采用本發(fā)明所述方法,與現(xiàn)有的通過增加外部動(dòng)態(tài)存儲(chǔ)器帶寬相比,是在現(xiàn)有設(shè) 備情況下提高帶寬利用率,節(jié)省了的硬件成本。通過具體實(shí)施方式
的說明,應(yīng)當(dāng)可對本發(fā)明為達(dá)成預(yù)定目的所采取的技術(shù)手段及 功效得以更加深入且具體的了解,然而所附圖示僅是提供參考與說明之用,并非用來對本 發(fā)明加以限制。
權(quán)利要求
1.一種同步動(dòng)態(tài)存儲(chǔ)器讀寫控制方法,其特征在于,包括當(dāng)產(chǎn)生訪問同步動(dòng)態(tài)存儲(chǔ)器的指令時(shí),在所述指令對應(yīng)的內(nèi)部體滿足內(nèi)部體平均分布 的情況下,對所述指令進(jìn)行時(shí)間壓縮后執(zhí)行。
2.根據(jù)權(quán)利要求1所述同步動(dòng)態(tài)存儲(chǔ)器讀寫控制方法,其特征在于,該方法在產(chǎn)生訪 問同步動(dòng)態(tài)存儲(chǔ)器的指令之前還包括對同步動(dòng)態(tài)存儲(chǔ)器的內(nèi)部體地址進(jìn)行隨機(jī)化處理。
3.根據(jù)權(quán)利要求1或2所述同步動(dòng)態(tài)存儲(chǔ)器讀寫控制方法,其特征在于,所述指令包括 激活命令、操作命令和預(yù)充電命令,激活命令與操作命令之間以及操作命令與預(yù)充電命令 之間的時(shí)間為指令的空閑;或者,所述指令包括激活命令、操作命令和自動(dòng)預(yù)充電命令,激 活命令與操作命令之間以及操作命令與自動(dòng)預(yù)充電命令之間的時(shí)間為指令的空閑;所述在指令對應(yīng)的內(nèi)部體滿足內(nèi)部體平均分布的情況下,對所述指令進(jìn)行時(shí)間壓縮, 具體包括從指令緩存中取出指令,判斷所述指令對應(yīng)的內(nèi)部體是否滿足內(nèi)部體平均分布,若是, 則在滿足時(shí)序要求的情況下,順次將后面的指令插入前面指令的空閑處,否則進(jìn)行現(xiàn)有常 規(guī)處理。
4.根據(jù)權(quán)利要求3所述同步動(dòng)態(tài)存儲(chǔ)器讀寫控制方法,其特征在于,所述滿足時(shí)序要 求的情況,具體包括被插入的指令的操作命令與前一個(gè)指令的操作命令之間間隔至少為內(nèi)部體數(shù)量一半 的時(shí)鐘周期。
5.根據(jù)權(quán)利要求1所述同步動(dòng)態(tài)存儲(chǔ)器讀寫控制方法,其特征在于,該方法還包括當(dāng)產(chǎn)生訪問同步動(dòng)態(tài)存儲(chǔ)器中同一數(shù)據(jù)流的指令時(shí),直接對所述指令進(jìn)行時(shí)間壓縮。
6.一種同步動(dòng)態(tài)存儲(chǔ)器讀寫控制裝置,其特征在于,包括指令緩存模塊,用于存儲(chǔ)產(chǎn)生的訪問同步動(dòng)態(tài)存儲(chǔ)器的指令;緩存控制模塊,用于在指令緩存模塊中的指令對應(yīng)的內(nèi)部體滿足內(nèi)部體平均分布的情 況下,對所述指令進(jìn)行時(shí)間壓縮后執(zhí)行。
7.根據(jù)權(quán)利要求6所述同步動(dòng)態(tài)存儲(chǔ)器讀寫控制裝置,其特征在于,所述緩存控制模 塊進(jìn)一步包括地址處理模塊,用于在產(chǎn)生的訪問同步動(dòng)態(tài)存儲(chǔ)器的指令之前,對同步動(dòng)態(tài)存儲(chǔ)器的 內(nèi)部體地址進(jìn)行隨機(jī)化處理。
8.根據(jù)權(quán)利要求6或7所述同步動(dòng)態(tài)存儲(chǔ)器讀寫控制裝置,其特征在于,所述指令包括 激活命令、操作命令和預(yù)充電命令,激活命令與操作命令之間以及操作命令與預(yù)充電命令 之間的時(shí)間為指令的空閑;或者,所述指令包括激活命令、操作命令和自動(dòng)預(yù)充電命令,激 活命令與操作命令之間以及操作命令與自動(dòng)預(yù)充電命令之間的時(shí)間為指令的空閑;所述緩存控制模塊進(jìn)一步包括判斷模塊,用于從指令緩存中取出指令,判斷所述指令對應(yīng)的內(nèi)部體是否滿足內(nèi)部體 平均分布,若是,則調(diào)用時(shí)間壓縮模塊,否則進(jìn)行現(xiàn)有常規(guī)處理;時(shí)間壓縮模塊,用于在滿足時(shí)序要求的情況下,順次將后面的指令插入前面指令的空 閑處。
9.根據(jù)權(quán)利要求8所述同步動(dòng)態(tài)存儲(chǔ)器讀寫控制裝置,其特征在于,所述滿足時(shí)序要求的情況,具體包括被插入的指令的操作命令與前一個(gè)指令的操作命令之間間隔至少為內(nèi)部體數(shù)量一半 的時(shí)鐘周期。
10.根據(jù)權(quán)利要求6所述同步動(dòng)態(tài)存儲(chǔ)器讀寫控制裝置,其特征在于,所述緩存控制模 塊進(jìn)一步用于當(dāng)指令緩存模塊中的指令屬于同一數(shù)據(jù)流時(shí),直接對所述指令進(jìn)行時(shí)間壓縮后執(zhí)行。
11.一種同步動(dòng)態(tài)存儲(chǔ)器讀寫控制系統(tǒng),其特征在于,包括 指令緩存模塊,用于存儲(chǔ)產(chǎn)生的訪問同步動(dòng)態(tài)存儲(chǔ)器的指令;緩存控制模塊,用于在指令緩存模塊中的指令對應(yīng)的內(nèi)部體滿足內(nèi)部體平均分布的情 況下,對所述指令進(jìn)行時(shí)間壓縮后通過訪問數(shù)據(jù)緩存模塊執(zhí)行;數(shù)據(jù)緩存模塊,用于在緩存控制模塊的控制下存取所述指令對應(yīng)的數(shù)據(jù); 數(shù)據(jù)包輸入處理模塊,用于當(dāng)緩存控制模塊執(zhí)行寫指令時(shí),將輸入的數(shù)據(jù)包拆分成固 定長度的數(shù)據(jù)片傳送到緩存控制模塊;數(shù)據(jù)包輸出處理模塊,用于當(dāng)緩存控制模塊執(zhí)行讀指令時(shí),將緩存控制模塊從數(shù)據(jù)緩 存模塊中讀出的數(shù)據(jù)片重新組成數(shù)據(jù)包發(fā)送出去。
全文摘要
本發(fā)明公開了一種同步動(dòng)態(tài)存儲(chǔ)器讀寫控制方法、裝置和系統(tǒng),當(dāng)產(chǎn)生訪問同步動(dòng)態(tài)存儲(chǔ)器的指令時(shí),在所述指令對應(yīng)的內(nèi)部體滿足內(nèi)部體平均分布的情況下,對所述指令進(jìn)行時(shí)間壓縮后執(zhí)行。該裝置包括指令緩存模塊和緩存控制模塊。本發(fā)明在現(xiàn)有的IP核的基礎(chǔ)上,以比較小的硬件成本大幅度提高路由交換設(shè)備同步動(dòng)態(tài)存儲(chǔ)器的帶寬利用效率。
文檔編號(hào)G06F13/16GK102073604SQ20101054727
公開日2011年5月25日 申請日期2010年11月17日 優(yōu)先權(quán)日2010年11月17日
發(fā)明者周昶, 陳紅旗 申請人:中興通訊股份有限公司