專利名稱:一種rldram sio存儲(chǔ)器訪問(wèn)控制方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及RLDRAM(Reduced Latency Dynamic Random Access Memory,低延時(shí)動(dòng) 態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器)技術(shù)領(lǐng)域,尤其涉及一種RLDRAM SIO (獨(dú)立I/O)存儲(chǔ)器訪問(wèn)控制方法 和裝置。
背景技術(shù):
當(dāng)今的高速網(wǎng)絡(luò)應(yīng)用需要高帶寬和高密度存儲(chǔ)器解決方案,不僅要求較高的工作 速度、而且對(duì)存儲(chǔ)器同時(shí)進(jìn)行讀寫(xiě)操作的應(yīng)用也涌現(xiàn)出來(lái)。這對(duì)網(wǎng)絡(luò)數(shù)據(jù)包動(dòng)態(tài)緩存存儲(chǔ) 器的容量和存取速率也提出了更高的要求。相比一般的DRAM (Random Access Memory,隨 機(jī)存儲(chǔ)器),RLDRAM存儲(chǔ)器采用了內(nèi)部預(yù)充電和內(nèi)置啟動(dòng),使得尋址過(guò)程可以在單周期內(nèi) 完成,所以它比一般的DRAM具有低延遲的特點(diǎn),使其成為網(wǎng)絡(luò)數(shù)據(jù)包緩存的一個(gè)較佳的選 擇。RLDRAM存儲(chǔ)器分為RLDRAM CIO(共用I/O)和RLDRAM SIO兩種,其中RLDRAM SIO存儲(chǔ) 器由于其寫(xiě)數(shù)據(jù)線和讀數(shù)據(jù)線獨(dú)立,可以同時(shí)進(jìn)行讀寫(xiě)操作,極大提高了帶寬利用率。所以 RLDRAM SIO存儲(chǔ)器是非常適合于網(wǎng)絡(luò)應(yīng)用的。目前,雖然RLDRAM SIO存儲(chǔ)器具有良好的架構(gòu)和性能,但是現(xiàn)有的對(duì)輸入的讀寫(xiě) 命令的地址解析和緩存方式?jīng)]有充分考慮到RLDRAM SIO存儲(chǔ)器的訪問(wèn)配置要求,以及子數(shù) 據(jù)片寫(xiě)入內(nèi)部體bank最小訪問(wèn)間隔tRC(active to active/auto refresh command time) 的限制對(duì)輸出操作命令過(guò)程造成的影響,導(dǎo)致在使用的過(guò)程中,RLDRAM SIO存儲(chǔ)器很難實(shí) 現(xiàn)較高的帶寬利用率。例如,如圖1所示,elk為時(shí)鐘周期線,cmd為輸出操作命令線,在存 儲(chǔ)器配置為BL(burst length,突發(fā)長(zhǎng)度)=tRC = 4cycle, cycle為時(shí)鐘周期,子數(shù)據(jù)片 寫(xiě)入內(nèi)部體bank個(gè)數(shù)=8時(shí),在某個(gè)時(shí)間段只有寫(xiě)命令的情況下,對(duì)相同的內(nèi)部體的訪問(wèn) 間隔必須大于等于4個(gè)時(shí)鐘周期,而每個(gè)輸入的寫(xiě)命令均依次訪問(wèn)同一個(gè)內(nèi)部體地址,這 樣寫(xiě)數(shù)據(jù)線Wdata的有效利用率只有約50%。又例如,如圖2所示,也是在存儲(chǔ)器配置為BL = tRC = 4cycle,子數(shù)據(jù)片寫(xiě)入內(nèi)部 體bank個(gè)數(shù)=8時(shí),在每個(gè)命令周期中同時(shí)具有寫(xiě)命令和讀命令的情況下,按照輸入命令 的原有順序執(zhí)行,寫(xiě)數(shù)據(jù)線Wdata的有效利用率和讀數(shù)據(jù)線Rdata的有效利用率均很低。因此,如何進(jìn)一步提高RLDRAM SIO存儲(chǔ)器讀寫(xiě)效率是本領(lǐng)域技術(shù)人員亟待解決的 問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題是,提供一種RLDRAM SIO存儲(chǔ)器訪問(wèn)控制方法和裝置, 提高RLDRAM SIO存儲(chǔ)器讀寫(xiě)操作的效率。本發(fā)明采用的技術(shù)方案是,所述RLDRAM SIO存儲(chǔ)器訪問(wèn)控制方法,包括對(duì)輸入的讀寫(xiě)命令進(jìn)行地址解析和分開(kāi)保存,并對(duì)分開(kāi)保存的讀寫(xiě)命令進(jìn)行統(tǒng)一 排序得到操作命令隊(duì)列,同時(shí)將輸入的數(shù)據(jù)包解析成子數(shù)據(jù)片;輸出所述子數(shù)據(jù)片以及操作命令隊(duì)列中的讀寫(xiě)命令到RLDRAM SIO存儲(chǔ)器。
進(jìn)一步的,所述對(duì)輸入的讀寫(xiě)命令進(jìn)行地址解析和分開(kāi)保存的具體過(guò)程包括將包含數(shù)據(jù)單元寫(xiě)入地址和子數(shù)據(jù)片寫(xiě)入內(nèi)部體地址的二維地址信息依次分別 與寫(xiě)命令和讀命令建立對(duì)應(yīng)訪問(wèn)關(guān)系;將寫(xiě)命令及其訪問(wèn)的所述二維地址信息緩存入寫(xiě)命令隊(duì)列,將讀命令及其訪問(wèn)的 所述二維地址信息緩存入讀命令隊(duì)列。進(jìn)一步的,所述將包含數(shù)據(jù)單元寫(xiě)入地址和子數(shù)據(jù)片寫(xiě)入內(nèi)部體地址的二維地址 信息依次分別與寫(xiě)命令和讀命令建立對(duì)應(yīng)訪問(wèn)關(guān)系,包括對(duì)于寫(xiě)命令,將數(shù)據(jù)單元寫(xiě)入地址與寫(xiě)命令建立對(duì)應(yīng)訪問(wèn)關(guān)系,在每個(gè)數(shù)據(jù)單元 寫(xiě)入地址中,再將子數(shù)據(jù)片寫(xiě)入內(nèi)部體地址按照編號(hào)從小到大依次與寫(xiě)命令建立對(duì)應(yīng)訪問(wèn) 關(guān)系,使每一個(gè)寫(xiě)命令具有包含數(shù)據(jù)單元寫(xiě)入地址和子數(shù)據(jù)片寫(xiě)入內(nèi)部體地址的二維地址 fn息;對(duì)于讀命令,將數(shù)據(jù)單元寫(xiě)入地址與讀命令建立對(duì)應(yīng)訪問(wèn)關(guān)系,在每個(gè)數(shù)據(jù)單元 寫(xiě)入地址中,再將子數(shù)據(jù)片寫(xiě)入內(nèi)部體地址按照編號(hào)從小到大依次與讀命令建立對(duì)應(yīng)訪問(wèn) 關(guān)系,使每一個(gè)讀命令具有包含數(shù)據(jù)單元寫(xiě)入地址和子數(shù)據(jù)片寫(xiě)入內(nèi)部體地址的二維地址 fn息ο進(jìn)一步的,所述對(duì)分開(kāi)保存的讀寫(xiě)命令進(jìn)行統(tǒng)一排序得到的操作命令隊(duì)列的具體 過(guò)程,包括基于相同子數(shù)據(jù)片寫(xiě)入內(nèi)部體最小訪問(wèn)間隔的要求,對(duì)寫(xiě)命令隊(duì)列和讀命令隊(duì) 列進(jìn)行重新排序得到操作命令隊(duì)列。進(jìn)一步的,所述基于相同子數(shù)據(jù)片寫(xiě)入內(nèi)部體最小訪問(wèn)間隔的要求,對(duì)分開(kāi)保存 的寫(xiě)命令和讀命令進(jìn)行重新排序得到的操作命令隊(duì)列,包括在寫(xiě)命令隊(duì)列和讀命令隊(duì)列中分別按照子數(shù)據(jù)片寫(xiě)入內(nèi)部體編號(hào)從小到大處理 讀命令和寫(xiě)命令,對(duì)取出的第一個(gè)命令直接存入操作命令隊(duì)列,從第二個(gè)命令開(kāi)始執(zhí)行下 面的步驟步驟一、判斷前一個(gè)命令是讀命令還是寫(xiě)命令,若前一個(gè)命令是寫(xiě)命令,則跳轉(zhuǎn)步 驟二,若前一個(gè)命令是讀命令,則跳轉(zhuǎn)步驟三;步驟二、判斷讀命令隊(duì)列中是否為空,若為空,則跳轉(zhuǎn)步驟五,若不為空,則跳轉(zhuǎn)步 驟四;步驟三、判斷寫(xiě)命令隊(duì)列中是否為空,若為空,則跳轉(zhuǎn)步驟四,若不為空,則,跳轉(zhuǎn) 步驟五;步驟四、從讀命令隊(duì)列中取出當(dāng)前讀命令訪問(wèn)的子數(shù)據(jù)片寫(xiě)入內(nèi)部體編號(hào),判斷 當(dāng)前讀命令訪問(wèn)的子數(shù)據(jù)片寫(xiě)入內(nèi)部體編號(hào)是否大于前一個(gè)寫(xiě)命令訪問(wèn)的子數(shù)據(jù)片寫(xiě)入 內(nèi)部體編號(hào),或者,前一個(gè)寫(xiě)命令訪問(wèn)的子數(shù)據(jù)片寫(xiě)入內(nèi)部體編號(hào)與當(dāng)前讀命令訪問(wèn)的子 數(shù)據(jù)片寫(xiě)入內(nèi)部體編號(hào)之差是否大于等于2(tRC-T)/BL,T為一個(gè)命令周期內(nèi)寫(xiě)命令和讀 命令之間的間隔,若是,則將當(dāng)前讀命令存入操作命令隊(duì)列,否則將后一個(gè)寫(xiě)命令存入操作 命令隊(duì)列,當(dāng)前讀命令仍然待處理,跳轉(zhuǎn)步驟一;步驟五、從寫(xiě)命令隊(duì)列中取出當(dāng)前寫(xiě)命令訪問(wèn)的子數(shù)據(jù)片寫(xiě)入內(nèi)部體編號(hào),判斷 當(dāng)前寫(xiě)命令訪問(wèn)的子數(shù)據(jù)片寫(xiě)入內(nèi)部體編號(hào)是否大于前一個(gè)讀命令訪問(wèn)的子數(shù)據(jù)片寫(xiě)入 內(nèi)部體編號(hào),或者,前一個(gè)讀命令訪問(wèn)的子數(shù)據(jù)片寫(xiě)入內(nèi)部體編號(hào)與當(dāng)前寫(xiě)命令訪問(wèn)的子 數(shù)據(jù)片寫(xiě)入內(nèi)部體編號(hào)之差是否大于等于2 (tRC-T)/BL,若是,則將當(dāng)前寫(xiě)命令存入操作命
6令隊(duì)列,否則將后一個(gè)讀命令存入操作命令隊(duì)列,當(dāng)前寫(xiě)命令仍然待處理,跳轉(zhuǎn)步驟一。進(jìn)一步的,所述將輸入的數(shù)據(jù)包解析成子數(shù)據(jù)片的過(guò)程包括將輸入的數(shù)據(jù)包劃分為數(shù)據(jù)單元,將每個(gè)數(shù)據(jù)單元?jiǎng)澐譃榕cRLDRAM SIO存儲(chǔ)器內(nèi) 部體數(shù)量相等的子數(shù)據(jù)片。對(duì)于某個(gè)時(shí)間段輸入的只有讀命令或者只有寫(xiě)命令的情況,雖然利用上述RLDRAM SIO存儲(chǔ)器訪問(wèn)控制方法已經(jīng)可以達(dá)到提高RLDRAM SIO存儲(chǔ)器讀寫(xiě)操作效率的發(fā)明目的, 但是,本發(fā)明還提供一種專門針對(duì)只有讀命令或者只有寫(xiě)命令的簡(jiǎn)化的技術(shù)方案,即,一種RLDRAM SIO存儲(chǔ)器訪問(wèn)控制方法,包括對(duì)輸入的讀命令或者寫(xiě)命令進(jìn)行地址解析和緩存得到操作命令隊(duì)列,并且,當(dāng)輸 入的是寫(xiě)命令時(shí),將輸入的數(shù)據(jù)包解析成子數(shù)據(jù)片;輸出所述子數(shù)據(jù)片以及操作命令隊(duì)列中的讀命令或者寫(xiě)命令到RLDRAMSI0存儲(chǔ)
ο所述對(duì)輸入的讀命令或者寫(xiě)命令進(jìn)行地址解析和緩存得到的操作命令隊(duì)列,包 括將包含數(shù)據(jù)單元寫(xiě)入地址和子數(shù)據(jù)片寫(xiě)入內(nèi)部體地址的二維地址信息依次與寫(xiě) 命令或讀命令建立對(duì)應(yīng)訪問(wèn)關(guān)系;將寫(xiě)命令及其訪問(wèn)的所述二維地址信息緩存入操作命令隊(duì)列,或者,將讀命令及 其訪問(wèn)的所述二維地址信息緩存入操作命令隊(duì)列。本發(fā)明還提供一種RLDRAM SIO存儲(chǔ)器訪問(wèn)控制裝置,包括輸入操作控制模塊,用于對(duì)輸入的讀寫(xiě)命令和數(shù)據(jù)包進(jìn)行解析和分開(kāi)保存,并對(duì) 分開(kāi)保存的讀寫(xiě)命令進(jìn)行統(tǒng)一排序得到操作命令隊(duì)列,將操作命令隊(duì)列發(fā)送到緩存模塊;緩存模塊,用于分別存儲(chǔ)操作命令隊(duì)列和由數(shù)據(jù)包解析得到的子數(shù)據(jù)片;輸出操作控制模塊,用于輸出操作命令隊(duì)列中的讀寫(xiě)命令到RLDRAM SIO存儲(chǔ)器。進(jìn)一步的,所述輸入操作控制模塊具體包括寫(xiě)數(shù)據(jù)包解析子模塊,用于將寫(xiě)命令對(duì)應(yīng)的輸入數(shù)據(jù)包劃分為數(shù)據(jù)單元,將每個(gè) 數(shù)據(jù)單元?jiǎng)澐譃榕cRLDRAM SIO存儲(chǔ)器內(nèi)部體數(shù)量相等的子數(shù)據(jù)片;寫(xiě)地址解析緩存子模塊,用于將包含數(shù)據(jù)單元寫(xiě)入地址和子數(shù)據(jù)片寫(xiě)入內(nèi)部體地 址的二維地址信息依次分配給對(duì)子數(shù)據(jù)片的寫(xiě)命令,存入寫(xiě)命令隊(duì)列;讀地址解析緩存子模塊,用于將所述二維地址信息依次分配給對(duì)子數(shù)據(jù)片的讀命 令,存入讀命令隊(duì)列;讀寫(xiě)命令排序子模塊,用于基于相同子數(shù)據(jù)片寫(xiě)入內(nèi)部體最小訪問(wèn)間隔的要求, 對(duì)讀命令隊(duì)列和寫(xiě)命令隊(duì)列統(tǒng)一重新排序得到操作命令隊(duì)列后輸出到緩存模塊。進(jìn)一步的,所述緩存模塊具體包括操作命令緩存子模塊,用于保存由讀寫(xiě)命令排序子模塊統(tǒng)一重新排序后的操作命 令隊(duì)列;寫(xiě)數(shù)據(jù)緩存子模塊,用于保存由寫(xiě)數(shù)據(jù)包解析子模塊劃分成的所述子數(shù)據(jù)片。進(jìn)一步的,所述緩存模塊還包括讀出數(shù)據(jù)緩存子模塊,用于存儲(chǔ)從RLDRAM SIO存 儲(chǔ)器中讀出的子數(shù)據(jù)片;該裝置進(jìn)一步包括輸出數(shù)據(jù)模塊,用于將讀出數(shù)據(jù)緩存子模塊中的子數(shù)據(jù)片重新組合成數(shù)據(jù)單元送出。本發(fā)明還提供一種具有所述RLDRAM SIO存儲(chǔ)器訪問(wèn)控制裝置的RLDRAM SIO存儲(chǔ) 器系統(tǒng),RLDRAM SIO存儲(chǔ)器與所述訪問(wèn)控制裝置中的輸出操作控制模塊相連,所述訪問(wèn)控 制裝置包括輸入操作控制模塊,用于對(duì)輸入的讀寫(xiě)命令和數(shù)據(jù)包進(jìn)行解析和分開(kāi)保存,并對(duì) 分開(kāi)保存的讀寫(xiě)命令進(jìn)行統(tǒng)一排序得到操作命令隊(duì)列,將操作命令隊(duì)列發(fā)送到緩存模塊;緩存模塊,用于分別存儲(chǔ)操作命令隊(duì)列和由數(shù)據(jù)包解析得到的子數(shù)據(jù)片;輸出操作控制模塊,用于輸出操作命令隊(duì)列中的讀寫(xiě)命令到RLDRAM SIO存儲(chǔ)器。采用上述技術(shù)方案,本發(fā)明至少具有下列優(yōu)點(diǎn)本發(fā)明所述RLDRAM SIO存儲(chǔ)器訪問(wèn)控制方法和裝置,對(duì)輸入的讀寫(xiě)命令進(jìn)行地址 解析和分開(kāi)保存,并對(duì)分開(kāi)保存的讀寫(xiě)命令進(jìn)行統(tǒng)一排序得到操作命令隊(duì)列,同時(shí)將輸入 的數(shù)據(jù)包解析成子數(shù)據(jù)片;分別存儲(chǔ)操作命令隊(duì)列和由數(shù)據(jù)包解析得到的子數(shù)據(jù)片;輸出 子數(shù)據(jù)片以及操作命令隊(duì)列中的讀寫(xiě)命令到RLDRAM SIO存儲(chǔ)器。本發(fā)明在現(xiàn)有IP核基礎(chǔ) 上對(duì)讀寫(xiě)操作的訪問(wèn)地址進(jìn)行了優(yōu)化,并且合理安排存儲(chǔ)器的讀、寫(xiě)命令發(fā)送順序,使讀寫(xiě) 操作達(dá)到帶寬的高效利用,大幅度提高RLDRAM SIO存儲(chǔ)器帶寬利用率。
圖1為現(xiàn)有技術(shù)中某個(gè)時(shí)間段只有寫(xiě)命令的情況下訪問(wèn)存儲(chǔ)器的寫(xiě)數(shù)據(jù)線帶寬 利用率示意圖;圖2為現(xiàn)有技術(shù)中某個(gè)時(shí)間段的每個(gè)命令周期中同時(shí)有寫(xiě)命令和讀命令的情況 下訪問(wèn)存儲(chǔ)器的寫(xiě)數(shù)據(jù)線帶寬利用率示意圖;圖3為本發(fā)明第一實(shí)施例中所述RLDRAM SIO存儲(chǔ)器訪問(wèn)控制方法流程圖;圖4為本發(fā)明第一實(shí)施例中對(duì)寫(xiě)命令隊(duì)列和讀命令隊(duì)列進(jìn)行重新排序得到操作 命令隊(duì)列的流程圖;圖5為本發(fā)明第二實(shí)施例中所述RLDRAM SIO存儲(chǔ)器訪問(wèn)控制方法流程圖;圖6為本發(fā)明第三實(shí)施例中所述RLDRAM SIO存儲(chǔ)器訪問(wèn)控制方法流程圖;圖7為本發(fā)明第四實(shí)施例中所述RLDRAM SIO存儲(chǔ)器訪問(wèn)控制裝置組成示意圖;圖8為本發(fā)明第四實(shí)施例中所述輸入操作控制模塊組成示意圖;圖9為本發(fā)明第五實(shí)施例中具有第四實(shí)施例所述訪問(wèn)控制裝置的RLDRAM SIO存 儲(chǔ)器系統(tǒng)組成示意圖;圖10為采用本發(fā)明技術(shù)方案后,在命令周期中只有寫(xiě)命令的情況下寫(xiě)數(shù)據(jù)線有 效帶寬利用情況示意圖;圖11為采用本發(fā)明技術(shù)方案后,在一個(gè)命令周期中有寫(xiě)命令和讀命令的情況下 讀寫(xiě)數(shù)據(jù)線有效帶寬利用情況示意圖。
具體實(shí)施例方式為更進(jìn)一步闡述本發(fā)明為達(dá)成預(yù)定目的所采取的技術(shù)手段及功效,以下結(jié)合附圖 及較佳實(shí)施例,對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明如后。首先介紹一下RLDRAM SIO存儲(chǔ)器相關(guān)參數(shù)和訪問(wèn)限制
突發(fā)長(zhǎng)度BL 決定了 RLDRAM SIO存儲(chǔ)器的命令周期,一個(gè)命令周期等于BL/2個(gè) 時(shí)鐘周期。存儲(chǔ)器內(nèi)部體bank 是RLDRAM SIO存儲(chǔ)器的內(nèi)部存儲(chǔ)空間,目前MICRON公司的 大部分RLDRAM SIO存儲(chǔ)器產(chǎn)品的體個(gè)數(shù)是8或者16。相同體最小訪問(wèn)時(shí)間間隔tRC 連續(xù)兩次訪問(wèn)相同bank之間的最小間隔。另外,RLDRAM SIO存儲(chǔ)器還要求發(fā)送連續(xù)兩個(gè)讀操作或兩個(gè)寫(xiě)操作之間必須經(jīng)過(guò) 一個(gè)命令周期,即不能在同一個(gè)命令周期中出現(xiàn)兩個(gè)相同性質(zhì)的操作。本發(fā)明技術(shù)方案的主要思路是在網(wǎng)絡(luò)數(shù)據(jù)包緩存的應(yīng)用中,通常將數(shù)據(jù)包切片成固定長(zhǎng)度的數(shù)據(jù)單元進(jìn)行存 儲(chǔ),在數(shù)據(jù)單元寫(xiě)入時(shí)將其劃分為多個(gè)子數(shù)據(jù)片存入子數(shù)據(jù)片寫(xiě)入內(nèi)部體bank中。本發(fā)明 進(jìn)一步提出將數(shù)據(jù)單元寫(xiě)入時(shí)將其劃分為η個(gè)子數(shù)據(jù)片分別存入地址相同的各個(gè)子數(shù)據(jù) 片寫(xiě)入內(nèi)部體bank中,η為存儲(chǔ)器中bank的總個(gè)數(shù)。如果數(shù)據(jù)單元寫(xiě)入地址為ADDR,那么 劃分它所得到的η個(gè)子數(shù)據(jù)片對(duì)應(yīng)的二維地址為{ADDR,BADDR},BADDR表示bank的地址, 其值從0到n-1輪詢,0到n-1可以看成是bank的編號(hào)。這樣,對(duì)于一個(gè)數(shù)據(jù)單元,在對(duì)它 進(jìn)行寫(xiě)入和讀出操作時(shí)均需要對(duì)各個(gè)bank進(jìn)行一次輪詢操作,而二維地址中的ADDR可以 相同也可以不同。由于上面對(duì)命令操作的存取地址進(jìn)行了優(yōu)化設(shè)計(jì),使得對(duì)命令操作的輸出時(shí)序優(yōu) 化變得有規(guī)可循。依據(jù)上面對(duì)寫(xiě)命令和讀命令操作設(shè)定的二維地址,對(duì)其進(jìn)行輸出操作排 序,排序時(shí)主要考慮到連續(xù)兩次訪問(wèn)相同bank之間的最小間隔不得小于相同體最小訪問(wèn) 時(shí)間間隔tRC。本發(fā)明第一實(shí)施例,一種RLDRAM SIO存儲(chǔ)器訪問(wèn)控制方法,如圖3所示,包括如下 具體步驟步驟S101,將包含數(shù)據(jù)單元寫(xiě)入地址ADDR和子數(shù)據(jù)片寫(xiě)入內(nèi)部體地址BADDR的二 維地址信息依次分別與寫(xiě)命令和讀命令建立對(duì)應(yīng)訪問(wèn)關(guān)系,具體的,對(duì)于寫(xiě)命令,將數(shù)據(jù)單元寫(xiě)入地址ADDR與寫(xiě)命令建立對(duì)應(yīng)訪問(wèn)關(guān)系,在每個(gè)數(shù) 據(jù)單元寫(xiě)入地址中,再將子數(shù)據(jù)片寫(xiě)入內(nèi)部體地址BADDR按照bank的編號(hào)從小到大依次 與寫(xiě)命令建立對(duì)應(yīng)訪問(wèn)關(guān)系,即,每輸入一個(gè)子數(shù)據(jù)片寫(xiě)命令,就為其分配一個(gè)bank,按照 bankO bank (n-1)循環(huán)分配,使每一個(gè)寫(xiě)命令具有包含ADDR和BADDR的二維地址信息;同時(shí),將寫(xiě)命令對(duì)應(yīng)的輸入數(shù)據(jù)包劃分為數(shù)據(jù)單元,將每個(gè)數(shù)據(jù)單元?jiǎng)澐譃榕c RLDRAM SIO存儲(chǔ)器的bank數(shù)量相等的子數(shù)據(jù)片,再將該數(shù)據(jù)單元的子數(shù)據(jù)片依次存入所 有的bank中。對(duì)于讀命令,將數(shù)據(jù)單元寫(xiě)入地址ADDR與讀命令建立對(duì)應(yīng)訪問(wèn)關(guān)系,在每個(gè)數(shù) 據(jù)單元寫(xiě)入地址中,再將子數(shù)據(jù)片寫(xiě)入內(nèi)部體地址BADDR按照bank的編號(hào)從小到大依次 與讀命令建立對(duì)應(yīng)訪問(wèn)關(guān)系,即,每輸入一個(gè)子數(shù)據(jù)片讀命令,就為其分配一個(gè)bank,按照 bankO bank (n-1)循環(huán)分配,使每一個(gè)讀命令具有包含ADDR和BADDR的二維地址信息。步驟S102,將寫(xiě)命令及其訪問(wèn)的二維地址信息{ADDR,BADDR}緩存入寫(xiě)命令隊(duì)列, 將讀命令及其訪問(wèn)的二維地址信息{ADDR,BADDR}緩存入讀命令隊(duì)列。步驟S103,基于相同體最小訪問(wèn)時(shí)間間隔tRC的要求,對(duì)寫(xiě)命令隊(duì)列和讀命令隊(duì) 列進(jìn)行重新排序得到操作命令隊(duì)列,具體的,
9
掃描寫(xiě)命令隊(duì)列和讀命令隊(duì)列,分別按照隊(duì)列先進(jìn)先出的原則,即按照bank的編 號(hào)從小到大處理讀命令和寫(xiě)命令,如圖4所示步驟Si,對(duì)取出的第一個(gè)命令直接存入操作命令隊(duì)列,從第二個(gè)命令開(kāi)始執(zhí)行步 驟 S2-S6 步驟S2、判斷前一個(gè)命令是讀命令還是寫(xiě)命令,若前一個(gè)命令是寫(xiě)命令,則跳轉(zhuǎn)步 驟S3,若前一個(gè)命令是讀命令,則跳轉(zhuǎn)步驟S4 ;步驟S3,判斷讀命令隊(duì)列中是否為空,若為空,則跳轉(zhuǎn)步驟S6,若不為空,則跳轉(zhuǎn) 步驟S5 ;步驟S4,判斷寫(xiě)命令隊(duì)列中是否為空,若為空,則跳轉(zhuǎn)步驟S5,若不為空,則跳轉(zhuǎn) 步驟S6 ;步驟S5,從讀命令隊(duì)列中取出當(dāng)前讀命令訪問(wèn)的bank編號(hào),判斷當(dāng)前讀命令訪問(wèn) 的bank編號(hào)是否大于前一個(gè)寫(xiě)命令訪問(wèn)的bank編號(hào),或者,前一個(gè)寫(xiě)命令訪問(wèn)的bank編 號(hào)與當(dāng)前讀命令訪問(wèn)的bank編號(hào)之差是否大于等于2(tRC-T)/BL,T為一個(gè)命令周期內(nèi)寫(xiě) 命令和讀命令之間的間隔,若是,則將當(dāng)前讀命令存入操作命令隊(duì)列,否則將后一個(gè)寫(xiě)命令 存入操作命令隊(duì)列,當(dāng)前讀命令仍然待處理。跳轉(zhuǎn)步驟S2 ;步驟S6,從寫(xiě)命令隊(duì)列中取出當(dāng)前寫(xiě)命令訪問(wèn)的bank編號(hào),判斷當(dāng)前寫(xiě)命令訪問(wèn) 的bank編號(hào)是否大于前一個(gè)讀命令訪問(wèn)的bank編號(hào),或者,前一個(gè)讀命令訪問(wèn)的bank編 號(hào)與當(dāng)前寫(xiě)命令訪問(wèn)的bank編號(hào)之差是否大于等于2 (tRC-T)/BL,若是,則將當(dāng)前寫(xiě)命令 存入操作命令隊(duì)列,否則將后一個(gè)讀命令存入操作命令隊(duì)列,當(dāng)前寫(xiě)命令仍然待處理。跳轉(zhuǎn) 步驟S2 ο步驟S104,按照RLDRAM SIO存儲(chǔ)器訪問(wèn)配置要求輸出子數(shù)據(jù)片以及操作命令隊(duì) 列中的讀寫(xiě)命令到RLDRAM SIO存儲(chǔ)器,這一步驟是現(xiàn)有技術(shù)中存儲(chǔ)器訪問(wèn)控制技術(shù)已經(jīng) 可以完成的,本發(fā)明并沒(méi)有對(duì)此輸出過(guò)程做改進(jìn),因此,只介紹一下,本步驟判斷處理的原 則對(duì)于在一個(gè)命令周期中只輸入一種操作的情況距前一個(gè)命令(BL/2-1)個(gè)時(shí)鐘周期后輸出當(dāng)前命令;對(duì)于在一個(gè)命令周期輸入兩種操作的情況,且兩種操作命令在一個(gè)命令周期中的 間隔為T時(shí)若前一個(gè)命令為寫(xiě)命令,當(dāng)前命令為讀命令,則距前一個(gè)命令間隔T后輸出當(dāng)前 命令;若前一個(gè)命令為讀命令,當(dāng)前命令為寫(xiě)命令,則距前一個(gè)命令間隔(BL/2-T-2)后 輸出當(dāng)前命令。步驟S105,RLDRAM SIO存儲(chǔ)器執(zhí)行寫(xiě)命令時(shí),將每個(gè)數(shù)據(jù)單元的子數(shù)據(jù)片依次存 入所有的bank中;在執(zhí)行讀命令時(shí),從所有bank中取出子數(shù)據(jù)片。最后將子數(shù)據(jù)片組合成 數(shù)據(jù)單元輸出。對(duì)于某個(gè)時(shí)間段的命令周期中輸入的只有讀命令或者只有寫(xiě)命令的情況,雖然利 用上述第一實(shí)施例中的所述RLDRAM SIO存儲(chǔ)器訪問(wèn)控制方法已經(jīng)可以達(dá)到提高RLDRAM SIO存儲(chǔ)器讀寫(xiě)操作效率的發(fā)明目的,但是,本發(fā)明還提供一種專門針對(duì)只有讀命令或者只 有寫(xiě)命令的簡(jiǎn)化的技術(shù)方案,即下面記載的第二實(shí)施例和第三實(shí)施例。
本發(fā)明第二實(shí)施例,針對(duì)某個(gè)時(shí)間段的命令周期中輸入的只有寫(xiě)命令的情況,如 圖5所示,一種RLDRAM SIO存儲(chǔ)器訪問(wèn)控制方法,包括步驟S201,將包含數(shù)據(jù)單元寫(xiě)入地址ADDR和子數(shù)據(jù)片寫(xiě)入內(nèi)部體地址BADDR的二 維地址信息依次與寫(xiě)命令建立對(duì)應(yīng)訪問(wèn)關(guān)系,具體的,將數(shù)據(jù)單元寫(xiě)入地址ADDR與寫(xiě)命令建立對(duì)應(yīng)訪問(wèn)關(guān)系,在每個(gè)數(shù)據(jù)單元寫(xiě)入地 址中,再將子數(shù)據(jù)片寫(xiě)入內(nèi)部體地址BADDR按照bank的編號(hào)從小到大依次與寫(xiě)命令建 立對(duì)應(yīng)訪問(wèn)關(guān)系,即,每輸入一個(gè)子數(shù)據(jù)片寫(xiě)命令,就為其分配一個(gè)bank,按照bankO bank(n-l)循環(huán)分配,使每一個(gè)寫(xiě)命令具有包含ADDR和BADDR的二維地址信息;同時(shí),將寫(xiě)命令對(duì)應(yīng)的輸入數(shù)據(jù)包劃分為數(shù)據(jù)單元,將每個(gè)數(shù)據(jù)單元?jiǎng)澐譃榕c RLDRAM SIO存儲(chǔ)器的bank數(shù)量相等的子數(shù)據(jù)片,再將該數(shù)據(jù)單元的子數(shù)據(jù)片依次存入所 有的bank中。步驟S202,將寫(xiě)命令及其訪問(wèn)的二維地址信息{Addr,BAddr}緩存入操作命令隊(duì) 列。步驟S203,按照RLDRAM SIO存儲(chǔ)器訪問(wèn)配置要求輸出子數(shù)據(jù)片以及操作命令隊(duì) 列中的寫(xiě)命令到RLDRAM SIO存儲(chǔ)器,這一步驟是現(xiàn)有技術(shù)中存儲(chǔ)器訪問(wèn)控制技術(shù)已經(jīng)可以 完成的,本發(fā)明并沒(méi)有對(duì)此輸出過(guò)程做改進(jìn),因此,只介紹一下,本步驟判斷處理的原則距 前一個(gè)命令(BL/2-1)個(gè)時(shí)鐘周期后輸出當(dāng)前命令;步驟S204,RLDRAM SIO存儲(chǔ)器執(zhí)行寫(xiě)命令時(shí),將每個(gè)數(shù)據(jù)單元的子數(shù)據(jù)片依次存 入所有的bank中。本發(fā)明第三實(shí)施例,針對(duì)某個(gè)時(shí)間段的命令周期中輸入的只有讀命令的情況,如 圖6所示,一種RLDRAM SIO存儲(chǔ)器訪問(wèn)控制方法,包括步驟S301,將包含數(shù)據(jù)單元寫(xiě)入地址Addr和子數(shù)據(jù)片寫(xiě)入內(nèi)部體地址BAddr的二 維地址信息依次與讀命令建立對(duì)應(yīng)訪問(wèn)關(guān)系,具體的,將數(shù)據(jù)單元寫(xiě)入地址Addr與讀命令建立對(duì)應(yīng)訪問(wèn)關(guān)系,在每個(gè)數(shù)據(jù)單元寫(xiě)入地 址中,再將子數(shù)據(jù)片寫(xiě)入內(nèi)部體地址BAddr按照bank的編號(hào)從小到大依次與讀命令建 立對(duì)應(yīng)訪問(wèn)關(guān)系,即,每輸入一個(gè)子數(shù)據(jù)片讀命令,就為其分配一個(gè)bank,按照bankO bank(n-l)循環(huán)分配,使每一個(gè)讀命令具有包含Addr和BAddr的二維地址信息。步驟S302,將讀命令及其訪問(wèn)的二維地址信息{Addr,BAddr}緩存入操作命令隊(duì) 列。步驟S303,按照RLDRAM SIO存儲(chǔ)器訪問(wèn)配置要求輸出子數(shù)據(jù)片以及操作命令隊(duì) 列中的讀命令到RLDRAM SIO存儲(chǔ)器,這一步驟是現(xiàn)有技術(shù)中存儲(chǔ)器訪問(wèn)控制技術(shù)已經(jīng)可以 完成的,本發(fā)明并沒(méi)有對(duì)此輸出過(guò)程做改進(jìn),因此,只介紹一下,本步驟判斷處理的原則距 前一個(gè)命令(BL/2-1)個(gè)時(shí)鐘周期后輸出當(dāng)前命令。步驟S304,RLDRAM SIO存儲(chǔ)器執(zhí)行讀命令時(shí),從所有bank中取出子數(shù)據(jù)片,最后 將子數(shù)據(jù)片組合成數(shù)據(jù)單元輸出。本發(fā)明第四實(shí)施例,一種執(zhí)行上述第一實(shí)施例中所述方法的RLDRAM SIO存儲(chǔ)器訪 問(wèn)控制裝置,如圖7所示,包括如下組成部分1)輸入操作控制模塊,用于對(duì)輸入的讀寫(xiě)命令和數(shù)據(jù)包進(jìn)行解析和分開(kāi)保存,并 對(duì)分開(kāi)保存的讀寫(xiě)命令進(jìn)行統(tǒng)一排序得到操作命令隊(duì)列,將操作命令隊(duì)列發(fā)送到緩存模
11塊。如圖8所示,所述輸入操作控制模塊具體包括如下子模塊寫(xiě)數(shù)據(jù)包解析子模塊,用于將寫(xiě)命令對(duì)應(yīng)的輸入數(shù)據(jù)包劃分為數(shù)據(jù)單元,將每個(gè) 數(shù)據(jù)單元?jiǎng)澐譃榕cRLDRAM SIO存儲(chǔ)器內(nèi)部體數(shù)量相等的子數(shù)據(jù)片,用于依次存入存儲(chǔ)器的 所有內(nèi)部體bank中;寫(xiě)地址解析緩存子模塊,用于將包含數(shù)據(jù)單元寫(xiě)入地址Addr和子數(shù)據(jù)片寫(xiě)入內(nèi) 部體地址BAddr的二維地址信息依次分配給對(duì)子數(shù)據(jù)片的寫(xiě)命令,存入寫(xiě)命令隊(duì)列。具體 過(guò)程是將數(shù)據(jù)單元寫(xiě)入地址Addr與寫(xiě)命令建立對(duì)應(yīng)訪問(wèn)關(guān)系,在每個(gè)數(shù)據(jù)單元寫(xiě)入地址 中,再將子數(shù)據(jù)片寫(xiě)入內(nèi)部體地址BAddr按照bank的編號(hào)從小到大依次與寫(xiě)命令建立對(duì)應(yīng) 訪問(wèn)關(guān)系,即,每輸入一個(gè)子數(shù)據(jù)片寫(xiě)命令,就為其分配一個(gè)bank,按照bankO bank(n-l) 循環(huán)分配,使每一個(gè)寫(xiě)命令具有包含Addr和BAddr的二維地址信息,將寫(xiě)命令及其訪問(wèn)的 二維地址信息{Addr,BAddr}緩存入寫(xiě)命令隊(duì)列。讀地址解析緩存子模塊,用于將所述二維地址信息依次分配給對(duì)子數(shù)據(jù)片的讀命 令,存入讀命令隊(duì)列。具體過(guò)程是將數(shù)據(jù)單元寫(xiě)入地址Addr與讀命令建立對(duì)應(yīng)訪問(wèn)關(guān) 系,在每個(gè)數(shù)據(jù)單元寫(xiě)入地址中,再將子數(shù)據(jù)片寫(xiě)入內(nèi)部體地址BAddr按照bank的編號(hào)從 小到大依次與讀命令建立對(duì)應(yīng)訪問(wèn)關(guān)系,即,每輸入一個(gè)子數(shù)據(jù)片讀命令,就為其分配一個(gè) bank,按照bankO bank(n-l)循環(huán)分配,使每一個(gè)讀命令具有包含Addr和BAddr的二維 地址信息。將讀命令及其訪問(wèn)的二維地址信息{Addr,BAddr}緩存入讀命令隊(duì)列。讀寫(xiě)命令排序子模塊,用于基于相同體最小訪問(wèn)時(shí)間間隔tRC的要求,對(duì)讀命令 隊(duì)列和寫(xiě)命令隊(duì)列統(tǒng)一重新排序得到操作命令隊(duì)列后輸出到緩存模塊。具體過(guò)程如圖4所
7J\ ο2)緩存模塊,用于分別存儲(chǔ)操作命令隊(duì)列和由數(shù)據(jù)包解析得到的子數(shù)據(jù)片。所述 緩存模塊具體包括如下子模塊操作命令緩存子模塊,用于保存由讀寫(xiě)命令排序子模塊統(tǒng)一重新排序后的操作命 令隊(duì)列;寫(xiě)數(shù)據(jù)緩存子模塊,用于保存由寫(xiě)數(shù)據(jù)包解析子模塊劃分成的所述子數(shù)據(jù)片;讀出數(shù)據(jù)緩存子模塊,用于存儲(chǔ)從RLDRAM SIO存儲(chǔ)器中讀出的子數(shù)據(jù)片。3)輸出操作控制模塊,用于按照RLDRAM SIO存儲(chǔ)器訪問(wèn)配置要求輸出操作命令 隊(duì)列中的讀寫(xiě)命令到RLDRAM SIO存儲(chǔ)器。輸出操作控制模塊完成的功能是現(xiàn)有技術(shù)中存儲(chǔ) 器訪問(wèn)控制技術(shù)已經(jīng)可以實(shí)現(xiàn)的,本發(fā)明并沒(méi)有對(duì)此輸出功能做改進(jìn),因此,只介紹一下, 該模塊判斷處理的原則對(duì)于在一個(gè)命令周期中只輸入一種操作的情況距前一個(gè)命令(BL/2-1)個(gè)時(shí)鐘周期后輸出當(dāng)前命令;對(duì)于在一個(gè)命令周期輸入兩種操作的情況,且兩種操作命令在一個(gè)命令周期中的 間隔為T時(shí)若前一個(gè)命令為寫(xiě)命令,當(dāng)前命令為讀命令,則距前一個(gè)命令間隔T后輸出當(dāng)前 命令;若前一個(gè)命令為讀命令,當(dāng)前命令為寫(xiě)命令,則距前一個(gè)命令間隔(BL/2-T-2)后 輸出當(dāng)前命令。4)輸出數(shù)據(jù)模塊,用于將讀出數(shù)據(jù)緩存子模塊中的子數(shù)據(jù)片重新組合成數(shù)據(jù)單元送出。本發(fā)明第五實(shí)施例,一種具有第四實(shí)施例所述訪問(wèn)控制裝置的RLDRAMSI0存儲(chǔ)器 系統(tǒng),如圖9所示,RLDRAM SIO存儲(chǔ)器與所述訪問(wèn)控制裝置中的輸出操作控制模塊相連,所 述訪問(wèn)控制裝置包括輸入操作控制模塊,用于對(duì)輸入的讀寫(xiě)命令和數(shù)據(jù)包進(jìn)行解析和分開(kāi)保存,并對(duì) 分開(kāi)保存的讀寫(xiě)命令進(jìn)行統(tǒng)一排序得到操作命令隊(duì)列,將操作命令隊(duì)列發(fā)送到緩存模塊;緩存模塊,用于分別存儲(chǔ)操作命令隊(duì)列和由數(shù)據(jù)包解析得到的子數(shù)據(jù)片;輸出操作控制模塊,用于按照RLDRAM SIO存儲(chǔ)器訪問(wèn)配置要求輸出操作命令隊(duì)列 中的讀寫(xiě)命令到RLDRAM SIO存儲(chǔ)器。需要說(shuō)明的是,本發(fā)明具體實(shí)施例對(duì)讀寫(xiě)操作存取地址優(yōu)化的過(guò)程中,均是將子 數(shù)據(jù)片寫(xiě)入內(nèi)部體地址BAddr按照bank的編號(hào)從小到大依次與讀命令或者寫(xiě)命令建立對(duì) 應(yīng)訪問(wèn)關(guān)系,但是本領(lǐng)域技術(shù)人員完全可以根據(jù)上述記載顯而易見(jiàn)的推出按照bank的編 號(hào)從大到小或者基于其他的bank編號(hào)規(guī)則分配bank地址的方法,以及后續(xù)配合該存取地 址優(yōu)化方法實(shí)施原理與本發(fā)明技術(shù)方案相同的操作命令優(yōu)化排序過(guò)程,這些基于本發(fā)明原 理思想的技術(shù)方案均在本發(fā)明的保護(hù)范圍之內(nèi)。下面通過(guò)
采用本發(fā)明所述方法和裝置對(duì)RLDRAM SIO存儲(chǔ)器訪問(wèn)控制后, 讀數(shù)據(jù)線和寫(xiě)數(shù)據(jù)線有效帶寬利用率的情況圖10為命令周期中只有寫(xiě)命令的情況下寫(xiě)數(shù)據(jù)線有效帶寬利用情況,工作條件 為bank個(gè)數(shù)=8,BL = 4,tRC為4個(gè)時(shí)鐘周期,圖中elk表示時(shí)鐘周期,cmd表示輸出操 作模塊輸出的操作命令,Wdata表示寫(xiě)數(shù)據(jù)線的利用情況。由于本發(fā)明對(duì)寫(xiě)命令按照bank 編號(hào)從小到大分配了子數(shù)據(jù)片寫(xiě)入內(nèi)部體地址BAddr,在現(xiàn)有輸出操作控制下完全可以達(dá) 到寫(xiě)數(shù)據(jù)線有效帶寬利用100%的效果。圖11為一個(gè)命令周期中寫(xiě)命令和讀命令的情況下讀寫(xiě)數(shù)據(jù)線有效帶寬利用情 況,工作條件為bank個(gè)數(shù)=8,BL = 4,tRC為4個(gè)時(shí)鐘周期。由于本發(fā)明對(duì)寫(xiě)命令和讀命 令的子數(shù)據(jù)片寫(xiě)入內(nèi)部體地址BAddr進(jìn)行了優(yōu)化,并且對(duì)寫(xiě)命令隊(duì)列和讀命令隊(duì)列中的操 作統(tǒng)一進(jìn)行了重新優(yōu)化排序,在現(xiàn)有輸出操作控制下完全可以達(dá)到寫(xiě)數(shù)據(jù)線和讀數(shù)據(jù)線有 效帶寬利用100%的效果。通過(guò)具體實(shí)施方式
的說(shuō)明,應(yīng)當(dāng)可對(duì)本發(fā)明為達(dá)成預(yù)定目的所采取的技術(shù)手段及 功效得以更加深入且具體的了解,然而所附圖示僅是提供參考與說(shuō)明之用,并非用來(lái)對(duì)本 發(fā)明加以限制。
權(quán)利要求
一種RLDRAM SIO存儲(chǔ)器訪問(wèn)控制方法,其特征在于,對(duì)輸入的讀寫(xiě)命令進(jìn)行地址解析和分開(kāi)保存,并對(duì)分開(kāi)保存的讀寫(xiě)命令進(jìn)行統(tǒng)一排序得到操作命令隊(duì)列,同時(shí)將輸入的數(shù)據(jù)包解析成子數(shù)據(jù)片;輸出所述子數(shù)據(jù)片以及操作命令隊(duì)列中的讀寫(xiě)命令到RLDRAM SIO存儲(chǔ)器。
2.根據(jù)權(quán)利要求1所述訪問(wèn)控制方法,其特征在于,所述對(duì)輸入的讀寫(xiě)命令進(jìn)行地址 解析和分開(kāi)保存的具體過(guò)程包括將包含數(shù)據(jù)單元寫(xiě)入地址和子數(shù)據(jù)片寫(xiě)入內(nèi)部體地址的二維地址信息依次分別與寫(xiě) 命令和讀命令建立對(duì)應(yīng)訪問(wèn)關(guān)系;將寫(xiě)命令及其訪問(wèn)的所述二維地址信息緩存入寫(xiě)命令隊(duì)列,將讀命令及其訪問(wèn)的所述 二維地址信息緩存入讀命令隊(duì)列。
3.根據(jù)權(quán)利要求2所述訪問(wèn)控制方法,其特征在于,所述將包含數(shù)據(jù)單元寫(xiě)入地址和 子數(shù)據(jù)片寫(xiě)入內(nèi)部體地址的二維地址信息依次分別與寫(xiě)命令和讀命令建立對(duì)應(yīng)訪問(wèn)關(guān)系, 包括對(duì)于寫(xiě)命令,將數(shù)據(jù)單元寫(xiě)入地址與寫(xiě)命令建立對(duì)應(yīng)訪問(wèn)關(guān)系,在每個(gè)數(shù)據(jù)單元寫(xiě)入 地址中,再將子數(shù)據(jù)片寫(xiě)入內(nèi)部體地址按照編號(hào)從小到大依次與寫(xiě)命令建立對(duì)應(yīng)訪問(wèn)關(guān) 系,使每一個(gè)寫(xiě)命令具有包含數(shù)據(jù)單元寫(xiě)入地址和子數(shù)據(jù)片寫(xiě)入內(nèi)部體地址的二維地址信 息;對(duì)于讀命令,將數(shù)據(jù)單元寫(xiě)入地址與讀命令建立對(duì)應(yīng)訪問(wèn)關(guān)系,在每個(gè)數(shù)據(jù)單元寫(xiě)入 地址中,再將子數(shù)據(jù)片寫(xiě)入內(nèi)部體地址按照編號(hào)從小到大依次與讀命令建立對(duì)應(yīng)訪問(wèn)關(guān) 系,使每一個(gè)讀命令具有包含數(shù)據(jù)單元寫(xiě)入地址和子數(shù)據(jù)片寫(xiě)入內(nèi)部體地址的二維地址信 肩、ο
4.根據(jù)權(quán)利要求2或3所述訪問(wèn)控制方法,其特征在于,所述對(duì)分開(kāi)保存的讀寫(xiě)命令進(jìn) 行統(tǒng)一排序得到的操作命令隊(duì)列的具體過(guò)程,包括基于相同子數(shù)據(jù)片寫(xiě)入內(nèi)部體最小訪 問(wèn)間隔的要求,對(duì)寫(xiě)命令隊(duì)列和讀命令隊(duì)列進(jìn)行重新排序得到操作命令隊(duì)列。
5.根據(jù)權(quán)利要求4所述訪問(wèn)控制方法,其特征在于,所述基于相同子數(shù)據(jù)片寫(xiě)入內(nèi)部 體最小訪問(wèn)間隔的要求,對(duì)分開(kāi)保存的寫(xiě)命令和讀命令進(jìn)行重新排序得到的操作命令隊(duì) 列,包括在寫(xiě)命令隊(duì)列和讀命令隊(duì)列中分別按照子數(shù)據(jù)片寫(xiě)入內(nèi)部體編號(hào)從小到大處理讀命 令和寫(xiě)命令,對(duì)取出的第一個(gè)命令直接存入操作命令隊(duì)列,從第二個(gè)命令開(kāi)始執(zhí)行下面的 步驟步驟一、判斷前一個(gè)命令是讀命令還是寫(xiě)命令,若前一個(gè)命令是寫(xiě)命令,則跳轉(zhuǎn)步驟 二,若前一個(gè)命令是讀命令,則跳轉(zhuǎn)步驟三;步驟二、判斷讀命令隊(duì)列中是否為空,若為空,則跳轉(zhuǎn)步驟五,若不為空,則跳轉(zhuǎn)步驟四;步驟三、判斷寫(xiě)命令隊(duì)列中是否為空,若為空,則跳轉(zhuǎn)步驟四,若不為空,則,跳轉(zhuǎn)步驟五;步驟四、從讀命令隊(duì)列中取出當(dāng)前讀命令訪問(wèn)的子數(shù)據(jù)片寫(xiě)入內(nèi)部體編號(hào),判斷當(dāng)前 讀命令訪問(wèn)的子數(shù)據(jù)片寫(xiě)入內(nèi)部體編號(hào)是否大于前一個(gè)寫(xiě)命令訪問(wèn)的子數(shù)據(jù)片寫(xiě)入內(nèi)部 體編號(hào),或者,前一個(gè)寫(xiě)命令訪問(wèn)的子數(shù)據(jù)片寫(xiě)入內(nèi)部體編號(hào)與當(dāng)前讀命令訪問(wèn)的子數(shù)據(jù)片寫(xiě)入內(nèi)部體編號(hào)之差是否大于等于2(tRC-T)/BL,BL為RLDRAM SIO存儲(chǔ)器的突發(fā)長(zhǎng)度, tRC為相同子數(shù)據(jù)片寫(xiě)入內(nèi)部體地址最小訪問(wèn)間隔,T為一個(gè)命令周期內(nèi)寫(xiě)命令和讀命令 之間的間隔,若是,則將當(dāng)前讀命令存入操作命令隊(duì)列,否則將后一個(gè)寫(xiě)命令存入操作命令 隊(duì)列,當(dāng)前讀命令仍然待處理,跳轉(zhuǎn)步驟一;步驟五、從寫(xiě)命令隊(duì)列中取出當(dāng)前寫(xiě)命令訪問(wèn)的子數(shù)據(jù)片寫(xiě)入內(nèi)部體編號(hào),判斷當(dāng)前 寫(xiě)命令訪問(wèn)的子數(shù)據(jù)片寫(xiě)入內(nèi)部體編號(hào)是否大于前一個(gè)讀命令訪問(wèn)的子數(shù)據(jù)片寫(xiě)入內(nèi)部 體編號(hào),或者,前一個(gè)讀命令訪問(wèn)的子數(shù)據(jù)片寫(xiě)入內(nèi)部體編號(hào)與當(dāng)前寫(xiě)命令訪問(wèn)的子數(shù)據(jù) 片寫(xiě)入內(nèi)部體編號(hào)之差是否大于等于2 (tRC-T)/BL,若是,則將當(dāng)前寫(xiě)命令存入操作命令隊(duì) 列,否則將后一個(gè)讀命令存入操作命令隊(duì)列,當(dāng)前寫(xiě)命令仍然待處理,跳轉(zhuǎn)步驟一。
6.根據(jù)權(quán)利要求1所述訪問(wèn)控制方法,其特征在于,所述將輸入的數(shù)據(jù)包解析成子數(shù) 據(jù)片的過(guò)程包括將輸入的數(shù)據(jù)包劃分為數(shù)據(jù)單元,將每個(gè)數(shù)據(jù)單元?jiǎng)澐譃榕cRLDRAM SIO存儲(chǔ)器內(nèi)部體 數(shù)量相等的子數(shù)據(jù)片。
7.—種RLDRAM SIO存儲(chǔ)器訪問(wèn)控制方法,其特征在于,包括對(duì)輸入的讀命令或者寫(xiě) 命令進(jìn)行地址解析和緩存得到操作命令隊(duì)列,并且,當(dāng)輸入的是寫(xiě)命令時(shí),將輸入的數(shù)據(jù)包 解析成子數(shù)據(jù)片;輸出所述子數(shù)據(jù)片以及操作命令隊(duì)列中的讀命令或者寫(xiě)命令到RLDRAM SIO存儲(chǔ)器。
8.根據(jù)權(quán)利要求7所述訪問(wèn)控制方法,其特征在于,所述對(duì)輸入的讀命令或者寫(xiě)命令 進(jìn)行地址解析和緩存得到的操作命令隊(duì)列,包括將包含數(shù)據(jù)單元寫(xiě)入地址和子數(shù)據(jù)片寫(xiě)入內(nèi)部體地址的二維地址信息依次與寫(xiě)命令 或讀命令建立對(duì)應(yīng)訪問(wèn)關(guān)系;將寫(xiě)命令及其訪問(wèn)的所述二維地址信息緩存入操作命令隊(duì)列,或者,將讀命令及其訪 問(wèn)的所述二維地址信息緩存入操作命令隊(duì)列。
9.一種RLDRAM SIO存儲(chǔ)器訪問(wèn)控制裝置,其特征在于,包括輸入操作控制模塊,用于對(duì)輸入的讀寫(xiě)命令和數(shù)據(jù)包進(jìn)行解析和分開(kāi)保存,并對(duì)保存 的讀寫(xiě)命令進(jìn)行統(tǒng)一排序得到操作命令隊(duì)列,將操作命令隊(duì)列發(fā)送到緩存模塊;緩存模塊,用于分別存儲(chǔ)操作命令隊(duì)列和由數(shù)據(jù)包解析得到的子數(shù)據(jù)片;輸出操作控制模塊,用于輸出操作命令隊(duì)列中的讀寫(xiě)命令到RLDRAM SIO存儲(chǔ)器。
10.根據(jù)權(quán)利要求9所述訪問(wèn)控制裝置,其特征在于,所述輸入操作控制模塊具體包括寫(xiě)數(shù)據(jù)包解析子模塊,用于將寫(xiě)命令對(duì)應(yīng)的輸入數(shù)據(jù)包劃分為數(shù)據(jù)單元,將每個(gè)數(shù)據(jù) 單元?jiǎng)澐譃榕cRLDRAM SIO存儲(chǔ)器內(nèi)部體數(shù)量相等的子數(shù)據(jù)片;寫(xiě)地址解析緩存子模塊,用于將包含數(shù)據(jù)單元寫(xiě)入地址和子數(shù)據(jù)片寫(xiě)入內(nèi)部體地址的 二維地址信息依次分配給對(duì)子數(shù)據(jù)片的寫(xiě)命令,存入寫(xiě)命令隊(duì)列;讀地址解析緩存子模塊,用于將所述二維地址信息依次分配給對(duì)子數(shù)據(jù)片的讀命令, 存入讀命令隊(duì)列;讀寫(xiě)命令排序子模塊,用于基于相同子數(shù)據(jù)片寫(xiě)入內(nèi)部體最小訪問(wèn)間隔的要求,對(duì)讀 命令隊(duì)列和寫(xiě)命令隊(duì)列統(tǒng)一重新排序得到操作命令隊(duì)列后輸出到緩存模塊。
11.根據(jù)權(quán)利要求10所述訪問(wèn)控制裝置,其特征在于,所述緩存模塊具體包括操作命令緩存子模塊,用于保存由讀寫(xiě)命令排序子模塊統(tǒng)一重新排序后的操作命令隊(duì)列;寫(xiě)數(shù)據(jù)緩存子模塊,用于保存由寫(xiě)數(shù)據(jù)包解析子模塊劃分成的所述子數(shù)據(jù)片。
12.根據(jù)權(quán)利要求9或10或11所述訪問(wèn)控制裝置,其特征在于,所述緩存模塊還包括 讀出數(shù)據(jù)緩存子模塊,用于存儲(chǔ)從RLDRAM SIO存儲(chǔ)器中讀出的子數(shù)據(jù)片;該裝置進(jìn)一步包括輸出數(shù)據(jù)模塊,用于將讀出數(shù)據(jù)緩存子模塊中的子數(shù)據(jù)片重新組合 成數(shù)據(jù)單元送出。
13.一種具有權(quán)9所述訪問(wèn)控制裝置的RLDRAM SIO存儲(chǔ)器系統(tǒng),其特征在于,RLDRAM SIO存儲(chǔ)器與所述訪問(wèn)控制裝置中的輸出操作控制模塊相連,所述訪問(wèn)控制裝置包括輸入操作控制模塊,用于對(duì)輸入的讀寫(xiě)命令和數(shù)據(jù)包進(jìn)行解析和分開(kāi)保存,并對(duì)保存 的讀寫(xiě)命令進(jìn)行統(tǒng)一排序得到操作命令隊(duì)列,將操作命令隊(duì)列發(fā)送到緩存模塊; 緩存模塊,用于分別存儲(chǔ)操作命令隊(duì)列和由數(shù)據(jù)包解析得到的子數(shù)據(jù)片; 輸出操作控制模塊,用于輸出操作命令隊(duì)列中的讀寫(xiě)命令到RLDRAM SIO存儲(chǔ)器。
全文摘要
本發(fā)明公開(kāi)了一種RLDRAM SIO存儲(chǔ)器訪問(wèn)控制方法和裝置,對(duì)輸入的讀寫(xiě)命令進(jìn)行地址解析和分開(kāi)保存,并對(duì)分開(kāi)保存的讀寫(xiě)命令進(jìn)行統(tǒng)一排序得到操作命令隊(duì)列,同時(shí)將輸入的數(shù)據(jù)包解析成子數(shù)據(jù)片;輸出子數(shù)據(jù)片以及操作命令隊(duì)列中的讀寫(xiě)命令到RLDRAM SIO存儲(chǔ)器。該裝置包括輸入操作控制模塊、緩存模塊和輸出操作控制模塊。本發(fā)明在現(xiàn)有IP核基礎(chǔ)上對(duì)讀寫(xiě)操作的訪問(wèn)地址進(jìn)行了優(yōu)化,并且合理安排存儲(chǔ)器的讀、寫(xiě)命令發(fā)送順序,使讀寫(xiě)操作達(dá)到帶寬的高效利用,大幅度提高RLDRAM SIO存儲(chǔ)器帶寬利用率。
文檔編號(hào)G06F12/02GK101916227SQ201010252679
公開(kāi)日2010年12月15日 申請(qǐng)日期2010年8月13日 優(yōu)先權(quán)日2010年8月13日
發(fā)明者張?zhí)m君 申請(qǐng)人:中興通訊股份有限公司