5,888 瀏覽數

資料頻寬

公司老闆在面試新同事時最喜歡問的問題除了 PC 的架構圖外還喜歡問 PCI Bus 資料頻寬是多少,所以寫了這一篇.

  • PCI

    資料寬度 32 bits,工作頻率 33.3 MHz,換言之,其最大頻寬為 133.3 MB/sec。
    32 bits *33.3 MHz/sec ÷8 = 133.3 MBytes/sec

  • AGP(Accelerated Graphics Port 加速圖形介面)

    AGP的頻寬:32 bits * 66.6 MHz ÷8 = 266.6 MB/sec

    AGP 2X 表示每個工作週期可送出兩次訊號,所以最大頻寬變成 533.3 MB/sec。
    AGP顯示卡分有AGP 1X、AGP 2X、AGP 4X及最後的AGP 8X,頻寬分別為266MB/s、533MB/s、1066MB/s、以及2133 MB/s

  • PCI-X

    PCI-X 66 64位元 工作頻率 66.6 MHz,資料寬度 64 bits,換言之,其最大頻寬為 533.3 MB/sec。
    64 bits *66.6 MHz/sec ÷8 = 533.3 MBytes/sec

    PCI-X 133 64位元 133MHz Hot Plugging, 3.3 V 1.06GB/s
    PCI-X 266 64位元,另有16位元選項 133MHz Double Data Rate Hot Plugging, 3.3 & 1.5 V, ECC supported 2.13GB/s
    PCI-X 533 64位元,另有16位元選項 133MHz Quad Data Rate Hot Plugging, 3.3 & 1.5 V, ECC supported 4.26GB/

  • PCI Express 1.1

    使用兩對低電壓的差位訊號排線(low-voltage differential signaling pairs),分別各跑 2.5GBit/s 速度,x1 有兩對(傳送與接收) 2.5 G x 2 = 5Gbps 的頻寬.不過在討論頻寬時還是以單方向來計算.下面的速度是以單對的速度而言.
    x1  2.5Gbps(20% overhead – PCI-e 在每八個位元的資料串上用十位元來加以編碼)   2Gbps (250 MB/sec)
    x4  10Gbps  8Gbps (1 GB/sec)
    x8  20Gbps  16Gbps (2GB/sec)
    x16 40Gbps 32Gbps (4GB/sec)

  • PCI Express 2.0

    PCI-SIG 的 PCI Express 2.0規格,新版每條Lane的單向頻寬從2.5Gbps倍增到5Gbps.
    x1  5Gbps(20% overhead-PCIe並且在每八個位元的資料串上用十位元來加以編碼)   4Gbps (500 MB/sec)
    (5G*0.8)Mb/8=500MB
    x4  20Gbps  16Gbps (2 GB/sec)
    x8  40Gbps  32Gbps (4 GB/sec)
    x16 80Gbps 64Gbps (8 GB/sec)

  • PCI Express 3.0

    PCI-SIG 的 PCI Express 3.0 規格,新版每條 Lane 的單向頻寬增到 8Gbps.
    但因為編碼方式改變了,相較於 2.0 之前採用 8b/10b (每10個bit只有8個是有效資料)而 3.0 編碼方式為 128/130,所以資料傳輸頻寬以及原始傳輸率基本當都可以算成 8Gbps
    x1 8Gbps (1GB/sec)
    x4 32Gbps (4 GB/sec)
    x8 64Gbps (8 GB/sec)
    x16 128Gbps (16 GB/sec)

  • SATA

    Generation 1(1.5 Gbit/s) – (20% overhead – 每八個位元的資料串上用十位元來加以編碼) 1.2 Gbit/s = 150 MByte/s
    Generation 2(3 Gbit/s) – (20% overhead – 每八個位元的資料串上用十位元來加以編碼) 2.4 Gbit/s = 300 MByte/s
    Generation 3(6 Gbit/s) – (20% overhead – 每八個位元的資料串上用十位元來加以編碼) 4.8 Gbit/s = 600 MByte/s
    SATA revision 3.2 – SATA Express – 16,000 Mbit/s 編碼方式為 128/130,所以資料傳輸頻寬以及原始傳輸率基本當都可以算成 16000/8= 2,000 MB/s

  • SAS

    Generation 1(3 Gbit/s) – (20% overhead – 每八個位元的資料串上用十位元來加以編碼) 3*0.8=2.4 Gbit/s = 300 MByte/s
    Generation 2(6 Gbit/s) – (20% overhead – 每八個位元的資料串上用十位元來加以編碼) 4.8 Gbit/s = 600 MByte/s
    Generation 3(12 Gbit/s) – (20% overhead – 每八個位元的資料串上用十位元來加以編碼) 9.6 Gbit/s = 1200 MByte/s

  • mini-SAS

    SAS 一次可同時接多組裝置,所以像是 mini-SAS (SFP 8088) 就使用了 4x connector,所以頻寬可以幾乎達到 10Gbit/s

  • Fiber Channel

    最主要是因為有 20% overhead – 每八個位元的資料串上用十位元來加以編碼. 1062.5Mb x 8/10 (八個位元的資料串上用十位元來加以編碼) x 1/8 (8bits = 1byte) x 2012/2048 (資料有效位元) = 104.38MB 所以 1G 效能大概以 100MBytes 來計算.
    2G=200 MBytes , 4G=400 MBytes 8G=800 MBytes 以此類推.

    規格是 16Gb 速限是 14.025 他採用了 64/66 編碼方式.所以在實際計算時
    16G Speed – 14.025Gb x 64/66 (64個位元的資料串上用66位元來加以編碼) x 1/8 (8bits = 1byte) x 2012/2048 (資料有效位元) = 1.67GBM 所以此規格才可以號稱為 16G Fiber Channel

參考資料
http://en.wikipedia.org/wiki/PCI_Express
http://en.wikipedia.org/wiki/Serial_Attached_SCSI#SAS_vs_SATA

4 個網友的想法 “資料頻寬

  1. 自動參照通知: mSATA & M2 | Benjr.tw

  2. 自動參照通知: 硬體裝置 | Benjr.tw

發表迴響