專利名稱:通過fifo消除不同高速串行鏈路間誤差的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信領(lǐng)域技術(shù),尤其是一種通過FIFO消除不同高速串行鏈路間誤差的方法及系統(tǒng)。
背景技術(shù):
目前在很多高速數(shù)據(jù)傳輸?shù)膽?yīng)用中,為保證數(shù)據(jù)傳輸?shù)乃俾剩枰獙⒁唤M數(shù)據(jù)幀分割成若干個(gè)同步數(shù)據(jù),然后在數(shù)條高速串行鏈路上并行傳輸所述的同步數(shù)據(jù),最后在接收方將各個(gè)同步數(shù)據(jù)恢復(fù)成原先的一組數(shù)據(jù)幀。然而,由于實(shí)際物理傳輸?shù)脑?,比如各條鏈路傳輸數(shù)據(jù)的速率不同等,各條鏈路之間的同步數(shù)據(jù)之間會(huì)產(chǎn)生誤差時(shí)間,這樣各條鏈路上的接收方便不在同一時(shí)刻接收到各個(gè)同步數(shù)據(jù),從而給數(shù)據(jù)的恢復(fù)帶來了困難。
發(fā)明內(nèi)容
針對(duì)上述技術(shù)問題,本發(fā)明的目的在于提供一種通過FIFO消除不同高速串行鏈路間誤差的方法。通過在每個(gè)鏈路上存放一個(gè)FIFO,將接收到的數(shù)據(jù)存放于FIFO中,利用 FIFO的積累數(shù)據(jù)的延時(shí)性消除各條鏈路之間的誤差。本發(fā)明的另一目的在于提供了一種可應(yīng)用上述方法的通過FIFO消除不同高速串行鏈路間誤差的系統(tǒng)。其中,一種通過FIFO消除不同高速鏈路間誤差的方法,該方法包括以下步驟
51、接收各條鏈路上的同步數(shù)據(jù),并將所述同步數(shù)據(jù)存儲(chǔ)于各條鏈路中對(duì)應(yīng)設(shè)置的 FIFO 中;
52、設(shè)定Pop時(shí)間點(diǎn)并在所述Pop時(shí)間點(diǎn)從各條鏈路上對(duì)應(yīng)的所述FIFO中同時(shí)提取出所述同步數(shù)據(jù);
53、將從各條鏈路中對(duì)應(yīng)的FIFO中提取出的同步數(shù)據(jù)恢復(fù)為原始數(shù)據(jù)幀。作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟Sl具體包括
511、接收各條鏈路發(fā)送的同步數(shù)據(jù);
512、在某條鏈路首先接收到一個(gè)幀數(shù)據(jù)時(shí),計(jì)數(shù)器開始計(jì)數(shù);
513、將各條鏈路上接收到的同步數(shù)據(jù)存儲(chǔ)于各條鏈路中對(duì)應(yīng)設(shè)置的FIFO中。作為本發(fā)明的進(jìn)一步改進(jìn),所述S2步驟具體包括
521、根據(jù)各條鏈路的同步數(shù)據(jù)之間的誤差時(shí)間來設(shè)定Pop時(shí)間點(diǎn);
522、在計(jì)數(shù)器計(jì)數(shù)到所述Pop時(shí)間點(diǎn)時(shí),查看并判斷是否所有FIFO中均有數(shù)據(jù),若是, 執(zhí)行S33 ;若否,則重新設(shè)定Pop時(shí)間點(diǎn);
523、從各條鏈路上對(duì)應(yīng)的所述FIFO中同時(shí)提取出所述同步數(shù)據(jù)。作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟S22中Pop時(shí)間點(diǎn)的重新設(shè)定具體為在現(xiàn)有基礎(chǔ)上延后Pop時(shí)間點(diǎn)。相應(yīng)地,一種通過FIFO消除不同高速鏈路間誤差的系統(tǒng),其包括數(shù)據(jù)接收單元、用于接收各條鏈路上的同步數(shù)據(jù),并將所述同步數(shù)據(jù)存儲(chǔ)于各條鏈路中對(duì)應(yīng)設(shè)置的FIFO中;
數(shù)據(jù)提取單元、用于設(shè)定Pop時(shí)間點(diǎn)并在所述Pop時(shí)間點(diǎn)從各條鏈路上對(duì)應(yīng)的所述 FIFO中同時(shí)提取出所述同步數(shù)據(jù);
數(shù)據(jù)恢復(fù)單元、用于將從各條鏈路中對(duì)應(yīng)的FIFO中提取出的同步數(shù)據(jù)恢復(fù)為原始數(shù)據(jù)幀。作為本發(fā)明的進(jìn)一步改進(jìn),所述數(shù)據(jù)接收單元具體用于 接收各條鏈路發(fā)送的同步數(shù)據(jù);
在某條鏈路首先接收到一個(gè)幀數(shù)據(jù)時(shí),計(jì)數(shù)器開始計(jì)數(shù);
將各條鏈路上接收到的同步數(shù)據(jù)存儲(chǔ)于各條鏈路中對(duì)應(yīng)設(shè)置的FIFO中。作為本發(fā)明的進(jìn)一步改進(jìn),所述數(shù)據(jù)提取單元具體用于 根據(jù)各條鏈路的同步數(shù)據(jù)之間的誤差時(shí)間來設(shè)定Pop時(shí)間點(diǎn);
在計(jì)數(shù)器計(jì)數(shù)到所述Pop時(shí)間點(diǎn)時(shí),查看并判斷是否所有FIFO中均有數(shù)據(jù),若是,則從各條鏈路上對(duì)應(yīng)的所述FIFO中同時(shí)提取出所述同步數(shù)據(jù);若否,則重新設(shè)定Pop時(shí)間點(diǎn); 作為本發(fā)明的進(jìn)一步改進(jìn),所述Pop時(shí)間點(diǎn)的重新設(shè)定具體為在現(xiàn)有基礎(chǔ)上延后Pop 時(shí)間點(diǎn)。相較于現(xiàn)有技術(shù),本發(fā)明通過將每條鏈路上傳輸?shù)耐綌?shù)據(jù)存放進(jìn)對(duì)應(yīng)設(shè)置的各個(gè)FIFO中,在讀取FIFO時(shí),每個(gè)FIFO中的數(shù)據(jù)會(huì)同時(shí)被取出,從而消除掉各條鏈路間的 Skew,進(jìn)而使得高速串行鏈路傳輸?shù)臄?shù)據(jù)恢復(fù)更為容易。
圖1為本發(fā)明一實(shí)施方式中通過FIFO消除不同高速串行鏈路間誤差的方法的流程圖2為本發(fā)明一實(shí)施方式中高速串行鏈路上并行傳輸數(shù)據(jù)的原理示意圖; 圖3為本發(fā)明一實(shí)施方式中在不同時(shí)刻各FIFO的存儲(chǔ)狀態(tài)示意圖; 圖4為本發(fā)明一實(shí)施方式中S2具體步驟的流程圖; 圖5為本發(fā)明一實(shí)施方式中S3具體步驟的流程圖6為本發(fā)明一實(shí)施方式中通過FIFO消除不同高速串行鏈路間誤差系統(tǒng)的模塊示意圖。
具體實(shí)施例方式以下將結(jié)合附圖所示的各實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)描述。但這些實(shí)施例并不限制本發(fā)明,本領(lǐng)域的普通技術(shù)人員根據(jù)這些實(shí)施例所做出的結(jié)構(gòu)、方法、或功能上的變換均包含在本發(fā)明的保護(hù)范圍內(nèi)。如圖1所示,在本發(fā)明一實(shí)施方式中,所述通過FIFO消除不同高速串行鏈路間誤差的方法,包括以下步驟
Si、接收各條鏈路上的同步數(shù)據(jù),并將所述同步數(shù)據(jù)存儲(chǔ)于各條鏈路中對(duì)應(yīng)設(shè)置的 FIFO中;如圖2所示,在高速鏈路的數(shù)據(jù)傳輸過程中,需要將一串原始數(shù)據(jù)幀100分成若干個(gè)同步數(shù)據(jù)110進(jìn)行在各條鏈路上并行傳輸,以提高傳輸速率。所述鏈路包括若干條,
4每一條鏈路用于傳輸一段同步數(shù)據(jù)110,在本發(fā)明一具體實(shí)施方式
中,設(shè)置鏈路的數(shù)目為3 條,分別為鏈路0、鏈路1、鏈路2,那么相應(yīng)地就會(huì)將原始數(shù)據(jù)幀100分為3段同步數(shù)據(jù)110 進(jìn)行傳輸,比如,原始數(shù)據(jù)幀100為“0123456789abCdef”,那么同步數(shù)據(jù)110為“0369…”、 “147w”、“258b…”這些同步數(shù)據(jù)110均被傳輸方發(fā)送到3條對(duì)應(yīng)的鏈路中。需要說明的是,各條鏈路上的傳輸延時(shí)不同。特別需要指出的是,在每條鏈路中,相應(yīng)地設(shè)置了一個(gè)先進(jìn)先出的數(shù)據(jù)緩存器 (First Input First Output,F(xiàn)IFO),在接收到各條鏈路上的同步數(shù)據(jù)后,每條鏈路上傳輸?shù)臄?shù)據(jù)便會(huì)被鏈路的接收方接收后都會(huì)被按次序存儲(chǔ)于對(duì)應(yīng)設(shè)置的FIFO中。S2、設(shè)定Pop時(shí)間點(diǎn)并在所述Pop時(shí)間點(diǎn)從各條鏈路上對(duì)應(yīng)的所述FIFO中同時(shí)提取出所述同步數(shù)據(jù);通常情況下FIFO設(shè)計(jì)包括相對(duì)分離的Push控制邏輯和Pop控制邏輯, 在Push控制邏輯中維護(hù)寫指針,在Pop控制邏輯中維護(hù)讀指針,在本實(shí)施方式中,在同步數(shù)據(jù)被存儲(chǔ)到FIFO中后,需要設(shè)定Pop時(shí)間點(diǎn),然后在每個(gè)Pop時(shí)間點(diǎn)到來之際,運(yùn)用Pop控制邏輯從各條鏈路上的FIFO中提取出各個(gè)同步數(shù)據(jù)。值得一提的是,在各個(gè)Pop時(shí)間點(diǎn)從各個(gè)FIFO中提取出同步數(shù)據(jù)的動(dòng)作是同時(shí)進(jìn)行的。S3、將從各條鏈路中對(duì)應(yīng)的FIFO中提取出的同步數(shù)據(jù)恢復(fù)為一串原始數(shù)據(jù)幀。在本實(shí)施方式中,在各個(gè)鏈路中均設(shè)定有一個(gè)計(jì)數(shù)器,當(dāng)某條鏈路上首先接收了一個(gè)幀數(shù)據(jù)時(shí),計(jì)數(shù)器便開始計(jì)數(shù),當(dāng)計(jì)數(shù)器計(jì)到Pop時(shí)間點(diǎn)時(shí)(這個(gè)數(shù)值是可配的,可以根據(jù)鏈路上容許的最大誤差時(shí)間skew來定),那么所有鏈路上的FIFO開始同時(shí)提取數(shù)據(jù), 爾后根據(jù)數(shù)據(jù)的傳輸速率,每隔一個(gè)時(shí)間段就會(huì)檢查一下各條鏈路上的FIFO是否有數(shù)據(jù), 并把數(shù)據(jù)提取出來,如果到了規(guī)定的時(shí)間還是有一下FIFO里面沒有數(shù)據(jù),那么說明鏈路與鏈路之間的skew已經(jīng)超過了容限。如此反復(fù)直到這個(gè)幀結(jié)束,等待下個(gè)幀的開始。請(qǐng)參照?qǐng)D3所示,在時(shí)間0時(shí)刻,鏈路2首先接收到了一個(gè)幀數(shù)據(jù),表示一個(gè)幀要開始,這個(gè)時(shí)候計(jì)數(shù)器開始計(jì)數(shù),此刻計(jì)為0時(shí)刻;當(dāng)?shù)诙€(gè)鏈路接收到數(shù)據(jù)時(shí),即鏈路0接收到數(shù)據(jù),此刻計(jì)為1時(shí)刻;當(dāng)?shù)谌齻€(gè)鏈路接收到數(shù)據(jù)時(shí),即鏈路1接收到數(shù)據(jù),此刻計(jì)為2 時(shí)刻;在此之后,當(dāng)計(jì)到時(shí)間3時(shí)刻的時(shí)候,最少的一條鏈路里面已經(jīng)有2個(gè)數(shù)據(jù),而最多的一個(gè)里面有5個(gè)數(shù)據(jù),如果選擇在這個(gè)時(shí)候提取FIFO里面的數(shù)據(jù),那么由于是同時(shí)提取出來的數(shù)據(jù),這些數(shù)據(jù)在同一個(gè)時(shí)刻被看到并被恢復(fù)出來。以后每隔“3時(shí)刻-2時(shí)刻+誤差時(shí)間”這段時(shí)間內(nèi)去查看各個(gè)FIFO里面的數(shù)據(jù),并把它們同時(shí)提取出來,那么所有的數(shù)據(jù)就可以在接收端同時(shí)被看到,而整個(gè)幀可以被恢復(fù)出來。如果鏈路上的每條鏈路傳輸速度偏差較大,可以根據(jù)幀的長(zhǎng)度,來選擇第一次提取的時(shí)間,也就是使最慢的那條鏈路上的FIFO 積累足夠的數(shù)據(jù)來調(diào)節(jié)各個(gè)鏈路上的傳輸速度,以達(dá)到正確恢復(fù)數(shù)據(jù)的目的。如圖4所示,所述步驟Sl具體包括
511、接收各條鏈路發(fā)送的同步數(shù)據(jù);
512、在某條鏈路首先接收到一個(gè)幀數(shù)據(jù)時(shí),計(jì)數(shù)器開始計(jì)數(shù);
513、將各條鏈路上接收到的同步數(shù)據(jù)存儲(chǔ)于各條鏈路中對(duì)應(yīng)設(shè)置的FIFO中。如圖5所示,所述S2步驟具體包括
521、根據(jù)各條鏈路的同步數(shù)據(jù)之間的誤差時(shí)間來設(shè)定Pop時(shí)間點(diǎn);
522、在計(jì)數(shù)器計(jì)數(shù)到所述Pop時(shí)間點(diǎn)時(shí),查看并判斷是否所有FIFO中均有數(shù)據(jù),若是,執(zhí)行S33 ;若否,則重新設(shè)定Pop時(shí)間點(diǎn);其中若在設(shè)定好的Pop時(shí)間點(diǎn)發(fā)現(xiàn)并非所有FIFO 里的數(shù)據(jù)均有數(shù)據(jù),那就說明鏈路之間的誤差時(shí)間超出了容限,需要重新設(shè)定Pop時(shí)間點(diǎn), 優(yōu)選地,可在現(xiàn)有基礎(chǔ)上將Pop時(shí)間點(diǎn)延后,使最慢的那條鏈路上的FIFO積累足夠的數(shù)據(jù), 以確保能夠在之后的新的Pop時(shí)間點(diǎn)能夠從各個(gè)FIFO中同時(shí)提取到同步數(shù)據(jù),從而達(dá)到正確恢復(fù)數(shù)據(jù)的目的。S23、從各條鏈路上對(duì)應(yīng)的所述FIFO中同時(shí)提取出所述同步數(shù)據(jù)。如圖6所示,在本發(fā)明一實(shí)施方式中,所述通過FIFO消除不同高速串行鏈路間誤差的系統(tǒng),包括
數(shù)據(jù)接收單元10、接收各條鏈路上的同步數(shù)據(jù),并將所述同步數(shù)據(jù)存儲(chǔ)于各條鏈路中對(duì)應(yīng)設(shè)置的FIFO中;
如圖2所示,在高速鏈路的數(shù)據(jù)傳輸過程中,需要將一串原始數(shù)據(jù)幀100分成若干個(gè)同步數(shù)據(jù)110進(jìn)行在各條鏈路上并行傳輸,以提高傳輸速率。所述鏈路包括若干條,每一條鏈路用于傳輸一段同步數(shù)據(jù)110,在本發(fā)明一具體實(shí)施方式
中,設(shè)置鏈路的數(shù)目為3條, 分別為鏈路0、鏈路1、鏈路2,那么相應(yīng)地就會(huì)將原始數(shù)據(jù)幀100分為3段同步數(shù)據(jù)110進(jìn)行傳輸,比如,原始數(shù)據(jù)幀100為“0123456789abCdef”,那么同步數(shù)據(jù)110為“0369…”、 “147w”、“258b…”這些同步數(shù)據(jù)110均被傳輸方發(fā)送到3條對(duì)應(yīng)的鏈路中。需要說明的是,各條鏈路上的傳輸延時(shí)不同。特別需要指出的是,在每條鏈路中,相應(yīng)地設(shè)置了一個(gè)先進(jìn)先出的數(shù)據(jù)緩存器 (First Input First Output,F(xiàn)IFO),在接收到各條鏈路上的同步數(shù)據(jù)后,每條鏈路上傳輸?shù)臄?shù)據(jù)便會(huì)被鏈路的接收方接收后都會(huì)被按次序存儲(chǔ)于對(duì)應(yīng)設(shè)置的FIFO中。數(shù)據(jù)提取單元20、該單元主要是用于設(shè)定Pop時(shí)間點(diǎn)并在所述Pop時(shí)間點(diǎn)從各條鏈路上對(duì)應(yīng)的所述FIFO中同時(shí)提取出所述同步數(shù)據(jù);通常情況下FIFO設(shè)計(jì)包括相對(duì)分離的Push控制邏輯和Pop控制邏輯,在Push控制邏輯中維護(hù)寫指針,在Pop控制邏輯中維護(hù)讀指針,在本實(shí)施方式中,在同步數(shù)據(jù)被存儲(chǔ)到FIFO中后,需要設(shè)定Pop時(shí)間點(diǎn),然后在每個(gè)Pop時(shí)間點(diǎn)到來之際,運(yùn)用Pop控制邏輯從各條鏈路上的FIFO中提取出各個(gè)同步數(shù)據(jù)。值得一提的是,在各個(gè)Pop時(shí)間點(diǎn)從各個(gè)FIFO中提取出同步數(shù)據(jù)的動(dòng)作是同時(shí)進(jìn)行的。數(shù)據(jù)恢復(fù)單元30、用于將從各條鏈路中對(duì)應(yīng)的FIFO中提取出的同步數(shù)據(jù)恢復(fù)為一串原始數(shù)據(jù)幀。在本實(shí)施方式中,在各個(gè)鏈路中均設(shè)定有一個(gè)計(jì)數(shù)器,當(dāng)某條鏈路上首先接收了一個(gè)幀數(shù)據(jù)時(shí),計(jì)數(shù)器便開始計(jì)數(shù),當(dāng)計(jì)數(shù)器計(jì)到Pop時(shí)間點(diǎn)時(shí)(這個(gè)數(shù)值是可配的,可以根據(jù)鏈路上容許的最大誤差時(shí)間skew來定),那么所有鏈路上的FIFO開始同時(shí)提取數(shù)據(jù), 爾后根據(jù)數(shù)據(jù)的傳輸速率,每隔一個(gè)時(shí)間段就會(huì)檢查一下各條鏈路上的FIFO是否有數(shù)據(jù), 并把數(shù)據(jù)提取出來,如果到了規(guī)定的時(shí)間還是有一下FIFO里面沒有數(shù)據(jù),那么說明鏈路與鏈路之間的skew已經(jīng)超過了容限。如此反復(fù)直到這個(gè)幀結(jié)束,等待下個(gè)幀的開始。請(qǐng)參照?qǐng)D3所示,在時(shí)間0時(shí)刻,鏈路2首先接收到了一個(gè)幀數(shù)據(jù),表示一個(gè)幀要開始,這個(gè)時(shí)候計(jì)數(shù)器開始計(jì)數(shù),此刻計(jì)為0時(shí)刻;當(dāng)?shù)诙€(gè)鏈路接收到數(shù)據(jù)時(shí),即鏈路0接收到數(shù)據(jù),此刻計(jì)為1時(shí)刻;當(dāng)?shù)谌齻€(gè)鏈路接收到數(shù)據(jù)時(shí),即鏈路1接收到數(shù)據(jù),此刻計(jì)為2 時(shí)刻;在此之后,當(dāng)計(jì)到時(shí)間3時(shí)刻的時(shí)候,最少的一條鏈路里面已經(jīng)有2個(gè)數(shù)據(jù),而最多的一個(gè)里面有5個(gè)數(shù)據(jù),如果選擇在這個(gè)時(shí)候提取FIFO里面的數(shù)據(jù),那么由于是同時(shí)提取出來的數(shù)據(jù),這些數(shù)據(jù)在同一個(gè)時(shí)刻被看到并被恢復(fù)出來。以后每隔“3時(shí)刻-2時(shí)刻+誤差時(shí)間”這段時(shí)間內(nèi)去查看各個(gè)FIFO里面的數(shù)據(jù),并把它們同時(shí)提取出來,那么所有的數(shù)據(jù)就可以在接收端同時(shí)被看到,而整個(gè)幀可以被恢復(fù)出來。如果鏈路上的每條鏈路傳輸速度偏差較大,可以根據(jù)幀的長(zhǎng)度,來選擇第一次提取的時(shí)間,也就是使最慢的那條鏈路上的FIFO 積累足夠的數(shù)據(jù)來調(diào)節(jié)各個(gè)鏈路上的傳輸速度,以達(dá)到正確恢復(fù)數(shù)據(jù)的目的。其中,所述數(shù)據(jù)接收單元10具體用于 接收各條鏈路發(fā)送的同步數(shù)據(jù);
在某條鏈路首先接收到一個(gè)幀數(shù)據(jù)時(shí),計(jì)數(shù)器開始計(jì)數(shù);
將各條鏈路上接收到的同步數(shù)據(jù)存儲(chǔ)于各條鏈路中對(duì)應(yīng)設(shè)置的FIFO中。其中,所述數(shù)據(jù)提取單元20具體用于
首先,根據(jù)各條鏈路的同步數(shù)據(jù)之間的誤差時(shí)間來設(shè)定Pop時(shí)間點(diǎn); 然后,在計(jì)數(shù)器計(jì)數(shù)到所述Pop時(shí)間點(diǎn)時(shí),查看并判斷是否所有FIFO中均有數(shù)據(jù),若是,執(zhí)行S33 ;若否,則重新設(shè)定Pop時(shí)間點(diǎn);其中若在設(shè)定好的Pop時(shí)間點(diǎn)發(fā)現(xiàn)并非所有 FIFO里的數(shù)據(jù)均有數(shù)據(jù),那就說明鏈路之間的誤差時(shí)間超出了容限,需要重新設(shè)定Pop時(shí)間點(diǎn),優(yōu)選地,可在現(xiàn)有基礎(chǔ)上將Pop時(shí)間點(diǎn)延后,使最慢的那條鏈路上的FIFO積累足夠的數(shù)據(jù),以確保能夠在之后的新的Pop時(shí)間點(diǎn)能夠從各個(gè)FIFO中同時(shí)提取到同步數(shù)據(jù),從而達(dá)到正確恢復(fù)數(shù)據(jù)的目的。最后,從各條鏈路上對(duì)應(yīng)的所述FIFO中同時(shí)提取出所述同步數(shù)據(jù)。本發(fā)明通過將每條鏈路上傳輸?shù)耐綌?shù)據(jù)存放進(jìn)對(duì)應(yīng)設(shè)置的各個(gè)FIFO中,在讀取FIFO時(shí),每個(gè)FIFO中的數(shù)據(jù)會(huì)同時(shí)被取出,從而消除掉各條鏈路間的Skew,進(jìn)而使得高速串行鏈路傳輸?shù)臄?shù)據(jù)恢復(fù)更為容易。本發(fā)明還通過可調(diào)的FIFO的Pop時(shí)間點(diǎn)來微調(diào)鏈路上的傳輸速度,以達(dá)到正確恢復(fù)數(shù)據(jù)的目的。此方案實(shí)現(xiàn)簡(jiǎn)單,便于操作,而且可靈活的調(diào)節(jié)。為了描述的方便,描述以上系統(tǒng)時(shí)以功能分為各種單元分別描述。當(dāng)然,在實(shí)施本申請(qǐng)時(shí)可以把各單元的功能在同一個(gè)或多個(gè)軟件和/或硬件中實(shí)現(xiàn)。通過以上的實(shí)施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請(qǐng)可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn)?;谶@樣的理解,本申請(qǐng)的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備 (可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請(qǐng)各個(gè)實(shí)施方式或者實(shí)施方式的某些部分所述的方法。以上所描述的系統(tǒng)實(shí)施方式僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施方式方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。本申請(qǐng)可用于眾多通用或?qū)S玫挠?jì)算系統(tǒng)環(huán)境或配置、或通訊系統(tǒng)環(huán)境或設(shè)備中。例如個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂盒、可編程的消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、 包括以上任何系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境等等,以及交換機(jī)、路由器、包括以上任何設(shè)備的通訊系統(tǒng)環(huán)境等等。本申請(qǐng)可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本申請(qǐng),在這些分布式計(jì)算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。應(yīng)當(dāng)理解,雖然本說明書按照實(shí)施方式加以描述,但并非每個(gè)實(shí)施方式僅包含一個(gè)獨(dú)立的技術(shù)方案,說明書的這種敘述方式僅僅是為清楚起見,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)將說明書作為一個(gè)整體,各實(shí)施方式中的技術(shù)方案也可以經(jīng)適當(dāng)組合,形成本領(lǐng)域技術(shù)人員可以理解的其他實(shí)施方式。上文所列出的一系列的詳細(xì)說明僅僅是針對(duì)本發(fā)明的可行性實(shí)施方式的具體說明,它們并非用以限制本發(fā)明的保護(hù)范圍,凡未脫離本發(fā)明技藝精神所作的等效實(shí)施方式或變更均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種通過FIFO消除不同高速鏈路間誤差的方法,其特征在于,該方法包括以下步驟51、接收各條鏈路上的同步數(shù)據(jù),并將所述同步數(shù)據(jù)存儲(chǔ)于各條鏈路中對(duì)應(yīng)設(shè)置的 FIFO 中;52、設(shè)定Pop時(shí)間點(diǎn)并在所述Pop時(shí)間點(diǎn)從各條鏈路上對(duì)應(yīng)的所述FIFO中同時(shí)提取出所述同步數(shù)據(jù);53、將從各條鏈路中對(duì)應(yīng)的FIFO中提取出的同步數(shù)據(jù)恢復(fù)為原始數(shù)據(jù)幀。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟Sl具體包括511、接收各條鏈路發(fā)送的同步數(shù)據(jù);512、在某條鏈路首先接收到一個(gè)幀數(shù)據(jù)時(shí),計(jì)數(shù)器開始計(jì)數(shù);513、將各條鏈路上接收到的同步數(shù)據(jù)存儲(chǔ)于各條鏈路中對(duì)應(yīng)設(shè)置的FIFO中。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述S2步驟具體包括521、根據(jù)各條鏈路的同步數(shù)據(jù)之間的誤差時(shí)間來設(shè)定Pop時(shí)間點(diǎn);522、在計(jì)數(shù)器計(jì)數(shù)到所述Pop時(shí)間點(diǎn)時(shí),查看并判斷是否所有FIFO中均有數(shù)據(jù),若是, 執(zhí)行S33 ;若否,則重新設(shè)定Pop時(shí)間點(diǎn);523、從各條鏈路上對(duì)應(yīng)的所述FIFO中同時(shí)提取出所述同步數(shù)據(jù)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述步驟S22中Pop時(shí)間點(diǎn)的重新設(shè)定具體為在現(xiàn)有基礎(chǔ)上延后Pop時(shí)間點(diǎn)。
5.一種通過FIFO消除不同高速鏈路間誤差的系統(tǒng),其特征在于,其包括數(shù)據(jù)接收單元、用于接收各條鏈路上的同步數(shù)據(jù),并將所述同步數(shù)據(jù)存儲(chǔ)于各條鏈路中對(duì)應(yīng)設(shè)置的FIFO中;數(shù)據(jù)提取單元、用于設(shè)定Pop時(shí)間點(diǎn)并在所述Pop時(shí)間點(diǎn)從各條鏈路上對(duì)應(yīng)的所述 FIFO中同時(shí)提取出所述同步數(shù)據(jù);數(shù)據(jù)恢復(fù)單元、用于將從各條鏈路中對(duì)應(yīng)的FIFO中提取出的同步數(shù)據(jù)恢復(fù)為原始數(shù)據(jù)幀。
6.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,所述數(shù)據(jù)接收單元具體用于 接收各條鏈路發(fā)送的同步數(shù)據(jù);在某條鏈路首先接收到一個(gè)幀數(shù)據(jù)時(shí),計(jì)數(shù)器開始計(jì)數(shù);將各條鏈路上接收到的同步數(shù)據(jù)存儲(chǔ)于各條鏈路中對(duì)應(yīng)設(shè)置的FIFO中。
7.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,所述數(shù)據(jù)提取單元具體用于 根據(jù)各條鏈路的同步數(shù)據(jù)之間的誤差時(shí)間來設(shè)定Pop時(shí)間點(diǎn);在計(jì)數(shù)器計(jì)數(shù)到所述Pop時(shí)間點(diǎn)時(shí),查看并判斷是否所有FIFO中均有數(shù)據(jù),若是,則從各條鏈路上對(duì)應(yīng)的所述FIFO中同時(shí)提取出所述同步數(shù)據(jù);若否,則重新設(shè)定Pop時(shí)間點(diǎn)。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述Pop時(shí)間點(diǎn)的重新設(shè)定具體為在現(xiàn)有基礎(chǔ)上延后Pop時(shí)間點(diǎn)。
全文摘要
本發(fā)明提供了一種通過FIFO消除不同高速鏈路間誤差的方法,該方法包括以下步驟S1、接收各條鏈路上的同步數(shù)據(jù),并將所述同步數(shù)據(jù)存儲(chǔ)于各條鏈路中對(duì)應(yīng)設(shè)置的FIFO中;S2、設(shè)定Pop時(shí)間點(diǎn)并在所述Pop時(shí)間點(diǎn)從各條鏈路上對(duì)應(yīng)的所述FIFO中同時(shí)提取出所述同步數(shù)據(jù);S3、將從各條鏈路中對(duì)應(yīng)的FIFO中提取出的同步數(shù)據(jù)恢復(fù)為原始數(shù)據(jù)幀。相較于現(xiàn)有技術(shù),本發(fā)明通過將每條鏈路上傳輸?shù)耐綌?shù)據(jù)存放進(jìn)對(duì)應(yīng)設(shè)置的各個(gè)FIFO中,在讀取FIFO時(shí),每個(gè)FIFO中的數(shù)據(jù)會(huì)同時(shí)被取出,從而消除掉各條鏈路間的Skew,進(jìn)而使得高速串行鏈路傳輸?shù)臄?shù)據(jù)恢復(fù)更為容易。
文檔編號(hào)H04L7/00GK102355345SQ201110306459
公開日2012年2月15日 申請(qǐng)日期2011年10月11日 優(yōu)先權(quán)日2011年10月11日
發(fā)明者夏杰, 孫劍勇, 徐昌發(fā), 許俊, 賈復(fù)山, 鄭曉楊, 龔源泉 申請(qǐng)人:盛科網(wǎng)絡(luò)(蘇州)有限公司