數(shù)據(jù)包發(fā)送方法及裝置制造方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種數(shù)據(jù)包發(fā)送方法及裝置。該方法包括:接收上級(jí)接口發(fā)送的待發(fā)送數(shù)據(jù)包,將待發(fā)送數(shù)據(jù)包存儲(chǔ)在預(yù)先設(shè)置的緩存空間中,并根據(jù)當(dāng)前的傳輸帶寬從緩存空間中抽取相應(yīng)長(zhǎng)度的數(shù)據(jù)包;對(duì)抽取的數(shù)據(jù)包進(jìn)行解析,將數(shù)據(jù)包幀邊界格式和數(shù)據(jù)包幀間隔剔除,將保留下來(lái)的數(shù)據(jù)幀進(jìn)行重新合并,并將合并后的數(shù)據(jù)幀按照發(fā)送接口規(guī)定的幀邊界格式和幀間隔重新組建為一個(gè)新數(shù)據(jù)包;將新數(shù)據(jù)包通過(guò)發(fā)送接口進(jìn)行發(fā)送。借助于本發(fā)明的技術(shù)方案,能夠靈活可靠地應(yīng)用芯片間通信的環(huán)境中,有效提高了傳輸?shù)膸捓寐剩瑸樾酒g高速Serdes通信提供了更優(yōu)質(zhì)的傳輸質(zhì)量保證。
【專(zhuān)利說(shuō)明】數(shù)據(jù)包發(fā)送方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及移動(dòng)通訊領(lǐng)域,特別是涉及一種數(shù)據(jù)包發(fā)送方法及裝置。
【背景技術(shù)】
[0002]在現(xiàn)有技術(shù)中,由于采用了基于IOG媒體獨(dú)立接口(IOGigbit Media IndependentInterface,簡(jiǎn)稱(chēng)為XGMII)的IOG比特接口,為芯片間的高寬帶傳輸提供了理想的解決方案。IOG比特速率的并串行與串并行轉(zhuǎn)換器(Serdes)傳輸單元符合IOG以太網(wǎng)連接單元接口(IOGigbit Attachment Unit Interface,簡(jiǎn)稱(chēng)為XAUI)協(xié)議,使用4對(duì)差分線(xiàn)實(shí)現(xiàn)全雙工的傳輸。
[0003]在實(shí)際應(yīng)用中,芯片間互連的場(chǎng)景對(duì)基于Serdes傳輸?shù)膸捯筝^高,希望對(duì)實(shí)際物理傳輸通道的帶寬利用率越高越好,從而保證大流量數(shù)據(jù)的交互。
[0004]目前,由于上層軟件及中間協(xié)議層在特定的應(yīng)用場(chǎng)景下,在數(shù)據(jù)傳輸時(shí)對(duì)數(shù)據(jù)源的處理并不能保證以盡可能大的帶寬利用率來(lái)組包。特別是多個(gè)上層應(yīng)用需求共用一條物理傳輸通道時(shí),此現(xiàn)象就更加明顯。往往一些短包(數(shù)據(jù)包一般都包含幀頭、幀尾、幀間隔等附加信息)會(huì)占用很大的帶寬,造成實(shí)際使用物理通道的帶寬利用率下降很多。因此,目前急需一種能夠有效提高傳輸器對(duì)物理通道的帶寬利用率的方法及裝置。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供一種數(shù)據(jù)包發(fā)送方法及裝置,以解決現(xiàn)有技術(shù)中不能保證以盡可能大的物理通道帶寬利用率進(jìn)行芯片間高速Serdes傳輸?shù)膯?wèn)題。
[0006]本發(fā)明提供一種數(shù)據(jù)包發(fā)送方法,包括:接收上級(jí)接口發(fā)送的待發(fā)送數(shù)據(jù)包,將待發(fā)送數(shù)據(jù)包存儲(chǔ)在預(yù)先設(shè)置的緩存空間中,并根據(jù)當(dāng)前的傳輸帶寬從緩存空間中抽取相應(yīng)長(zhǎng)度的數(shù)據(jù)包;對(duì)抽取的數(shù)據(jù)包進(jìn)行解析,將數(shù)據(jù)包幀邊界格式和數(shù)據(jù)包幀間隔剔除,將保留下來(lái)的數(shù)據(jù)幀進(jìn)行重新合并,并將合并后的數(shù)據(jù)幀按照發(fā)送接口規(guī)定的幀邊界格式和幀間隔重新組建為一個(gè)新數(shù)據(jù)包;將新數(shù)據(jù)包通過(guò)發(fā)送接口進(jìn)行發(fā)送。
[0007]優(yōu)選地,發(fā)送接口包括:XGMII接口、以及XAUI接口。
[0008]優(yōu)選地,緩存空間中設(shè)置有按序號(hào)排列的多個(gè)緩存子空間;每個(gè)緩存子空間的緩存深度為上級(jí)接口允許發(fā)送待發(fā)送數(shù)據(jù)包的最大長(zhǎng)度,或者,每個(gè)緩存子空間的緩存深度為預(yù)先規(guī)定的發(fā)送待發(fā)送數(shù)據(jù)包的最大長(zhǎng)度。
[0009]優(yōu)選地,將待發(fā)送數(shù)據(jù)包存儲(chǔ)在預(yù)先設(shè)置的緩存空間中具體包括:判斷緩存空間中的多個(gè)緩存子空間的存儲(chǔ)狀態(tài);如果多個(gè)緩存子空間均已存儲(chǔ)數(shù)據(jù),則向上級(jí)接口發(fā)送流控指示,禁止上級(jí)接口繼續(xù)發(fā)送數(shù)據(jù);如果多個(gè)緩存子空間中有至少一個(gè)緩存子空間未存儲(chǔ)數(shù)據(jù),則向上級(jí)接口發(fā)送傳輸就緒響應(yīng),并接收上級(jí)接口發(fā)送的待發(fā)送數(shù)據(jù)包,根據(jù)緩存空間中各個(gè)緩存子空間的空滿(mǎn)狀態(tài),將接收的每個(gè)待發(fā)送數(shù)據(jù)包按照接收順序分別存儲(chǔ)到各個(gè)空閑的緩存子空間中;根據(jù)當(dāng)前的傳輸帶寬從緩存空間中抽取相應(yīng)長(zhǎng)度的數(shù)據(jù)包具體包括:根據(jù)當(dāng)前的傳輸帶寬,按照存儲(chǔ)順序從緩存空間的一個(gè)或多個(gè)相應(yīng)緩存子空間中抽取出一個(gè)或多個(gè)總長(zhǎng)度與當(dāng)前的傳輸帶寬相應(yīng)的待發(fā)送數(shù)據(jù)包。
[0010]優(yōu)選地,上述方法還包括:將抽取的待發(fā)送數(shù)據(jù)包回填到緩存空間中的相應(yīng)緩存子空間中;將回填到緩存空間中的與已發(fā)送的新數(shù)據(jù)包相應(yīng)的待發(fā)送數(shù)據(jù)包刪除。
[0011]優(yōu)選地,將新數(shù)據(jù)包通過(guò)發(fā)送接口進(jìn)行發(fā)送之前,上述方法還包括:獲取新數(shù)據(jù)包,對(duì)新數(shù)據(jù)包進(jìn)行循環(huán)冗余校驗(yàn)碼CRC校驗(yàn),并將校驗(yàn)結(jié)果插入到新數(shù)據(jù)包中。
[0012]優(yōu)選地,當(dāng)前的傳輸帶寬為:根據(jù)用戶(hù)需要預(yù)先調(diào)整的傳輸帶寬。
[0013]本發(fā)明還提供了一種數(shù)據(jù)包發(fā)送裝置,包括:數(shù)據(jù)流量控制模塊,用于接收上級(jí)接口發(fā)送的待發(fā)送數(shù)據(jù)包,并將待發(fā)送數(shù)據(jù)包存儲(chǔ)在預(yù)先設(shè)置的緩存空間中;緩存空間,用于存儲(chǔ)待發(fā)送數(shù)據(jù)包;帶寬調(diào)整器,用于根據(jù)當(dāng)前的傳輸帶寬從緩存空間中抽取相應(yīng)長(zhǎng)度的數(shù)據(jù)包;對(duì)抽取的數(shù)據(jù)包進(jìn)行解析,將數(shù)據(jù)包幀邊界格式和數(shù)據(jù)包幀間隔剔除,將保留下來(lái)的數(shù)據(jù)幀進(jìn)行重新合并,并將合并后的數(shù)據(jù)幀按照發(fā)送接口規(guī)定的幀邊界格式和幀間隔重新組建為一個(gè)新數(shù)據(jù)包,將新數(shù)據(jù)包發(fā)送到發(fā)送接口 ;發(fā)送接口,用于發(fā)送新數(shù)據(jù)包。
[0014]優(yōu)選地,發(fā)送接口包括:XGMII接口、以及XAUI接口。
[0015]優(yōu)選地,緩存空間中設(shè)置有按序號(hào)排列的多個(gè)緩存子空間;每個(gè)緩存子空間的緩存深度為上級(jí)接口允許發(fā)送待發(fā)送數(shù)據(jù)包的最大長(zhǎng)度,或者,每個(gè)緩存子空間的緩存深度為預(yù)先規(guī)定的發(fā)送待發(fā)送數(shù)據(jù)包的最大長(zhǎng)度;當(dāng)前的傳輸帶寬為:根據(jù)用戶(hù)需要預(yù)先調(diào)整的傳輸帶寬。
[0016]優(yōu)選地,數(shù)據(jù)流量控制模塊還用于:判斷緩存空間中的多個(gè)緩存子空間的存儲(chǔ)狀態(tài);如果多個(gè)緩存子空間均已存儲(chǔ)數(shù)據(jù),則向上級(jí)接口發(fā)送流控指示,禁止上級(jí)接口繼續(xù)發(fā)送數(shù)據(jù);如果多個(gè)緩存子空間中有至少一個(gè)緩存子空間未存儲(chǔ)數(shù)據(jù),則向上級(jí)接口發(fā)送傳輸就緒響應(yīng),并接收上級(jí)接口發(fā)送的待發(fā)送數(shù)據(jù)包,根據(jù)緩存空間中各個(gè)緩存子空間的空滿(mǎn)狀態(tài),將接收的每個(gè)待發(fā)送數(shù)據(jù)包按照接收順序分別存儲(chǔ)到各個(gè)空閑的緩存子空間中;帶寬調(diào)整器具體用于:根據(jù)當(dāng)前的傳輸帶寬,按照存儲(chǔ)順序從緩存空間的一個(gè)或多個(gè)相應(yīng)緩存子空間中抽取出一個(gè)或多個(gè)總長(zhǎng)度與當(dāng)前的傳輸帶寬相應(yīng)的待發(fā)送數(shù)據(jù)包;帶寬調(diào)整器還包括:回填模塊,用于將抽取的待發(fā)送數(shù)據(jù)包回填到緩存空間中的相應(yīng)緩存子空間中;刪除模塊,用于將回填到緩存空間中的與已發(fā)送的新數(shù)據(jù)包相應(yīng)的待發(fā)送數(shù)據(jù)包刪除。
[0017]優(yōu)選地,上述裝置還包括:循環(huán)冗余校驗(yàn)碼CRC校驗(yàn)?zāi)K,用于獲取新數(shù)據(jù)包,對(duì)新數(shù)據(jù)包進(jìn)行CRC校驗(yàn),并將校驗(yàn)結(jié)果插入到新數(shù)據(jù)包中。
[0018]本發(fā)明有益效果如下:
[0019]通過(guò)動(dòng)態(tài)地對(duì)當(dāng)前傳輸?shù)臄?shù)據(jù)包進(jìn)行合并、規(guī)整,解決了現(xiàn)有技術(shù)中不能保證以盡可能大的物理通道帶寬利用率進(jìn)行芯片間高速Serdes傳輸?shù)膯?wèn)題,能夠靈活可靠地應(yīng)用芯片間的通信的環(huán)境中,有效提高了傳輸?shù)膸捓寐?,為芯片間高速Serdes通信提供了更優(yōu)質(zhì)的傳輸質(zhì)量保證。
[0020]上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書(shū)的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0021]通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
[0022]圖1是本發(fā)明實(shí)施例的數(shù)據(jù)包發(fā)送方法的流程圖;
[0023]圖2是本發(fā)明實(shí)施例的桶形環(huán)繞緩存器機(jī)制的工作原理示意圖;
[0024]圖3是本發(fā)明實(shí)施例的待發(fā)送數(shù)據(jù)包合并規(guī)整的示意圖;
[0025]圖4是本發(fā)明實(shí)施例的基于XGMII接口的數(shù)據(jù)包發(fā)送方法的工作原理的優(yōu)選示意圖;
[0026]圖5是本發(fā)明實(shí)施例的數(shù)據(jù)包發(fā)送裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0027]下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0028]為了能夠有效提高傳輸器對(duì)物理通道的帶寬利用率,有效解決由于不同情況下短包傳輸對(duì)帶寬利用率造成影響的問(wèn)題,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)包發(fā)送方法及裝置,針對(duì)在芯片間高速Serdes傳輸時(shí)系統(tǒng)級(jí)無(wú)法或不容易保證以盡可能大的帶寬利用率來(lái)傳輸?shù)那闆r,特別是多個(gè)上層應(yīng)用需求共用一條物理傳輸通道造成實(shí)際使用物理通道的帶寬利用降低的情況,通過(guò)預(yù)先配置,動(dòng)態(tài)地對(duì)當(dāng)前傳輸?shù)臄?shù)據(jù)短包進(jìn)行合并、規(guī)整,實(shí)現(xiàn)提高物理通道傳輸利用率的目的。以下結(jié)合附圖以及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不限定本發(fā)明。
[0029]方法實(shí)施例
[0030]根據(jù)本發(fā)明的實(shí)施例,提供了一種數(shù)據(jù)包發(fā)送方法,圖1是本發(fā)明實(shí)施例的數(shù)據(jù)包發(fā)送方法的流程圖,如圖1所示,根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)包發(fā)送方法,包括如下處理:
[0031]步驟101,接收上級(jí)接口發(fā)送的待發(fā)送數(shù)據(jù)包,將待發(fā)送數(shù)據(jù)包存儲(chǔ)在預(yù)先設(shè)置的緩存空間中,并根據(jù)當(dāng)前的傳輸帶寬從緩存空間中抽取相應(yīng)長(zhǎng)度的數(shù)據(jù)包;
[0032]優(yōu)選地,在本發(fā)明實(shí)施例中,當(dāng)前的傳輸帶寬可以為:根據(jù)用戶(hù)需要預(yù)先調(diào)整的傳輸帶寬。
[0033]具體地,緩存空間中設(shè)置有按序號(hào)排列的多個(gè)緩存子空間;每個(gè)緩存子空間的緩存深度為上級(jí)接口允許發(fā)送待發(fā)送數(shù)據(jù)包的最大長(zhǎng)度,或者,每個(gè)緩存子空間的緩存深度為預(yù)先規(guī)定的發(fā)送待發(fā)送數(shù)據(jù)包的最大長(zhǎng)度。
[0034]在步驟101中,將待發(fā)送數(shù)據(jù)包存儲(chǔ)在預(yù)先設(shè)置的緩存空間中具體包括:
[0035]1、判斷緩存空間中的多個(gè)緩存子空間的存儲(chǔ)狀態(tài);
[0036]2、如果多個(gè)緩存子空間均已存儲(chǔ)數(shù)據(jù),則向上級(jí)接口發(fā)送流控指示,禁止上級(jí)接口繼續(xù)發(fā)送數(shù)據(jù);
[0037]3、如果多個(gè)緩存子空間中有至少一個(gè)緩存子空間未存儲(chǔ)數(shù)據(jù),則向上級(jí)接口發(fā)送傳輸就緒響應(yīng),并接收上級(jí)接口發(fā)送的待發(fā)送數(shù)據(jù)包,根據(jù)緩存空間中各個(gè)緩存子空間的空滿(mǎn)狀態(tài),將接收的每個(gè)待發(fā)送數(shù)據(jù)包按照接收順序分別存儲(chǔ)到各個(gè)空閑的緩存子空間中。[0038]在步驟101中,根據(jù)當(dāng)前的傳輸帶寬從緩存空間中抽取相應(yīng)長(zhǎng)度的數(shù)據(jù)包具體包括:根據(jù)當(dāng)前的傳輸帶寬,按照存儲(chǔ)順序從緩存空間的一個(gè)或多個(gè)相應(yīng)緩存子空間中抽取出一個(gè)或多個(gè)總長(zhǎng)度與當(dāng)前的傳輸帶寬相應(yīng)的待發(fā)送數(shù)據(jù)包。
[0039]優(yōu)選地,在本發(fā)明實(shí)施例中,還可以將抽取的待發(fā)送數(shù)據(jù)包回填到緩存空間中的相應(yīng)緩存子空間中。
[0040]具體地,在步驟101中的緩存空間的緩存機(jī)制為桶形環(huán)繞緩存器機(jī)制。圖2是本發(fā)明實(shí)施例的桶形環(huán)繞緩存器機(jī)制的工作原理示意圖,如圖2所示,根據(jù)當(dāng)前緩存空間的空滿(mǎn)情況(在本發(fā)明實(shí)施例中,緩存空間最大可配置到16個(gè)緩存子空間),將待發(fā)送數(shù)據(jù)包預(yù)存到對(duì)應(yīng)的緩存子空間中。在本發(fā)明實(shí)施例中,該緩存空間支持I到16號(hào)之間的數(shù)據(jù)循環(huán)讀取和對(duì)應(yīng)號(hào)緩存子空間中緩存的待發(fā)送數(shù)據(jù)包的抽取和回填。在對(duì)應(yīng)號(hào)緩存子空間中緩存的待發(fā)送數(shù)據(jù)包在抽取到幀結(jié)束時(shí)會(huì)自動(dòng)抽取下一號(hào)緩存子空間中緩存的待發(fā)送數(shù)據(jù)包。例如,當(dāng)前只保存了 8個(gè)號(hào)的待發(fā)送數(shù)據(jù)包,啟動(dòng)讀取控制機(jī)后可以根據(jù)當(dāng)前緩存子空間的空滿(mǎn)狀態(tài)動(dòng)態(tài)讀取8個(gè)緩存子空間中緩存的待發(fā)送數(shù)據(jù)包,以保證待發(fā)送數(shù)據(jù)包發(fā)送的及時(shí)性。對(duì)應(yīng)到每個(gè)具體緩存子空間,每個(gè)緩存子空間的深度為預(yù)先規(guī)定的發(fā)送待發(fā)送數(shù)據(jù)包的最大長(zhǎng)度。同時(shí)待發(fā)送數(shù)據(jù)包抽取時(shí)具有自動(dòng)回填功能,保證待發(fā)送數(shù)據(jù)包在清除之前都具有備份功能,可以選擇二次傳輸。桶形環(huán)繞緩存器機(jī)制的緩存空間為待發(fā)送數(shù)據(jù)包的合并、規(guī)整提供載體,同時(shí)為待發(fā)送數(shù)據(jù)包二次傳輸提供備份功能。
[0041]步驟102,對(duì)抽取的數(shù)據(jù)包進(jìn)行解析,將數(shù)據(jù)包幀邊界格式和數(shù)據(jù)包幀間隔剔除,將保留下來(lái)的數(shù)據(jù)幀進(jìn)行重新合并,并將合并后的數(shù)據(jù)幀按照發(fā)送接口規(guī)定的幀邊界格式和幀間隔重新組建為一個(gè)新數(shù)據(jù)包;
[0042]其中,發(fā)送接口包括=XGMII接口、以及XAUI接口。具體地,在本發(fā)明實(shí)施例中,發(fā)送接口為能夠支持根據(jù)幀邊界格式和幀間隔合并數(shù)據(jù)包的接口。
[0043]具體地,圖3是本發(fā)明實(shí)施例的待發(fā)送數(shù)據(jù)包合并規(guī)整的示意圖,如圖3所示,配合緩存空間的桶形環(huán)繞緩存器機(jī)制,根據(jù)當(dāng)前的傳輸帶寬將數(shù)據(jù)抽取后,獲取抽取的數(shù)據(jù)包的包邊界信息,同時(shí)根據(jù)當(dāng)前通道的傳輸情況重新合并、規(guī)整數(shù)據(jù),調(diào)整之后數(shù)據(jù)包的幀格式更加緊湊,帶寬利用率更高。
[0044]步驟103,將新數(shù)據(jù)包通過(guò)發(fā)送接口進(jìn)行發(fā)送。
[0045]優(yōu)選地,在本發(fā)明實(shí)施例中,將新數(shù)據(jù)包通過(guò)發(fā)送接口進(jìn)行發(fā)送之前,還包括如下處理:獲取新數(shù)據(jù)包,對(duì)新數(shù)據(jù)包進(jìn)行循環(huán)冗余校驗(yàn)碼(Cyclic redundancy check,簡(jiǎn)稱(chēng)為CRC)校驗(yàn),并將校驗(yàn)結(jié)果插入到新數(shù)據(jù)包中。
[0046]具體地,經(jīng)過(guò)新調(diào)整之后的新數(shù)據(jù)包,為了保證數(shù)據(jù)內(nèi)容傳輸?shù)恼_性和完整性,可選的加入16比特循環(huán)冗余校驗(yàn)碼(Cyclic redundancy check 16bit,簡(jiǎn)稱(chēng)為CRC16)連續(xù)數(shù)據(jù)并行校驗(yàn),校驗(yàn)結(jié)果在新數(shù)據(jù)包的幀尾處插入,當(dāng)接收端接收新調(diào)整數(shù)據(jù)幀后按照規(guī)則進(jìn)行校驗(yàn)即可判斷傳輸幀的正確性;如果接收端不支持校驗(yàn)功能,不影響數(shù)據(jù)正常傳輸。
[0047]最后,需要將回填到緩存空間中的與已發(fā)送的新數(shù)據(jù)包相應(yīng)的待發(fā)送數(shù)據(jù)包刪除。以情況緩存空間,為存儲(chǔ)后續(xù)的待發(fā)送數(shù)據(jù)包做好準(zhǔn)備。
[0048]圖4是本發(fā)明實(shí)施例的基于XGMII接口的數(shù)據(jù)包發(fā)送方法的工作原理的優(yōu)選示意圖,如圖4所示,包括傳輸層數(shù)據(jù)源、寬帶調(diào)整器流控模塊、桶形環(huán)繞緩存器、寬帶調(diào)整器、CRC16校驗(yàn)裝置、以及XGMII接口。其中,桶形環(huán)繞緩存器機(jī)制實(shí)現(xiàn)對(duì)數(shù)據(jù)預(yù)存和緩沖;動(dòng)態(tài)管理機(jī)制實(shí)現(xiàn)基于XGMII接口即將發(fā)送的數(shù)據(jù)包的調(diào)度、抽?。粩?shù)據(jù)發(fā)送組包預(yù)處理機(jī)制根據(jù)對(duì)帶寬的調(diào)整預(yù)先配置,重新合并、規(guī)整數(shù)據(jù)包,去除占用帶寬的幀頭信息、幀尾信息、幀間隔信息;數(shù)據(jù)發(fā)送機(jī)制根據(jù)XGMII接口標(biāo)準(zhǔn)重新組包發(fā)送新合并、規(guī)整后的數(shù)據(jù)包,在保留原始數(shù)據(jù)包的信息內(nèi)容的基礎(chǔ)上,極大的去除了占用帶寬的無(wú)用信息,保證傳輸對(duì)帶寬的利用率;同時(shí)為了保證新數(shù)據(jù)包的正確性,可選的采用標(biāo)準(zhǔn)的CRC16校驗(yàn)機(jī)制對(duì)整個(gè)新的數(shù)據(jù)包進(jìn)行連續(xù)校驗(yàn),并將校驗(yàn)碼加入幀格式中,方便接收端校驗(yàn)傳輸正確性。
[0049]如圖4所示,根據(jù)本發(fā)明實(shí)施例的基于XGMII接口的數(shù)據(jù)包發(fā)送方法具體包括如下處理:
[0050]步驟1、寬帶調(diào)整器流控模塊根據(jù)上一級(jí)系統(tǒng)接口(傳輸層數(shù)據(jù)源)的發(fā)送數(shù)據(jù)情況和本地流控狀態(tài)情況,反饋傳輸就緒響應(yīng),并判斷此時(shí)帶寬調(diào)整器是否啟動(dòng),如果啟動(dòng)方可開(kāi)始接收上一級(jí)系統(tǒng)接口(傳輸層數(shù)據(jù)源)發(fā)送的數(shù)據(jù)包。
[0051]步驟2、通過(guò)寬帶調(diào)整器流控模塊之后的數(shù)據(jù)包,緩存控制機(jī)制根據(jù)當(dāng)前桶形環(huán)繞緩存器的剩余空間狀態(tài)來(lái)決定將原始數(shù)據(jù)幀存放到第幾號(hào)緩存器中,此時(shí)緩存器為雙向操作,不僅實(shí)現(xiàn)之前數(shù)據(jù)的抽取發(fā)送、回填,還實(shí)現(xiàn)新數(shù)據(jù)的填入保存。在發(fā)送端數(shù)據(jù)量非常大的情況下,此桶形環(huán)繞緩存器會(huì)不斷的寫(xiě)入新的數(shù)據(jù),與此同時(shí)根據(jù)當(dāng)前的傳輸帶寬來(lái)抽取數(shù)據(jù),實(shí)時(shí)的組包發(fā)送。此情況下物理通道傳輸?shù)膸捓寐蕿樽罡?。?shù)據(jù)包抽取到寬帶調(diào)整器后,會(huì)自動(dòng)反饋是否清除更新對(duì)應(yīng)緩存下的數(shù)據(jù),保證后續(xù)新數(shù)據(jù)的連續(xù)填入。優(yōu)選地,在本發(fā)明實(shí)施例中,寬帶調(diào)整器流控模塊也可以直接獲取桶形環(huán)繞緩存器的緩存情況,以確定是否清除更新對(duì)應(yīng)緩存下的數(shù)據(jù)。
[0052]步驟3、到達(dá)寬帶調(diào)整器的數(shù)據(jù)幀,會(huì)自動(dòng)的完成原始數(shù)據(jù)幀的解包工作,將包邊界格式和幀間隔剔除,保留有用的傳輸信息完成合并;數(shù)據(jù)幀一旦完成合并,會(huì)自動(dòng)啟動(dòng)新數(shù)據(jù)信息的XGMII幀格式組包狀態(tài)機(jī),將合并的數(shù)據(jù)按照XGMII的幀邊界和幀間隔要求組建成一筆大的數(shù)據(jù)幀進(jìn)行發(fā)送。
[0053]在步驟3中,包括兩種傳輸模式:正常帶寬傳輸模式和調(diào)整帶寬傳輸模式,如果設(shè)置為正常帶寬傳輸模式,那么桶形環(huán)繞緩存器只存儲(chǔ)數(shù)據(jù)包,寬帶調(diào)整器從桶形環(huán)繞緩存器取出數(shù)據(jù)包后,不進(jìn)行任何處理,直接采用正常帶寬傳輸模式發(fā)送數(shù)據(jù)包。如果設(shè)置為調(diào)整帶寬傳輸模式,則需要進(jìn)行上述處理,發(fā)送合并規(guī)整后的新數(shù)據(jù)包。
[0054]步驟4、在進(jìn)行新數(shù)據(jù)包組包發(fā)送的同時(shí),可選開(kāi)啟進(jìn)行CRC16連續(xù)數(shù)據(jù)并行校驗(yàn),新的數(shù)據(jù)在組包發(fā)送的過(guò)程中,會(huì)同步進(jìn)行CRC校驗(yàn),連續(xù)校驗(yàn)的校驗(yàn)碼結(jié)果將在幀尾處獲得并插入到幀尾部分一同發(fā)送,當(dāng)接收同采用相同的校驗(yàn)方式進(jìn)行校驗(yàn)即可獲得數(shù)據(jù)正確與否的信息。
[0055]步驟5、將組建好的XGMII標(biāo)準(zhǔn)幀格式數(shù)據(jù)與XGMII接口進(jìn)行對(duì)接,通過(guò)XGMII接口發(fā)送組建好的XGMII標(biāo)準(zhǔn)幀格式數(shù)據(jù),此部分支持異步跨時(shí)鐘域處理部分,方便接口使用。
[0056]綜上所述,借助于本發(fā)明實(shí)施例的技術(shù)方案,能夠靈活可靠地應(yīng)用在基于XGMII接口芯片間通信的環(huán)境中,通過(guò)本地桶形環(huán)繞緩存器機(jī)制為數(shù)據(jù)幀提供數(shù)據(jù)幀緩存庫(kù),使用帶寬調(diào)整器流控模塊和帶寬調(diào)整器完成動(dòng)態(tài)的數(shù)據(jù)幀幀格式的調(diào)整。有效提高了傳輸?shù)膸捓寐?,為芯片間通信提供了更優(yōu)質(zhì)的傳輸。[0057]裝置實(shí)施例
[0058]根據(jù)本發(fā)明的實(shí)施例,提供了一種數(shù)據(jù)包發(fā)送裝置,圖5是本發(fā)明實(shí)施例的數(shù)據(jù)包發(fā)送裝置的結(jié)構(gòu)示意圖,如圖5所示,根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)包發(fā)送裝置包括:數(shù)據(jù)流量控制模塊50、緩存空間52、帶寬調(diào)整器54、以及發(fā)送接口 56,以下對(duì)本發(fā)明實(shí)施例的各個(gè)模塊進(jìn)行詳細(xì)的說(shuō)明。
[0059]數(shù)據(jù)流量控制模塊50,用于接收上級(jí)接口發(fā)送的待發(fā)送數(shù)據(jù)包,并將待發(fā)送數(shù)據(jù)包存儲(chǔ)在預(yù)先設(shè)置的緩存空間52中;
[0060]具體地,緩存空間52中設(shè)置有按序號(hào)排列的多個(gè)緩存子空間;每個(gè)緩存子空間的緩存深度為上級(jí)接口允許發(fā)送待發(fā)送數(shù)據(jù)包的最大長(zhǎng)度,或者,每個(gè)緩存子空間的緩存深度為預(yù)先規(guī)定的發(fā)送待發(fā)送數(shù)據(jù)包的最大長(zhǎng)度;
[0061]具體地,數(shù)據(jù)流量控制模塊50還用于:判斷緩存空間52中的多個(gè)緩存子空間的存儲(chǔ)狀態(tài);如果多個(gè)緩存子空間均已存儲(chǔ)數(shù)據(jù),則向上級(jí)接口發(fā)送流控指示,禁止上級(jí)接口繼續(xù)發(fā)送數(shù)據(jù);如果多個(gè)緩存子空間中有至少一個(gè)緩存子空間未存儲(chǔ)數(shù)據(jù),則向上級(jí)接口發(fā)送傳輸就緒響應(yīng),并接收上級(jí)接口發(fā)送的待發(fā)送數(shù)據(jù)包,根據(jù)緩存空間52中各個(gè)緩存子空間的空滿(mǎn)狀態(tài),將接收的每個(gè)待發(fā)送數(shù)據(jù)包按照接收順序分別存儲(chǔ)到各個(gè)空閑的緩存子空間中;
[0062]緩存空間52,用于存儲(chǔ)待發(fā)送數(shù)據(jù)包;
[0063]具體地,緩存空間52的緩存機(jī)制為桶形環(huán)繞緩存器機(jī)制。圖2是本發(fā)明實(shí)施例的桶形環(huán)繞緩存器機(jī)制的工作原理示意圖,如圖2所示,根據(jù)當(dāng)前緩存空間52的空滿(mǎn)情況(在本發(fā)明實(shí)施例中,緩存空間52最大可配置到16個(gè)緩存子空間),將待發(fā)送數(shù)據(jù)包預(yù)存到對(duì)應(yīng)的緩存子空間中。在本發(fā)明實(shí)施例中,該緩存空間52支持I到16號(hào)之間的數(shù)據(jù)循環(huán)讀取和對(duì)應(yīng)號(hào)緩存子空間中緩存的待發(fā)送數(shù)據(jù)包的抽取和回填。在對(duì)應(yīng)號(hào)緩存子空間中緩存的待發(fā)送數(shù)據(jù)包在抽取到幀結(jié)束時(shí)會(huì)自動(dòng)抽取下一號(hào)緩存子空間中緩存的待發(fā)送數(shù)據(jù)包。例如,當(dāng)前只保存了 8個(gè)號(hào)的待發(fā)送數(shù)據(jù)包,啟動(dòng)讀取控制機(jī)后可以根據(jù)當(dāng)前緩存子空間的空滿(mǎn)狀態(tài)動(dòng)態(tài)讀取8個(gè)緩存子空間中緩存的待發(fā)送數(shù)據(jù)包,以保證待發(fā)送數(shù)據(jù)包發(fā)送的及時(shí)性。對(duì)應(yīng)到每個(gè)具體緩存子空間,每個(gè)緩存子空間的深度為預(yù)先規(guī)定的發(fā)送待發(fā)送數(shù)據(jù)包的最大長(zhǎng)度。同時(shí)待發(fā)送數(shù)據(jù)包抽取時(shí)具有自動(dòng)回填功能,保證待發(fā)送數(shù)據(jù)包在清除之前都具有備份功能,可以選擇二次傳輸。桶形環(huán)繞緩存器機(jī)制的緩存空間52為待發(fā)送數(shù)據(jù)包的合并、規(guī)整提供載體,同時(shí)為待發(fā)送數(shù)據(jù)包二次傳輸提供備份功能。
[0064]帶寬調(diào)整器54,用于根據(jù)當(dāng)前的傳輸帶寬從緩存空間52中抽取相應(yīng)長(zhǎng)度的數(shù)據(jù)包;對(duì)抽取的數(shù)據(jù)包進(jìn)行解析,將數(shù)據(jù)包幀邊界格式和數(shù)據(jù)包幀間隔剔除,將保留下來(lái)的數(shù)據(jù)幀進(jìn)行重新合并,并將合并后的數(shù)據(jù)幀按照發(fā)送接口 56規(guī)定的幀邊界格式和幀間隔重新組建為一個(gè)新數(shù)據(jù)包,將新數(shù)據(jù)包發(fā)送到發(fā)送接口 56 ;
[0065]具體地,當(dāng)前的傳輸帶寬為:根據(jù)用戶(hù)需要預(yù)先調(diào)整的傳輸帶寬。
[0066]帶寬調(diào)整器54具體用于:根據(jù)當(dāng)前的傳輸帶寬,按照存儲(chǔ)順序從緩存空間52的一個(gè)或多個(gè)相應(yīng)緩存子空間中抽取出一個(gè)或多個(gè)總長(zhǎng)度與當(dāng)前的傳輸帶寬相應(yīng)的待發(fā)送數(shù)據(jù)包;
[0067]帶寬調(diào)整器54還包括:
[0068]回填模塊,用于將抽取的待發(fā)送數(shù)據(jù)包回填到緩存空間52中的相應(yīng)緩存子空間中;
[0069]刪除模塊,用于將回填到緩存空間52中的與已發(fā)送的新數(shù)據(jù)包相應(yīng)的待發(fā)送數(shù)據(jù)包刪除。
[0070]具體地,圖3是本發(fā)明實(shí)施例的待發(fā)送數(shù)據(jù)包合并規(guī)整的示意圖,如圖3所示,配合緩存空間52的桶形環(huán)繞緩存器機(jī)制,根據(jù)當(dāng)前的傳輸帶寬將數(shù)據(jù)抽取后,獲取抽取的數(shù)據(jù)包的包邊界信息,同時(shí)根據(jù)當(dāng)前通道的傳輸情況重新合并、規(guī)整數(shù)據(jù),調(diào)整之后數(shù)據(jù)包的幀格式更加緊湊,帶寬利用率更高。
[0071]發(fā)送接口 56,用于發(fā)送新數(shù)據(jù)包。
[0072]優(yōu)選地,發(fā)送接口包括=XGMII接口、以及XAUI接口。具體地,在本發(fā)明實(shí)施例中,發(fā)送接口為能夠支持根據(jù)幀邊界格式和幀間隔合并數(shù)據(jù)包的接口。
[0073]優(yōu)選地,根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)包發(fā)送裝置還包括:循環(huán)冗余校驗(yàn)碼(Cyclicredundancy check,簡(jiǎn)稱(chēng)為CRC)校驗(yàn)?zāi)K,用于獲取新數(shù)據(jù)包,對(duì)新數(shù)據(jù)包進(jìn)行CRC校驗(yàn),并將校驗(yàn)結(jié)果插入到新數(shù)據(jù)包中。
[0074]具體地,經(jīng)過(guò)新調(diào)整之后的新數(shù)據(jù)包,為了保證數(shù)據(jù)內(nèi)容傳輸?shù)恼_性和完整性,可選的加入16比特循環(huán)冗余校驗(yàn)碼(Cyclic redundancy check 16bit,簡(jiǎn)稱(chēng)為CRC16)連續(xù)數(shù)據(jù)并行校驗(yàn),校驗(yàn)結(jié)果在新數(shù)據(jù)包的幀尾處插入,當(dāng)接收端接收新調(diào)整數(shù)據(jù)幀后按照規(guī)則進(jìn)行校驗(yàn)即可判斷傳輸幀的正確性;如果接收端不支持校驗(yàn)功能,不影響數(shù)據(jù)正常傳輸。
[0075]圖4是本發(fā)明實(shí)施例的基于XGMII接口的數(shù)據(jù)包發(fā)送方法的工作原理的優(yōu)選示意圖,如圖4所示,包括傳輸層數(shù)據(jù)源、寬帶調(diào)整器流控模塊(上述數(shù)據(jù)流量控制模塊)、桶形環(huán)繞緩存器(上述緩存空間)、寬帶調(diào)整器、CRC16校驗(yàn)裝置(上述CRC校驗(yàn)?zāi)K)、以及XGMII接口。其中,桶形環(huán)繞緩存器機(jī)制實(shí)現(xiàn)對(duì)數(shù)據(jù)預(yù)存和緩沖;動(dòng)態(tài)管理機(jī)制實(shí)現(xiàn)基于XGMII接口即將發(fā)送的數(shù)據(jù)包的調(diào)度、抽?。粩?shù)據(jù)發(fā)送組包預(yù)處理機(jī)制根據(jù)對(duì)帶寬的調(diào)整預(yù)先配置,重新合并、規(guī)整數(shù)據(jù)包,去除占用帶寬的幀頭信息、幀尾信息、幀間隔信息;數(shù)據(jù)發(fā)送機(jī)制根據(jù)XGMII接口標(biāo)準(zhǔn)重新組包發(fā)送新合并、規(guī)整后的數(shù)據(jù)包,在保留原始數(shù)據(jù)包的信息內(nèi)容的基礎(chǔ)上,極大的去除了占用帶寬的無(wú)用信息,保證傳輸對(duì)帶寬的利用率;同時(shí)為了保證新數(shù)據(jù)包的正確性,可選的采用標(biāo)準(zhǔn)的CRC16校驗(yàn)機(jī)制對(duì)整個(gè)新的數(shù)據(jù)包進(jìn)行連續(xù)校驗(yàn),并將校驗(yàn)碼加入幀格式中,方便接收端校驗(yàn)傳輸正確性。
[0076]如圖4所示,根據(jù)本發(fā)明實(shí)施例的基于XGMII接口的數(shù)據(jù)包發(fā)送方法具體包括如下處理:
[0077]步驟1、寬帶調(diào)整器流控模塊根據(jù)上一級(jí)系統(tǒng)接口(傳輸層數(shù)據(jù)源)的發(fā)送數(shù)據(jù)情況和本地流控狀態(tài)情況,反饋傳輸就緒響應(yīng),并判斷此時(shí)帶寬調(diào)整器是否啟動(dòng),如果啟動(dòng)方可開(kāi)始接收上一級(jí)系統(tǒng)接口(傳輸層數(shù)據(jù)源)發(fā)送的數(shù)據(jù)包。
[0078]步驟2、通過(guò)寬帶調(diào)整器流控模塊之后的數(shù)據(jù)包,緩存控制機(jī)制根據(jù)當(dāng)前桶形環(huán)繞緩存器的剩余空間狀態(tài)來(lái)決定將原始數(shù)據(jù)幀存放到第幾號(hào)緩存器中,此時(shí)緩存器為雙向操作,不僅實(shí)現(xiàn)之前數(shù)據(jù)的抽取發(fā)送、回填,還實(shí)現(xiàn)新數(shù)據(jù)的填入保存。在發(fā)送端數(shù)據(jù)量非常大的情況下,此桶形環(huán)繞緩存器會(huì)不斷的寫(xiě)入新的數(shù)據(jù),與此同時(shí)根據(jù)當(dāng)前的傳輸帶寬來(lái)抽取數(shù)據(jù),實(shí)時(shí)的組包發(fā)送。此情況下物理通道傳輸?shù)膸捓寐蕿樽罡?。?shù)據(jù)包抽取到寬帶調(diào)整器后,會(huì)自動(dòng)反饋是否清除更新對(duì)應(yīng)緩存下的數(shù)據(jù),保證后續(xù)新數(shù)據(jù)的連續(xù)填入。優(yōu)選地,在本發(fā)明實(shí)施例中,寬帶調(diào)整器流控模塊也可以直接獲取桶形環(huán)繞緩存器的緩存情況,以確定是否清除更新對(duì)應(yīng)緩存下的數(shù)據(jù)。
[0079]步驟3、到達(dá)寬帶調(diào)整器的數(shù)據(jù)幀,會(huì)自動(dòng)的完成原始數(shù)據(jù)幀的解包工作,將包邊界格式和幀間隔剔除,保留有用的傳輸信息完成合并;數(shù)據(jù)幀一旦完成合并,會(huì)自動(dòng)啟動(dòng)新數(shù)據(jù)信息的XGMII幀格式組包狀態(tài)機(jī),將合并的數(shù)據(jù)按照XGMII的幀邊界和幀間隔要求組建成一筆大的數(shù)據(jù)幀進(jìn)行發(fā)送。
[0080]在步驟3中,包括兩種傳輸模式:正常帶寬傳輸模式和調(diào)整帶寬傳輸模式,如果設(shè)置為正常帶寬傳輸模式,那么桶形環(huán)繞緩存器只存儲(chǔ)數(shù)據(jù)包,寬帶調(diào)整器從桶形環(huán)繞緩存器取出數(shù)據(jù)包后,不進(jìn)行任何處理,直接采用正常帶寬傳輸模式發(fā)送數(shù)據(jù)包。如果設(shè)置為調(diào)整帶寬傳輸模式,則需要進(jìn)行上述處理,發(fā)送合并規(guī)整后的新數(shù)據(jù)包。
[0081]步驟4、在進(jìn)行新數(shù)據(jù)包組包發(fā)送的同時(shí),可選開(kāi)啟進(jìn)行CRC16連續(xù)數(shù)據(jù)并行校驗(yàn),新的數(shù)據(jù)在組包發(fā)送的過(guò)程中,會(huì)同步進(jìn)行CRC校驗(yàn),連續(xù)校驗(yàn)的校驗(yàn)碼結(jié)果將在幀尾處獲得并插入到幀尾部分一同發(fā)送,當(dāng)接收同采用相同的校驗(yàn)方式進(jìn)行校驗(yàn)即可獲得數(shù)據(jù)正確與否的信息。
[0082]步驟5、將組建好的XGMII標(biāo)準(zhǔn)幀格式數(shù)據(jù)與XGMII接口進(jìn)行對(duì)接,通過(guò)XGMII接口發(fā)送組建好的XGMII標(biāo)準(zhǔn)幀格式數(shù)據(jù),此部分支持異步跨時(shí)鐘域處理部分,方便接口使用。
[0083]綜上所述,借助于本發(fā)明實(shí)施例的技術(shù)方案,能夠靈活可靠地應(yīng)用在基于XGMII接口芯片間通信的環(huán)境中,通過(guò)本地桶形環(huán)繞緩存器機(jī)制為數(shù)據(jù)幀提供數(shù)據(jù)幀緩存庫(kù),使用帶寬調(diào)整器流控模塊和帶寬調(diào)整器完成動(dòng)態(tài)的數(shù)據(jù)幀幀格式的調(diào)整。有效提高了傳輸?shù)膸捓寐剩瑸樾酒g通信提供了更優(yōu)質(zhì)的傳輸。
[0084]在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類(lèi)系統(tǒng)所要求的結(jié)構(gòu)是顯而易見(jiàn)的。此外,本發(fā)明也不針對(duì)任何特定編程語(yǔ)言。應(yīng)當(dāng)明白,可以利用各種編程語(yǔ)言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語(yǔ)言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
[0085]在此處所提供的說(shuō)明書(shū)中,說(shuō)明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說(shuō)明書(shū)的理解。
[0086]類(lèi)似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開(kāi)并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開(kāi)的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說(shuō),如下面的權(quán)利要求書(shū)所反映的那樣,發(fā)明方面在于少于前面公開(kāi)的單個(gè)實(shí)施例的所有特征。因此,遵循【具體實(shí)施方式】的權(quán)利要求書(shū)由此明確地并入該【具體實(shí)施方式】,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
[0087]本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過(guò)程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的所有特征以及如此公開(kāi)的任何方法或者設(shè)備的所有過(guò)程或單元進(jìn)行組合。除非另外明確陳述,本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來(lái)代替。
[0088]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書(shū)中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來(lái)使用。
[0089]本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來(lái)實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的基于XGMII接口的數(shù)據(jù)包發(fā)送裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
[0090]應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說(shuō)明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過(guò)同一個(gè)硬件項(xiàng)來(lái)具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱(chēng)。
【權(quán)利要求】
1.一種數(shù)據(jù)包發(fā)送方法,其特征在于,包括: 接收上級(jí)接口發(fā)送的待發(fā)送數(shù)據(jù)包,將所述待發(fā)送數(shù)據(jù)包存儲(chǔ)在預(yù)先設(shè)置的緩存空間中,并根據(jù)當(dāng)前的傳輸帶寬從所述緩存空間中抽取相應(yīng)長(zhǎng)度的數(shù)據(jù)包; 對(duì)抽取的所述數(shù)據(jù)包進(jìn)行解析,將數(shù)據(jù)包幀邊界格式和數(shù)據(jù)包幀間隔剔除,將保留下來(lái)的數(shù)據(jù)幀進(jìn)行重新合并,并將合并后的數(shù)據(jù)幀按照發(fā)送接口規(guī)定的幀邊界格式和幀間隔重新組建為一個(gè)新數(shù)據(jù)包; 將所述新數(shù)據(jù)包通過(guò)所述發(fā)送接口進(jìn)行發(fā)送。
2.如權(quán)利要求1所述的方法,其特征在于,所述發(fā)送接口包括=XGMII接口、以及XAUI接口。
3.如權(quán)利要求1所述的方法,其特征在于,所述緩存空間中設(shè)置有按序號(hào)排列的多個(gè)緩存子空間;每個(gè)緩存子空間的緩存深度為所述上級(jí)接口允許發(fā)送所述待發(fā)送數(shù)據(jù)包的最大長(zhǎng)度,或者,每個(gè)緩存子空間的緩存深度為預(yù)先規(guī)定的發(fā)送所述待發(fā)送數(shù)據(jù)包的最大長(zhǎng)度。
4.如權(quán)利要求3所述的方法,其特征在于,將待發(fā)送數(shù)據(jù)包存儲(chǔ)在預(yù)先設(shè)置的緩存空間中具體包括: 判斷所述緩存空間中的多個(gè)緩存子空間的存儲(chǔ)狀態(tài); 如果所述多個(gè)緩存子空間均已存儲(chǔ)數(shù)據(jù),則向所述上級(jí)接口發(fā)送流控指示,禁止所述上級(jí)接口繼續(xù)發(fā)送數(shù)據(jù); 如果所述多個(gè)緩存子空間中 有至少一個(gè)緩存子空間未存儲(chǔ)數(shù)據(jù),則向所述上級(jí)接口發(fā)送傳輸就緒響應(yīng),并接收所述上級(jí)接口發(fā)送的待發(fā)送數(shù)據(jù)包,根據(jù)所述緩存空間中各個(gè)緩存子空間的空滿(mǎn)狀態(tài),將接收的每個(gè)待發(fā)送數(shù)據(jù)包按照接收順序分別存儲(chǔ)到各個(gè)空閑的緩存子空間中; 根據(jù)當(dāng)前的傳輸帶寬從所述緩存空間中抽取相應(yīng)長(zhǎng)度的數(shù)據(jù)包具體包括: 根據(jù)當(dāng)前的傳輸帶寬,按照存儲(chǔ)順序從所述緩存空間的一個(gè)或多個(gè)相應(yīng)緩存子空間中抽取出一個(gè)或多個(gè)總長(zhǎng)度與所述當(dāng)前的傳輸帶寬相應(yīng)的待發(fā)送數(shù)據(jù)包。
5.如權(quán)利要求4所述的方法,其特征在于,所述方法還包括: 將抽取的所述待發(fā)送數(shù)據(jù)包回填到所述緩存空間中的相應(yīng)緩存子空間中; 將回填到所述緩存空間中的與所述已發(fā)送的新數(shù)據(jù)包相應(yīng)的待發(fā)送數(shù)據(jù)包刪除。
6.如權(quán)利要求1所述的方法,其特征在于,將所述新數(shù)據(jù)包通過(guò)所述發(fā)送接口進(jìn)行發(fā)送之前,所述方法還包括: 獲取所述新數(shù)據(jù)包,對(duì)所述新數(shù)據(jù)包進(jìn)行循環(huán)冗余校驗(yàn)碼CRC校驗(yàn),并將校驗(yàn)結(jié)果插入到所述新數(shù)據(jù)包中。
7.如權(quán)利要求1所述的方法,其特征在于,所述當(dāng)前的傳輸帶寬為: 根據(jù)用戶(hù)需要預(yù)先調(diào)整的傳輸帶寬。
8.一種數(shù)據(jù)包發(fā)送裝置,其特征在于,包括: 數(shù)據(jù)流量控制模塊,用于接收上級(jí)接口發(fā)送的待發(fā)送數(shù)據(jù)包,并將所述待發(fā)送數(shù)據(jù)包存儲(chǔ)在預(yù)先設(shè)置的緩存空間中; 緩存空間,用于存儲(chǔ)待發(fā)送數(shù)據(jù)包; 帶寬調(diào)整器,用于根據(jù)當(dāng)前的傳輸帶寬從所述緩存空間中抽取相應(yīng)長(zhǎng)度的數(shù)據(jù)包;對(duì)抽取的所述數(shù)據(jù)包進(jìn)行解析,將數(shù)據(jù)包幀邊界格式和數(shù)據(jù)包幀間隔剔除,將保留下來(lái)的數(shù)據(jù)幀進(jìn)行重新合并,并將合并后的數(shù)據(jù)幀按照發(fā)送接口規(guī)定的幀邊界格式和幀間隔重新組建為一個(gè)新數(shù)據(jù)包,將所述新數(shù)據(jù)包發(fā)送到所述發(fā)送接口 ; 所述發(fā)送接口,用于發(fā)送所述新數(shù)據(jù)包。
9.如權(quán)利要求8所述的裝置,其特征在于,所述發(fā)送接口包括=XGMII接口、以及XAUI接口。
10.如權(quán)利要求8所述的裝置,其特征在于, 所述緩存空間中設(shè)置有按序號(hào)排列的多個(gè)緩存子空間;每個(gè)緩存子空間的緩存深度為所述上級(jí)接口允許發(fā)送所述待發(fā)送數(shù)據(jù)包的最大長(zhǎng)度,或者,每個(gè)緩存子空間的緩存深度為預(yù)先規(guī)定的發(fā)送所述待發(fā)送數(shù)據(jù)包的最大長(zhǎng)度; 所述當(dāng)前的傳輸帶寬為:根據(jù)用戶(hù)需要預(yù)先調(diào)整的傳輸帶寬。
11.如權(quán)利要求10所述的裝置,其特征在于, 所述數(shù)據(jù)流量控制模塊還用于:判斷所述緩存空間中的多個(gè)緩存子空間的存儲(chǔ)狀態(tài);如果所述多個(gè)緩存子空間均已存儲(chǔ)數(shù)據(jù),則向所述上級(jí)接口發(fā)送流控指示,禁止所述上級(jí)接口繼續(xù)發(fā)送數(shù)據(jù);如果所述多個(gè)緩存子空間中有至少一個(gè)緩存子空間未存儲(chǔ)數(shù)據(jù),則向所述上級(jí)接口發(fā)送傳輸就緒響應(yīng),并接收所述上級(jí)接口發(fā)送的待發(fā)送數(shù)據(jù)包,根據(jù)所述緩存空間中各個(gè)緩存子空間的空滿(mǎn)狀態(tài),將接收的每個(gè)待發(fā)送數(shù)據(jù)包按照接收順序分別存儲(chǔ)到各個(gè)空閑的緩存子空間中; 所述帶寬調(diào)整器具體用于:根據(jù)當(dāng)前的傳輸帶寬,按照存儲(chǔ)順序從所述緩存空間的一個(gè)或多個(gè)相應(yīng)緩存子空間中抽取出一個(gè)或多個(gè)總長(zhǎng)度與所述當(dāng)前的傳輸帶寬相應(yīng)的待發(fā)送數(shù)據(jù)包; 所述帶寬調(diào)整器還包括:` 回填模塊,用于將抽取的所述待發(fā)送數(shù)據(jù)包回填到所述緩存空間中的相應(yīng)緩存子空間中; 刪除模塊,用于將回填到所述緩存空間中的與所述已發(fā)送的新數(shù)據(jù)包相應(yīng)的待發(fā)送數(shù)據(jù)包刪除。
12.如權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括: 循環(huán)冗余校驗(yàn)碼CRC校驗(yàn)?zāi)K,用于獲取所述新數(shù)據(jù)包,對(duì)所述新數(shù)據(jù)包進(jìn)行CRC校驗(yàn),并將校驗(yàn)結(jié)果插入到所述新數(shù)據(jù)包中。
【文檔編號(hào)】H04L12/861GK103685060SQ201210336313
【公開(kāi)日】2014年3月26日 申請(qǐng)日期:2012年9月12日 優(yōu)先權(quán)日:2012年9月12日
【發(fā)明者】張帆, 何鐵軍, 譚智雄, 丁強(qiáng) 申請(qǐng)人:中興通訊股份有限公司