コレ、間違えたくない事のひとつ。
CPUにもチップセットにも…
自作PCを作る際、以前から一つ気になっている事がある。
それは、最近のCPUはコアの中にいろんなコントローラーが内蔵されたのは良いが、ドコまでの機能を内包しているのか? という事。
例えば、CPUコアに内蔵してしまって他には存在しないI/O機能ならあまり困らない。何故ならCPU内部に持っているI/O機能イコールPCの全I/O機能と言い切る事ができるからだ。
ところが、CPU内にもそのI/O機能があり、チップセットにもそのI/O機能があるというものの場合、どこまでがCPU管轄で、どこからがチップセット管轄なのかがわからない。
…まぁ、簡単に言うと、現時点ではPCI Expressのコントローラーぐらいしか該当するものがないのだが、まさしくそれが私の理解できない部分だったりする。
スペック表をみると…
Core i7-8700Kのスペックシートを見ると、PCI Expressのレーン数は16と記載されている。
一方、ライバルのRyzen7のスペックシートだとPCI Expressのレーン数は20とあるが、実この表記は一部正しくないようで、20レーンの内4レーンはRyzen7の内部にあるCCX(コア4つで一つの塊になっているもの)の接続に使用されているそうで、実際は16レーンが外部に出ているという事らしい。
また、Coffee Lake-S対応のチップセットであるZ370のPCI Expressのレーン数を見ると、24レーンと記載されている。よって、CPUとチップセットで合計40レーンを確保できるとしている。
ライバルのAMD製チップセットであるX370も24レーン(但しRyzenと接続している時のみ)で、前述のレーン数で考えると40レーン(44レーン)持っている事になる。
この時点でIntelもAMDもメインストリームにおいてPCI Expressのレーン数に違いはない事になるが、問題はその40レーンの内の16レーンが、マザーボード上のどのスロットに対応しているのか? という事である。
この話になると、おそらく問題はマザーボードベンダーの設計によるところが大きいのかも知れないが、マザーボード上で拡張カードの接続場所を間違えると、データ通信帯域を著しく損失する可能性が出てくる。
×16スロットを3本持つ
ここからは一般的なマザーボードの話をする。
実際には、CPUの性能を全てのパターンで満たしているマザーボードは少ないので、必ず以下のようになるとは限らない。あくまでも一般的な話である。
一般的にマザーボード上にPCI Express×16スロットを3本もつマザーボードは、接続するスロットを間違えると帯域を損失する可能性がある。
マザーボードは通常、基板上にそれぞれの端指名や番号を略式で記載しているが、PCI Express×16を3本もつマザーボードは、PCIe1~PCIe3とそれぞれスロット番号を付けている事がほとんど。その時、ビデオカードを1枚だけ接続する場合はPCIe1に挿せば×16接続でビデオカードが稼働する。
ビデオカード2枚構成でSLIもしくはCrossFireX接続する場合は、PCIe1とPCIe2にそれぞれビデオカードを挿せばPCIe1とPCIe2がそれぞれ×8接続となって2枚が連動して稼働する。
SLI接続は、既にビデオカード3枚での稼働を許可していないので、2枚挿しの条件しか存在しないが、CrossFireXは公式では2枚まででも3枚での稼働も可能な仕様なので、問題はビデオカード3枚挿しでの動作がココからどうなるか? という事である。
ほとんどのケースで、1枚目2枚目は×8接続でそのままCPUに接続され、3枚目は×4接続でチップセットに繋がるとされる。何故なら、CPUは16本までのPCI Expressのレーンを持っているからだ。
まぁ、ここまでは予想の範囲内の使い方なので、マルチGPUで接続する人は問題はない。
だが、ビデオカードはあくまでも1枚で使用するとして、他にPCI Express×1より多いレーン数を必要とする拡張カードを挿す場合は、間違ったところに挿すと性能を損なう可能性があるという事である。
まず、PCIe1にビデオカードを挿し、ビデオカードの×16の稼働を確保する。ここまでは良いが、ここからPCI Express×1より多いレーン数を必要とする拡張カードをPCIe2に挿してしまうと、PCIe1の稼働が×8での稼働になってしまうのである。
なので正解はPCI Express×1より多いレーン数を必要とする拡張カードをPCIe3に挿してチップセットへ接続する使い方となる。
こうすれば、ビデオカードの接続速度を犠牲にする事なく、他拡張カードをチップセットのレーンで稼働させ性能を維持する事が可能になる。
もっと簡単に言うと、PCIe2のスロットはマルチGPUの為だけのスロットであり、ビデオカードを1枚で運用する場合は、PCIe2のスロットには何も挿すな、という事である。
この失敗は自作PC初心者にありがちなミスだったりする。
たた…もともとPCI Express×1より多いレーン数を必要とする拡張カードそのものが少ないので、あまり問題にはならないのかもしれないが、時々USB3.0拡張カードや高速ストレージカードなどで×4、もしくは×8接続の拡張カードがあるので、そういうカードを利用する時は要注意だったりする。
失敗から学ぶ
なぜ私がこのPCI Expressの接続問題を気にするかというと、実は自分の失敗談からきている。
私の現行メインPCは、MicroATXなのだが、PCI Express×16スロットが3本ある。それ以外の拡張スロットがないので、ビデオカードで1つ接続し、LANを1つ増設して×4接続のUSB3.0の拡張カード「USB3.0RX4-P4-PCIE」を挿せば、それでスロットの全てを塞いでしまう。
つまりこの使い方だと、どんなに頑張ってもビデオカードは×8接続の動作しかしないのである。
これは拡張の必要性を甘く見た私のミスである。
現行PCを組んだ時、マザーボードの性能を見て「ここから拡張する事はあまりないだろう」と踏んでいたのである。
しかし、実際には接続した機器の速度の問題で帯域不足だったりして、思った以上に拡張性を必要とした現実があり、時代と共に私がやろうとした事を実現しようとした結果、拡張が必要だった。
そこから私が学んだ事は、拡張性は確保できるだけ確保した方が良く、常に保険を掛けて置いた方が良い、という事である。
なので、今回構成する新メインPCはATX規格のマザーボードを採用し、拡張性に余裕を持っておくつもりである。
まぁ…元々のマザーボードの性能が向上しているので、マザーボードに直に今の機器を接続しても速度問題が出ない可能性の方が高いが、数年後に同じ事が言えるとは言い切れない。また同じ事で速度を犠牲にするような事になれば、それこそ何も学んでいないことになる。
私のようにいろいろな拡張を視野に入れない人からすると「何言ってるんだ、コイツは…」と思うかも知れないが、PCはいろんな用途で利用できる事を活かしていこうとすると、拡張というものにぶつかるという事である。
小型PCを組むという楽しみ方もあるが、小型であるという事はそれだけのサイズに収めるために何かを犠牲にしている、という事でもあるという事を覚えておいて損はない。
もしどうしても小型PCで拡張を…という人は、USB機器で切り抜けるのが一番良い方法だと思う。雑多な構成にはなるが…。