月別アーカイブ: 2022年8月

USB Type-C Dock(非Thunderbolt/PD/GbE/USB3.xポート/4k60Hz)の勘所

先月36号機(モバイルノート)を買ったんですが、USB Type CがThunderbolt非対応だったので、非ThunderboltのType C Dockを2メーカほど買って試していました。なんとなく選び方の勘所がわかった気がするので書きたいと思います。

私の要件はこんな感じです。

  1. HDMIで4K 60Hzで表示できること。
  2. Gigabit Ethernet(GbE)が搭載されていて1Gbps(実効950Mbps)が出ること。
  3. USB3.0が搭載されててその速度が出ること。
  4. DockでPDで受電して、PCに送電できること。

上記の1〜3要件を満たすDockを買うのに、書かれている、または外観上必要があるのは下記のI〜IIIです。

  • I. 4K 60Hz対応が明記されている。
  • II. PC側でのType C + Display Port(以下、DP)1.4対応が必須と書かれている。
  • III. USB3.0以上の端子が搭載されている。

当然ですが出力する側のPCが4k 60Hz、DP 1.4以上(1.3でもOK、1.2はNG)に対応していることや、モニタがHDMI2.0/4k 60Hzに対応していること、LANが1Gbpsでリンク可能などの周辺機器が対応OKなのが前提です。

理由は後述しますが、私と同じ要件のDockを購入される予定なら上記のI~IIIはすべて対応しているのが重要です。

1番目の4k 60Hzの要件ですが、4k 30Hzしか対応してないDockは値段に関わらず普通にあります。しかも、この記事書いている時点では4k 60Hz対応より値段の高い4k 30Hz迄対応のType-C Dockも普通に売ってます。

そのため「4K対応」とだけ書いてあって、肝心の対応周波数書いていないType-C Dockは、4k 60Hzが必須なら買わない方が無難です。

4番目の要件のPDの部分は、PD対応書いてあればまず大丈夫です。ただ、PD受電用のType-CポートがPD専用か、それともUSBポートとしての機能もあるかはDockの機種次第です。

PDは2つトラップがあって「DockにType CがついてるけどPD受電不可」と、「PCからの受電では動作しない(PD挿して外部給電しないととまともに動かない)」という罠がある製品もあります。

DellのDA-300なんかは前者です。1万円近くしたのになかなかのクソ仕様です。後継のDA-310はPD受電できるらしいですが。ちなみに、このDA-300を36号機(hp)に繋いだら普通に画面出ませんでした

あと、PD受電そのものが付いていないDockもあります。購入前によく確認が必要です。


さて、Type-C Dockのモニタ出力部分はほぼ全ての機種がDPをHDMIに変換しています。つまりUSB Type-C の Alternate modeを使って映像データをDisplay Portで送信しています。

これはDisplay port Alternate modeという仕組みを使用しています。

HDMI Alternate mode自体はある(Impress PC Watch)ようですが、HDMIは必要な芯線数(差動ペア数)多いですし1.4までしか対応していないようで、DP変換でいけるならDP変換で良くね?って感じはしますね。対応が遅れたのが普及していない理由とも言われますが、先に出ててもDPに抜かされたと思います。

ナントカ Alternate modeというのはホスト側とデバイス側が交渉(Negotiation)して、お互い合意が取れたら通常はUSB3.xに使用する信号線の一部に、USB信号以外のデータを流してしまおうという規格です。

Thunderbolt(以下、TB)やDPをUSB Type-Cで接続できるのはこの規格があるからです。それぞれ、Thunderbolt Alternate modeやDisplay Port alternate modeなどと呼ばれます。まぁ、PCでは事実上ThunderboltとDisplay PortのAlternate modeの2規格しかありませんが。

Alternate modeには両端USB Type C〜USB Type CのUSBケーブルが必要で、Type Cコネクタのピンの全結線が必要です。つまり両端がType CでもUSB2.0までしか対応しないケーブルや、USB3.2対応でも片端がType C以外のケーブルはAlternate modeには対応しません。Type A〜Type CケーブルのType A部分をType C変換してもAlternate modeでは動作しません。。

これはUSB2.0のType C〜Type Cケーブルや、片端がType C以外のケーブルにはAlternate modeで高速伝送可能な信号線が無いか、充分に入ってないからですね。

USB Power Delivery(PD)も両端Type Cが必須ですが、PDはAlternate modeとは別枠ですのでPD単体ならUSB2.0のType C〜Type CでもOKです。ただ、Type A〜Type Cのコネクタ形状を変換して無理やりUSB Type C〜USB Type Cにしてもダメです。

両端がネイティブでType C対応が必要なのはAlternate modeもPDも同じです。PDは高速伝送可能なペアは必要ありませんが、Type AやType Bなどの端子はPDに必要なCC1/CC2端子が無いから変換ではダメなんですね。


Fig01. USB Type C Receptacle ピンアサイン

さて、そのなんちゃらAlternate modeではUSB Type-Cが必須ですが、そのUSB Type-Cのピンアサインはフル結線だとFig01のようになっていて、USB以外の通信に転用できるのは5対10線、高速4レーン+低速1レーンの合計5レーンです(※1)。

  • (高速用)A2/A3 TX1 (TXp1/TXn1)
  • (高速用)B10/B11 RX1 (RXn1/RXp1)
  • (高速用)A10/A11 TX2 (TXn2/TXp2)
  • (高速用)B2/B3 RX2 (RXp2/RXn2)
  • (低速用)A8/B8 SBU1/SBU2

※この記事でいう1レーンは差動ペア1つのことを指します。PCIeやUSBで言う1レーンは差動ペア2つ(TX1/RX1の1セット)で1レーンと呼びますが、DPは差動ペア1つを1レーンと呼んでるっぽいです。ここでは特記がない限りDP側に併せて差動ペア1つを1レーンと呼ぶことにします。

A2とかB2というはUSB Type Cの端子番号です。高速用・高速レーンとは数Gbps以上の高速なデータ転送レートに対応します。TXnとかRXnはSSTXnとかSSRXn(n=1,2、SSはSuper Speedの略)とも表記されます。ちなみにAlternate modeではRXの差動対でデータを送ったりと元の端子のデータ送受信の方向に関係なく使えます。

要件の2と3にある「Gigabit Ethernet(GbE)が搭載されていて1Gbps(実効950Mbps)が出ること。」と「USB3.0が搭載されててその速度が出ること。」は実は同じ内容で、Type C Dockで1Gbps以上出すには内部的にはUSB3.0以上(〜USB3 Gen2x1、以下USB3.x)で接続されている必要があります。GbEがUSB2.0接続されていると1Gbpsなんて出ませんからね。

Fig02. 内部的な接続(USB Tree Viewで表示)

Fig2.はちゃんと1Gbps出るEthernetポートを積んだDockで、上記のようにType-C Dockの内部にはUSB3.xハブのコントローラ(Fig02では汎用Super Speed USBハブ)があって、配下のPort4にGigabit Ethernetがぶら下がってます。ちゃんとSuper Speedでリンクされてるいるのがわかります。ちなみに、このDockはSD/MicroSDのカードリーダがついていてPort1にマウントされています。

Dockに普通のUSB3.xのType Aポートもある場合、そのポートもその内部のUSB3ハブにぶら下がっています。Fig02のDockの場合、Port2とPort3がそれです。ちなみに機種によってはPD受電のType CコネクタもこのUSB3.xハブにぶら下がっていたりしますがこのDockにはありません。

このようにDockがUSB3.xのハブの機能を持つにはType Cの4+1レーンからUSB3.xに必要な通信線割り当てないといけません。USB3.xはx1規格の場合(つまりUSB3.2 Gen 1×2とかUSB3.2 Gen2x2ではない場合)、高速レーン(高速用の差動ペア)が2レーン必要(※1)です。
つまり、TX1/RX1/TX2/RX2の高速4レーンのうち高速2レーンをUSB3.0通信に割り当てる必要があります。ちなみにUSB2.0部分はAlternateでは通常転用できない(※2)のと、Alternate云々に関係なくあるので考慮から除外します。

※1: 繰り返しですが、実際はUSB規格ではこの作動ペア2レーンのことを1レーンと呼びます。USB3.2 Gen2x2のx2というのはこの差動ペア4レーン全部(USB規格上は2レーンと呼称)を使って実現しています。
※2: 半分嘘で、一部のスマホなどで使われているらしいAudio Alternate modeではUSB2.0のポートを転用しています。もちろんUSBの機能は失われます。ただ、PCでは(Alternateで頑張らなくてもUSB2.0部分にUSB Audio繋げばいいだけなので)使ってないと思います。

Fig03. USB3.xにTX1, RX1を割り当てた場合のピンアサイン

ここではUSB3.xに左側のTX1/RX1(SSRX1, SSTX1)を割り当てたと仮定すると、残ったレーンは下記の3レーンです。つまり映像信号は高速2レーンと低速1レーンの合わせて3レーン以下で送らないといけません。

  • (高速用)A10/A11 TX2
  • (高速用)B2/B3 RX2
  • (低速用)A8/B8 SBU1/2

先ほど、Type C DockのHDMIはDPからの変換と言いました。DPはHDCPなどの映像本体以外の信号のやりとり用として映像転送とは別に信号線が1レーン分必要です。DPではAUX+/AUX-というピン名でアサインされています。Display port Alternate modeではこれにSBU1/SBU2を割り当てます。

Fig04. DPのAux+/Aux-
Wikipedia Display Portの項より引用。2022.08.28閲覧

残ったType Cのレーンは下記の高速レーンが2つです。

  • (高速用)A10/A11 TX2
  • (高速用)B2/B3 RX2

ところで、4K 60Hz、色深度RGB10bit(計30bit)、HDRがない場合のDisplay Portのデータ転送レートは15.68 [Gbps]です。またDisplay Portの1レーンあたりの速度はDisplay Portのバージョンによって異なっており、Wikipediaでは下記の通りとなっています。

Fig05. Display Portの転送速度
Wikipedia Display Portの項より引用。2022.08.28閲覧

DP自体は最大4レーンですので、4k 60Hzに必要な15.68 [Gbps]をType Cで実現するには下記のどちらかで実現する必要があります。
I. DP1.2で4レーン(5.4Gbps x 4レーン)
II. DP1.3 or DP1.4以上で2レーン(8.1Gbps x 2レーン)
※この記事書いた時点ではDisplay Alternate modeで対応するのはDP1.4までです。またUSB4は除きます。

Fig.06 – IのDisplay Port 1.2で4レーン使う場合のピンアサイン例
VESA – DisplayPort(TM) Alternate Mode on USB-C(R) P.23, USB.org, 2022.08.28閲覧
Fig.07 – IIのDisplay Port 1.4で2レーン使う場合(典型的なUSB3.x/HDMI搭載のDock例)
VESA – DisplayPort(TM) Alternate Mode on USB-C(R) P.22, USB.org, 2022.08.28閲覧

私の要件満たすType C Dockの場合、結論としてはIIです。

Fig.07を見るとType Cの高速4レーンのうち、2レーンをすでにUSB3.xに使われています。残った高速2レーンで4k 60Hzに必要な15.68 [Gbps]を出そうとしたらDP1.3 or DP1.4(8.1 [Gbps] per Lane)が必須です。DP1.2(5.4 [Gbps] per lane)だと2レーンでは10.8Gbpsしか出ないので4k 60Hzを出すには帯域が不足です。

まぁ、そもそもUSBポートを持ってるType C Dockで4k 60Hzを出すには、現状、下記の2通りしかやり方がありません。

  1. Display Port 1.2で、USBポートを非実装か実装してもUSB2.0にして、高速4レーンを全部DPに回す(USB3.0は妥協する)。→Fig06のパターン
  2. Display Port 1.4で、高速4レーンのうち2レーンだけをDisplay Port Alternate modeに回して、残った高速2レーンをUSB3.0に回す。→Fig07のパターン

DP 1.2でも4k 60Hzの出力は可能です。ただ、DP1.2で4k 60Hzを出力しようとすると、高速レーンを4レーン全部使わないと帯域が足りません。そのためType C DockでPC本体側、もしくはType C Dock側のいずれかがDP1.2にしか対応しない場合、Dock側の(Thunderboltがない限りは)USBポートは2.0にしかなりません

DP1.2までしかDockが対応していないのに、Dockが「USB3.xが絶対必要!」とネゴシエーションで譲らないなら、映像に関してはDP1.2 x2レーンで接続されます。

DP1.2 x2レーンの最大解像度は4kだと30Hz迄なので、必然的にDockの4k 30Hzまでの対応になります。4k 30Hzは7.73 [Gbps]なので、4k 30HzまでであればDisplay Port 1.2でも高速2レーン(10.8 [Gbps])で伝送可能です。


別の見方をするとUSB3.0ポートがあるのに4k60Hz対応と謳われていなかったり、DP1.4が必要と書かれていない場合は、書き忘れで無ければ下記の可能性があります。

A. 4k 30Hzまでしか対応してない。
B. 4k 60HzにするとUSBが2.0になる。
C. ポートの見た目はUSB3.0だが、内部結線はUSB2.0(詐欺)
D. ちゃんとDP1.4で4k 60Hzに対応しているが、Thunderbolt以外での使用を考えていない。

Cの詐欺パターンで無ければ、4k 60Hz非対応として流通してるType-C DockはAがほとんどだと思います。

AとBはDisplay Port 1.2までしか対応していないパターンですね。

Aは、4k 30Hzまでであれば前述の様にDisplay Port 1.2でも高速2レーンで伝送できるので、4k 30HzとUSB3.0で同時成立させてるパターンです。この記事書いている時点ではこのパターンの製品が多いです。

BはDPでType Cの高速レーン使い切ってて、USB3.xに高速レーンを振る気が無いか、割り振れないパターンですね。ヨドなどの国内市販品でBのパターンは私が調べた限りではありませんでした。

ただ、どことは言いませんが、4k 60Hz対応と書かれてるのに、中のDP/HDMI変換チップのチップ名が書かれてて、そのチップベンダのページ見るとがDP1.2まで対応という中華のType C Dock製品を尼で見たことあります。買ったわけでは無いので動作の真偽の程は謎ですが注意が必要です。

ちなみにDockではなく単なるType-C〜HDMI変換の場合、USBポートがそもそも不要なのでDP1.2で4k 60HzをFig06のパターンで実現している製品も多分にあると思います。

ThunderboltはThudnerboltというプロトコル(実際はPCI Express)でDPもUSBもペイロードとして送受信して、それをPC側やデバイス側で解きます。Thuderbolt自体は4+1レーン全部使い切りますが、あくまでThunderbolt通信であって、DPやUSB3.xはそのThunderbolt通信の上に乗るようなになるのでDPとUSB3.xは併存可能です(※)。

※この説明はThunderbolt対応のUSB Type CにThunderbolt対応機器を接続して、Thuderbolt modeで使う場合の説明です。

Windows Updateで降ってくるIntel Display Driver 27.20.100.9415(2022/07/11)は動作が怪しい。

8月度のWindows Update(以下、WUD)に混じって降ってきた「Intel Corporation – Display – 27.20.100.9415」ですが23号機のIntel UHD Graphics 750では動作が怪しいです(クラッシュしてる)。
※正確には8月度のWUDではなく私の場合は2022.08.07に降ってきてます。

先日のIntel MEの件は、WUDで降ってくるIntel MEより新しいバージョンを当ててやると、WUDで降ってくるバージョンを無視して新しいするようですが、このIntel UHD Graphics 750に関しては後から入れられた方を優先するようです。

Fig1. より新しい31.0.101.3222を入れているのにWindows Updateでは古いバージョンが落ちてくる。
Fig2. Windows Updateが終わると古いバージョンが使われてしまう。

画面は構成が似てて使用するドライバも同じ35号機のIntel UHD Graphics 730ものです。Fig1.のようにこのアップデートより前に最新の31.0.101.3222(Intel)を入れてあったのですが、Windows Updateでは古いバージョン(27.20.100.9415)が降ってきてましたし、Fig2のようにWUD当てたら普通に古いのが使われました。

Fig2のようにでWUDで古いドライバが有効化されても、古いドライバ自体はプリザーブされてますので、もしより新しいドライバを入れてるのであれば、上のFig2.の「ドライバを元に戻す」を選択するとFig3のような「ドライバー パッケージを戻す」の画面が出てくるので、理由を適当に選べば戻せます。

Fig3. ドライバを戻す画面

上のFig2.の「ドライバを元に戻す」のボタンがグレーアウトで押せない場合、面倒ですがIntelの公式ドライバで一度上書きしてから、一旦WUDを受け入れた上で、上記ステップでdevmgmt.msc (デバイスマネージャ)上から「ドライバを元に戻す」で元に戻してください。

Windowsのドライバはたまにハズレドライバが落ちてくるので、安定重視ならGPOで禁止してもいいと思います。ただ、ドライバも脆弱性が出ることがあるので、更新しないのが最善かと言われると微妙なところです。

終戦記念日@2022

終戦記念日ですね。終戦から77年です。
最近は終戦から年数経ちすぎて、教育現場では祖父母に戦争体験をヒアリングして来いって宿題出すと、「私(祖父母)も戦後生まれだからそんなの知らん」って言われるみたいです。

この戦争体験のヒアリングは悲惨さを話してもらうことを主眼にしてるようですが、地域や話者の立場で結構異なるようで、私自身はあまり悲惨な話は聞きませんでした。話さなかっただけの可能性もありますが。

ちなみに私もこの手の宿題を出された記憶があります。理由は忘れましたが何故かスルーして出しませんでした。たぶん纏めるの面倒だったか、発表の日になってやってないことを思い出したかのどっちかだったような気がします。私に当てないで、って思ってたら授業終わってましたw。


今年は行ってないので知りませんが、終戦記念日に靖国神社の最寄駅の九段下駅に行くと、終戦記念日でカーキーの戦時中の国民服や軍服のコスプレした人がウロウロしてることがあってなかなか怖いです。

靖国と言えば、毎年のように閣僚が参拝していますね。私は参拝自体は私費で参拝する分には個人の自由の範疇だと思ってます。自分で稼いだ金をどう使うかは当人の勝手ですしね。公費でやると政教分離の原則に反するとは思いますが。

余談ですが、靖国神社に合祀されているA級戦犯のA級っていうのは学校のクラス分けやオペアンプと同じ単なる分類で、A級だからやばい、高い、というわけでは無いみたいですね。私は合祀の話題はあまり興味ありませんが「へー」とは思いました。

2022年07月度のWindows Updateに含まれるIntel MEはRocket Lake上での動作が怪しい

Windows Updateは8月度が出ていますが、7月度の問題が解消できたのでようやくメインマシンに入れることができました。

Yuaihoは23号機(Z590+Rocket Lake)をメインに使っているのですが、2022年07月に含まれるWindows Updateをを当てたらBSoDが頻発するようになりました。

怪しそうなのを探してみると7月度のWindows Updateに含まれる「Intel – Software Component – 2130.1.15.0」を入れたせいっぽいです。Yuaihoの環境では、ですが。

「Intel – Software Component – 2130.1.15.0」の中身はSkylake以降用のIntel Management Engine(Intel)のようです。

Windows10はパッチを選り好みして入れる方法が事実上ないので(Blacklist化は出来るが面倒なので)、より新しいドライバを入れてからWindows Updateを当てると「Intel – Software Component – 2130.1.15.0」自体はインストールされるもののドライバ自体は新しい方を利用するようです。

Fig1. devmgmt.msc(デバイスマネージャ)

ドライバのバージョンは「devmgmt.msc」の「システム デバイス」の「Intel(R) Management Engine Interface #1」の「ドライバ」タブで確認できます。

Fig2. Intel(R) Management Engine Interface #1のプロパティ

なんかIntelのWebサイトのものと若干違う気がしますが、2130.1.15.0ではないっぽいので細けぇこたぁいいんだよってことで気にしないことにしました。一応、この方法でIntel Managementを更新したら、安定して動作するようになりました。

ちなみに、Fig.2の「ドライバーの更新」で強制的に別のバージョンを使用させることもできるようです。ただ、ネットの記事を読んだだけで試したことがないので本当にできるかは知りません。