網頁

2016年9月14日 星期三

SATA3 為何 600MB/s= 6Gb/s 的釋疑

目前的高速串列傳輸 ( 如 USB3.0、SATA3、PCI-Express ) 是用 8b/10b,
也就是 8 bits 編碼成為10 bits, 以維持直流平衡(DC Balance)。
避免 連續是0 或是1 ,因沒有變化,造成信號錯誤。

8 bits 分成二部份編碼:

最高有效位元(MSB) 3 bit-> 4bit, 使用 3b/4b
最低有效位元(LSB) 5 bit-> 6bit, 使用 5b/6b

透過特殊映射方式,8 bits 就變成 10 bits
結果祇有下列三種情形:

1.有5個0和5個1
2.有6個0和4個1
3.有4個0和6個1

1的位數和0的位數的差值,以上面3種情况就對應到 3個 Disparity 0、-2、+2。

所以 600MB/s = 600 *10 Mb/s = 6000Mb/s= 6Gb/s
  USB 3.0 為5Gb/s,所以  SATA3 的速度大於 USB 3.0

一般人會算成
600MB/s= 600 *8Mb/s =4800Mb/s
 而 USB 3.0 為5Gb/s=5000Mb/s,誤以為  USB 3.0速度比 SATA3快。

USB 2.0是採用 NRZI(Non-Return-to-Zero Inverted)編碼方式,不是8b/10b

USB 2.0的理論頻寬是480Mbps,也就是60MB/s的數據傳輸速率。
USB 2.0最高實際傳輸速度被限制在30MB/s左右