Kalan's Blog

Kalan 頭像照片,在淡水拍攝,淺藍背景

四零二曜日電子報上線啦!訂閱訂起來

Software Engineer / Taiwanese / Life in Fukuoka
This blog supports RSS feed (all content), you can click RSS icon or setup through third-party service. If there are special styles such as code syntax in the technical article, it is still recommended to browse to the original website for the best experience.

Current Theme light

我會把一些不成文的筆記或是最近的生活雜感放在短筆記,如果有興趣的話可以來看看唷!

Please notice that currenly most of posts are translated by AI automatically and might contain lots of confusion. I'll gradually translate the post ASAP

那些比較冷門的 Networking 理論 (2)

上一篇我們提到了 Menchaster 編碼雖然可以有效解決資料流都是 0 或 1 的情況,然而要同樣的資料卻需要兩倍的頻寬,這對高速傳輸來說是我們不希望的。

今天要介紹 4B/5B 編碼可以有效解決資料流都是 0 / 1 的情形,又不需要犧牲太多頻寬。

4B/5B

4B/5B 是將原始資料以 4 bit 為一組,改為 5 bit 一組。這樣一來像是 00001111 這些資料流,透過編碼後讓他們不要都是 0 或 1,避免無法回復 clock 的情況發生。

4bit5bit
000011110
000101001
001010100
001110101
010001010
010101011
011001110
011101111
100010010
100110011
101010110
101110111
110011010
110111011
111011100
111111101

如果我們觀察 00001111,可以發現轉為 5 bit 之後都會保證有一個 transition(從高電位到低電為或反過來)。雖然多了一個 bit,同樣的傳輸量需要多 20% 的頻寬,但跟 Menchaster 比起來還是差很多。1000BASE-X 是使用 8B/10B 編碼,概念上與 4B/5B 相同,只是改為一次編碼 8 bit。8B/10B 除了用在 1000BASE-X 以外,也用在各種高速傳輸的協定當中,例如 PCI1.0/2.0、USB3。

8B1Q4

對活在 2023 年的我們來說,有線網路的速度動輒 1Gbps,如果要求更大的頻寬則是 10Gbps。

常見的乙太網路電纜線,內部是由一對一對的絕緣線互相纏繞。這種纏繞方式可以有效減少雜訊。儘管如此,在頻率很高的情況下還是容易受到雜訊干擾。

在 100BASE-TX 以上的傳輸中,會用 8B1Q4 來編碼(8 binary to 1 quinary 4)。主要的原理是在同一個週期內送出多個 bit 進而加大資料量。例如 CAT-6 雖然傳輸頻率為 125Mhz,傳輸速率卻是 1Gbps。

8B1Q4 簡單來說是將 8bit + 1bit (檢查碼) 分成四組,可以看到上圖總共有四組線,分組以後再分別以不同的電位表示。

不過實際上是怎麼將 9bit 資料切成四組的呢?首先會看檢查碼 + 資料前兩碼總共 3bit 去找對應的變換表,剩下的 6bit 則是從前面找到的變換表中編碼。比較特別的地方在於,每條纜線的電位有 5 個,而不是只有高電位與低電位。透過這種方式,一個週期內可以傳送 2bit,同一頻寬內傳輸量就是兩倍。

這也是為什麼 CAT-6 雖然傳輸頻率為 125Mhz,傳輸速率卻是 1Gbps 的原因。

Prev

JPG 與離散餘弦轉換

Next

驅動現代社會的半導體 (2)

If you found this article helpful, please consider buy me a drink ☕️ It'll make my ordinary day shine✨

Buy me a coffee