專利名稱:一種基于快速io互連技術(shù)的數(shù)據(jù)排序方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式系統(tǒng)的互連技術(shù),尤其涉及一種基于快速IO互連技術(shù)的
數(shù)據(jù)排序方法及裝置。
背景技術(shù):
會)于2001年12月開發(fā)制定的一套應(yīng)用于芯片級和板級互連的公開的高帶寬 全雙工級聯(lián)方案,其性能能夠達(dá)到10Gb/s或者更高。它是低遲延、基于存儲器 地址的協(xié)議,可升級、可靠、支持多重處理并對應(yīng)用軟件透明。
Rapid 10協(xié)-漢的包類型可分為維護(hù)包讀寫、讀請求、讀響應(yīng)、寫#:作等類型。 Rapid IO讀操作模式源端發(fā)起請求,目的端響應(yīng),即讀請求以包交換的方式先 行由源端發(fā)至目的端,目的端將響應(yīng)包送至源端,從而實(shí)現(xiàn)一次完整的操作。
在目前主流的帶有Rapid IO接口的CPU中,在Rapid IO接口的發(fā)送端通常有4 組Buffer(緩沖區(qū)),分別對應(yīng)于發(fā)送4種優(yōu)先級的數(shù)據(jù)包。Rapid IO協(xié)議死鎖預(yù) 防規(guī)則^L定,"攜帶響應(yīng)的包的優(yōu)先級應(yīng)至少比相應(yīng)請求包的優(yōu)先級高一級", 所以響應(yīng)包的優(yōu)先級只能有3種級別1、 2、 3。
目的端CPU對于請求包的響應(yīng)機(jī)制是根據(jù)請求包請求的地址和數(shù)據(jù)長度, 將相應(yīng)數(shù)據(jù)進(jìn)行打包生成相應(yīng)的響應(yīng)包。由于請求包的字節(jié)少,包傳送速度高 于相應(yīng)響應(yīng)包地發(fā)送速度,所以在響應(yīng)包的打包過程中,若低優(yōu)先級的Buffer 填滿后,新生成的響應(yīng)包將存入較高優(yōu)先級的Buffer中,這將導(dǎo)致順序在后的響應(yīng)包的優(yōu)先級高于順序在前的響應(yīng)包。而Rapid IO協(xié)議中事務(wù)與包傳送排序規(guī)則 規(guī)定,"端點(diǎn)處理部件端口的物理層應(yīng)該保證從處理部件的物理層收到的高優(yōu)先 級的請求事務(wù)在低優(yōu)先級的請求事務(wù)之前轉(zhuǎn)發(fā),低優(yōu)先級的包不能超過高優(yōu)先 級的包"。這樣,在響應(yīng)包傳送過程中就會出現(xiàn)如下問題CPU會先發(fā)送順序在 后但優(yōu)先級高的數(shù)據(jù)包,再發(fā)送順序在前但優(yōu)先級低的數(shù)據(jù)包。
目前,解決這種問題的方法通常是由目的端CPU降低數(shù)據(jù)打包速度,減緩 發(fā)送速率,但是在對數(shù)據(jù)順序敏感的高速數(shù)據(jù)處理系統(tǒng)中,發(fā)送速率的降低將 導(dǎo)致系統(tǒng)性能下降,而速率過快則會出現(xiàn)亂序現(xiàn)象,導(dǎo)致系統(tǒng)出錯,從而嚴(yán)重 影響Rapid IO接口在高速系統(tǒng)中的應(yīng)用。
發(fā)明內(nèi)容
鑒于上述的分析,本發(fā)明旨在提供一種基于快速IO互連技術(shù)的數(shù)據(jù)排序方 法及裝置,用以解決現(xiàn)有技術(shù)中存在的高速數(shù)據(jù)處理系統(tǒng)中響應(yīng)包亂序的問題。 本發(fā)明的目的是通過以下技術(shù)方案實(shí)現(xiàn)的。
本發(fā)明提供了 一種基于快速10互連技術(shù)的數(shù)據(jù)排序方法,預(yù)先設(shè)定三組先 入先出隊(duì)列,用于存儲不同優(yōu)先級的響應(yīng)包,所述方法包括 步驟A:以請求包組為單位發(fā)送請求包;
步驟B:從目的端接收與所述請求包組對應(yīng)的響應(yīng)包組,并按照響應(yīng)包的優(yōu) 先級和到達(dá)源端的先后順序,依次將所述響應(yīng)包組的響應(yīng)包存入三組先入先出 隊(duì)列中;
步驟C:當(dāng)接收完所述響應(yīng)包組后,按照傳輸標(biāo)識的順序,依次從所述三組
先入先出隊(duì)列中讀取并發(fā)送響應(yīng)包。 進(jìn)一步地,所述步驟A具體包括
根據(jù)系統(tǒng)的需求,將請求包以組為單位進(jìn)行劃分;
5先發(fā)送請求包組中的 一部分請求包;
當(dāng)接收到目的端反饋的首個響應(yīng)包后,將剩余的請求包發(fā)送出去。
進(jìn)一步地,當(dāng)預(yù)設(shè)定兩組緩沖區(qū)單元,每組緩沖區(qū)單元包括三組先入先出
隊(duì)列時,所述步驟B具體包括
對從目的端接收到的與所述請求包對應(yīng)的響應(yīng)包組進(jìn)行奇偶計(jì)數(shù),并采用
兵乓操作的方式選4奪存儲所述響應(yīng)包組用的緩沖區(qū)單元;
按照響應(yīng)包的優(yōu)先級和到達(dá)源端的先后順序,依次將所述響應(yīng)包組的響應(yīng)
包存入三組先入先出隊(duì)列中,同時清空另外一組緩沖區(qū)單元。
所述先入先出隊(duì)列的長度等于請求包組的個數(shù)。
本發(fā)明還提供了 一種基于快速10互連技術(shù)的數(shù)據(jù)排序裝置,包括
發(fā)送模塊,用于根據(jù)系統(tǒng)的需求,將請求包以組為單位進(jìn)行劃分,并以請 求包組為單位發(fā)送請求包;
排序模塊,用于接收與所述請求包組對應(yīng)的響應(yīng)包組,并按照響應(yīng)包的優(yōu) 先級和到達(dá)源端的先后順序,依次將所述響應(yīng)包組的響應(yīng)包存入三組先入先出 隊(duì)列中;
讀取模塊,用于按照傳輸標(biāo)識的順序,依次從所述三組先入先出隊(duì)列中讀 取并發(fā)送響應(yīng)包。
進(jìn)一步地,所述排序模塊具體包括
奇偶計(jì)數(shù)器,用于對從目的端接收到的與所述請求包對應(yīng)的響應(yīng)包組進(jìn)行 奇偶計(jì)數(shù);
第一選擇器,用于根據(jù)奇偶計(jì)數(shù),選擇第一緩沖區(qū)單元或第二緩沖區(qū)單元 來存儲所述響應(yīng)包組;
第一緩沖區(qū)單元,用于根據(jù)第一選擇器的選擇結(jié)果,與第二緩沖區(qū)單元輪
6流緩存所述響應(yīng)包組;
第二緩沖區(qū)單元,用于根據(jù)第一選擇器的選擇結(jié)果,與第一緩沖區(qū)單元輪
流緩存所述響應(yīng)包組;
第二選擇器,用于將從第一緩沖區(qū)單元或第二緩沖區(qū)單元得到的響應(yīng)包組 發(fā)送給下級數(shù)據(jù)處理單元。
綜上所述,本發(fā)明提供了一種基于快速IO互連技術(shù)的數(shù)據(jù)排序方法及裝 置,在使用較少緩沖區(qū)資源及耗費(fèi)較小時延的前提下,有效地校正Rapid IO接 口的響應(yīng)包傳輸順序,解決了現(xiàn)有高速數(shù)據(jù)處理系統(tǒng)中響應(yīng)包亂序的問題,提 高了高速數(shù)據(jù)處理系統(tǒng)的性能。
圖1為本發(fā)明實(shí)施例所述方法的流程示意圖2為本發(fā)明實(shí)施例中所述排序模塊的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
下面結(jié)合附圖來具體描述本發(fā)明的優(yōu)先實(shí)施例,其中,附圖構(gòu)成本申請一 部分,并與本發(fā)明的實(shí)施例一起用于闡釋本發(fā)明的原理。
首先對結(jié)合附圖2對本發(fā)明實(shí)施例所述方法進(jìn)行詳細(xì)闡述。
步驟100、預(yù)先在源端開辟三組FIFO (First Input First Output ,先入先出 隊(duì)列)空間,用于存儲三種不同優(yōu)先級的響應(yīng)包,每個FIFO的深度為M。
步驟IOI、源端以組為單位發(fā)送請求包;具體的說就是,源端根據(jù)系統(tǒng)的需 求將請求包以組為單位劃分成多個請求包組,每組包含M個請求包。在向目的 端發(fā)送請求包時,每單位時間內(nèi)發(fā)送一組請求包。發(fā)送的過程為先發(fā)送M-N 個包,當(dāng)接收到該組首個響應(yīng)包后,將剩余的N個請求包發(fā)送出去。步驟102、目的端接收到請求包后,發(fā)送相應(yīng)的響應(yīng)包。
步驟103、當(dāng)源端將接收到與其發(fā)送的請求包對應(yīng)的響應(yīng)包后,按照接收優(yōu) 先級的不同和到達(dá)的先后順序,依次將所述響應(yīng)包存入不同的FIFO空間中。
步驟104、在源端4^收到該組的最后一個響應(yīng)包時,以優(yōu)先級為1的FIFO 的第 一個包的Transaction ID (傳輸標(biāo)識)值為基準(zhǔn),按照Transaction ID的順序, 從3個FIFO中讀取響應(yīng)包,發(fā)送給下一級數(shù)據(jù)處理單元進(jìn)行相應(yīng)處理。
在上述處理過程中,為了提高效率,本發(fā)明實(shí)施例采取了兵乓操作的方式。 具體的說就是,預(yù)先在源端開辟兩組緩沖區(qū)單元,同時在每組緩沖區(qū)單元內(nèi)開 辟三組FIFO空間,用于存^f諸不同的優(yōu)先級的響應(yīng)包,每個FIFO的深度為M。
在源端處,對接收到的響應(yīng)包組進(jìn)行奇偶計(jì)數(shù),以確定乒乓操作時使用的 緩沖區(qū)單元。比如,當(dāng)接收到第一組響應(yīng)包時,記為奇數(shù),并將其存儲在第一 緩沖區(qū)單元;當(dāng)接收到第二組響應(yīng)包時,記為偶數(shù),并將其存儲在第二緩沖區(qū) 單元;當(dāng)接收到第三組響應(yīng)包時,記為奇數(shù),并將其存儲在第一緩沖區(qū)單元; 以此類推。然后按照響應(yīng)包的優(yōu)先級和到達(dá)源端的先后順序,依次將所述響應(yīng) 包組的響應(yīng)包存入三組先入先出隊(duì)列中,同時清空另外一組緩沖區(qū)單元,并重 復(fù)執(zhí)行步驟103和104。本發(fā)明通過采用乒乓才喿作的方式實(shí)現(xiàn)了響應(yīng)包的無縫緩 沖和處理。
接下來,對本發(fā)明實(shí)施例所述裝置進(jìn)行詳細(xì)闡述。 本發(fā)明實(shí)施例所述裝置具體包括
發(fā)送模塊,根據(jù)系統(tǒng)的需求,將請求包以組為單位進(jìn)行劃分,并以請求包 組為單位發(fā)送請求包給目的端;目的端根據(jù)接收到的請求包,進(jìn)行打包生成相 應(yīng)的響應(yīng)包,并依次將生成的響應(yīng)包發(fā)送出去。
排序模塊,接收與所述請求包對應(yīng)的響應(yīng)包,并按照響應(yīng)包的優(yōu)先級和到達(dá)源端的先后順序,依次將所述響應(yīng)包組的響應(yīng)包存入三組先入先出隊(duì)列中;
讀取模塊,當(dāng)接收完一組響應(yīng)包組后,所述讀取模塊按照響應(yīng)包的傳輸標(biāo) 識的順序,即依次/人所述三組先入先出隊(duì)列中讀取并發(fā)送響應(yīng)包。
這里,為了提高效率,本發(fā)明實(shí)施例釆取了乒乓操作的方式。具體的說就 是,預(yù)先在源端開辟兩組緩沖區(qū)單元,同時在每組緩沖區(qū)單元內(nèi)開辟三組FIFO 空間,用于存儲不同的優(yōu)先級的響應(yīng)包,每個FIFO的深度為M,則所述排序模 塊的結(jié)構(gòu)如圖2所示,具體可以包括
奇偶計(jì)數(shù)器,用于對從目的端接收到的與所述請求包對應(yīng)的響應(yīng)包組進(jìn)行 奇偶計(jì)數(shù);每接收到一組響應(yīng)包,奇偶計(jì)數(shù)器進(jìn)行一次計(jì)數(shù)。比如,當(dāng)接收到 第一組響應(yīng)包時,記為奇數(shù),并將其存儲在第一緩沖區(qū)單元;當(dāng)接收到第二組 響應(yīng)包時,記為偶數(shù),并將其存儲在第二緩沖區(qū)單元;當(dāng)接收到第三組響應(yīng)包 時,記為奇數(shù),并將其存儲在第一緩沖區(qū)單元;以此類推。
第一選擇器,用于根據(jù)奇偶計(jì)數(shù),選擇第一緩沖區(qū)單元或第二緩沖區(qū)單元 來存儲所述響應(yīng)包組;
第一緩沖區(qū)單元,用于根據(jù)第一選擇器的選擇結(jié)果,與第二緩沖區(qū)單元配 合工作,輪流緩存所述響應(yīng)包組;
第二緩沖區(qū)單元,用于根據(jù)第一選擇器的選擇結(jié)果,與第一緩沖區(qū)單元配 合工作,輪流緩存所述響應(yīng)包組;
第二選擇器,用于將從第 一緩沖區(qū)單元或第二緩沖區(qū)單元得到的響應(yīng)包組 發(fā)送給下級數(shù)據(jù)處理單元。
所述兵乓操作的具體過程可以為通過第一選擇器將響應(yīng)包等時分配到兩 組緩沖區(qū)單元,當(dāng)奇偶計(jì)數(shù)器為奇數(shù)時,將接收到的第一組響應(yīng)包緩存到第一緩沖區(qū)單元;當(dāng)奇偶計(jì)數(shù)器由奇數(shù)變?yōu)榕紨?shù)時,通過第一選擇器的切換,并將 接收到的第二組響應(yīng)包緩存到第二緩沖區(qū)單元,同時將第 一緩沖區(qū)單元緩存的 第一組響應(yīng)包通過第二選擇器的選擇,送到下級數(shù)據(jù)處理單元進(jìn)行相關(guān)處理; 當(dāng)奇偶計(jì)數(shù)器由偶數(shù)變?yōu)槠鏀?shù)時,通過第一選擇器的再次切換,將接收到的第 三組響應(yīng)包緩存到第一緩沖區(qū)單元,同時將第二選擇器緩存的第二組響應(yīng)包通 過第二選擇器的切換,送到下級數(shù)據(jù)處理單元進(jìn)行相關(guān)處理;以此類推。
當(dāng)然,本發(fā)明并不限于一組或兩組緩沖區(qū)單元,為了達(dá)到快速進(jìn)行排序的 目的,也可以多設(shè)置幾組緩沖區(qū)單元,原理與乒乓操作類似,此處就不——舉 例。
綜上所述,本發(fā)明實(shí)施例提供了 一種基于快速IO互連技術(shù)的數(shù)據(jù)排序方法 及裝置,根據(jù)Rapid 10規(guī)范中"具有相同源ID、相同目的ID、相同優(yōu)先級且 ftypeN8 (ftype表示數(shù)據(jù)包的類型)的包在傳遞過程中順序不變"的原則,將各 個優(yōu)先級的響應(yīng)包分別排序,然后根據(jù)Transaction ID的順序,向下級處理單元 送出排序后的響應(yīng)包。本發(fā)明實(shí)施例在處理過程中,為提高效率,采用乒乓操 作的方式來完成lt據(jù)的無縫緩沖與處理。
本發(fā)明實(shí)施例在使用較少緩沖區(qū)資源及耗費(fèi)較小時延的前提下,有效地校 正Rapid IO接口的響應(yīng)包傳輸順序,解決了現(xiàn)有高速數(shù)據(jù)處理系統(tǒng)中響應(yīng)包亂 序的問題,提高了高速數(shù)據(jù)處理系統(tǒng)的性能。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局 限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易 想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù) 范圍應(yīng)該以權(quán)利要求書的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1、一種基于快速IO互連技術(shù)的數(shù)據(jù)排序方法,其特征在于,預(yù)先設(shè)定三組先入先出隊(duì)列,用于存儲不同優(yōu)先級的響應(yīng)包,所述方法包括步驟A以請求包組為單位發(fā)送請求包;步驟B從目的端接收與所述請求包組對應(yīng)的響應(yīng)包組,并按照響應(yīng)包的優(yōu)先級和到達(dá)源端的先后順序,依次將所述響應(yīng)包組的響應(yīng)包存入三組先入先出隊(duì)列中;步驟C當(dāng)接收完所述響應(yīng)包組后,按照傳輸標(biāo)識的順序,依次從所述三組先入先出隊(duì)列中讀取并發(fā)送響應(yīng)包。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟A具體包括根據(jù)系統(tǒng)的需求,將請求包以組為單位進(jìn)行劃分; 先發(fā)送請求包組中的 一部分請求包;當(dāng)接收到目的端反饋的首個響應(yīng)包后,將剩余的請求包發(fā)送出去。
3、 根據(jù)權(quán)利要求1所述的方法,其特征在于,當(dāng)預(yù)設(shè)定兩組緩沖區(qū)單元, 每組緩沖區(qū)單元包括三組先入先出隊(duì)列時,所述步驟B具體包括對從目的端接收到的與所述請求包對應(yīng)的響應(yīng)包組進(jìn)行奇偶計(jì)數(shù),并采用兵乓操作的方式選擇存儲所述響應(yīng)包組用的緩沖區(qū)單元;按照響應(yīng)包的優(yōu)先級和到達(dá)源端的先后順序,依次將所述響應(yīng)包組的響應(yīng)包存入三組先入先出隊(duì)列中,同時清空另外一組緩沖區(qū)單元。
4、 根據(jù)權(quán)利要求1到3中任意一項(xiàng)所述的方法,其特征在于,所述先入先 出隊(duì)列的長度等于請求包組的個數(shù)。
5、 一種基于快速IO互連技術(shù)的數(shù)據(jù)排序裝置,其特征在于,包括 發(fā)送模塊,用于根據(jù)系統(tǒng)的需求,將請求包以組為單位進(jìn)行劃分,并以請求包組為單位發(fā)送請求包;排序模塊,用于接收與所述請求包組對應(yīng)的響應(yīng)包組,并按照響應(yīng)包的優(yōu) 先級和到達(dá)源端的先后順序,依次將所述響應(yīng)包組的響應(yīng)包存入三組先入先出 隊(duì)列中;讀取模塊,用于按照傳輸標(biāo)識的順序,依次從所述三組先入先出隊(duì)列中讀 取并發(fā)送響應(yīng)包。
6、根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述排序模塊具體包括 奇偶計(jì)數(shù)器,用于對從目的端接收到的與所述請求包對應(yīng)的響應(yīng)包組進(jìn)行 奇偶計(jì)數(shù);第一選擇器,用于根據(jù)奇偶計(jì)數(shù),選擇第一緩沖區(qū)單元或第二緩沖區(qū)單元 來存儲所述響應(yīng)包組;第一緩沖區(qū)單元,用于根據(jù)第一選擇器的選擇結(jié)果,與第二緩沖區(qū)單元輪 流緩存所述響應(yīng)包組;第二緩沖區(qū)單元,用于根據(jù)第一選擇器的選擇結(jié)果,與第一緩沖區(qū)單元輪 流緩存所述響應(yīng)包組;第二選擇器,用于將從第一緩沖區(qū)單元或第二緩沖區(qū)單元得到的響應(yīng)包組 發(fā)送給下級數(shù)據(jù)處理單元。
全文摘要
本發(fā)明公開了一種基于快速IO互連技術(shù)的數(shù)據(jù)排序方法,預(yù)先設(shè)定三組先入先出隊(duì)列,用于存儲不同優(yōu)先級的響應(yīng)包,所述方法包括以請求包組為單位發(fā)送請求包;從目的端接收與所述請求包組對應(yīng)的響應(yīng)包組,并按照響應(yīng)包的優(yōu)先級和到達(dá)源端的先后順序,依次將所述響應(yīng)包組的響應(yīng)包存入三組先入先出隊(duì)列中;當(dāng)接收完所述響應(yīng)包組后,按照傳輸標(biāo)識的順序,依次從所述三組先入先出隊(duì)列中讀取并發(fā)送響應(yīng)包。本發(fā)明在使用較少緩沖區(qū)資源及耗費(fèi)較小時延的前提下,有效地校正Rapid IO接口的響應(yīng)包傳輸順序,解決了現(xiàn)有高速數(shù)據(jù)處理系統(tǒng)中響應(yīng)包亂序的問題,提高了高速數(shù)據(jù)處理系統(tǒng)的性能。
文檔編號H04L29/06GK101494636SQ20081000058
公開日2009年7月29日 申請日期2008年1月23日 優(yōu)先權(quán)日2008年1月23日
發(fā)明者剛 劉, 慧 馬 申請人:中興通訊股份有限公司