一種數(shù)據(jù)接收緩存方法、裝置及通信系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,尤其涉及一種數(shù)據(jù)接收緩存方法、裝置及通信系統(tǒng)。
【背景技術(shù)】
[0002]在通信技術(shù)中,本端向?qū)Χ税l(fā)送數(shù)據(jù)讀請(qǐng)求之后,獲取對(duì)端針對(duì)數(shù)據(jù)讀請(qǐng)求發(fā)送的返回?cái)?shù)據(jù),并進(jìn)行緩存供后續(xù)使用,是常用的通信流程,但是隨著技術(shù)發(fā)展,返回?cái)?shù)據(jù)的數(shù)據(jù)長(zhǎng)度也在日益增長(zhǎng),這樣,通常使用多個(gè)數(shù)據(jù)包傳輸返回?cái)?shù)據(jù)。若本端同時(shí)向?qū)Χ税l(fā)送多個(gè)數(shù)據(jù)讀請(qǐng)求,這些數(shù)據(jù)讀請(qǐng)求均采用多個(gè)數(shù)據(jù)包傳輸返回?cái)?shù)據(jù)的方式,由于這些數(shù)據(jù)讀請(qǐng)求的數(shù)據(jù)包會(huì)亂序返回,對(duì)應(yīng)的,在本端進(jìn)行緩存時(shí),這些數(shù)據(jù)包就會(huì)出現(xiàn)混亂緩存。
[0003]為了處理亂序返回的數(shù)據(jù)包,常用做法是采用鏈表結(jié)構(gòu)(Linked List)記錄數(shù)據(jù)包的存儲(chǔ)地址及數(shù)據(jù)包之間的關(guān)系。然而,由于鏈表結(jié)構(gòu)本身比較復(fù)雜,采用硬件電路實(shí)現(xiàn)難度較大;對(duì)接收端來(lái)說(shuō),當(dāng)數(shù)據(jù)從接收緩存中輸出后,需要及時(shí)更新信用給對(duì)端,而鏈表結(jié)構(gòu)對(duì)應(yīng)分散存儲(chǔ),這給信用更新帶來(lái)了不小的難度。
[0004]因此,本領(lǐng)域技術(shù)人員亟待提供一種數(shù)據(jù)接收緩存方法,以解決現(xiàn)有采用鏈表結(jié)構(gòu)處理亂序返回的數(shù)據(jù)包存在的硬件電路實(shí)現(xiàn)難度大的技術(shù)問題。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供了一種數(shù)據(jù)接收緩存方法、裝置及通信系統(tǒng),以解決現(xiàn)有采用鏈表結(jié)構(gòu)處理亂序返回的數(shù)據(jù)包存在的硬件電路實(shí)現(xiàn)難度大的問題。
[0006]本發(fā)明提供了一種數(shù)據(jù)接收緩存方法,其包括:
[0007]檢測(cè)到發(fā)送數(shù)據(jù)讀請(qǐng)求后,為數(shù)據(jù)讀請(qǐng)求分配緩存空間;
[0008]在接收到數(shù)據(jù)讀請(qǐng)求的返回?cái)?shù)據(jù)時(shí),將返回?cái)?shù)據(jù)緩存至數(shù)據(jù)讀請(qǐng)求的緩存空間。
[0009]進(jìn)一步的,將返回?cái)?shù)據(jù)緩存至數(shù)據(jù)讀請(qǐng)求的緩存空間包括:當(dāng)返回?cái)?shù)據(jù)包括兩個(gè)及以上數(shù)據(jù)包時(shí),將兩個(gè)及以上數(shù)據(jù)包按照發(fā)送時(shí)間排序,并緩存。
[0010]進(jìn)一步的,將返回?cái)?shù)據(jù)緩存至數(shù)據(jù)讀請(qǐng)求的緩存空間在將兩個(gè)及以上數(shù)據(jù)包按照發(fā)送時(shí)間排序之后,還包括:將排序之后的第一個(gè)數(shù)據(jù)包攜帶包頭緩存,其他數(shù)據(jù)包去包頭后緩存。
[0011]進(jìn)一步的,在將返回?cái)?shù)據(jù)緩存至數(shù)據(jù)讀請(qǐng)求的緩存空間之后,還包括:在檢測(cè)到數(shù)據(jù)讀請(qǐng)求的返回?cái)?shù)據(jù)全部正確返回后,從數(shù)據(jù)讀請(qǐng)求的緩存空間讀取緩存的數(shù)據(jù),進(jìn)行信用更新,并初始化數(shù)據(jù)讀請(qǐng)求的緩存空間。
[0012]進(jìn)一步的,為數(shù)據(jù)讀請(qǐng)求分配緩存空間包括:獲取數(shù)據(jù)讀請(qǐng)求的標(biāo)識(shí)信息,根據(jù)數(shù)據(jù)讀請(qǐng)求的標(biāo)識(shí)信息為數(shù)據(jù)讀請(qǐng)求分配緩存空間,緩存空間的標(biāo)識(shí)信息與數(shù)據(jù)讀請(qǐng)求的標(biāo)識(shí)信息的一一對(duì)應(yīng);將返回?cái)?shù)據(jù)緩存至數(shù)據(jù)讀請(qǐng)求的緩存空間包括:根據(jù)返回?cái)?shù)據(jù)的標(biāo)識(shí)信息確定數(shù)據(jù)讀請(qǐng)求的標(biāo)識(shí)信息,根據(jù)緩存空間的標(biāo)識(shí)信息與數(shù)據(jù)讀請(qǐng)求的標(biāo)識(shí)信息的對(duì)應(yīng)關(guān)系,將返回?cái)?shù)據(jù)緩存至對(duì)應(yīng)的緩存空間。
[0013]進(jìn)一步的,當(dāng)數(shù)據(jù)讀請(qǐng)求為存儲(chǔ)器讀請(qǐng)求時(shí),為數(shù)據(jù)讀請(qǐng)求分配緩存空間還包括:獲取存儲(chǔ)器讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù)長(zhǎng)度信息及標(biāo)識(shí)信息,根據(jù)存儲(chǔ)器讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù)長(zhǎng)度信息及標(biāo)識(shí)信息,為存儲(chǔ)器讀請(qǐng)求分配對(duì)應(yīng)長(zhǎng)度的緩存空間。
[0014]本發(fā)明提供了一種數(shù)據(jù)接收緩存裝置,其包括:
[0015]分配模塊,用于檢測(cè)到發(fā)送數(shù)據(jù)讀請(qǐng)求后,為數(shù)據(jù)讀請(qǐng)求分配緩存空間;
[0016]緩存模塊,用于在接收到數(shù)據(jù)讀請(qǐng)求的返回?cái)?shù)據(jù)時(shí),將返回?cái)?shù)據(jù)緩存至數(shù)據(jù)讀請(qǐng)求的緩存空間。
[0017]進(jìn)一步的,緩存模塊用于當(dāng)返回?cái)?shù)據(jù)包括兩個(gè)及以上數(shù)據(jù)包時(shí),將兩個(gè)及以上數(shù)據(jù)包按照發(fā)送時(shí)間排序,并緩存。
[0018]進(jìn)一步的,緩存模塊在將兩個(gè)及以上數(shù)據(jù)包按照發(fā)送時(shí)間排序之后,還用于將排序之后的第一個(gè)數(shù)據(jù)包攜帶包頭緩存,其他數(shù)據(jù)包去包頭后緩存。
[0019]進(jìn)一步的,緩存模塊在將返回?cái)?shù)據(jù)緩存至數(shù)據(jù)讀請(qǐng)求的緩存空間之后,還用于在檢測(cè)到數(shù)據(jù)讀請(qǐng)求的返回?cái)?shù)據(jù)全部正確返回后,從數(shù)據(jù)讀請(qǐng)求的緩存空間讀取緩存的數(shù)據(jù),進(jìn)行信用更新,并初始化數(shù)據(jù)讀請(qǐng)求的緩存空間。
[0020]進(jìn)一步的,分配模塊用于獲取數(shù)據(jù)讀請(qǐng)求的標(biāo)識(shí)信息,根據(jù)數(shù)據(jù)讀請(qǐng)求的標(biāo)識(shí)信息為數(shù)據(jù)讀請(qǐng)求分配緩存空間,緩存空間的標(biāo)識(shí)信息與數(shù)據(jù)讀請(qǐng)求的標(biāo)識(shí)信息的一一對(duì)應(yīng);緩存模塊用于根據(jù)返回?cái)?shù)據(jù)的標(biāo)識(shí)信息確定數(shù)據(jù)讀請(qǐng)求的標(biāo)識(shí)信息,根據(jù)緩存空間的標(biāo)識(shí)信息與數(shù)據(jù)讀請(qǐng)求的標(biāo)識(shí)信息的對(duì)應(yīng)關(guān)系,將返回?cái)?shù)據(jù)緩存至對(duì)應(yīng)的緩存空間。
[0021 ]進(jìn)一步的,當(dāng)數(shù)據(jù)讀請(qǐng)求為存儲(chǔ)器讀請(qǐng)求時(shí),分配模塊還用于獲取存儲(chǔ)器讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù)長(zhǎng)度信息及標(biāo)識(shí)信息,根據(jù)存儲(chǔ)器讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù)長(zhǎng)度信息及標(biāo)識(shí)信息,為存儲(chǔ)器讀請(qǐng)求分配對(duì)應(yīng)長(zhǎng)度的緩存空間。
[0022]本發(fā)明提供了一種通信系統(tǒng),其包括第一設(shè)備和第二設(shè)備,第一設(shè)備和第二設(shè)備通過高性能互聯(lián)串行總線通信,第一設(shè)備和/或第二設(shè)備包括本發(fā)明提供的數(shù)據(jù)接收緩存
目.ο
[0023]本發(fā)明的有益效果:
[0024]本發(fā)明提供了一種新的數(shù)據(jù)接收緩存方法,檢測(cè)到發(fā)送數(shù)據(jù)讀請(qǐng)求后,為數(shù)據(jù)讀請(qǐng)求分配緩存空間;在接收到數(shù)據(jù)讀請(qǐng)求的返回?cái)?shù)據(jù)時(shí),將返回?cái)?shù)據(jù)緩存至數(shù)據(jù)讀請(qǐng)求的緩存空間,這樣通過采用在發(fā)起讀請(qǐng)求前提前在接收緩存中分配對(duì)應(yīng)的存儲(chǔ)空間的方法,簡(jiǎn)化了緩存管理的復(fù)雜度,同時(shí),連續(xù)存儲(chǔ)也減小了信用更新的難度,解決了現(xiàn)有采用鏈表結(jié)構(gòu)處理亂序返回的數(shù)據(jù)包存在的硬件電路實(shí)現(xiàn)難度大的問題。
【附圖說(shuō)明】
[0025]圖1為本發(fā)明第一實(shí)施例提供的數(shù)據(jù)接收緩存裝置的結(jié)構(gòu)示意圖;
[0026]圖2為本發(fā)明第二實(shí)施例提供的數(shù)據(jù)接收緩存方法的流程圖;
[0027]圖3為本發(fā)明第三實(shí)施例提供的數(shù)據(jù)接收緩存裝置的結(jié)構(gòu)示意圖;
[0028]圖4為本發(fā)明第三實(shí)施例中TagRAM的結(jié)構(gòu)示意圖;
[0029]圖5為本發(fā)明第三實(shí)施例中接收緩存在接收數(shù)據(jù)包時(shí)的讀寫指針變化圖。
【具體實(shí)施方式】
[0030]現(xiàn)通過【具體實(shí)施方式】結(jié)合附圖的方式對(duì)本發(fā)明做出進(jìn)一步的詮釋說(shuō)明。[0031 ] 第一實(shí)施例:
[0032]圖1為本發(fā)明第一實(shí)施例提供的數(shù)據(jù)接收緩存裝置的結(jié)構(gòu)示意圖,由圖1可知,在本實(shí)施例中,本發(fā)明提供的數(shù)據(jù)接收緩存裝置I包括:
[0033]分配模塊11,用于檢測(cè)到發(fā)送數(shù)據(jù)讀請(qǐng)求后,為數(shù)據(jù)讀請(qǐng)求分配緩存空間;
[0034]緩存模塊12,用于在接收到數(shù)據(jù)讀請(qǐng)求的返回?cái)?shù)據(jù)時(shí),將返回?cái)?shù)據(jù)緩存至數(shù)據(jù)讀請(qǐng)求的緩存空間。
[0035]在一些實(shí)施例中,上述實(shí)施例中的緩存模塊12用于當(dāng)返回?cái)?shù)據(jù)包括兩個(gè)及以上數(shù)據(jù)包時(shí),將兩個(gè)及以上數(shù)據(jù)包按照發(fā)送時(shí)間排序,并緩存。
[0036]在一些實(shí)施例中,上述實(shí)施例中的緩存模塊12在將兩個(gè)及以上數(shù)據(jù)包按照發(fā)送時(shí)間排序之后,還用于將排序之后的第一個(gè)數(shù)據(jù)包攜帶包頭緩存,其他數(shù)據(jù)包去包頭后緩存。
[0037]在一些實(shí)施例中,上述實(shí)施例中的緩存模塊12在將返回?cái)?shù)據(jù)緩存至數(shù)據(jù)讀請(qǐng)求的緩存空間之后,還用于在檢測(cè)到數(shù)據(jù)讀請(qǐng)求的返回?cái)?shù)據(jù)全部正確返回后,從數(shù)據(jù)讀請(qǐng)求的緩存空間讀取緩存的數(shù)據(jù),進(jìn)行信用更新,并初始化數(shù)據(jù)讀請(qǐng)求的緩存空間。
[0038]在一些實(shí)施例中,上述實(shí)施例中的分配模塊11用于獲取數(shù)據(jù)讀請(qǐng)求的標(biāo)識(shí)信息,根據(jù)數(shù)據(jù)讀請(qǐng)求的標(biāo)識(shí)信息為數(shù)據(jù)讀請(qǐng)求分配緩存空間,緩存空間的標(biāo)識(shí)信息與數(shù)據(jù)讀請(qǐng)求的標(biāo)識(shí)信息的一一對(duì)應(yīng);緩存模塊用于根據(jù)返回?cái)?shù)據(jù)的標(biāo)識(shí)信息確定數(shù)據(jù)讀請(qǐng)求的標(biāo)識(shí)信息,根據(jù)緩存空間的標(biāo)識(shí)信息與數(shù)據(jù)讀請(qǐng)求的標(biāo)識(shí)信息的對(duì)應(yīng)關(guān)系,將返回?cái)?shù)據(jù)緩存至對(duì)應(yīng)的緩存空間。
[0039]在一些實(shí)施例中,當(dāng)數(shù)據(jù)讀請(qǐng)求為存儲(chǔ)器讀請(qǐng)求時(shí),上述實(shí)施例中的分配模塊11還用于獲取存儲(chǔ)器讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù)長(zhǎng)度信息及標(biāo)識(shí)信息,根據(jù)存儲(chǔ)器讀請(qǐng)求對(duì)應(yīng)的讀數(shù)據(jù)長(zhǎng)度信息及標(biāo)識(shí)信息,為存儲(chǔ)器讀請(qǐng)求分配對(duì)應(yīng)長(zhǎng)度的緩存空間。
[0040]對(duì)應(yīng)的,本發(fā)明提供了一種通信系統(tǒng),其包括第一設(shè)備和第二設(shè)備,第一設(shè)備和第二設(shè)備通過高性能互聯(lián)串行總線通信,第一設(shè)備和/或第二設(shè)備包括本發(fā)明提供的數(shù)據(jù)接