1、什么是Pause幀
Pause幀是一種報(bào)文類型。在IEEE802.3協(xié)議中規(guī)定中,pause幀是一種控制幀,用于控制數(shù)據(jù)流停止發(fā)送,在MAC 發(fā)送側(cè)產(chǎn)生,在MAC接收側(cè)解析并執(zhí)行。當(dāng)此端設(shè)備輸入數(shù)據(jù)量過(guò)大,無(wú)法及時(shí)處理時(shí)會(huì)在此端發(fā)送側(cè)MAC產(chǎn)生pause幀,發(fā)給對(duì)端,要求對(duì)端在一定時(shí)間內(nèi)停止發(fā)送數(shù)據(jù)。
Pause報(bào)文由IEEE802.3協(xié)議規(guī)定,與標(biāo)準(zhǔn)以太幀格式相似:
DA表示目的地址,地址數(shù)據(jù)固定為0x180c2000001
SA表示源地址 地址由發(fā)送方確定
TYPE為報(bào)文類型字段,固定為0X8808
OPCODE為操作碼,固定為0X0001
PAUSE_TIMING字段為上游MAC停止發(fā)送數(shù)據(jù)的時(shí)間,每單位為512bit傳輸時(shí)間,數(shù)值為16’d1024表示暫停時(shí)間為MAC傳輸1024*512bit數(shù)據(jù)所需要的時(shí)間
PAD:為填充字段,所有值為0
FCS: 為校驗(yàn)字段,通常為CRC校驗(yàn)值
2、Pause幀的流程過(guò)程
如圖所示,左側(cè)為本端芯片,右側(cè)為對(duì)端芯片。MAC0和MAC1都包含發(fā)送側(cè)tx和接收側(cè)rx。左側(cè)芯片內(nèi)部mac上游模塊A與mac0發(fā)送側(cè)有流控信號(hào)fc_rdy。信號(hào)高表示模塊A無(wú)法及時(shí)處理輸入數(shù)據(jù),需要進(jìn)行流控。為了方便突出重點(diǎn),圖中省略了PCS以及serdes等模塊。
流程處理如下:
1~2步:對(duì)端mac1發(fā)送數(shù)據(jù)給mac0接收側(cè),進(jìn)行發(fā)送到模塊A
3步:模塊A無(wú)法及時(shí)處理輸入的數(shù)據(jù),需要減少數(shù)據(jù)輸入,從而將fc_rdy拉高。
4步:mac0發(fā)送側(cè)tx發(fā)現(xiàn)流控信號(hào)fc_rdy為高,產(chǎn)生pause幀,發(fā)送給mac1接收側(cè)。只要fc_rdy為高,mac0發(fā)送側(cè)tx每隔一段時(shí)間發(fā)送一個(gè)pause幀,間隔時(shí)間由配置寄存器控制。間隔時(shí)長(zhǎng)計(jì)算由計(jì)數(shù)器counting計(jì)算。Pause幀內(nèi)停止發(fā)送數(shù)據(jù)的時(shí)間由另外一個(gè)配置寄存器控制。只要fc_rdy為高期間,mac0發(fā)送側(cè)不發(fā)送普通數(shù)據(jù)。
5步:mac1接收側(cè)rx接收到pause報(bào)文后,提取pause幀內(nèi)包含的暫停時(shí)間,產(chǎn)生流控信號(hào)fc通知MAC發(fā)送側(cè)上游模塊module B停止發(fā)送數(shù)據(jù)
678:mac1 TX側(cè)在暫停時(shí)間內(nèi),停止發(fā)送數(shù)據(jù)。MAC0 TX側(cè)可能會(huì)發(fā)起多個(gè)Pause幀。一旦模塊A處理完之前的數(shù)據(jù)后將fc_rdy拉低,則進(jìn)入第9步
9:步:第9步分2種情況。
情況1:fc_rdy拉低,并且counting在計(jì)數(shù)沒(méi)有到一個(gè)間隔周期,此時(shí)發(fā)送pause幀,但是幀內(nèi)暫停時(shí)間為0. Mac1接收到pause幀后,控制tx控制立即開(kāi)始發(fā)送數(shù)據(jù)。
情況2:fc_rdy拉低的同時(shí),counting正好計(jì)數(shù)到一個(gè)間隔周期,此時(shí)不發(fā)送pause幀。等到上一個(gè)pause幀的暫停時(shí)間到達(dá)后,mac1發(fā)送側(cè)tx繼續(xù)發(fā)送數(shù)據(jù)。
3、pause幀處理協(xié)議強(qiáng)制要求
1)pause的產(chǎn)生發(fā)送過(guò)程不能中斷一個(gè)完整的數(shù)據(jù)報(bào)文。即在第4步中,fc_rdy拉高后,首先mac0 tx側(cè)需要判斷當(dāng)前是否正常數(shù)據(jù)報(bào)文在傳輸。如果有,則需要在當(dāng)前數(shù)據(jù)報(bào)文傳輸完成后才能發(fā)送pause幀。也就是說(shuō)在發(fā)送過(guò)程中,只能在完整數(shù)據(jù)報(bào)文的間隙插入pause幀。
2)新的pause報(bào)文暫停時(shí)間會(huì)覆蓋上一個(gè)暫停時(shí)間。對(duì)mac1來(lái)說(shuō),當(dāng)mac1接收到新的pause幀后,暫停時(shí)間以最新時(shí)間為準(zhǔn)。
-
處理器
+關(guān)注
關(guān)注
68文章
19407瀏覽量
231182 -
寄存器
+關(guān)注
關(guān)注
31文章
5363瀏覽量
121158 -
CRC校驗(yàn)
+關(guān)注
關(guān)注
0文章
84瀏覽量
15276 -
PCS
+關(guān)注
關(guān)注
1文章
142瀏覽量
14760 -
MAC控制器
+關(guān)注
關(guān)注
0文章
6瀏覽量
2639
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論