專利名稱::緩存數(shù)據(jù)寫入系統(tǒng)及方法和緩存數(shù)據(jù)讀取系統(tǒng)及方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及計(jì)算機(jī)通信
技術(shù)領(lǐng)域:
,特別涉及一種緩存數(shù)據(jù)寫入系統(tǒng)及方法和緩存數(shù)據(jù)讀取系統(tǒng)及方法。
背景技術(shù):
:包緩存是現(xiàn)代通訊設(shè)備中必不可少的關(guān)鍵技術(shù)之一,其主要作用是在流量擁塞時(shí)提供數(shù)據(jù)包緩存,以避免或減少流量丟失;隨著通訊設(shè)備的速度不斷提高,包緩存實(shí)現(xiàn)的難度也越來越大,其主要難點(diǎn)為大容量與高速度的結(jié)合。對(duì)高端路由器等通訊設(shè)備的一個(gè)基本要求是擁有一個(gè)能吸收至少200毫秒線速流量的包緩存,則在100Gbps的端口速度下,需要提供至少20Gb的緩存能力;包緩存同時(shí)必須提供同端口速度匹配的讀寫帶寬,高至100Gbps的端口速度使得使用低成本高容量動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DynamicRandom-AccessMemory,DRAM)作為包緩存變得非常困難。對(duì)于2層交換機(jī)等緩存容量要求不高的通訊設(shè)備,采用片內(nèi)緩存是個(gè)簡(jiǎn)單低成本的方法,將數(shù)據(jù)包直接緩存在芯片內(nèi)部的存儲(chǔ)器避免了使用片外存儲(chǔ)器帶來的額外代價(jià),不需要片外存儲(chǔ)控制器和相聯(lián)管腳也降低了芯片設(shè)計(jì)的復(fù)雜度和成本,并且片內(nèi)緩存能提供足夠的讀寫帶寬。提高包緩存容量的一個(gè)辦法是采用片外存儲(chǔ)器,同時(shí)為提供緩存所需的讀寫帶寬,通常采用高速的靜態(tài)隨機(jī)存儲(chǔ)器(StaticRandom-AccessMemory,SRAM)或?qū)S么鎯?chǔ)器如低延遲動(dòng)態(tài)隨機(jī)存儲(chǔ)器(RLDRAM)。通用的DRAM存儲(chǔ)器價(jià)格低廉,應(yīng)用范圍廣,單片容量可達(dá)lGb以上,是提供大容量包緩存的低成本低風(fēng)險(xiǎn)的方法。但是,發(fā)明人在實(shí)施本發(fā)明的過程中發(fā)現(xiàn),上述片內(nèi)高速緩存技術(shù)、片外高速緩存技術(shù)和片外大容量緩存技術(shù)均無法同時(shí)實(shí)現(xiàn)大容量、高速度和低成本的包緩存技術(shù),例如片內(nèi)緩存一般只能提供少于10Mb的緩存容量,不適合高端路由器和3層交換機(jī)等對(duì)緩存容量要求高的通訊設(shè)備;SRAM成本高且單片容量限制在72Mb以下,而專用存儲(chǔ)器也有成本高并且有供貨風(fēng)險(xiǎn)等缺點(diǎn);通用的DRAM存儲(chǔ)器讀寫效率低,有效帶寬受限制,難以滿足高端通訊設(shè)備的線速存儲(chǔ)要求。
發(fā)明內(nèi)容本發(fā)明實(shí)施例提供一種緩存數(shù)據(jù)寫入系統(tǒng)及方法和緩存數(shù)據(jù)讀取系統(tǒng)及方法,以提供大容量、高速度的包緩存技術(shù)。本發(fā)明實(shí)施例提供了一種緩存數(shù)據(jù)寫入系統(tǒng),該系統(tǒng)包括片內(nèi)存儲(chǔ)器,用于緩存接收到的寫請(qǐng)求及所述寫請(qǐng)求對(duì)應(yīng)的寫數(shù)據(jù),并對(duì)所述寫請(qǐng)求進(jìn)行重排序;請(qǐng)求判決器,用于根據(jù)片外存儲(chǔ)器的寫時(shí)序限制信息提取重排序后的寫請(qǐng)求及所述寫請(qǐng)求對(duì)應(yīng)的寫數(shù)據(jù);片外存儲(chǔ)控制器,用于將所述請(qǐng)求判決器提取的寫數(shù)據(jù)寫入所述片外存儲(chǔ)器。據(jù)存儲(chǔ)空間和高速的數(shù)據(jù)讀寫效率。本發(fā)明實(shí)施例提供了一種緩存數(shù)據(jù)讀取系統(tǒng),該系統(tǒng)包括片內(nèi)存儲(chǔ)器,包括第一模塊,用于緩存接收到的讀請(qǐng)求,并對(duì)所述讀請(qǐng)求進(jìn)行重排序;請(qǐng)求判決器,用于根據(jù)讀時(shí)序限制信息提取重排序后的讀請(qǐng)求并發(fā)送;片外存儲(chǔ)控制器,用于根據(jù)接收到的讀請(qǐng)求從片外存儲(chǔ)器中讀取數(shù)據(jù);所述片內(nèi)存儲(chǔ)器,還包括第二模塊,用于緩存所述讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù),對(duì)所述讀數(shù)據(jù)進(jìn)行重排序并發(fā)送。上述系統(tǒng),通過片內(nèi)存儲(chǔ)器和片外存儲(chǔ)器結(jié)合使用可以提供大容量的數(shù)據(jù)存儲(chǔ)空間和高速的數(shù)據(jù)讀寫效率。本發(fā)明實(shí)施例提供了一種緩存數(shù)據(jù)寫入方法,該方法包括接收寫請(qǐng)求及所述寫請(qǐng)求對(duì)應(yīng)的寫數(shù)據(jù);緩存接收到的寫請(qǐng)求對(duì)應(yīng)的寫數(shù)據(jù);緩存所述寫請(qǐng)求,并對(duì)所述寫請(qǐng)求進(jìn)行重排序;根據(jù)片外存儲(chǔ)器的寫時(shí)序限制信息提取重排序后的寫請(qǐng)求及所述寫請(qǐng)求對(duì)應(yīng)的寫數(shù)據(jù);將提取的寫數(shù)據(jù)寫入所述片外存儲(chǔ)器。上述方法,可以提供大容量的數(shù)據(jù)存儲(chǔ)空間和高速的數(shù)據(jù)讀寫效率。本發(fā)明實(shí)施例提供了一種緩存數(shù)據(jù)讀取方法,該方法包括緩存接收到的讀請(qǐng)求,并對(duì)所述讀請(qǐng)求進(jìn)行重排序;根據(jù)片外存儲(chǔ)器的讀時(shí)序限制信息提取重排序后的讀請(qǐng)求;根據(jù)提取的重排序后的讀請(qǐng)求從所述片外存儲(chǔ)器中讀取數(shù)據(jù);緩存所述提取的重排序后的讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù),并根據(jù)所述讀數(shù)據(jù)與讀請(qǐng)求的對(duì)應(yīng)關(guān)系對(duì)所述讀數(shù)據(jù)進(jìn)行重排序;將重排序后的所述讀數(shù)據(jù)發(fā)送給對(duì)應(yīng)的讀請(qǐng)求的請(qǐng)求方。上述方法,可以提供大容量的數(shù)據(jù)存儲(chǔ)空間和高速的數(shù)據(jù)讀寫效率。下面通過附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。圖1為本發(fā)明緩存數(shù)據(jù)寫入系統(tǒng)的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;圖2為本發(fā)明緩存數(shù)據(jù)寫入方法的一個(gè)實(shí)施例的流程圖;圖3為本發(fā)明緩存數(shù)據(jù)讀取系統(tǒng)的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;圖4為本發(fā)明緩存數(shù)據(jù)讀取方法的一個(gè)實(shí)施例的流程圖。具體實(shí)施方式如圖1所示,為本發(fā)明緩存數(shù)據(jù)寫入系統(tǒng)的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,該系統(tǒng)具體包括片內(nèi)存儲(chǔ)器1,用于緩存接收到的寫請(qǐng)求及上述寫請(qǐng)求對(duì)應(yīng)的寫數(shù)據(jù),并對(duì)上述寫請(qǐng)求進(jìn)行重排序;請(qǐng)求判決器2,用于根據(jù)片外存儲(chǔ)器的寫時(shí)序限制信息提取重排序后的寫請(qǐng)求及上述寫請(qǐng)求對(duì)應(yīng)的寫數(shù)據(jù);片外存儲(chǔ)控制器3,用于將上述請(qǐng)求判決器提取的寫數(shù)據(jù)寫入上述片外存儲(chǔ)器。其中,上述片內(nèi)存儲(chǔ)器包括緩存模塊111,用于緩存接收到的寫請(qǐng)求及上述寫請(qǐng)求對(duì)應(yīng)的寫數(shù)據(jù);為了提高片外存儲(chǔ)器寫數(shù)據(jù)的效率,需對(duì)上述寫請(qǐng)求進(jìn)行重排序,因而上述片內(nèi)存儲(chǔ)器還包括多個(gè)寫隊(duì)列,用于存儲(chǔ)寫請(qǐng)求,上述寫隊(duì)列的個(gè)數(shù)與片外存儲(chǔ)器的緩存區(qū)(bank)的個(gè)數(shù)相同;排序模塊112,用于將寫數(shù)據(jù)需寫入片外存儲(chǔ)器的同一個(gè)緩存區(qū)的寫請(qǐng)求按順序?qū)懭胪粋€(gè)上述寫隊(duì)列。其中,上述排序模塊還包括多個(gè)入隊(duì)計(jì)數(shù)器,每個(gè)上述入隊(duì)計(jì)數(shù)器對(duì)應(yīng)一個(gè)上述寫隊(duì)列,用于統(tǒng)計(jì)進(jìn)入對(duì)應(yīng)的寫隊(duì)列的寫請(qǐng)求的個(gè)數(shù);多個(gè)出隊(duì)計(jì)數(shù)器,每個(gè)上述出隊(duì)計(jì)數(shù)器對(duì)應(yīng)一個(gè)上述寫隊(duì)列,用于統(tǒng)計(jì)從對(duì)應(yīng)隊(duì)列中出隊(duì)的寫請(qǐng)求的個(gè)數(shù),上述入隊(duì)計(jì)數(shù)器和出隊(duì)計(jì)數(shù)器是為了保證提取讀寫請(qǐng)求的順序性而設(shè)置的,一個(gè)讀請(qǐng)求必須等到所有寫往片外存儲(chǔ)器的同一緩存區(qū)的寫請(qǐng)求都已經(jīng)從寫請(qǐng)求隊(duì)列中出隊(duì)后才能從相應(yīng)的讀請(qǐng)求隊(duì)列中出隊(duì)。另外,當(dāng)緩存的數(shù)據(jù)量較少時(shí),可將數(shù)據(jù)直接保存在片內(nèi)存儲(chǔ)器,而不需要寫入片外存儲(chǔ)器中;且上述片外存儲(chǔ)器可以為動(dòng)態(tài)隨機(jī)存儲(chǔ)器、同步靜態(tài)隨機(jī)存儲(chǔ)器或低延遲動(dòng)態(tài)隨機(jī)存儲(chǔ)器等,為了降低成本,也可釆用通用的動(dòng)態(tài)隨機(jī)存儲(chǔ)器。上述系統(tǒng)利用緩存模塊緩存寫請(qǐng)求和寫請(qǐng)求對(duì)應(yīng)的寫數(shù)據(jù),利用排序模塊對(duì)上述寫請(qǐng)求進(jìn)行排序,將排序后的寫請(qǐng)求按照片外存儲(chǔ)器的時(shí)序限制信息提取寫請(qǐng)求及其對(duì)應(yīng)的寫數(shù)據(jù)并發(fā)送至片外存儲(chǔ)控制器,然后由片外存儲(chǔ)器保存上述寫數(shù)據(jù),從而完成了緩存數(shù)據(jù)寫入操作。上述系統(tǒng),釆用片內(nèi)、片外存儲(chǔ)器結(jié)合使用,有效地提高了片外存儲(chǔ)器的讀寫效率,提供了高端通信設(shè)備所需的大容量的數(shù)據(jù)存儲(chǔ)空間和高速的數(shù)據(jù)讀寫效率。如圖2所示,為本發(fā)明緩存數(shù)據(jù)寫入方法的一個(gè)實(shí)施例的流程圖,該方法具體包括步驟IOI、接收寫請(qǐng)求及上述寫請(qǐng)求對(duì)應(yīng)的寫數(shù)據(jù);步驟102、緩存接收到的寫請(qǐng)求對(duì)應(yīng)的寫數(shù)據(jù);步驟103、緩存上述寫請(qǐng)求,并對(duì)上述寫請(qǐng)求進(jìn)行重排序;對(duì)上述寫請(qǐng)求進(jìn)行重排序具體包括將寫請(qǐng)求存儲(chǔ)在多個(gè)寫隊(duì)列中,上述寫隊(duì)列的個(gè)數(shù)與片外存儲(chǔ)器的緩存區(qū)的個(gè)數(shù)相同;將寫數(shù)據(jù)需寫入片外存儲(chǔ)器的同一個(gè)緩存區(qū)的寫請(qǐng)求按順序?qū)懭胪粋€(gè)上述寫隊(duì)列;通過上述重排序操作可以將寫請(qǐng)求快速寫入多個(gè)隊(duì)列,在上述重排序的過程中,還統(tǒng)計(jì)進(jìn)入每個(gè)隊(duì)列的寫請(qǐng)求的個(gè)數(shù)和從上述同一隊(duì)列中出隊(duì)的寫請(qǐng)求的個(gè)數(shù)并發(fā)送,上述統(tǒng)計(jì)操作是為了保證讀寫請(qǐng)求的順序,因?yàn)橐粋€(gè)讀請(qǐng)求必須等到所有寫往片外存儲(chǔ)器的同一緩存區(qū)的寫請(qǐng)求都已經(jīng)從寫請(qǐng)求隊(duì)列中出隊(duì)后才能從相應(yīng)的讀請(qǐng)求隊(duì)列中出隊(duì)。另外,在上述緩存上述寫請(qǐng)求,并對(duì)上述寫請(qǐng)求進(jìn)行重排序之前還包括確定上述寫請(qǐng)求對(duì)應(yīng)的寫數(shù)據(jù)的地址在第一預(yù)定地址范圍之外;上述第一預(yù)定地址可根據(jù)需要進(jìn)行設(shè)置,緩存這些數(shù)據(jù)的目的是為了進(jìn)行后續(xù)的讀操作;步驟104、根據(jù)片外存儲(chǔ)器的寫時(shí)序限制信息提取重排序后的寫請(qǐng)求及上述寫請(qǐng)求對(duì)應(yīng)的寫數(shù)據(jù);上述片外存儲(chǔ)器的時(shí)序限制信息可以是DRAM的時(shí)序限制信息;步驟105、將提取的寫數(shù)據(jù)寫入上述片外存儲(chǔ)器。將提取的寫數(shù)據(jù)寫入上述片外存儲(chǔ)器,從而完成了緩存數(shù)據(jù)的寫入過程。上述方法,通過對(duì)寫請(qǐng)求重排序,大大提高了數(shù)據(jù)的寫入速度,從而可以實(shí)現(xiàn)大容量的數(shù)據(jù)存儲(chǔ)空間和高速的數(shù)據(jù)讀寫效率。如圖3所示,為本發(fā)明緩存數(shù)據(jù)讀取系統(tǒng)的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,該系統(tǒng)具體包括片內(nèi)存儲(chǔ)器1,包括第一模塊,用于緩存接收到的讀請(qǐng)求及上述讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù),對(duì)上述讀請(qǐng)求和讀數(shù)據(jù)進(jìn)行重排序,并發(fā)送重排序后的讀數(shù)據(jù);請(qǐng)求判決器2,用于根據(jù)讀時(shí)序限制信息提取重排序后的讀請(qǐng)求并發(fā)送;片外存儲(chǔ)控制器3,用于根據(jù)接收到的讀請(qǐng)求從片外存儲(chǔ)器中讀取數(shù)據(jù);上述片內(nèi)存儲(chǔ)器1,還包括第二模塊,用于緩存上述讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù),對(duì)上述讀數(shù)據(jù)進(jìn)行重排序并發(fā)送。其中,上述第一模塊包括第一緩存模塊121,用于緩存接收到的讀請(qǐng)求;為了提高片外存儲(chǔ)器讀數(shù)據(jù)的效率,需對(duì)上述讀請(qǐng)求進(jìn)行重排序,因而上述第一模塊還包括多個(gè)讀隊(duì)列,用于存儲(chǔ)讀請(qǐng)求,上述讀隊(duì)列的個(gè)數(shù)與片外存儲(chǔ)器的緩存區(qū)的個(gè)數(shù)相同;排序模塊122,用于將讀數(shù)據(jù)需從片外存儲(chǔ)器的同一個(gè)緩存區(qū)讀出的讀請(qǐng)求按順序?qū)懭胪粋€(gè)讀隊(duì)列。另外,上述第二模塊包括第二緩存模塊123,用于緩存接收到的上述讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù);發(fā)送模塊124,用于按讀請(qǐng)求的順序,發(fā)送上述讀請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)。上述重排序操作提高了片外存儲(chǔ)器讀數(shù)據(jù)的效率,但也打亂了原來讀請(qǐng)求的順序,因此當(dāng)數(shù)據(jù)讀回片內(nèi)存儲(chǔ)器后,還需對(duì)這些數(shù)據(jù)進(jìn)行重排序,因而上述片內(nèi)存儲(chǔ)器包括請(qǐng)求緩存模塊125,用于按接收到的讀請(qǐng)求的順序保存上述讀請(qǐng)求;讀回記錄模塊126,用于記錄為請(qǐng)求緩存模塊125中保存的每個(gè)讀請(qǐng)求分配的用于緩存從片外存儲(chǔ)器讀回來的數(shù)據(jù)在片內(nèi)存儲(chǔ)器的地址;上述第二緩存模塊123具體為數(shù)據(jù)緩存模塊,用于將從片外存儲(chǔ)器讀回的數(shù)據(jù)緩存在讀回記錄模塊記錄的地址上;上述發(fā)送模塊124具體為順序發(fā)送模塊,用于按照上述請(qǐng)求緩存模塊保存的讀請(qǐng)求與上述讀回記錄模塊記錄緩存^f莫塊中的數(shù)據(jù)發(fā)送至對(duì)應(yīng)讀請(qǐng)求的請(qǐng)求方。上述片外存儲(chǔ)器可以為動(dòng)態(tài)隨機(jī)存儲(chǔ)器、同步靜態(tài)隨機(jī)存儲(chǔ)器或低延遲動(dòng)態(tài)隨機(jī)存儲(chǔ)器等,為了降低成本,也可采用通用的動(dòng)態(tài)隨機(jī)存儲(chǔ)器。上述排序模塊還包括多個(gè)讀請(qǐng)求計(jì)數(shù)器,每個(gè)上述讀請(qǐng)求計(jì)數(shù)器對(duì)應(yīng)一個(gè)上述讀隊(duì)列,用于記錄讀請(qǐng)求進(jìn)入讀隊(duì)列時(shí),與讀隊(duì)列對(duì)應(yīng)片外存儲(chǔ)器的同一個(gè)緩存區(qū)的寫隊(duì)列的入隊(duì)計(jì)數(shù)器的值;上述請(qǐng)求判決器在根據(jù)讀時(shí)序限制信息提取重排序后的讀請(qǐng)求的過程中,需要保證提取讀寫請(qǐng)求的順序性,因而上述請(qǐng)求判決器還包括'.判決模塊,用于接收出隊(duì)計(jì)數(shù)器的值和讀請(qǐng)求計(jì)數(shù)器的值,并當(dāng)讀請(qǐng)求計(jì)數(shù)器的值不大于出隊(duì)計(jì)數(shù)器的值時(shí),提取該隊(duì)列中的讀請(qǐng)求并發(fā)送;這表明一個(gè)讀請(qǐng)求必須等到所有寫往片外存^f諸器的同一緩存區(qū)的寫請(qǐng)求都已經(jīng)從寫請(qǐng)求隊(duì)列中出隊(duì)后才能從相應(yīng)的讀請(qǐng)求隊(duì)列中出隊(duì)。另外,當(dāng)待讀取的數(shù)據(jù)在片內(nèi)存儲(chǔ)器時(shí),可從片內(nèi)存儲(chǔ)器直接獲得上述數(shù)據(jù),因而,上述片內(nèi)存儲(chǔ)器還包括第一判斷模塊131,用于判斷讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù)是否在第一預(yù)定地址范圍內(nèi);第一讀取模塊132,用于當(dāng)讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù)在第一預(yù)定地址范圍內(nèi)時(shí),將讀請(qǐng)求發(fā)送至請(qǐng)求緩存模塊125,并從上述數(shù)據(jù)緩存模塊中讀取數(shù)據(jù);上述操作,減少或避免了把數(shù)據(jù)寫到片外DRAM后再讀回來的過程,從而進(jìn)一步提高通訊設(shè)備包緩存的有效帶寬。另外,當(dāng)寫數(shù)據(jù)從片內(nèi)存儲(chǔ)器寫到片外存儲(chǔ)器后,若片內(nèi)存儲(chǔ)器中保存上述寫數(shù)據(jù)的地址還未被用來寫新的數(shù)據(jù),則可直接從片內(nèi)存儲(chǔ)器中讀數(shù)據(jù),因而,上述片內(nèi)存儲(chǔ)器還包括第二判斷模塊133,用于當(dāng)讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù)在第二預(yù)定地址范圍內(nèi)時(shí),判斷上述讀數(shù)據(jù)在緩存模塊中的地址是否被寫入新的數(shù)據(jù);第二讀取模塊134,用于當(dāng)上述讀數(shù)據(jù)在緩存模塊中的地址未被寫入新的數(shù)據(jù)時(shí),將上述讀請(qǐng)求發(fā)送至上述請(qǐng)求緩存才莫塊,并從上述緩存模塊中讀取數(shù)據(jù);因而可以將圖3中的第一判斷模塊131用第二判斷模塊133代替,第一讀取模塊132用第二讀取模塊134代替。上述系統(tǒng)利用緩存模塊緩存接收到的讀請(qǐng)求及其對(duì)應(yīng)的讀數(shù)據(jù),并利用排序模塊對(duì)上述讀請(qǐng)求進(jìn)行排序,然后通過請(qǐng)求判決器根據(jù)讀時(shí)序限制信息提取重排序后的讀請(qǐng)求并發(fā)送,片外存儲(chǔ)控制器根據(jù)接收到的讀請(qǐng)求從片外存儲(chǔ)器中讀取數(shù)據(jù)至片內(nèi)存儲(chǔ)器,然后利用請(qǐng)求緩存模塊、讀回記錄模塊和數(shù)據(jù)緩存模塊對(duì)讀取的數(shù)據(jù)進(jìn)行重排序并發(fā)送,從而完成了數(shù)據(jù)讀取的操作。上述時(shí)序限制信息為片外存儲(chǔ)器的時(shí)序限制信息,對(duì)于不同的片外存儲(chǔ)器,其時(shí)序限制信息是不同的,例如表1為DDR2DRAM讀寫時(shí)序要求的一個(gè)例子。表1<table>tableseeoriginaldocumentpage15</column></row><table>為滿足上述時(shí)序要求,請(qǐng)求判決器可以用下面的方式從讀請(qǐng)求隊(duì)列和寫請(qǐng)求隊(duì)列中讀取請(qǐng)求,其中緩存區(qū)bank為上述讀、寫請(qǐng)求隊(duì)列對(duì)應(yīng)的片外存儲(chǔ)器中的緩存區(qū)。用A(n),R(n),W(n)分別表示激活bankn,讀bankn,和寫bankn的命令,定義下面3種命令組讀命令組R(n,m)=[A(n)R(m)NopNopNopR(m)NopNop];寫命令組W(n,m)=[A(n)W(m)NopNopNopW(m)N叩Nop];無^乘作命令組N(k)=[kNopcommands]。對(duì)于8-bank的DDR2DRAM,請(qǐng)求判決器可以按下面表2中的固定的周期性順序提取有效的讀寫請(qǐng)求表2<table>tableseeoriginaldocumentpage16</column></row><table>如果某個(gè)bank的讀或?qū)懻?qǐng)求隊(duì)列中沒有有效的請(qǐng)求,那么其對(duì)應(yīng)的讀或?qū)懢透臑闊o操作命令組N(8)。在每個(gè)讀寫請(qǐng)求隊(duì)列都有有效請(qǐng)求的條件下,上述的方法可以達(dá)至'J128/149=86%的DRAM讀寫效率。上述系統(tǒng),采用片內(nèi)、片外存儲(chǔ)器結(jié)合使用,有效地提高了片外存儲(chǔ)器的讀寫效率,提供了高端通信設(shè)備所需的大容量的數(shù)據(jù)存儲(chǔ)空間和高速的數(shù)據(jù)讀寫效率,并可為中低端設(shè)備配置靈活的包緩存解決方案。如圖4所示,為本發(fā)明緩存數(shù)據(jù)讀取方法的一個(gè)實(shí)施例的流程圖,該方法具體包括步驟201、緩存接收到的讀請(qǐng)求,并對(duì)上述讀請(qǐng)求進(jìn)行重排序;對(duì)上述讀請(qǐng)求進(jìn)行重排序具體包括將讀請(qǐng)求存儲(chǔ)在多個(gè)讀隊(duì)列中,上述讀隊(duì)列的個(gè)數(shù)與片外存儲(chǔ)器的緩存區(qū)的個(gè)數(shù)相同;將讀數(shù)據(jù)需從片外存儲(chǔ)器的同一個(gè)緩存區(qū)讀出的讀請(qǐng)求按順序?qū)懭胪粋€(gè)讀隊(duì)列;在對(duì)上述讀請(qǐng)求進(jìn)行重排序的過程中還包括統(tǒng)計(jì)進(jìn)入同一隊(duì)列的讀請(qǐng)求的個(gè)數(shù)并發(fā)送;步驟202、根據(jù)片外存儲(chǔ)器的讀時(shí)序限制信息提取重排序后的讀請(qǐng)求;根據(jù)片外存儲(chǔ)器的讀時(shí)序限制信息提取重排序后的讀請(qǐng)求的過程中,在提取某一隊(duì)列中的讀請(qǐng)求時(shí),接收從同一寫隊(duì)列中出隊(duì)的所有寫請(qǐng)求的個(gè)數(shù)和進(jìn)入上述同一讀隊(duì)列的讀請(qǐng)求的個(gè)數(shù),并當(dāng)進(jìn)入上述同一讀隊(duì)列的讀請(qǐng)求的個(gè)數(shù)不大于從同一寫隊(duì)列中出隊(duì)的所有寫請(qǐng)求的個(gè)數(shù)時(shí),提取上述讀隊(duì)列中的讀請(qǐng)求;步驟203、根據(jù)提取的重排序后的讀請(qǐng)求從上述片外存儲(chǔ)器中讀取數(shù)據(jù);步驟204、緩存上述提取的重排序后的讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù),并根據(jù)上述讀數(shù)據(jù)與讀請(qǐng)求的對(duì)應(yīng)關(guān)系對(duì)上述讀數(shù)據(jù)進(jìn)行重排序;根據(jù)上述讀數(shù)據(jù)與讀請(qǐng)求的對(duì)應(yīng)關(guān)系對(duì)讀取的數(shù)據(jù)進(jìn)行重排序具體包括按接收到的讀請(qǐng)求的順序保存上述讀請(qǐng)求;記錄為上述讀請(qǐng)求分配的用于緩存讀數(shù)據(jù)的緩存地址;將從片外讀取的讀數(shù)據(jù)緩存在對(duì)應(yīng)的讀請(qǐng)求對(duì)應(yīng)的上述緩存地址上;步驟205、將重排序后的上述讀數(shù)據(jù)發(fā)送給對(duì)應(yīng)的讀請(qǐng)求的請(qǐng)求方。當(dāng)上述緩存地址上緩存有有效的讀數(shù)據(jù)時(shí),將該有效的讀數(shù)據(jù)發(fā)送給對(duì)應(yīng)的讀請(qǐng)求的請(qǐng)求方。另外,步驟201中對(duì)上述讀請(qǐng)求進(jìn)行重排序之前還包括判斷讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù)是否在第一預(yù)定地址范圍內(nèi),當(dāng)讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù)在第一預(yù)定地址范圍內(nèi)時(shí),將按接收到的讀請(qǐng)求的順序從緩存的在第一預(yù)定地址范圍內(nèi)的數(shù)據(jù)中讀取數(shù)據(jù);當(dāng)讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù)不在第一預(yù)定地址范圍內(nèi)時(shí),則對(duì)上述讀請(qǐng)求進(jìn)行重排序。上述步驟201中對(duì)上述讀請(qǐng)求進(jìn)行重排序之前還包括判斷讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù)是否在第二預(yù)定地址范圍內(nèi),當(dāng)讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù)在第二預(yù)定地址范圍內(nèi)時(shí),判斷上述保存讀數(shù)據(jù)的地址是否被寫入新的數(shù)據(jù),若未被寫入新的數(shù)據(jù),則按接收到的讀請(qǐng)求的順序從緩存的在第二預(yù)定地址范圍內(nèi)的數(shù)據(jù)中讀取數(shù)據(jù);否則,對(duì)上述讀請(qǐng)求進(jìn)行重排序。上述方法,有效地提高了片外存儲(chǔ)器的讀寫效率,提供了高端通信設(shè)備所需的大容量的數(shù)據(jù)存儲(chǔ)空間和高速的數(shù)據(jù)讀寫效率,并可為中低端設(shè)備配置靈活的包緩存解決方案。最后應(yīng)說明的是以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)4亍修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。權(quán)利要求1、一種緩存數(shù)據(jù)寫入系統(tǒng),其特征在于包括片內(nèi)存儲(chǔ)器,用于緩存接收到的寫請(qǐng)求及所述寫請(qǐng)求對(duì)應(yīng)的寫數(shù)據(jù),并對(duì)所述寫請(qǐng)求進(jìn)行重排序;請(qǐng)求判決器,用于根據(jù)片外存儲(chǔ)器的寫時(shí)序限制信息提取重排序后的寫請(qǐng)求及所述寫請(qǐng)求對(duì)應(yīng)的寫數(shù)據(jù);片外存儲(chǔ)控制器,用于將所述請(qǐng)求判決器提取的寫數(shù)據(jù)寫入所述片外存儲(chǔ)器。2、根據(jù)權(quán)利要求1所述的緩存數(shù)據(jù)寫入系統(tǒng),其特征在于所述片內(nèi)存儲(chǔ)器包括緩存模塊,用于緩存所述寫請(qǐng)求對(duì)應(yīng)的寫數(shù)據(jù);多個(gè)寫隊(duì)列,用于存儲(chǔ)寫請(qǐng)求,所述寫隊(duì)列的個(gè)數(shù)與所述片外存儲(chǔ)器的緩存區(qū)的個(gè)數(shù)相同;排序模塊,用于將寫數(shù)據(jù)需寫入片外存儲(chǔ)器的同一個(gè)緩存區(qū)的寫請(qǐng)求按順序?qū)懭胪粋€(gè)所述寫隊(duì)列。3、根據(jù)權(quán)利要求2所述的緩存數(shù)據(jù)寫入系統(tǒng),其特征在于所述片內(nèi)存儲(chǔ)器還包括多個(gè)入隊(duì)計(jì)數(shù)器,每個(gè)所述入隊(duì)計(jì)數(shù)器對(duì)應(yīng)一個(gè)所述寫隊(duì)列,用于統(tǒng)計(jì)進(jìn)入對(duì)應(yīng)的寫隊(duì)列的寫請(qǐng)求的個(gè)數(shù);多個(gè)出隊(duì)計(jì)數(shù)器,每個(gè)所述出隊(duì)計(jì)數(shù)器對(duì)應(yīng)一個(gè)所述寫隊(duì)列,用于統(tǒng)計(jì)從對(duì)應(yīng)隊(duì)列中出隊(duì)的寫請(qǐng)求的個(gè)數(shù)。4、根據(jù)權(quán)利要求1所述的緩存數(shù)據(jù)寫入系統(tǒng),其特征在于所述片外存儲(chǔ)器具體為動(dòng)態(tài)隨機(jī)存儲(chǔ)器、同步靜態(tài)隨機(jī)存儲(chǔ)器或低延遲動(dòng)態(tài)隨機(jī)存儲(chǔ)器。5、一種緩存數(shù)據(jù)讀取系統(tǒng),其特征在于包括片內(nèi)存儲(chǔ)器,包括第一模塊,用于緩存接收到的讀請(qǐng)求,并對(duì)所述讀請(qǐng)求進(jìn)行重排序;請(qǐng)求判決器,用于根據(jù)讀時(shí)序限制信息提取重排序后的讀請(qǐng)求并發(fā)送;片外存儲(chǔ)控制器,用于根據(jù)接收到的讀請(qǐng)求從片外存儲(chǔ)器中讀取數(shù)據(jù);所述片內(nèi)存儲(chǔ)器,還包括第二模塊,用于緩存所述讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù),對(duì)所述讀數(shù)據(jù)進(jìn)行重排序并發(fā)送。6、根據(jù)權(quán)利要求5所述的緩存數(shù)據(jù)讀取系統(tǒng),其特征在于所述第一模塊包括第一緩存模塊,用于緩存接收到的讀請(qǐng)求;多個(gè)讀隊(duì)列,用于存儲(chǔ)讀請(qǐng)求,所述讀隊(duì)列的個(gè)數(shù)與片外存儲(chǔ)器的緩存區(qū)的個(gè)凄t相同;排序模塊,用于將讀數(shù)據(jù)需從片外存儲(chǔ)器的同一個(gè)緩存區(qū)讀出的讀請(qǐng)求按順序?qū)懭胪粋€(gè)讀隊(duì)列;所述第二模塊包括第二緩存模塊,用于緩存接收到的所述讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù);發(fā)送模塊,用于按讀請(qǐng)求的順序,發(fā)送所述讀請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)。7、根據(jù)權(quán)利要求5或6所述的緩存數(shù)據(jù)讀取系統(tǒng),其特征在于所述片內(nèi)存儲(chǔ)器還包括請(qǐng)求緩存模塊,用于按接收到的讀請(qǐng)求的順序保存所述讀請(qǐng)求;讀回記錄模塊,用于記錄為請(qǐng)求緩存模塊中保存的每個(gè)讀請(qǐng)求分配的用于緩存從片外存儲(chǔ)器讀回來的數(shù)據(jù)在片內(nèi)存儲(chǔ)器的地址;所述第二緩存模塊具體為數(shù)據(jù)緩存模塊,用于將從片外存儲(chǔ)器讀回的數(shù)據(jù)緩存在讀回記錄模塊記錄的地址上;所述發(fā)送模塊具體為順序發(fā)送模塊,用于按照所述請(qǐng)求緩存模塊保存的讀請(qǐng)求與所述讀回記錄模塊記錄的從片外存儲(chǔ)器都回來的數(shù)據(jù)在片內(nèi)存儲(chǔ)器的地址的對(duì)應(yīng)關(guān)系,將所述數(shù)據(jù)緩存模塊中的數(shù)據(jù)發(fā)送至對(duì)應(yīng)讀請(qǐng)求的請(qǐng)求方。8、根據(jù)權(quán)利要求5所述的緩存數(shù)據(jù)讀取系統(tǒng),其特征在于所述片外存儲(chǔ)器具體為動(dòng)態(tài)隨機(jī)存儲(chǔ)器、同步靜態(tài)隨機(jī)存儲(chǔ)器或低延遲動(dòng)態(tài)隨機(jī)存儲(chǔ)器。9、根據(jù)權(quán)利要求6所述的緩存數(shù)據(jù)讀取系統(tǒng),其特征在于所述排序模塊還包括多個(gè)讀請(qǐng)求計(jì)數(shù)器,每個(gè)所述讀請(qǐng)求計(jì)數(shù)器對(duì)應(yīng)一個(gè)所述讀隊(duì)列,用于記錄讀請(qǐng)求進(jìn)入讀隊(duì)列時(shí),與讀隊(duì)列對(duì)應(yīng)外存儲(chǔ)器的同一個(gè)緩存區(qū)的寫隊(duì)列的入隊(duì)計(jì)數(shù)器的值;所述請(qǐng)求判決器包括判決模塊,用于接收出隊(duì)計(jì)數(shù)器的值和讀請(qǐng)求計(jì)數(shù)器的值,并當(dāng)讀請(qǐng)求計(jì)數(shù)器的值不大于出隊(duì)計(jì)數(shù)器的值時(shí),提取所述讀隊(duì)列中的讀請(qǐng)求。10、根據(jù)權(quán)利要求7所述的緩存數(shù)據(jù)讀取系統(tǒng),其特征在于所述片內(nèi)存儲(chǔ)器還包括第一判斷模塊,用于判斷讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù)是否在第一預(yù)定地址范圍內(nèi);第一讀取it塊,用于當(dāng)讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù)在第一預(yù)定地址范圍內(nèi)時(shí),將讀請(qǐng)求發(fā)送至所述請(qǐng)求緩存模塊,并從所述數(shù)據(jù)緩存模塊中讀取數(shù)據(jù)。11、根據(jù)權(quán)利要求7所述的緩存數(shù)據(jù)讀取系統(tǒng),其特征在于所述片內(nèi)存儲(chǔ)器還包括第二判斷模塊,用于當(dāng)讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù)在第二預(yù)定地址范圍內(nèi)時(shí),判斷所述讀數(shù)據(jù)在緩存模塊中的地址是否被寫入新的數(shù)據(jù);第二讀取模塊,用于當(dāng)所述讀數(shù)據(jù)在緩存模塊中的地址未被寫入新的數(shù)據(jù)時(shí),將所述讀請(qǐng)求發(fā)送至所述請(qǐng)求緩存模塊,并從所述緩存模塊中讀取數(shù)據(jù)。12、一種緩存數(shù)據(jù)寫入方法,其特征在于包括接收寫請(qǐng)求及所述寫請(qǐng)求對(duì)應(yīng)的寫數(shù)據(jù);緩存接收到的寫請(qǐng)求對(duì)應(yīng)的寫數(shù)據(jù);緩存所述寫請(qǐng)求,并對(duì)所述寫請(qǐng)求進(jìn)行重排序;根據(jù)片外存儲(chǔ)器的寫時(shí)序限制信息提取重排序后的寫請(qǐng)求及所述寫請(qǐng)求對(duì)應(yīng)的寫數(shù)據(jù);將提取的寫數(shù)據(jù)寫入所述片外存儲(chǔ)器。13、根據(jù)權(quán)利要求12所述的緩存數(shù)據(jù)寫入方法,其特征在于所述對(duì)所述寫請(qǐng)求進(jìn)行重排序具體包括將寫請(qǐng)求存儲(chǔ)在多個(gè)寫對(duì)列中,所述寫隊(duì)列的個(gè)數(shù)與片外存儲(chǔ)器的緩存區(qū)的個(gè)凄t相同;將寫數(shù)據(jù)需寫入片外存儲(chǔ)器的同一個(gè)緩存區(qū)的寫請(qǐng)求按順序?qū)懭胪粋€(gè)所述寫隊(duì)列。14、根據(jù)權(quán)利要求12所述的緩存數(shù)據(jù)寫入方法,其特征在于所述對(duì)所述寫請(qǐng)求進(jìn)行重排序還包括統(tǒng)計(jì)進(jìn)入同一隊(duì)列的寫請(qǐng)求的個(gè)數(shù);統(tǒng)計(jì)從所述同一隊(duì)列中出隊(duì)的寫請(qǐng)求的個(gè)數(shù)。15、根據(jù)權(quán)利要求12-14任一所述的緩存數(shù)據(jù)寫入方法,其特征在于在所述緩存所述寫請(qǐng)求,并對(duì)所述寫請(qǐng)求進(jìn)行重排序之前還包括確定所述寫請(qǐng)求對(duì)應(yīng)的寫數(shù)據(jù)的地址在第一預(yù)定地址范圍之外。16、一種緩存數(shù)據(jù)讀取方法,其特征在于包括緩存接收到的讀請(qǐng)求,并對(duì)所述讀請(qǐng)求進(jìn)行重排序;根據(jù)片外存儲(chǔ)器的讀時(shí)序限制信息提取重排序后的讀請(qǐng)求;根據(jù)提取的重排序后的讀請(qǐng)求從所述片外存儲(chǔ)器中讀取數(shù)據(jù);緩存所述提取的重排序后的讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù),并根據(jù)所述讀數(shù)據(jù)與讀請(qǐng)求的對(duì)應(yīng)關(guān)系對(duì)所述讀數(shù)據(jù)進(jìn)行重排序;將重排序后的所述讀數(shù)據(jù)發(fā)送給對(duì)應(yīng)的讀請(qǐng)求的請(qǐng)求方。17、根據(jù)權(quán)利要求16所述的緩存數(shù)據(jù)讀取方法,其特征在于所述對(duì)所述讀請(qǐng)求進(jìn)行重排序具體包括將讀請(qǐng)求存儲(chǔ)在多個(gè)讀隊(duì)列中,所述讀隊(duì)列的個(gè)數(shù)與片外存儲(chǔ)器的緩存區(qū)的個(gè)凄t相同;將讀數(shù)據(jù)需從片外存儲(chǔ)器的同一個(gè)緩存區(qū)讀出的讀請(qǐng)求按順序?qū)懭胪粋€(gè)讀隊(duì)列。18、根據(jù)權(quán)利要求16或17所述的緩存數(shù)據(jù)讀取方法,其特征在于所述根據(jù)所述讀數(shù)據(jù)與讀請(qǐng)求的對(duì)應(yīng)關(guān)系對(duì)所述讀數(shù)據(jù)進(jìn)行重排序具體包括按接收到的讀請(qǐng)求的順序保存所述讀請(qǐng)求;記錄為按接收到的讀請(qǐng)求的順序保存的每個(gè)讀請(qǐng)求分配的用于緩存讀數(shù)據(jù)的緩存地址;將從片外讀取的讀數(shù)據(jù)緩存在對(duì)應(yīng)的讀請(qǐng)求對(duì)應(yīng)的所述緩存地址上;所述將重排序后的所述讀數(shù)據(jù)發(fā)送給對(duì)應(yīng)的讀請(qǐng)求的請(qǐng)求方具體為當(dāng)所述緩存地址上緩存有有效的讀數(shù)據(jù)時(shí),將該有效的讀數(shù)據(jù)發(fā)送給對(duì)應(yīng)的讀請(qǐng)求的請(qǐng)求方。19、根據(jù)權(quán)利要求17所述的緩存數(shù)據(jù)讀取方法,其特征在于所述對(duì)所述讀請(qǐng)求進(jìn)行重排序還包括統(tǒng)計(jì)進(jìn)入第一讀隊(duì)列的讀請(qǐng)求的個(gè)數(shù);所述提取重排序后的讀請(qǐng)求包括當(dāng)進(jìn)入所述第一讀隊(duì)列的讀請(qǐng)求的個(gè)數(shù)不大于從第一寫隊(duì)列中出隊(duì)的所有寫請(qǐng)求的個(gè)數(shù)時(shí),提取該第一讀隊(duì)列中的讀請(qǐng)求;所述第一讀隊(duì)列和所述第一寫隊(duì)列對(duì)應(yīng)所述片外存儲(chǔ)器的同一個(gè)緩存區(qū)。20、根據(jù)權(quán)利要求16所述的緩存數(shù)據(jù)讀取方法,其特征在于所述對(duì)所述讀請(qǐng)求進(jìn)行重排序之前還包括判斷讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù)是否在第一預(yù)定地址范圍內(nèi),當(dāng)讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù)在第一預(yù)定地址范圍內(nèi)時(shí),將按接收到的讀請(qǐng)求的順序從緩存的在第一預(yù)定地址范圍內(nèi)的數(shù)據(jù)中讀取數(shù)據(jù);當(dāng)讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù)不在第一預(yù)定地址范圍內(nèi)時(shí),則對(duì)所述讀請(qǐng)求進(jìn)行重排序。21、根據(jù)權(quán)利要求16所述的緩存數(shù)據(jù)讀取方法,其特征在于所述對(duì)所述讀請(qǐng)求進(jìn)行重排序之前還包括判斷讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù)是否在第二預(yù)定地址范圍內(nèi),當(dāng)讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù)在第二預(yù)定地址范圍內(nèi)時(shí),判斷所述保存讀數(shù)據(jù)的地址是否被寫入新的數(shù)據(jù),若未被寫入新的數(shù)據(jù),則按接收到的讀請(qǐng)求的順序從緩存的在第二預(yù)定地址范圍內(nèi)的數(shù)據(jù)中讀取數(shù)據(jù);否則,對(duì)所述讀請(qǐng)求進(jìn)行重排序。全文摘要本發(fā)明實(shí)施例涉及一種緩存數(shù)據(jù)寫入系統(tǒng)及方法和緩存數(shù)據(jù)讀取系統(tǒng)及方法,該緩存數(shù)據(jù)寫入系統(tǒng)包括片內(nèi)存儲(chǔ)器,用于緩存接收到的寫請(qǐng)求及所述寫請(qǐng)求對(duì)應(yīng)的寫數(shù)據(jù),并對(duì)所述寫請(qǐng)求進(jìn)行重排序;請(qǐng)求判決器,用于根據(jù)片外存儲(chǔ)器的寫時(shí)序限制信息提取重排序后的寫請(qǐng)求及所述寫請(qǐng)求對(duì)應(yīng)的寫數(shù)據(jù);片外存儲(chǔ)控制器,用于將所述請(qǐng)求判決器提取的寫數(shù)據(jù)寫入所述片外存儲(chǔ)器;上述緩存數(shù)據(jù)寫入方法和緩存數(shù)據(jù)讀取系統(tǒng)及方法,可以提供大容量的數(shù)據(jù)存儲(chǔ)空間和高速的數(shù)據(jù)讀寫效率。文檔編號(hào)H04L12/56GK101246460SQ20081010166公開日2008年8月20日申請(qǐng)日期2008年3月10日優(yōu)先權(quán)日2008年3月10日發(fā)明者卞云峰,暉呂,林君亮,羅海燕,勤鄭申請(qǐng)人:華為技術(shù)有限公司