會有 3Gbps 及 300MB/s 的差別..
除了 byte 及 bit 的換算之外..另外還有 8B/10B 編碼的問題..
因為 SATA 採用 8B/10B 編碼
http://en.wikipedia.org/wiki/8B10B
每 8 bit(1 byte)的資料會編碼為 10 bit 後再經由介面傳輸..
接收端設備收到 10 bit 的編碼後在解碼回 8bit(1 byte) 的資料..
因此 3Gbps 為真 .. 因為 SATA 2 介面速度的確為 1bit 寬度 3000MHz 的差動訊號..
而 300MB/s 也為真 .. 因為資料是採用 8B/10B 編碼在 SATA 2 介面間傳輸 ..
引用:
作者太陽之子
3Gb/S=375MB/S
375是理論上的數據,實際上我們會說成300
代表的意思是傳輸介面的頻寬
|
因此理論頻寬最高為 300MB/s ..
而非 375MB/s .. 除非放棄使用 8B/10B 編碼..
引用:
作者heavywang
印象中,3Gb/s的意思是 SATA2規格的最大傳輸速率,單位是 Giga Bit,但是這個速率除了要傳送資料以外,還要傳送一大堆控制指令。
而300MB/s則是單純指"資料"的傳輸速率,他的單位是 Mega Byte ,換算一下3Gb=384MB,
這樣看起來控制指令的資料也不算少。
|
所有涉及"頻率"的 M 及 K 皆為10進位..如 CPU時脈、FSB頻寬、PCI頻寬、USB 2.0速度 等..
而所有涉及"定址"的 M 及 K 才為2進位..如 CPU的Cache、硬碟的Buffer、Dram容量、作業系統計算的硬碟容量 等 ..
因此 SATA2 的 3Gbps 因為是由 3000MHz 的頻率乘上 1 bit 的通道寬度而來..
所以 3Gbps (10進位) = 375MB/s (10進位) 約等於 366.21MB/s (2進位)..
並非 384MB ..
另外 SATA 2 的指令是包在 8B/10B 編碼前的資料內..
因此指令會跟資料去共用理論值 300MB/s 的頻寬..