專利名稱:一種數(shù)據(jù)讀寫的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通訊領(lǐng)域,尤其涉及一種數(shù)據(jù)讀寫的方法和裝置。
背景技術(shù):
在數(shù)據(jù)網(wǎng)絡(luò)中,通常使用DRAM (Dynamic random access msmory,動態(tài) 隨機(jī)存儲器)芯片作為數(shù)據(jù)緩存空間,這類芯片有一個共同的特征 一個芯 片分為多個數(shù)據(jù)塊bank, —個bank又分為許多行,當(dāng)對某一行進(jìn)行讀才喿作或 者寫操作時,需要先對該行進(jìn)行激活。由于不允許同時打開一個bank的不同 行,所以當(dāng)某個bank已經(jīng)打開某一行而需要操作另一行時,必須關(guān)閉先前被 激活的行,再激活需要操作的另一行,然后才能對另一行進(jìn)行讀寫搡作。對 一行的激活到關(guān)閉具有最小時間的限制,不滿足該最小時間時不能對該bank 的其它行進(jìn)行操作(簡稱bank沖突)。
隨著芯片頻率的提高,等待的時間相對于時鐘頻率越來越長,效率越來 越低。以DDR2芯片讀操作為例,在具有200MHz時鐘頻率時,對同一 bank 不同行的連續(xù)兩次讀操作時間間隔為55ns(tRAS+tRP),折為11個時鐘周期, 在400MHz時鐘頻率時,該時間間隔為60ns,折合為24個時鐘周期?,F(xiàn)有技 術(shù)針對連續(xù)訪問同 一個bank不同行必須等待較長時間的問題,提出了很多優(yōu) 化方法,如按順序?qū)Χ鄠€bank進(jìn)行讀寫操作,以減小甚至避免bank沖突的問 題。但利用空間換效率的方法將導(dǎo)致緩存空間的浪費(fèi),而且向多個bank寫入 重復(fù)的數(shù)據(jù),對緩存帶寬造成了較大的浪費(fèi)。同時,該方法對讀寫操作順序 過于嚴(yán)格,在網(wǎng)絡(luò)處理器的應(yīng)用中,由于服務(wù)質(zhì)量QOS算法的影響,讀取數(shù) 據(jù)往往無法實(shí)現(xiàn)順序操作,因此該方法只適合于一定使用的范圍。
現(xiàn)有技術(shù)還通過操作相鄰的若干Cell,將各個地址的Cell所占bank進(jìn)行 重排序,選擇可用的bank進(jìn)行操作,以減少等待時間。但該方法采用順序搜 索所以只能尋找到滿足操作時間要求的Cell,卻無法從整體對操作進(jìn)行優(yōu)化。如圖1所示,某段時間接收了四個cell的讀請求,其中cell—0~cell—2各占了 2 個bank, cell—3占了 8個bank。按照現(xiàn)有技術(shù),操作順序?yàn)閏ell_0 bank0^ cell—0 bankl^ cell_3 bank2^...^ cell—3 bank7^ce11—1 bank0^ cell—1 bankl+等待 ^cell—2 bank0^...。也就是說,如圖2所示,在操作完cell_3的bank7后, 只剩下cel1—l cell—3的2個bank,存在著bank沖突,也意味著帶寬的浪費(fèi)。 發(fā)明人在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題 現(xiàn)有技術(shù)解決訪問同 一個bank不同行需要一定的時間間隔的問題時,對 bank讀寫操作的順序要求過于嚴(yán)格且浪費(fèi)存儲空間,并且只能從局部進(jìn)行讀 寫操作優(yōu)化。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種數(shù)據(jù)讀寫的方法和裝置,可以有效的提高緩存效 率,從整體上優(yōu)化操作順序。
本發(fā)明實(shí)施例提供一種數(shù)據(jù)讀寫的方法,包括
根據(jù)數(shù)據(jù)塊的預(yù)設(shè)容量值切分請求,并將切分后的請求存入數(shù)據(jù)塊隊(duì)列; 比較滿足時序參數(shù)的所述數(shù)據(jù)塊隊(duì)列中不同數(shù)據(jù)塊的權(quán)重值; 根據(jù)所述比較結(jié)果調(diào)度所述數(shù)據(jù)塊隊(duì)列。 同時本發(fā)明實(shí)施例提供了一種數(shù)據(jù)讀寫的裝置,包括 數(shù)據(jù)塊切分模塊,用于根據(jù)數(shù)據(jù)塊的預(yù)設(shè)容量值切分請求; 權(quán)重比較模塊,用于計算和比較滿足時序參數(shù)的數(shù)據(jù)塊隊(duì)列中各個數(shù)據(jù) 塊的權(quán)重值;
調(diào)度模塊,用于根據(jù)所述權(quán)重比較模塊的比較結(jié)果,調(diào)度所述數(shù)據(jù)塊隊(duì)列。
與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn)
才艮據(jù)數(shù)據(jù)塊的預(yù)設(shè)容量值切分請求,并將切分后的請求存入數(shù)據(jù)塊隊(duì)列, 通過比較數(shù)據(jù)塊隊(duì)列的權(quán)重值,調(diào)度數(shù)據(jù)塊隊(duì)列,這樣可以較大的提高緩存 效率,從整體上優(yōu)化纟喿作順序。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí) 施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作筒單地介紹,顯而易見地,下面 描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講, 在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是現(xiàn)有技術(shù)中讀寫操作分布示意圖2是現(xiàn)有技術(shù)中讀寫操作分布示意圖3是本發(fā)明實(shí)施例中數(shù)據(jù)讀寫的方法流程圖4是本發(fā)明又一實(shí)施例中數(shù)據(jù)讀寫的方法流程圖5是本發(fā)明實(shí)施例中數(shù)據(jù)讀寫的裝置示意圖。
具體實(shí)施例方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行 清楚、完整地描述,顯然,所描述的實(shí)施例僅是本發(fā)明一部分實(shí)施例,而不 是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出 創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實(shí)施例提供一種數(shù)據(jù)讀寫的方法和裝置,可以較大的提高緩存效 率,從整體上優(yōu)化操作順序。
本發(fā)明實(shí)施例提供一種數(shù)據(jù)讀寫的方法,如圖3所示,具體包括
步驟S301、根據(jù)數(shù)據(jù)塊的預(yù)設(shè)容量值切分請求,并將切分后的請求存入 數(shù)據(jù)塊隊(duì)列。
具體的,在不同的應(yīng)用場景,bank具有相同或不同的預(yù)設(shè)容量值,當(dāng)接 收到讀請求或?qū)懻埱髸r,可以將讀請求或?qū)懻埱蟮臄?shù)據(jù)量按照該預(yù)設(shè)容量值 進(jìn)行切分,即將讀請求或?qū)懻埱蟠嫒攵鄠€bank中,多個bank組成bank隊(duì)列, 并且各個bank在bank隊(duì)列中具有唯一的標(biāo)識,該標(biāo)識可以作為調(diào)用bank 的依據(jù)。當(dāng)在應(yīng)用場景中只具有一個bank時,則將請求直接寫入該bank中。
步驟S302、比較滿足時序參數(shù)的所述數(shù)據(jù)塊隊(duì)列中不同數(shù)據(jù)塊的權(quán)重值。 具體的,權(quán)重值由bank中的請求數(shù)量產(chǎn)生,請求數(shù)量多的bank具有較高的權(quán)重值;由于進(jìn)行調(diào)度時,有可能多個bank具有相同的請求數(shù)量,此時可以利 用優(yōu)先級作為產(chǎn)生權(quán)重的因素,與請求數(shù)量共同產(chǎn)生權(quán)重值。該優(yōu)先級與請 求存入bank的時間有關(guān),在預(yù)定時間內(nèi)滿足時序參數(shù)卻未被調(diào)度的bank提升 優(yōu)先級,利用優(yōu)先級和請求數(shù)量共同產(chǎn)生權(quán)重值,可以避免某個bank長時間 未被調(diào)用。由實(shí)際的工程經(jīng)驗(yàn)可知,根據(jù)權(quán)重值調(diào)用bank可以有效的規(guī)避bank 沖突,提高調(diào)用效率。
步驟S303、根據(jù)所述比較結(jié)果調(diào)度所述數(shù)據(jù)塊隊(duì)列。
在滿足時序參數(shù)的條件下,權(quán)重值較大的bank優(yōu)先調(diào)度;權(quán)重值相同時, 調(diào)度任一 bank。其中調(diào)度任一 bank時,可以按照bank的標(biāo)識(如序號)進(jìn) 行調(diào)度,如可以根據(jù)bank的序號按照從小到大的順序進(jìn)行調(diào)度,當(dāng)然調(diào)度任 一 bank時還可以按照其他用戶自定義的規(guī)則進(jìn)行調(diào)度。
通過上述實(shí)施例提供的數(shù)據(jù)讀寫方法,將請求進(jìn)行切分,并進(jìn)入bank隊(duì) 列,然后按照bank的權(quán)重值進(jìn)行調(diào)度,這樣可以較大的提高緩存效率,從整 體上優(yōu)化操作順序。
本發(fā)明又一實(shí)施例提供的數(shù)據(jù)讀寫的方法,可以實(shí)現(xiàn)將讀寫請求分為讀 請求和寫請求,并分別按bank預(yù)設(shè)容量值進(jìn)行切分,然后進(jìn)入不同的bank 等待調(diào)度,由此可以從整體上對讀寫操作進(jìn)行優(yōu)化,具體的實(shí)現(xiàn)過程如圖4 所示,包括
步驟S401、將讀寫請求分開為讀請求和寫請求。具體的,接收到讀寫請 求后,才艮據(jù)請求中的標(biāo)識信息判斷所述請求屬于讀請求還是寫請求。 步驟S402、對讀請求或?qū)懻埱筮M(jìn)行切分后存入到bank。 具體的,將讀請求或?qū)懻埱蠓謩e存入不同的bank,在不同的應(yīng)用場景中, bank具有相同或不同的預(yù)設(shè)容量值,當(dāng)讀請求或?qū)懻埱蟮臄?shù)據(jù)量大于bank的 預(yù)設(shè)容量值時,將讀請求或?qū)懻埱蟠嫒攵鄠€bank中。多個bank組成bank隊(duì) 列,每個bank在隊(duì)列中具有唯一的標(biāo)識,讀請求或?qū)懻埱蟠嫒氩煌腷ank 后等待調(diào)度。
步驟S403、判斷bank隊(duì)列中的各個bank是否滿足時序參數(shù)的要求。滿 足該時序參數(shù)的要求是指在對bank進(jìn)行換行搡作時,bank距離上次讀寫操作的完成時間間隔了一個時序參數(shù)的時間。不滿足時序參數(shù)的bank不進(jìn)行調(diào)度; 對滿足時序參數(shù)的bank,繼續(xù)執(zhí)行步驟S404。
步驟S404、比較滿足時序參數(shù)的bank隊(duì)列中bank的權(quán)重值。 具體的,獲取滿足時序參數(shù)的bank隊(duì)列中各bank的權(quán)重值并進(jìn)行比較, 權(quán)重值大的bank優(yōu)先被調(diào)度;若權(quán)重值相同,調(diào)度任一滿足時序參數(shù)的bank。 該權(quán)重值可以由bank中請求的數(shù)量產(chǎn)生,請求數(shù)量大的bank,權(quán)重值大;也 可以由bank的優(yōu)先級和bank中請求的數(shù)量共同產(chǎn)生權(quán)重值,優(yōu)先級高的bank 權(quán)重值大,優(yōu)先級相同請求數(shù)量大的bank,權(quán)重值大。該優(yōu)先級的產(chǎn)生與請 求存入bank的時間有關(guān),在預(yù)定時間內(nèi)滿足調(diào)度條件卻未被調(diào)度的bank提升 優(yōu)先級,利用優(yōu)先級和請求數(shù)量共同產(chǎn)生權(quán)重值,可以避免某個bank長時間 未被調(diào)用。
bank隊(duì)列中的各個bank權(quán)重值相同時,調(diào)度任一滿足時序參數(shù)的bank, 此時可以按照bank的序列號從小到大的順序進(jìn)行調(diào)度,當(dāng)然,在實(shí)際的應(yīng)用 中,調(diào)度的順序并不限于上述順序,還可以按照序列號從大到小的順序進(jìn)行 調(diào)度,以及其他自定義的順序。以圖1為例,首次調(diào)度時,bankO和bankl中 的請求數(shù)量都為4,權(quán)重值相同,bankO的序號較小,所以調(diào)度bank0;第二 次調(diào)度時,bankl中的請求數(shù)量都為4,權(quán)重值最大,調(diào)度bankl;第三次調(diào) 度時,由于權(quán)重值較大的bankO和bankl不滿足時序參數(shù),不能調(diào)度,bank2 在權(quán)重值相同的bank中序號最小,優(yōu)先被調(diào)度;第四次調(diào)度時,bankO、 bankl 和bank2不滿足時序參數(shù),bank3在權(quán)重值相同的bank中序號最小,優(yōu)先被 調(diào)度;第五次調(diào)度時假設(shè)權(quán)重較大的bankO隊(duì)列已經(jīng)滿足時序要求,優(yōu)先被 調(diào)度;第六次…。以此類推,可得到最優(yōu)操作順序cell—0 bankO^ cell—0 bankl ^ cell—3 bank2"^ cell—3 bank3^ cell—1 bankO^ cell—1 banklcell—3 bank4~> cell—3 bank5~> cell—2 bankO^ cell—2 bankl ^ cell—3 bank6^ cell—3 bank7。
同時,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)讀寫的裝置,如圖5所示,具體 包括
數(shù)據(jù)塊切分模塊510,用于根據(jù)數(shù)據(jù)塊的預(yù)設(shè)容量值切分請求;權(quán)重比較模塊520,用于計算和比較滿足時序參數(shù)的數(shù)據(jù)塊隊(duì)列中各個數(shù) 據(jù)塊的權(quán)重值;
調(diào)度模塊530,用于根據(jù)所述權(quán)重比較模塊的比較結(jié)果,調(diào)度所述數(shù)據(jù)塊 隊(duì)列。
所述權(quán)重比較模塊520還包括優(yōu)先級計算模塊540和請求數(shù)量統(tǒng)計模塊 550。所述優(yōu)先級計算模塊540用于當(dāng)滿足時序參數(shù)的數(shù)據(jù)塊未被調(diào)度時,增 加所述未一皮調(diào)度的數(shù)據(jù)塊的優(yōu)先級。所述請求數(shù)量統(tǒng)計模塊550用于統(tǒng)計所 屬數(shù)據(jù)塊隊(duì)列中的各個數(shù)據(jù)塊的請求的數(shù)量。在本發(fā)明實(shí)施例中,所述權(quán)重 比較模塊520根據(jù)所述請求的數(shù)量和/或各個數(shù)據(jù)塊的優(yōu)先級計算數(shù)據(jù)塊的權(quán) 重值。需要明確的是,可才艮據(jù)實(shí)際需要選擇所述優(yōu)先級計算模塊540和所述 請求數(shù)量統(tǒng)計模塊550中的一者或全部來輔助計算權(quán)重值。
更具體地,所述權(quán)重值的計算可通過累加方式進(jìn)行,比如,當(dāng)數(shù)據(jù)塊的 請求的數(shù)量達(dá)到一定值時,則權(quán)重值加上一預(yù)設(shè)值,或當(dāng)數(shù)據(jù)塊的優(yōu)先級提 高一定值時,則權(quán)重值加上一相同或不同的預(yù)設(shè)值。當(dāng)然,以上權(quán)重值的計 算方法僅作為示例,其不應(yīng)對本發(fā)明的保護(hù)范圍構(gòu)成限制。
通過使用本發(fā)明實(shí)施例提供的數(shù)據(jù)讀寫的方法和裝置,根據(jù)數(shù)據(jù)塊的預(yù) 設(shè)容量值切分請求,并將切分后的請求存入數(shù)據(jù)塊隊(duì)列,通過比較bank隊(duì)列 的權(quán)重值,調(diào)度數(shù)據(jù)塊隊(duì)列,這樣可以較大的提高緩存效率,從整體上優(yōu)化 操作順序。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā) 明可以通過硬件實(shí)現(xiàn),也可以可借助軟件加必要的通用硬件平臺的方式來實(shí) 現(xiàn)基于這樣的理解,本發(fā)明的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該 軟件產(chǎn)品可以存儲在一個非易失性存儲介質(zhì)(可以是CD-ROM, U盤,移動 硬盤等)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī), 服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實(shí)施例所述的方法。
以上公開的僅為本發(fā)明的幾個具體實(shí)施例,但是,本發(fā)明并非局限于此, 任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護(hù)范圍。
權(quán)利要求
1、一種數(shù)據(jù)讀寫的方法,其特征在于,包括根據(jù)數(shù)據(jù)塊的預(yù)設(shè)容量值切分請求,并將切分后的請求存入數(shù)據(jù)塊隊(duì)列;比較滿足時序參數(shù)的所述數(shù)據(jù)塊隊(duì)列中不同數(shù)據(jù)塊的權(quán)重值;根據(jù)所述比較結(jié)果調(diào)度所述數(shù)據(jù)塊隊(duì)列。
2、 如權(quán)利要求l所述的方法,其特征在于,所述根據(jù)數(shù)據(jù)塊的預(yù)設(shè)容量 值切分請求包括獲取請求的數(shù)據(jù)量;根據(jù)數(shù)據(jù)塊的預(yù)設(shè)容量值,對所述請求進(jìn)行切分;若請求的數(shù)據(jù)量小于數(shù)據(jù)塊的預(yù)設(shè)容量值,則不進(jìn)行切分,直接進(jìn)入數(shù) 據(jù)塊隊(duì)列。
3、 如權(quán)利要求l所述的方法,其特征在于,所述根據(jù)所述比較結(jié)果調(diào)度 所述數(shù)據(jù)塊隊(duì)列包括在滿足時序參數(shù)的條件下,權(quán)重值最大的數(shù)據(jù)塊優(yōu)先調(diào)度。
4、 如權(quán)利要求l所述的方法,其特征在于,所述權(quán)重值包括 由數(shù)據(jù)塊中請求的數(shù)量所產(chǎn)生的權(quán)重值。
5、 如權(quán)利要求l所述的方法,其特征在于,所述權(quán)重值包括 由凄t據(jù)塊的優(yōu)先級所產(chǎn)生的權(quán)重值。
6、 如權(quán)利要求5所述的方法,其特征在于,所述方法還包括當(dāng)滿足時序參數(shù)的數(shù)據(jù)塊未被調(diào)度時,所述未被調(diào)度的數(shù)據(jù)塊的優(yōu)先級 增力口。
7、 一種數(shù)據(jù)讀寫的裝置,其特征在于,包括 數(shù)據(jù)塊切分模塊,用于根據(jù)數(shù)據(jù)塊的預(yù)設(shè)容量值切分請求; 權(quán)重比較模塊,用于計算和比較滿足時序參數(shù)的數(shù)據(jù)塊隊(duì)列中各個數(shù)據(jù)塊的權(quán)重值;調(diào)度模塊,用于根據(jù)所述權(quán)重比較模塊的比較結(jié)果,調(diào)度所述數(shù)據(jù)塊隊(duì)列。
8、 如權(quán)利要求7所述的裝置,其特征在于,所述權(quán)重比較模塊包括請求 數(shù)量統(tǒng)計模塊,用于統(tǒng)計所屬數(shù)據(jù)塊隊(duì)列中的各個數(shù)據(jù)塊的請求的數(shù)量,所述權(quán)重比較模塊根據(jù)所述請求的數(shù)量計算權(quán)重值。
9、 如權(quán)利要求7所述的裝置,其特征在于,所述權(quán)重值比較模塊還包括 優(yōu)先級計算模塊,用于統(tǒng)計所述數(shù)據(jù)塊隊(duì)列中的各個數(shù)據(jù)塊的優(yōu)先級,所述 權(quán)重比4支模塊根據(jù)所述數(shù)據(jù)塊隊(duì)列中的各個數(shù)據(jù)塊的優(yōu)先級計算權(quán)重值。
10、 如權(quán)利要求9所述的裝置,其特征在于,所述優(yōu)先級計算模塊在滿足時序參數(shù)的數(shù)據(jù)塊未被調(diào)度時,增加所述未被調(diào)度的數(shù)據(jù)塊的優(yōu)先級。
全文摘要
本發(fā)明實(shí)施例公開了一種數(shù)據(jù)讀寫的方法和裝置,本發(fā)明實(shí)施例公開的數(shù)據(jù)讀寫的方法,包括根據(jù)數(shù)據(jù)塊的預(yù)設(shè)容量值切分請求,并將切分后的請求存入數(shù)據(jù)塊隊(duì)列;比較滿足時序參數(shù)的所述數(shù)據(jù)塊隊(duì)列中不同數(shù)據(jù)塊的權(quán)重值;根據(jù)所述比較結(jié)果調(diào)度所述數(shù)據(jù)塊隊(duì)列。通過使用本發(fā)明的實(shí)施例,可以從整體上優(yōu)化操作順序,從而更有效地提高緩存效率。
文檔編號H04L12/56GK101316240SQ200810135029
公開日2008年12月3日 申請日期2008年7月28日 優(yōu)先權(quán)日2008年7月28日
發(fā)明者鈿 王, 范貴成 申請人:華為技術(shù)有限公司