PCIe 5.0 SSDも大分増えてきたが、そのどれもが、以前のSSDに比べて発熱と言う問題を抱えていることが目に見えて分かるほどに、巨大なヒートシンクを備えるようになって来ている。高速なデータ転送の実現とは、発熱とトレードオフなのだという事を改めて感じさせられるが、SSD等のデバイス自体ではなく、PCI Expressバスそのものにもサーマルスロットリングが生じる可能性を考えたことはあるだろうか?
Phoronixは、IntelのLinux向けPCI Expressドライバの最新のリビジョンにおいて、極端な発熱が発生した場合にPCI Expressのリンク速度を制限できるようなアップデートが加えられていることを発見した。
冷却のためにリンク速度を低下させ、レーンの一部を遮断する
これはつまり、適切に冷却されたGPUやSSDであっても、熱伝導率が一定の閾値に達するとPCI Expressリンク自体の速度が低下するため、通常と同じだけのデータにアクセスできない可能性があるということだ。さらに、ドライバがPCIeレーンの一部をシャットダウンする可能性もあるという。具体的には、PCI Express x16接続の一部が遮断され、x8接続になる可能性があるということだ。
核となる問題は、PCIeの高速化が進むにつれて、シグナルインテグリティ(SI)の向上とシグナルロスの低減が求められていることだ。これを達成するには、より高いクロック、より高い電力、エンコーディングの最適化が必要になることが多く、これらすべてが余分な熱を発生させる。例として、PCIe 5.0 SSD を見てみよう。転送速度が32GT/秒(PCIe 4.0の2倍)であるため、持続的な負荷の下で熱を放散させる専用の冷却ソリューションが頻繁に必要となる。
Intelのドライバは1年以上前から開発されており、熱伝導率が高くなりすぎた場合にLinuxがPCIeリンク速度を選択的にダウンシフトできるようにするようだ。各PCIeポートに「冷却デバイス」を登録し、リンク速度を微調整できるようにする。PCIeリンクの速度を落とすことで、熱暴走するGPU、SSD、その他の周辺機器からの熱圧力を緩和することができるはずだ。
このように、リンク幅を調整できないことが現在の制限だが、Intelはこの機能も視野に入れている。
IntelのエンジニアであるIlpo Järvinen氏は、「このシリーズでは、PCIe帯域幅コントローラ(bwctrl)と関連するPCIe冷却ドライバをサーマルコア側に追加し、熱的な理由によるPCIeリンク速度の制限を行います。PCIe帯域幅コントローラはPCI Expressバスポートサービスドライバであり、サービス・ドライバが速度変更に対応しているかどうかを検出すると、ポートごとに冷却装置が作成されます。このシリーズでは、PCIeリンク速度の制御のみをサポートしています。PCIe Link Widthの制御も有用かもしれませんが、AFAIKでは、PCIe 6.0(L0p)までそのためのメカニズムはないので、Link Widthスロットリングはこのシリーズでは追加されません」と、説明している。
今のところ、新しいLinuxドライバは、熱問題を緩和するためのリンク速度のスロットリングのみに焦点を当てている。これは、高速化し続けるPCIe速度がもたらす困難な熱問題に対する、わかりやすいソフトウェア・ソリューションだ。OSがポートごとにリンク速度を自動的に下げることで、負荷がかかった際の熱を動的に最適化する方法を提供する。
このドライバは当初サーバーを主なターゲットとしているようだが、技術的にはデスクトップやモバイルシステムにも非常に有用な物となる。例えば、x16 GPUリンクが熱くなりすぎた場合、一時的にx8スピードに落とすことができる。もちろん、これは帯域幅の減少を意味し、パフォーマンスに影響を与える可能性が高い。ゲームなどでは目に見えてグラフィックパフォーマンスが低下することが予想できる。
PCIe 6.0は2022年に仕様が策定されたが、これに準拠したハードウェアはまだ登場していない。当初の予想では2024年以降の登場とされていたため、そろそろ対応デバイスが登場することも考えられる。
Sources
コメント