以太網(wǎng)肇始,設(shè)備都連接到同一總線(同軸電纜),以半雙工的方式通信。載波偵聽(tīng)和沖突檢測(cè)(CSMA/CD)就是以太網(wǎng)的代名詞。據(jù)老戚了解,傳奇的Catalyst 6500交換機(jī)也使用這種半雙工的百兆以太網(wǎng)作為控制平面。從總線電路(時(shí)鐘同步的總線電路)的角度來(lái)看,這是妥妥的共同時(shí)鐘總線系統(tǒng)。后來(lái),以太網(wǎng)也經(jīng)歷了從總線拓?fù)涞近c(diǎn)對(duì)點(diǎn)的星型拓?fù)?、從物理總線到包交換的轉(zhuǎn)變,交換機(jī)(SDN交換機(jī)的核心 - 可編程交換芯片)應(yīng)運(yùn)而生,成為連接以太網(wǎng)設(shè)備的橋梁。
今天以太網(wǎng)是使用最為廣泛的局域網(wǎng)(LAN)網(wǎng)絡(luò)協(xié)議。相對(duì)于同期的其他協(xié)議,以太網(wǎng)勝出的關(guān)鍵在于其成本相對(duì)低廉,性能穩(wěn)定可靠,組網(wǎng)方便靈活。其中重要的一點(diǎn):以太網(wǎng)設(shè)備采用本地時(shí)鐘,通常低成本的晶振就能滿足要求。不同設(shè)備采用各自本地時(shí)鐘,相互之間會(huì)有或多或少的頻率偏差(skew)。802.3標(biāo)準(zhǔn)要求相對(duì)標(biāo)稱頻率的偏差不能超過(guò)100PPM??紤]到極端的情況:一個(gè)時(shí)鐘快100PPM,一個(gè)時(shí)鐘慢100PPM,它們之間的頻差可以多達(dá)萬(wàn)分之二,是不是必然導(dǎo)致丟包?我們?cè)谧鼋粨Q機(jī)測(cè)試的時(shí)候,也會(huì)遇到端口速率99.99%以上就會(huì)丟包,低一點(diǎn)點(diǎn)就不丟了。通常認(rèn)為這是以太網(wǎng)時(shí)鐘PPM頻率偏差引起的問(wèn)題,但是很多硬件攻城獅對(duì)其中的邏輯感到困惑,老戚在此嘗試作一番解讀。
老戚認(rèn)為,物理層(physical layer)的物理編碼子層(PCS - Physical Coding Sublayer)對(duì)解決時(shí)鐘PPM問(wèn)題起了關(guān)鍵作用,PCS借助FIFO處理跨時(shí)鐘域,通過(guò)刪除或插入IDLE碼組,來(lái)消除接收數(shù)據(jù)和本地時(shí)鐘的有限頻差,這就是彈性緩存(Elastic buffer)。彈性緩存對(duì)突發(fā)(burst)數(shù)據(jù)流量有完美的效果,卻不能解決長(zhǎng)時(shí)間線速(line rate)流量下的丟包問(wèn)題,對(duì)此局限我們應(yīng)當(dāng)了然于胸。當(dāng)然,通過(guò)上層的流控(flow control)協(xié)議,我們可以避免長(zhǎng)時(shí)間線速。
在深入PCS子層之前,最好先了解一下物理層。
1. IEEE 802.3 物理層規(guī)范
IEEE 802.3標(biāo)準(zhǔn)規(guī)范了有線(wired)傳輸以太網(wǎng)的數(shù)據(jù)鏈路層(MAC layer)和物理層(physical layer)的協(xié)議。不同于無(wú)線WIFI,有線傳輸需要媒質(zhì)(media),可以是RJ45接口的網(wǎng)線(4對(duì)雙絞線),SFP/QSFP接口的光模塊、無(wú)源銅纜,或者PCB背板等等。為了適應(yīng)不同類型的媒質(zhì)(信道),我們需要在發(fā)送端采用不同的編碼(coding)甚至調(diào)制(modulation),以便在接收端能夠正確的恢復(fù)數(shù)據(jù)。好比搬家公司搬運(yùn)家具,會(huì)先分拆、打包,然后運(yùn)輸,到達(dá)目的地后再拆包、組裝。跟搬家具不一樣的地方在于,電子信號(hào)在媒質(zhì)中的傳輸過(guò)程中伴隨著衰減和形變,給接收端的數(shù)據(jù)恢復(fù)帶來(lái)挑戰(zhàn)。
<圖1>
OSI七層參考模型中,物理層(physical layer)實(shí)現(xiàn)了MAC幀(frame)和最終進(jìn)入媒質(zhì)中傳輸?shù)男盘?hào)之間轉(zhuǎn)換。物理層又可以細(xì)分為PCS、PMA、PMD,以及其他一些作為可選項(xiàng)的子層。
<圖1>是1000Base-X(1GbE-LX/CX/SX)的物理層結(jié)構(gòu)。如今802.3發(fā)展到了400GbE,速率、編解碼、協(xié)議復(fù)雜程度都今非昔比,但是基本的邏輯的依然未變,1000Base-X儼然閃爍著簡(jiǎn)約之美。
在發(fā)送方向(下),PCS把MAC幀(Octets,8bit@125MHz)轉(zhuǎn)化為連續(xù)的8b10b編碼(code group,10bit@125MHz);PMA把8b10b編碼變成串行的比特流(bit stream);PMD把比特流轉(zhuǎn)化為DDR信號(hào),并賦予適當(dāng)?shù)?a href="http://www.delux-kingway.cn/v/tag/2364/" target="_blank">電氣特性,來(lái)滿足驅(qū)動(dòng)光模塊的接口特性要求。無(wú)論是MAC幀、8b10b編碼還是串行比特流,他們都是與本地時(shí)鐘同步的信號(hào)。最后進(jìn)入媒質(zhì)的信號(hào)是625MHz時(shí)鐘的DDR信號(hào),我們稱之為內(nèi)嵌時(shí)鐘(clock embeded)的數(shù)據(jù),因?yàn)樵诮邮斩丝梢詢H僅依靠數(shù)據(jù)把時(shí)鐘恢復(fù)出來(lái)。注意,這是發(fā)送端的本地時(shí)鐘。
在接收方向(上),PMD從信號(hào)中恢復(fù)出比特流和RX時(shí)鐘,實(shí)現(xiàn)比特位同步;PMA從比特流中恢復(fù)8b10b碼型,實(shí)現(xiàn)碼同步;PCS把8b10b解碼轉(zhuǎn)換成MAC幀。注意,PMD和PMA此時(shí)的RX時(shí)鐘其實(shí)是對(duì)方(發(fā)送端)的時(shí)鐘,而MAC層使用的是接收端的本地時(shí)鐘。PCS需要實(shí)現(xiàn)有限頻差的跨時(shí)鐘域的數(shù)據(jù)轉(zhuǎn)換而不丟失有用數(shù)據(jù)。
2. 為什么需要8b10b編碼?
通常而言,接收端設(shè)計(jì)的復(fù)雜程度遠(yuǎn)遠(yuǎn)高于發(fā)送端。且看一下我們?cè)诮邮斩嗣媾R的問(wèn)題:
接收端的PMD通過(guò)CDR(clock and Data Recovery)電路把比特?cái)?shù)據(jù)和RX時(shí)鐘從625MHz的DDR信號(hào)中恢復(fù)出來(lái),前提是比特流有足夠多的0/1切換;而原始數(shù)據(jù)是隨機(jī)的,可能出現(xiàn)長(zhǎng)0或者長(zhǎng)1;
二進(jìn)制流的0和1數(shù)目對(duì)等以實(shí)現(xiàn)直流均衡,這對(duì)接收端的光電轉(zhuǎn)換靈敏度很關(guān)鍵;
接收端的PMA把串行的比特流轉(zhuǎn)換成(并行的)10b碼型,需要特殊碼型幫助我們識(shí)別碼的比特邊界,實(shí)現(xiàn)碼同步;
接收端的PCS檢測(cè)單比特的誤碼,以便于評(píng)估誤碼率和信道性能;
8b10b編解碼滿足所有的要求,實(shí)際上,還不止這些。先說(shuō)數(shù)據(jù)(data)編碼 - Dxy.z。
8b10b編碼把8bit的原始數(shù)據(jù)轉(zhuǎn)化為10bit編碼,同時(shí)保證10bit編碼不出現(xiàn)連續(xù)5個(gè)以上的長(zhǎng)0或者長(zhǎng)1;
假如10b編碼的0和1的數(shù)量不一樣,那么它和它的鏡像(位取反)作為正/負(fù)編碼都對(duì)應(yīng)于同一個(gè)8b數(shù)據(jù),發(fā)送端通過(guò)選擇正負(fù)碼(多0/1)來(lái)實(shí)現(xiàn)直流均衡;
任何單比特錯(cuò)誤形成的碼型不屬于有效的碼型,這樣單比特誤碼能夠被發(fā)現(xiàn);
當(dāng)然還有最簡(jiǎn)單的編碼解碼的RTL邏輯。
<圖2>
實(shí)際上,8b/10b編碼是由5b/6b和3b/4b兩部分組成。圖<2>中,
5b/6b: EDCBA -> abcdei
3b/4b: HGF -> fghj
其中,A和a都是最低比特位(lsb)。
D[EDCBA].[HGF]代表二進(jìn)制數(shù)據(jù)‘HGFEDCBA’的8b10編碼(code group)。
原始數(shù)據(jù)是隨機(jī)的,它們占用了1024(2^10)個(gè)10b碼型中的256(2^8)個(gè)。在它們之外,少數(shù)碼型被挑選出來(lái)作為控制碼。
<圖3>
8b10b的碼的缺點(diǎn)是25%的額外帶寬開(kāi)銷。隨著端口速率的提升和技術(shù)的發(fā)展,新的編碼方式也被開(kāi)發(fā)出來(lái),比如10G以上的以太網(wǎng)都改成64b/66b編碼,PCIe 3.0以上使用128/130b編碼,等等。
3. PCS(Physical Coding Sublayer)物理編碼子層
8b10b控制碼和數(shù)據(jù)碼一起構(gòu)成了PCS碼組(ordered set)。PCS碼組由一個(gè)或者多個(gè)8b10b碼型組成。常用的有配置(Configuration),空閑(IDLE),封裝(Encapsulation,標(biāo)志幀頭和幀尾)。
<圖4>
PCS完成了MAC幀和10b碼型的轉(zhuǎn)換。圖<5>的左邊是以完整的以太網(wǎng)幀,包括幀與幀之間的間隙(沒(méi)有有效數(shù)據(jù)),右邊是每一字節(jié)對(duì)應(yīng)的10b編碼。想象一下,左右兩側(cè)同時(shí)被125MHz的時(shí)鐘驅(qū)動(dòng),從上往下,形成MAC幀8b10b編碼解碼的流水線。
<圖5>
我們看到,第一個(gè)前導(dǎo)碼被控制碼/K27.7/取代,代表幀頭。
從第二個(gè)前導(dǎo)碼開(kāi)始一直到校驗(yàn)碼幀尾,都是8b10b數(shù)據(jù)碼轉(zhuǎn)換。
幀之后第一個(gè)字節(jié)(IPG的一部分)被控制碼/K29.7/取代,代表幀尾。
幀之后第二個(gè)字節(jié)(IPG的一部分)被控制碼/K23.7/取代,代表載波信號(hào)延伸一拍。(根據(jù)幀長(zhǎng)度是奇數(shù)偶數(shù)會(huì)有差異)
其他IPG將會(huì)被/I/完全填充。
IDLE(/I/)是處理時(shí)鐘PPM的關(guān)鍵,因?yàn)樗鼈儾皇荕AC幀的組成部分,可以根據(jù)需要來(lái)增加或者刪除。
限于篇幅,上篇到此為止。本篇闡述了以太網(wǎng)時(shí)鐘PPM頻率偏差問(wèn)題的由來(lái),基于1000Base-X總結(jié)了物理層和PCS層的結(jié)構(gòu)。
我們將在下篇講講基于異步FIFO的彈性緩存(Elastic buffer)和解決PPM時(shí)鐘問(wèn)題的局限。
-
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5465瀏覽量
172833 -
時(shí)鐘
+關(guān)注
關(guān)注
11文章
1747瀏覽量
131865 -
Mac
+關(guān)注
關(guān)注
0文章
1110瀏覽量
51747 -
總線系統(tǒng)
+關(guān)注
關(guān)注
0文章
26瀏覽量
10096 -
PPM
+關(guān)注
關(guān)注
0文章
46瀏覽量
17088
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
以太網(wǎng)應(yīng)用關(guān)鍵技術(shù)及設(shè)計(jì)方案集錦
設(shè)計(jì)坊第三期:靈活的工業(yè)以太網(wǎng)解決方案
基于標(biāo)準(zhǔn)的汽車以太網(wǎng)解決方案的優(yōu)勢(shì)有哪些?
工業(yè)以太網(wǎng)方案選擇指南
高速以太網(wǎng)引動(dòng)超大規(guī)模計(jì)算技術(shù)革新,時(shí)鐘方案是實(shí)現(xiàn)高速以太網(wǎng)的關(guān)鍵
Linux以太網(wǎng)解決方案的介紹
半導(dǎo)體車用以太網(wǎng)解決方案
![半導(dǎo)體車用<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>解決方案</b>](https://file1.elecfans.com//web2/M00/A7/50/wKgZomUMQ8uAdp4XAAAxmApnBP0344.png)
以太網(wǎng)與數(shù)字電網(wǎng)相結(jié)合的解決方案
![<b class='flag-5'>以太網(wǎng)</b>與數(shù)字電網(wǎng)相結(jié)合的<b class='flag-5'>解決方案</b>](https://file.elecfans.com/web1/M00/B2/BE/pIYBAF4P7RqAEV0WAADQEHgDHt0880.png)
100G以太網(wǎng)光模塊解決方案
![100G<b class='flag-5'>以太網(wǎng)</b>光模塊<b class='flag-5'>解決方案</b>](https://file.elecfans.com//web2/M00/69/5B/pYYBAGMhlX2AYJSeAAA03pFmLj090.jpeg)
數(shù)據(jù)中心市場(chǎng)的關(guān)鍵以太網(wǎng)解決方案
![數(shù)據(jù)中心市場(chǎng)的關(guān)鍵<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>解決方案</b>](https://file1.elecfans.com/web2/M00/C3/E8/wKgZomXvtjaAZOBeAAAPIepkkZs521.jpg)
MMWAVEPOEEVM以太網(wǎng)供電解決方案用戶指南
![MMWAVEPOEEVM<b class='flag-5'>以太網(wǎng)</b>供電<b class='flag-5'>解決方案</b>用戶指南](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
TOSUN 車載以太網(wǎng)仿真測(cè)試解決方案
![TOSUN 車載<b class='flag-5'>以太網(wǎng)</b>仿真測(cè)試<b class='flag-5'>解決方案</b>](https://file.elecfans.com/web2/M00/40/07/pYYBAGJrUk2AaMaTAAAQONQtdzo461.jpg)
評(píng)論