USB 3.xとかUSB-CとかDisplayPortとか
会社PCの更新があり、MacBook Pro 15-inch Retina 2015から、MacBook Pro 16-inch 2019になった。外観はほとんど変わらなかったけど、一番慣れないのはコネクタ。USB-C (Thunderbolt 3)端子しかないので、何かつなぐには、アダプタが必要になる。アダプタを選ぼうとしてすぐに、私物でもUSB-C端子はほぼ使っていなかったので、USB-CやUSB3.xについて何も知らないという事が分かった。それでいろいろと興味の赴くままに調べたのでまとめてみる。
USB 3.x
通信の規格。今までに二度規格が更新されていて、同じものの名前が上書きされている。ややこしい。昔の規格から順に追うと、
- 初代の規格
- USB 3.0 (5 Gbps)
- 二代目の規格
- USB 3.1 Gen 1 (5 Gbps = 初代3.0)
- USB 3.1 Gen 2 (10 Gbps, 新規格)
- 三代目(現行)の規格
- USB 3.2 Gen 1 (5 Gbps = 初代3.0 = 二代目3.1 Gen 1)
- USB 3.2 Gen 2 (10 Gbps = 二代目3.1 Gen 2)
- USB 3.2 Gen 1x2 (10 Gbps, 新規格)
- 規格としては存在するがあまり使われないらしい
- USB 3.2 Gen 2x2 (20 Gbps, 新規格)
通称はこんな感じになっているっぽい。
- USB 3.0 = USB 3.2 Gen 1
- USB 3.1 = USB 3.2 Gen 2
- USB 3.2 = USB 3.2 Gen 2x2
現行規格で追加されたGen Nx2は、3.1 Gen Nの通信に使う線を2倍に増やし、速さが2倍になった。
差動伝送 (differential signaling)
電線に信号を通す時、差動伝送では1対の電線それぞれに逆位相で電圧をかけてやり、受け側では2本の電位差を取り出す。こうすることで、外部からのノイズが乗ったとしても電位差は変わらないため、ノイズに強くなる(信号電圧を下げられる)。差動ペアは、差動伝送に使う電線のペアのことを指す。USB、DisplayPort、Thunderbolt、HDMIのデータ用電線は差動ペアである。
半二重、全二重 (half duplex, full duplex)
半二重は、1本(差動ペアの場合は1対)の電線を、TX/RX両方流れる方式。全二重は、RX・TXそれぞれ専用の線を使う。USB2.0までは半二重、USB3.0からは全二重になった。全二重は同時に両方向の通信ができる。
差動ペアと、半二重・全二重を両方合わせると、USBケーブルのデータ用信号線の本数(端子のピンの数)は、以下のようになる。
- USB 2.0まで: 2本 (RX/TX共用差動ペア(2本))
- USB 3.0/3.1: 4本 (RX用差動ペア(2本) + TX用差動ペア(2本))
- USB 3.2: 8本 ( (RX用差動ペア(2本) + TX用差動ペア(2本)) x2)
なお、USB 3.x用のUSB Aコネクタ、BコネクタはRX/TXのピンが4つしかないのでUSB3.1までしか対応できず、USB 3.2の端子は仕様でUSB-Cのみとなっている。
USB-C
端子の規格。
端子のピンの用途は以下の図のようになっている。ここでは、USB 2.0専用のピンがあること、USB3.0/3.1のピンが2セット(レーン)あることを意識しておく。USB3.0/3.1の通信で使われるのは1レーンのみで、もう1レーンは単に使われない。
Alternate Mode
USB-CにはAlternate Modeというものがあって、USB以外の規格の通信を流す事もできる。DisplayPort, Thunderbolt, HDMIなど。
Alternate Modeで全てのピンを使う訳ではなく、USB2.0のピンを使わなかったり、USB 3.0のピンの半分(1レーン)しか使わない場合がある。その場合は、元の機能(USB2.0やUSB3.0)の信号を平行して流す事ができる。USB-CハブにUSBとDisplay Portが両方ついているのはこのため。EthernetやSDカードスロットは、内部のUSBハブから生えている。
DisplayPort Alternate Mode
USB3.1用のレーンと他いくつかのピンを使う。又、USB 3.1用のレーンを1つ使う事も、2つ(全部)使う事もできる。1レーン使う場合はもう1レーンでUSB 3.1の通信も流せるが、2レーン使ってしまうと、USB 3.1は使えなくなる。ただしUSB 2.0のピンは使わないので、USB2.0は同時に使える。
つまり、DisplayPortがあるUSB-Cハブに、USB 3.1の口がない場合、DisplayPortは2レーン使っていると思われる。逆にUSB 3.1の口があれば、1レーンしか使っていない。
なお、上図では、1差動ペアを1本の線で表している。又、DisplayPortのデータレーンは通信が片方向のため、DisplayPortの場合は1レーン = 1差動ペアで数える(ややこしい..)。 4レーン使う場合は2レーンの2倍帯域があるので、その分高解像度、高リフレッシュレートの画面情報を送る事ができる。
DisplayPortのバージョンと解像度
1ディスプレイの最大解像度の例(非圧縮(non DSC), 24bpp)
DPバージョン | 最大転送速度/lane (伝送モード) | 実効転送速度/lane | 2レーン | 4レーン |
---|---|---|---|---|
DP 1.2 | 5.40 Gbit/s (HBR2) | 4.32 Gbit/s | WQHD@60Hz | 4K@60Hz |
DP 1.4 (1.3) | 8.10 Gbit/s (HBR3) | 6.48 Gbit/s | 4K@60Hz | 5k@60Hz |
DP 2.0 | 20.0 Gbit/s (HBR20) | 19.3 Gbit/s | 5K@60Hz | 10K@60Hz |
実効最大転送速度は、エンコーディングスキームに8b/10b (DP 2.0は128b/132b)を使っているため、ケーブルの最大転送速度の80% (DP 2.0は97%)になる。
Thunderbolt 3
Thunderbolt 3は端子としてUSB-Cを使っている。帯域幅は1差動ペアで 20 Gbps (DP 2.0と同じ。USB 3.1は10 Gbps)。2レーンあわせて40 Gbps。PCI Express 3.0、DisplayPort 1.2/1.4、USB 3.1をカプセル化して通信する事ができる。なお、同じThunderbolt 3でもチップの世代によって対応するDisplayPortのバージョンが違う。Macの場合はっきりした記事は見当たらないが、2018/2019あたりのMacBook Proから1.4に対応している模様。
又、Thundelbolt 3のコントローラーは、DisplayPort Alternate Modeにも対応している。つまり、Thunderbolt 3端子をもつPCはDisplayPortの信号を直接(Alternate Modeとして)出力する事もできるし、Thunderbolt 3プロトコルの中でDisplayPortを流す事もできる。USB-CハブにDisplay Portがついていたら、Alternate Mode、Thunderboltハブの場合はThunderboltで転送されている。
USB-C/Thunderbolt 3のHub/Dock
たいてい、USB-C(USB 3.x)/Thunderbolt 3のハブ/dockはSDカードスロットやらEthernetポートやらHDMIポートなどいろいろついている。速度や解像度については、USB-CのUSB 3.1端子の2レーンの使われ方に注意する必要がある。正直に記載していない場合や不自然に隠している事があるので、気をつける。特に4K@30Hzと4K@60Hzの違い。
USB-C (USB 3.x)のハブ/dockの場合
HDMI端子がついている場合、ハブまではDisplayPort Alternate Modeで流れていて、ハブ内でDisplayPort->HDMIへ変換している事が多いらしい。
解像度は、PC側のサポートするDisplayPortのバージョンによって変わってくる。DP1.2の場合は、USB3.1と4K@60Hzを同時にサポートする事は不可能なので、そのような製品があったら何かおかしいはず。DP1.4の場合は2レーンでも4K@60Hzを表示できるので、USB3.1を同時に使う事ができる。DPのバージョンを書いている製品は稀なので、DP1.2の頃のようにあやしい製品を判別できなくなってしまった。。
USB 3.1用端子を2レーン使っている場合、ハブ/dock側はUSB2.0しか使えない。1レーンのみ使っている場合は、USB 3.0/3.1および2.0が使える。
DisplayLinkを使う場合は話が変わってくるが、ドライバを入れないといけないので(入れるだけだが)、選択肢からは外したのでここでは触れない。ハブ/dockを選ぶときには、ドライバが必要と書いてあるものを避けた。
Thunderbolt 3のハブ/dockの場合
Thunderbolt 3は、USB-C端子のUSB3.1用レーンを全て(2レーン)使う。合計40 Gbps流せるので、ハブなどでDisplayPortやUSBも使える帯域幅もその範囲内で融通しながら最大限使える、のかな(未調査)。
4K@60Hzを15Gbpsと仮定して、USB 3.1で10 Gbps、USB2.0で0.5Gbps、合わせて30Gbps、割と余裕ありそう。4K@60Hzを2枚だときついかな。USB3.1がフルスピード出ないとか?
HDMIのバージョンと最大帯域幅(転送速度)
ついでにHDMIについて少々。
線の使い方
データ伝送はTMDS (Transition-minimized differential signaling)で行われる。differential pairとシールドの3本で1チャンネル。合計4チャンネルある。3チャンネルはそれぞれRGB(とその他オーディオなど)用で、もう1チャンネルはclock用(2.0bまで)。
Image by wdwd licensed under CC BY-SA 4.0
帯域幅
帯域幅を上げるには、まず信号の周波数を上げるか、使う線を増やす事が考えられる。又、エンコード方式を変える事でも、流れる実データの割合を増やし、実効データ転送速度を上げる事ができる。
周波数を上げる
たとえば1.0-1.2aは、1チャンネルあたり1.65 GHz (= 1.65 Gbps)だったが、2.1では12 GHzまで上がっている。
- 1.0-1.2a: 4.95 (1.65*3) Gbps
- 1.3-1.4b: 10.2 (3.4*3) Gbps
- 2.0-2.0b: 18.0 (6.0*3) Gbps
- 2.1: 48.0 (12*4) Gbps
信号線を増やす
HDMI 2.1では、データ伝送をTMDSからパケットベースの方式に変更し、クロックをパケットに含ませるようになった。そのため、クロックチャンネルが不要になり、4チャンネルを全てデータチャンネルとして使うようになった。これで3チャンネルのときと比べて4/3倍になる。
エンコード方式を変える
HDMI2.0bまでは、エンコードスキームに8b/10bを使っていたが、HDMI 2.1では16b/18bになった。つまり、ケーブルを流れるデータのうち元のデータが占める割合は、HDMI 2.0bまでは8/10=80%だったが、2.1では16/18=89%に増えた。帯域を有効に使えるようになった。
こうして見るとHDMI 2.1はだいぶ別物感がある。
参考URL
- USB Type-CとUSB 3.1、Thunderbolt 3、DisplayPort など
- USB 4の発表で、USB 3.2はどうなった? - ASCII.jp
- 「USB 3.2」は3種類ある! PCの購入時にだまされないようにね - ライフハッカー
- VESA - DisplayPort Alternate Mode on USB-C - USB Implementers Forum 2019
- TMDS(Transition Minimized Differential Signaling) - HDMI-NAVI.com
- 2つのディスプレイI/F規格、勝者はいずれに:DisplayPort vs. HDMI (2/2) - EDN Japan
- Dual 4K @ 60Hz monitors via USB-C with DisplayPort 1.4 – Dan S. Charlton
- DisplayPort - Wikipedia
- USB 3.0 - Wikipedia
- USB-C - Wikipedia
- Thunderbolt (interface) - Wikipedia
- HDMI - Wikipedia
- 8b/10b - Wikipedia