編碼以避免訊號干擾
USB開發者論壇(USB Implementers Forum)在制定USB 3.0規範的時候,將資料傳輸率設定在5Gbps,後來推出USB 3.1時,USB 3.0被重新命名為USB 3.1 Gen1,所以其實兩者是相同的技術。
至於新推出的升級版規範,則命名為USB 3.1 Gen2,資料傳輸率從5Gbps翻倍至10Gbps,並改變使用的編碼方式,進一步提升實際傳輸效能。至於最新推出的USB 3.2,則使用2條USB 3.1 Gen1或Gen2的資料線路,進行雙通道傳輸。
不過為了降低資料傳輸的過程中產生的電磁波干擾,各世代規範都會先將資料編碼處理後再送出。
USB 3.1 Gen1運作時,會將長度為8bit的資料透過8b/10b編碼,打散(Scramble)成長度為10bit的符號(Symbol),並搭配展頻技術(Spread Spectrum)將編碼後的符號傳送出去,以降低電磁波干擾的情況。接收端收到訊號後,則可經由解碼程序將10bit符號還原為8bit資料。
然而USB 3.1 Gen2捨棄了8b/10b編碼,改為採用以10GbE乙太網路使用的64 b/66b編碼衍生的128b/132b編碼。這種編碼會將8組8bit的資料組成1個訊框(Frame),並在區塊前端加上4bit的辨識碼(Identifier),傳輸時仍會搭配展頻技術,但可視狀況決定是否打散。接收端收到訊號後,會將132bit訊框還原為128bit資料。
Gen2能降低傳輸耗損
Gen1與Gen2最大的差別,在於使用的編碼不同,在傳輸過程中產生的耗損也有所不同。在Gen1的情況中,每傳輸10bit的流量,其中只有8bit為真正的資料,耗損高達20%。而在Gen2中,每傳輸132bit的流量,就有128bit為真正的資料,耗損大約只有3%。
所以在計算理論傳輸速度的時候,USB 3.0與USB 3.1 Gen1的計算方式如下:
5Gbps(資料傳輸率) x 8/10(耗損)= 4,096Mbps(理論傳輸速度) = 500MB/s
而USB 3.1 Gen2的計算方式如下:
10Gbps(資料傳輸率) x 128/134(耗損) = 9,552Mbps(理論傳輸速度)= 1,212MB/s
至於USB 3.2的情況則最簡單,因為他是採用2條USB 3.1 Gen1或Gen2資料通道,所以只要直接乘上2倍就好,計算方式如下:
500MB/s x 2 = 1,000MB/s
(或) 1,212MB/s x 2 = 2,424MB/s
不過由於這邊提到的速度都是理論值,在實際應用的情況,會受到線材、端子品質,訊號干擾甚至是裝置效能等因素影響,根據經驗至少要打8折才會是實際速度,所以往後測試USB裝置的效能表現比不上官方宣稱的速度,也不用大驚小怪了。
(標題圖片來源:維基百科,採用創用CC姓名標示-相同方式分享,作者為VIA Gallery)
加入電腦王Facebook粉絲團