專(zhuān)利名稱(chēng):一種提高ddr存儲(chǔ)器讀寫(xiě)速率的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及到通信系統(tǒng)雙數(shù)據(jù)速率DDR存儲(chǔ)器讀寫(xiě)技木,特別涉及到ー種當(dāng)DDR存儲(chǔ)器用作首進(jìn)首出FIFCKFirst In First Out,簡(jiǎn)稱(chēng)為FIFO)緩存時(shí),提高DDR存儲(chǔ)器讀寫(xiě)速率的方法。
背景技術(shù):
雙數(shù)據(jù)速率存儲(chǔ)器DDR (Double Data Rate,簡(jiǎn)稱(chēng)為DDR)由于其優(yōu)異的存取速度被廣泛應(yīng)用于通信技術(shù)領(lǐng)域?,F(xiàn)有技術(shù)中,當(dāng)DDR存儲(chǔ)器用作首進(jìn)首出FIFO存儲(chǔ)器作為數(shù)據(jù)傳輸系統(tǒng)的緩存時(shí),讀寫(xiě)方法主要有兩種,一種是在每個(gè)數(shù)據(jù)幀前加上幀長(zhǎng)度字段,再?gòu)钠鹗嫉刂穼?shù)據(jù)順序?qū)懭氲紻DR存儲(chǔ)器內(nèi)存中。讀取DDR存儲(chǔ)器中數(shù)據(jù)時(shí),從起始地址開(kāi)始順序讀取,根據(jù)每個(gè)幀的幀長(zhǎng)度指示,提取每幀數(shù)據(jù)。這種方法實(shí)現(xiàn)簡(jiǎn)單,但可靠性不高,容錯(cuò)糾錯(cuò)能力很低,一旦某個(gè)數(shù)據(jù)出錯(cuò),特別是長(zhǎng)度字段標(biāo)識(shí)錯(cuò)誤,則全部數(shù)據(jù)都需要重新恢復(fù)。另ー種為隊(duì)列管理方式,將DDR存儲(chǔ)器內(nèi)存中的數(shù)據(jù)分為若干個(gè)隊(duì)列進(jìn)行讀寫(xiě)管理,同時(shí),再定義ー種描述符,作為隊(duì)列管理的控制結(jié)構(gòu),包含隊(duì)列的索引號(hào)、長(zhǎng)度、讀寫(xiě)權(quán)限等信息。每ー個(gè)數(shù)據(jù)隊(duì)列的數(shù)據(jù)緩存區(qū)地址是固定的,可以由索引號(hào)來(lái)指示。讀取數(shù)據(jù)時(shí),根據(jù)隊(duì)列索引號(hào)找到相應(yīng)的數(shù)據(jù)隊(duì)列,再提取數(shù)據(jù)。這種方式具有較高的可靠性,但是讀寫(xiě)效率較低,并且會(huì)造成內(nèi)存塊缺ロ。如果ー個(gè)數(shù)據(jù)幀不能完整地寫(xiě)入DDR存儲(chǔ)器指定隊(duì)列塊中,會(huì)出現(xiàn)數(shù)據(jù)截?cái)?。而這種隊(duì)列管理方式并沒(méi)有有效的處理機(jī)制解決該問(wèn)題,所以?xún)?nèi)存利用率不高,管理復(fù)雜。顯然,現(xiàn)有技術(shù)針對(duì)DDR存儲(chǔ)器用作FIFO緩存時(shí)的讀寫(xiě)方法存在著可靠性較低或者讀寫(xiě)效率較低等問(wèn)題。
發(fā)明內(nèi)容
為了解決現(xiàn)有技術(shù)中DDR存儲(chǔ)器用作FIFO緩存時(shí)讀寫(xiě)方法存在的可靠性較低或者讀寫(xiě)效率較低等問(wèn)題,本發(fā)明提出一種提高DDR存儲(chǔ)器讀寫(xiě)速率的方法。本發(fā)明提高DDR存儲(chǔ)器讀寫(xiě)速率的方法,在向DDR存儲(chǔ)器寫(xiě)入數(shù)據(jù)前將原始數(shù)據(jù)進(jìn)行封裝,即將ー個(gè)或ー個(gè)以上的原始數(shù)據(jù)幀組裝為數(shù)據(jù)包,并在數(shù)據(jù)包的頭部構(gòu)造一個(gè)數(shù)據(jù)包起始標(biāo)識(shí)符SOF(Start Of Frame,簡(jiǎn)稱(chēng)為S0F),在數(shù)據(jù)包的尾部構(gòu)造ー個(gè)數(shù)據(jù)包結(jié)束標(biāo)識(shí)符E0F(End OfFrame,簡(jiǎn)稱(chēng)為EOF),然后,將數(shù)據(jù)包批量順序?qū)懭隓DR存儲(chǔ)器;在從DDR存儲(chǔ)器批量讀取數(shù)據(jù)時(shí),通過(guò)搜索數(shù)據(jù)流中的S0F,找到需要讀取的數(shù)據(jù)包的起始位置,通過(guò)EOF定位需要讀取的數(shù)據(jù)包的結(jié)束位置;并且,對(duì)讀取的數(shù)據(jù)包進(jìn)行解封裝處理以恢復(fù)出原始數(shù)據(jù)幀。進(jìn)ー步的,本發(fā)明提高DDR存儲(chǔ)器讀寫(xiě)速率的方法,在向DDR存儲(chǔ)器寫(xiě)入數(shù)據(jù)前將原始數(shù)據(jù)進(jìn)行封裝,包括將ー個(gè)或ー個(gè)以上原始數(shù)據(jù)幀分別增加一個(gè)標(biāo)識(shí)有該幀長(zhǎng)度信息的數(shù)據(jù)幀頭后級(jí)聯(lián)在一起,并在第一個(gè)數(shù)據(jù)幀頭前標(biāo)識(shí)級(jí)聯(lián)在一起的數(shù)據(jù)幀的個(gè)數(shù),然后,將級(jí)聯(lián)在一起的數(shù)據(jù)幀組裝為ー個(gè)數(shù)據(jù)包;在組裝的同時(shí),在數(shù)據(jù)包的頭部加上64 bit的數(shù)據(jù)包起始標(biāo)識(shí)符SOF,在數(shù)據(jù)包的尾部加上64 bit的數(shù)據(jù)包結(jié)束標(biāo)識(shí)符EOF ;如果在級(jí)聯(lián)在一起的數(shù)據(jù)幀中出現(xiàn)了 SOF、EOF或轉(zhuǎn)義標(biāo)識(shí)符,則對(duì)相應(yīng)的原始數(shù)據(jù)進(jìn)行反碼轉(zhuǎn)換,并在其起始位置加上64bit的轉(zhuǎn)義標(biāo)識(shí)符。進(jìn)ー步的,本發(fā)明提高DDR存儲(chǔ)器讀寫(xiě)速率的方法,在對(duì)讀取的數(shù)據(jù)包進(jìn)行解封裝處理以恢復(fù)出原始數(shù)據(jù)幀的過(guò)程中,同步檢測(cè)數(shù)據(jù)中是否有轉(zhuǎn)義標(biāo)識(shí)符,如沒(méi)有,則繼續(xù)恢復(fù)數(shù)據(jù);如有,則過(guò)濾掉轉(zhuǎn)義標(biāo)識(shí)符并對(duì)其后相應(yīng)的數(shù)據(jù)進(jìn)行反碼轉(zhuǎn)換以恢復(fù)出原始數(shù)據(jù)。進(jìn)ー步的,本發(fā)明提高DDR存儲(chǔ)器讀寫(xiě)速率的方法,在將數(shù)據(jù)包批量順序?qū)懭隓DR存儲(chǔ)器的過(guò)程中,當(dāng)寫(xiě)入的數(shù)據(jù)在DDR尾部出現(xiàn)截?cái)鄷r(shí),在下一次寫(xiě)操作吋,從DDR起始地址開(kāi)始將截?cái)嗟臄?shù)據(jù)繼續(xù)寫(xiě)入到DDR中;在從DDR存儲(chǔ)器批量讀取數(shù)據(jù)時(shí),首先捜索數(shù)據(jù)包結(jié)束標(biāo)識(shí)符E0F,完成對(duì)該段數(shù)據(jù)的提取。進(jìn)ー步的,本發(fā)明提高DDR存儲(chǔ)器讀寫(xiě)速率的方法包括以下主要步驟
⑴對(duì)原始數(shù)據(jù)進(jìn)行封裝將ー個(gè)或ー個(gè)以上原始數(shù)據(jù)幀分別增加一個(gè)標(biāo)識(shí)有該幀長(zhǎng)度信息的數(shù)據(jù)幀頭后級(jí)聯(lián)在一起,并在第一個(gè)數(shù)據(jù)幀頭前標(biāo)識(shí)級(jí)聯(lián)在一起的數(shù)據(jù)幀的個(gè)數(shù),然后,將級(jí)聯(lián)在一起的數(shù)據(jù)幀組裝為ー個(gè)數(shù)據(jù)包;在組裝的同時(shí),在數(shù)據(jù)包的頭部加上64 bit的數(shù)據(jù)包起始標(biāo)識(shí)符S0F,在數(shù)據(jù)包的尾部加上64 bit的數(shù)據(jù)包結(jié)束標(biāo)識(shí)符EOF ;如果在級(jí)聯(lián)在一起的數(shù)據(jù)幀中出現(xiàn)了 SOF、EOF或轉(zhuǎn)義標(biāo)識(shí)符,則對(duì)相應(yīng)的原始數(shù)據(jù)進(jìn)行反碼轉(zhuǎn)換,并在其起始位置加上64bit的轉(zhuǎn)義標(biāo)識(shí)符;
⑵封裝好原始數(shù)據(jù)后,將封裝后的數(shù)據(jù)包順序批量寫(xiě)入DDR存儲(chǔ)器,可以從DDR存儲(chǔ)器的起始地址開(kāi)始順序?qū)懭耄蛘邚腄DR的任意地址開(kāi)始順序?qū)懭耄?br>
⑶在從DDR存儲(chǔ)器讀取數(shù)據(jù)時(shí),從數(shù)據(jù)寫(xiě)入DDR存儲(chǔ)器的起始位置開(kāi)始讀取數(shù)據(jù),在讀出的數(shù)據(jù)流中順序搜索S0F,當(dāng)讀到第一個(gè)SOF后開(kāi)始,直到讀到第一個(gè)EOF為止,提取兩者之間的數(shù)據(jù),并對(duì)讀取的數(shù)據(jù)包進(jìn)行解封裝處理以恢復(fù)出原始數(shù)據(jù)幀;然后,繼續(xù)搜索下ー個(gè)S0F,并進(jìn)行相同的數(shù)據(jù)提取操作;另外,在對(duì)讀取的數(shù)據(jù)包進(jìn)行解封裝處理以恢復(fù)出原始數(shù)據(jù)幀的過(guò)程中,同步檢測(cè)數(shù)據(jù)中是否有轉(zhuǎn)義標(biāo)識(shí)符,如沒(méi)有,則繼續(xù)恢復(fù)數(shù)據(jù);如有,則過(guò)濾掉轉(zhuǎn)義標(biāo)識(shí)符并對(duì)其后相應(yīng)的數(shù)據(jù)進(jìn)行反碼轉(zhuǎn)換以恢復(fù)出原始數(shù)據(jù)。進(jìn)ー步的,本發(fā)明提高DDR存儲(chǔ)器讀寫(xiě)速率的方法在進(jìn)行數(shù)據(jù)讀寫(xiě)操作時(shí),采用平均、輪流占用時(shí)間片的方式控制讀、寫(xiě)操作所占用的時(shí)間分配。本發(fā)明提高DDR存儲(chǔ)器讀寫(xiě)速率的方法的有益技術(shù)效果是統(tǒng)籌兼顧了 DDR存儲(chǔ)器作為FIFO緩存時(shí)數(shù)據(jù)讀取和存儲(chǔ)的可靠性和有效性,同時(shí)保證數(shù)據(jù)讀寫(xiě)的連續(xù)性和正確性,并有效提高了 DDR存儲(chǔ)器的管理效率和內(nèi)存利用率。
附圖I為本發(fā)明提高DDR存儲(chǔ)器讀寫(xiě)速率的方法數(shù)據(jù)存取處理過(guò)程的示意圖; 附圖2為本發(fā)明提高DDR存儲(chǔ)器讀寫(xiě)速率的方法封裝的數(shù)據(jù)包的結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面附圖和具體實(shí)施方式
對(duì)本發(fā)明提高DDR存儲(chǔ)器讀寫(xiě)速率的方法做進(jìn)ー步的說(shuō)明。附圖I為本發(fā)明提高DDR存儲(chǔ)器讀寫(xiě)速率的方法數(shù)據(jù)存取處理過(guò)程的示意圖,由圖可知,本發(fā)明提高DDR存儲(chǔ)器讀寫(xiě)速率的方法,在向DDR存儲(chǔ)器寫(xiě)入數(shù)據(jù)前將原始數(shù)據(jù)進(jìn)行封裝,即將ー個(gè)或ー個(gè)以上的原始數(shù)據(jù)幀組裝為數(shù)據(jù)包,并在數(shù)據(jù)包的頭部構(gòu)造ー個(gè)數(shù)據(jù)包起始標(biāo)識(shí)符SOF (Start Of Frame,簡(jiǎn)稱(chēng)為S0F),在數(shù)據(jù)包的尾部構(gòu)造ー個(gè)數(shù)據(jù)包結(jié) 束標(biāo)識(shí)符E0F(End Of Frame,簡(jiǎn)稱(chēng)為EOF),然后,將數(shù)據(jù)包批量順序?qū)懭隓DR存儲(chǔ)器;在從DDR存儲(chǔ)器批量讀取數(shù)據(jù)時(shí),通過(guò)搜索數(shù)據(jù)流中的S0F,找到需要讀取的數(shù)據(jù)包的起始位置,通過(guò)EOF定位需要讀取的數(shù)據(jù)包的結(jié)束位置;并且,對(duì)讀取的數(shù)據(jù)包進(jìn)行解封裝處理以恢復(fù)出原始數(shù)據(jù)幀。附圖2為本發(fā)明提高DDR存儲(chǔ)器讀寫(xiě)速率的方法封裝的數(shù)據(jù)包的結(jié)構(gòu)示意圖,由圖可知,本發(fā)明提高DDR存儲(chǔ)器讀寫(xiě)速率的方法,在向DDR存儲(chǔ)器寫(xiě)入數(shù)據(jù)前將原始數(shù)據(jù)進(jìn)行封裝,包括將ー個(gè)或ー個(gè)以上原始數(shù)據(jù)幀分別增加一個(gè)標(biāo)識(shí)有該幀長(zhǎng)度信息的數(shù)據(jù)幀頭后級(jí)聯(lián)在一起,并在第一個(gè)數(shù)據(jù)幀頭前標(biāo)識(shí)級(jí)聯(lián)在一起的數(shù)據(jù)幀的個(gè)數(shù),然后,將級(jí)聯(lián)在一起的數(shù)據(jù)幀組裝為ー個(gè)數(shù)據(jù)包;在組裝的同時(shí),在數(shù)據(jù)包的頭部加上64 bit的數(shù)據(jù)包起始標(biāo)識(shí)符S0F,在數(shù)據(jù)包的尾部加上64 bit的數(shù)據(jù)包結(jié)束標(biāo)識(shí)符EOF。本發(fā)明提高DDR存儲(chǔ)器讀寫(xiě)速率的方法所采用的數(shù)據(jù)起始標(biāo)識(shí)符SOF、數(shù)據(jù)結(jié)束標(biāo)識(shí)符EOF以及轉(zhuǎn)義標(biāo)識(shí)符均占用64 bit,因此,在原始數(shù)據(jù)中出現(xiàn)的概率應(yīng)該是極小的。但是,為保證原始數(shù)據(jù)中可能存在的SOF、EOF和轉(zhuǎn)義標(biāo)識(shí)符不會(huì)與本發(fā)明方法中的S0F、EOF和轉(zhuǎn)義標(biāo)識(shí)符產(chǎn)生混淆,本發(fā)明提高DDR存儲(chǔ)器讀寫(xiě)速率的方法在對(duì)原始數(shù)據(jù)進(jìn)行封裝時(shí),對(duì)級(jí)聯(lián)在一起的數(shù)據(jù)幀中是否存在SOF、EOF或轉(zhuǎn)義標(biāo)識(shí)符進(jìn)行檢測(cè),如果在級(jí)聯(lián)在一起的數(shù)據(jù)幀中出現(xiàn)了 SOF、EOF或轉(zhuǎn)義標(biāo)識(shí)符,則對(duì)相應(yīng)的原始數(shù)據(jù)進(jìn)行反碼轉(zhuǎn)換,并在其起始位置加上64bit的轉(zhuǎn)義標(biāo)識(shí)符。而在對(duì)讀取的數(shù)據(jù)包進(jìn)行解封裝處理以恢復(fù)出原始數(shù)據(jù)幀的過(guò)程中,同步檢測(cè)數(shù)據(jù)中是否有轉(zhuǎn)義標(biāo)識(shí)符,如沒(méi)有,則繼續(xù)恢復(fù)數(shù)據(jù);如有,則過(guò)濾掉轉(zhuǎn)義標(biāo)識(shí)符并對(duì)其后相應(yīng)的數(shù)據(jù)進(jìn)行反碼轉(zhuǎn)換以恢復(fù)出原始數(shù)據(jù)。為解決內(nèi)存塊缺ロ,數(shù)據(jù)截?cái)嗟葐?wèn)題,本發(fā)明提高DDR存儲(chǔ)器讀寫(xiě)速率的方法,在將數(shù)據(jù)包批量順序?qū)懭隓DR存儲(chǔ)器的過(guò)程中,當(dāng)寫(xiě)入的數(shù)據(jù)在DDR尾部出現(xiàn)截?cái)鄷r(shí),在下一次寫(xiě)操作吋,從DDR起始地址開(kāi)始將截?cái)嗟臄?shù)據(jù)繼續(xù)寫(xiě)入到DDR中;在從DDR存儲(chǔ)器批量讀取數(shù)據(jù)時(shí),首先捜索E0F,完成對(duì)該段數(shù)據(jù)的提取。由此,保證了數(shù)據(jù)的完整性,提高了內(nèi)存塊的利用率。另外,為保證DDR存儲(chǔ)器作為FIFO緩存時(shí)的讀寫(xiě)效率,本發(fā)明提高DDR存儲(chǔ)器讀寫(xiě)速率的方法在進(jìn)行數(shù)據(jù)讀寫(xiě)操作時(shí),采用平均、輪流占用時(shí)間片的方式控制讀、寫(xiě)操作所占用的時(shí)間分配。DDR存儲(chǔ)器的讀寫(xiě)操作分時(shí)進(jìn)行,并均勻地占用時(shí)間片,保證DDR存儲(chǔ)器的讀寫(xiě)操作在時(shí)間上是均勻分配、輪流進(jìn)行的,這樣可以更好地提升工作效率,保證所寫(xiě)所讀數(shù)據(jù)的連續(xù)性和正確性。本發(fā)明提高DDR存儲(chǔ)器讀寫(xiě)速率的方法包括以下主要步驟
⑴對(duì)原始數(shù)據(jù)進(jìn)行封裝將ー個(gè)或ー個(gè)以上原始數(shù)據(jù)幀分別增加一個(gè)標(biāo)識(shí)有該幀長(zhǎng)度信息的數(shù)據(jù)幀頭后級(jí)聯(lián)在一起,并在第一個(gè)數(shù)據(jù)幀頭前標(biāo)識(shí)級(jí)聯(lián)在一起的數(shù)據(jù)幀的個(gè)數(shù),然后,將級(jí)聯(lián)在一起的數(shù)據(jù)幀組裝為ー個(gè)數(shù)據(jù)包;在組裝的同時(shí),在數(shù)據(jù)包的頭部加上64 bit的數(shù)據(jù)包起始標(biāo)識(shí)符S0F,在數(shù)據(jù)包的尾部加上64 bit的數(shù)據(jù)包結(jié)束標(biāo)識(shí)符EOF ;如果在級(jí)聯(lián)在一起的數(shù)據(jù)中出現(xiàn)了 SOF、EOF或轉(zhuǎn)義標(biāo)識(shí)符,則對(duì)相應(yīng)的原始數(shù)據(jù)進(jìn)行反碼轉(zhuǎn)換,并在其起始位置加上64bit的轉(zhuǎn)義標(biāo)識(shí)符;
⑵封裝好原始數(shù)據(jù)后,將封裝后的數(shù)據(jù)包順序批量寫(xiě)入DDR存儲(chǔ)器,可以從DDR存儲(chǔ)器的起始地址開(kāi)始順序?qū)懭耄蛘邚腄DR的任意地址開(kāi)始順序?qū)懭耄?br>
⑶在從DDR存儲(chǔ)器讀取數(shù)據(jù)時(shí),從數(shù)據(jù)寫(xiě)入DDR存儲(chǔ)器的起始位置開(kāi)始讀取數(shù)據(jù),在讀出的數(shù)據(jù)流中順序 搜索S0F,當(dāng)讀到第一個(gè)SOF后開(kāi)始,直到讀到第一個(gè)EOF為止,提取兩者之間的數(shù)據(jù),并對(duì)讀取的數(shù)據(jù)包進(jìn)行解封裝處理以恢復(fù)出原始數(shù)據(jù)幀;然后,繼續(xù)搜索下ー個(gè)S0F,并進(jìn)行相同的數(shù)據(jù)提取操作;另外,在對(duì)讀取的數(shù)據(jù)包進(jìn)行解封裝處理以恢復(fù)出原始數(shù)據(jù)幀的過(guò)程中,同步檢測(cè)數(shù)據(jù)中是否有轉(zhuǎn)義標(biāo)識(shí)符,如沒(méi)有,則繼續(xù)恢復(fù)數(shù)據(jù);如有,則過(guò)濾掉轉(zhuǎn)義標(biāo)識(shí)符并對(duì)其后相應(yīng)的數(shù)據(jù)進(jìn)行反碼轉(zhuǎn)換以恢復(fù)出原始數(shù)據(jù)。顯然,本發(fā)明提高DDR存儲(chǔ)器讀寫(xiě)速率的方法的有益技術(shù)效果是統(tǒng)籌兼顧了 DDR存儲(chǔ)器作為FIFO緩存時(shí)數(shù)據(jù)讀取和存儲(chǔ)的可靠性和有效性,同時(shí)保證數(shù)據(jù)讀寫(xiě)的連續(xù)性和正確性,并有效提高了 DDR存儲(chǔ)器的管理效率和內(nèi)存利用率。
權(quán)利要求
1.一種提高DDR存儲(chǔ)器讀寫(xiě)速率的方法,其特征在于在向DDR存儲(chǔ)器寫(xiě)入數(shù)據(jù)前將原始數(shù)據(jù)進(jìn)行封裝,即將一個(gè)或一個(gè)以上的原始數(shù)據(jù)幀組裝為數(shù)據(jù)包,并在數(shù)據(jù)包的頭部構(gòu)造一個(gè)數(shù)據(jù)包起始標(biāo)識(shí)符SOF,在數(shù)據(jù)包的尾部構(gòu)造一個(gè)數(shù)據(jù)包結(jié)束標(biāo)識(shí)符EOF,然后,將數(shù)據(jù)包批量順序?qū)懭隓DR存儲(chǔ)器;在從DDR存儲(chǔ)器批量讀取數(shù)據(jù)時(shí),通過(guò)搜索數(shù)據(jù)流中的SOF,找到需要讀取的數(shù)據(jù)包的起始位置,通過(guò)EOF定位需要讀取的數(shù)據(jù)包的結(jié)束位置;并且,對(duì)讀取的數(shù)據(jù)包進(jìn)行解封裝處理以恢復(fù)出原始數(shù)據(jù)幀。
2.根據(jù)權(quán)利要求I所述提高DDR存儲(chǔ)器讀寫(xiě)速率的方法,其特征在于在向DDR存儲(chǔ)器寫(xiě)入數(shù)據(jù)前將原始數(shù)據(jù)進(jìn)行封裝,包括將一個(gè)或一個(gè)以上原始數(shù)據(jù)幀分別增加一個(gè)標(biāo)識(shí)有該幀長(zhǎng)度信息的數(shù)據(jù)幀頭后級(jí)聯(lián)在一起,并在第一個(gè)數(shù)據(jù)幀頭前標(biāo)識(shí)級(jí)聯(lián)在一起的數(shù)據(jù)幀的個(gè)數(shù),然后,將級(jí)聯(lián)在一起的數(shù)據(jù)幀組裝為一個(gè)數(shù)據(jù)包;在組裝的同時(shí),在數(shù)據(jù)包的頭部加上64 bit的數(shù)據(jù)包起始標(biāo)識(shí)符S0F,在數(shù)據(jù)包的尾部加上64 bit的數(shù)據(jù)包結(jié)束標(biāo)識(shí)符EOF ;如果在級(jí)聯(lián)在一起的數(shù)據(jù)幀中出現(xiàn)了 S0F、E0F或轉(zhuǎn)義標(biāo)識(shí)符,則對(duì)相應(yīng)的原始數(shù)據(jù)進(jìn)行反碼轉(zhuǎn)換,并在其起始位置加上64bit的轉(zhuǎn)義標(biāo)識(shí)符。
3.根據(jù)權(quán)利要求I所述提高DDR存儲(chǔ)器讀寫(xiě)速率的方法,其特征在于在對(duì)讀取的數(shù)據(jù)包進(jìn)行解封裝處理以恢復(fù)出原始數(shù)據(jù)幀的過(guò)程中,同步檢測(cè)數(shù)據(jù)中是否有轉(zhuǎn)義標(biāo)識(shí)符,如沒(méi)有,則繼續(xù)恢復(fù)數(shù)據(jù);如有,則過(guò)濾掉轉(zhuǎn)義標(biāo)識(shí)符并對(duì)其后相應(yīng)的數(shù)據(jù)進(jìn)行反碼轉(zhuǎn)換以恢復(fù)出原始數(shù)據(jù)。
4.根據(jù)權(quán)利要求I所述提高DDR存儲(chǔ)器讀寫(xiě)速率的方法,其特征在于在將數(shù)據(jù)包批量順序?qū)懭隓DR存儲(chǔ)器的過(guò)程中,當(dāng)寫(xiě)入的數(shù)據(jù)在DDR尾部出現(xiàn)截?cái)鄷r(shí),在下一次寫(xiě)操作時(shí),從DDR起始地址開(kāi)始將截?cái)嗟臄?shù)據(jù)繼續(xù)寫(xiě)入到DDR中;在從DDR存儲(chǔ)器批量讀取數(shù)據(jù)時(shí),首先搜索數(shù)據(jù)包結(jié)束標(biāo)識(shí)符E0F,完成對(duì)該段數(shù)據(jù)的提取。
5.根據(jù)權(quán)利要求I所述提高DDR存儲(chǔ)器讀寫(xiě)速率的方法,其特征在于在進(jìn)行數(shù)據(jù)讀寫(xiě)操作時(shí),采用平均、輪流占用時(shí)間片的方式控制讀、寫(xiě)操作所占用的時(shí)間分配。
6.根據(jù)權(quán)利要求I所述提高DDR存儲(chǔ)器讀寫(xiě)速率的方法,其特征在于該方法包括以下主要步驟 ⑴對(duì)原始數(shù)據(jù)進(jìn)行封裝將一個(gè)或一個(gè)以上原始數(shù)據(jù)幀分別增加一個(gè)標(biāo)識(shí)有該幀長(zhǎng)度信息的數(shù)據(jù)幀頭后級(jí)聯(lián)在一起,并在第一個(gè)數(shù)據(jù)幀頭前標(biāo)識(shí)級(jí)聯(lián)在一起的數(shù)據(jù)幀的個(gè)數(shù),然后,將級(jí)聯(lián)在一起的數(shù)據(jù)幀組裝為一個(gè)數(shù)據(jù)包;在組裝的同時(shí),在數(shù)據(jù)包的頭部加上、64 bit的數(shù)據(jù)包起始標(biāo)識(shí)符S0F,在數(shù)據(jù)包的尾部加上64 bit的數(shù)據(jù)包結(jié)束標(biāo)識(shí)符EOF ;如果在級(jí)聯(lián)在一起的數(shù)據(jù)幀中出現(xiàn)了 SOF、EOF或轉(zhuǎn)義標(biāo)識(shí)符,則對(duì)相應(yīng)的原始數(shù)據(jù)進(jìn)行反碼轉(zhuǎn)換,并在其起始位置加上64bit的轉(zhuǎn)義標(biāo)識(shí)符; ⑵封裝好原始數(shù)據(jù)后,將封裝后的數(shù)據(jù)包順序批量寫(xiě)入DDR存儲(chǔ)器,可以從DDR存儲(chǔ)器的起始地址開(kāi)始順序?qū)懭耄蛘邚腄DR的任意地址開(kāi)始順序?qū)懭耄? ⑶在從DDR存儲(chǔ)器讀取數(shù)據(jù)時(shí),從數(shù)據(jù)寫(xiě)入DDR存儲(chǔ)器的起始位置開(kāi)始讀取數(shù)據(jù),在讀出的數(shù)據(jù)流中順序搜索S0F,當(dāng)讀到第一個(gè)SOF后開(kāi)始,直到讀到第一個(gè)EOF為止,提取兩者之間的數(shù)據(jù),并對(duì)讀取的數(shù)據(jù)包進(jìn)行解封裝處理以恢復(fù)出原始數(shù)據(jù)幀;然后,繼續(xù)搜索下一個(gè)S0F,并進(jìn)行相同的數(shù)據(jù)提取操作;另外,在對(duì)讀取的數(shù)據(jù)包進(jìn)行解封裝處理以恢復(fù)出原始數(shù)據(jù)幀的過(guò)程中,同步檢測(cè)數(shù)據(jù)中是否有轉(zhuǎn)義標(biāo)識(shí)符,如沒(méi)有,則繼續(xù)恢復(fù)數(shù)據(jù);如有,則過(guò)濾掉轉(zhuǎn)義標(biāo)識(shí)符并對(duì)其后相應(yīng)的數(shù)據(jù)進(jìn)行反碼轉(zhuǎn)換以恢復(fù)出原始數(shù)據(jù)。
全文摘要
為了解決現(xiàn)有技術(shù)中DDR存儲(chǔ)器用作FIFO緩存時(shí)讀寫(xiě)方法存在的可靠性較低或者讀寫(xiě)效率較低等問(wèn)題,本發(fā)明提出一種提高DDR存儲(chǔ)器讀寫(xiě)速率的方法,在向DDR存儲(chǔ)器寫(xiě)入數(shù)據(jù)前將原始數(shù)據(jù)進(jìn)行封裝,并在數(shù)據(jù)包的頭部構(gòu)造一個(gè)數(shù)據(jù)包起始標(biāo)識(shí)符SOF,在數(shù)據(jù)包的尾部構(gòu)造一個(gè)數(shù)據(jù)包結(jié)束標(biāo)識(shí)符EOF,然后,將數(shù)據(jù)包批量順序?qū)懭隓DR存儲(chǔ)器;在從DDR存儲(chǔ)器批量讀取數(shù)據(jù)時(shí),通過(guò)搜索數(shù)據(jù)流中的SOF,找到需要讀取的數(shù)據(jù)包的起始位置,通過(guò)EOF定位需要讀取的數(shù)據(jù)包的結(jié)束位置;對(duì)讀取的數(shù)據(jù)包進(jìn)行解封裝處理以恢復(fù)出原始數(shù)據(jù)幀。有效提高DDR存儲(chǔ)器的可靠性和有效性,提高管理效率和內(nèi)存利用率,并保證數(shù)據(jù)讀寫(xiě)的連續(xù)性和正確性。
文檔編號(hào)G06F12/08GK102629235SQ201210051078
公開(kāi)日2012年8月8日 申請(qǐng)日期2012年3月1日 優(yōu)先權(quán)日2012年3月1日
發(fā)明者何林, 梁燕, 王曉嬌, 舒明華, 邵凱, 黃標(biāo) 申請(qǐng)人:重慶中天重郵通信技術(shù)有限公司