ハッカー向けの PCIe: 最大限の抽出
これで、PCIe へのアプローチの基本がわかり、PCIe 関連の目標も念頭に置いたことになるでしょう。 おそらく、ワードドライブ用に、シングルボード コンピューターに安価で強力な PCIe WiFi カードを多数装備したいと考えているかもしれません。おそらく、使用しないイーサネット コントローラーの代わりに 2 台目の NVMe SSD をラップトップに追加するか、フル-気の利いたアダプターを介して GPU を Raspberry Pi 4 に接続します。 やりたいことは何であれ、PCIe でよく知らない分野がないことを確認してください。
PCIe、特にマイニングや PC いじりのコミュニティに関わったことがある人は、「分岐」という用語を聞いたことがあるかもしれません。 これは、PCIe スロットを複数の PCIe リンクに分割するもので、ご想像のとおり、ハッカーにとっては非常に便利な機能です。 追加のハードウェアは必要ありません。実際に必要なのは、REFCLK 用のバッファを追加することだけです。 ご覧のとおり、追加のポートを追加するたびにそれが必要になりますが、物理的に同じクロック差動ペアをすべてのスロットに同時にプルすることはできません。スタブが発生し、その結果信号反射が発生するためです。 REFCLK バッファ チップはホストからクロックを受け取り、REFCLK 信号の同一のコピーを多数生成し、それをスタンドアロンでプルします。 オンラインで x16 ~ 4 の NVMe スロット カードを見たことがあるかもしれません。必ず、カードの隅のどこかに REFCLK バッファ チップがあるのがわかります。 完璧なシナリオでは、PCIe からより多くの PCIe を引き出すために必要なのはこれだけです。
実際には、適切な分岐サポートは厄介です。 分岐にはホストからのサポートが必要ですが、このサポートは非常に状況に応じたものであり、一部のチップセットのみが分岐を実行でき、かなりの数のマザーボードが分岐を実行できますが、何らかの理由でソフトウェア的に実行できないことを選択しています。 FPGA を使用して独自の PCIe ホストを作成し、これが意味する完全な柔軟性を備えている場合でも、FPGA は内部的な理由により分岐をサポートしていない可能性があります。 さらに、1 つの x16 スロットから 16 個の x1 リンクを取得することはできません。通常、サポートされる組み合わせは、x16 スロットから 4 つの x4 リンク、おそらく x8 配線の x16 スロットから 2 つの x4 リンクです。
さて、代替手段があります。それは PCIe スイッチです。これらは、ホストに PCIe デバイス インターフェイスを提供し、すべてのデバイスに複数の PCIe ホスト インターフェイスを提供する大型チップです。 動作の点でイーサネット スイッチと比較することもできますが、PCIe スイッチのレーンにはホストまたはデバイスの役割があり、イーサネット スイッチ ポートは通常すべて同じである点が異なります。 これらのスイッチのサイズは、RP2040 スタイルの QFN (ASM1182 の場合は 1:2 スイッチ) から x86 CPU のサイズまであり、多くの場合外部冷却が必要で、高価になる傾向があり、かなりの量の電力を消費します。力。 たとえば、Aliexpress で分岐カードを探している場合、PCIe スイッチが搭載されたカードに必ず遭遇します。
利点は、ホストの観点からは通常の PCIe デバイスとまったく同じように見えるため、ホストからの特別なサポートを必要としないことです。 欠点は、やはり、かなりの費用がかかり、文書化されることもほとんどないことです。 たとえば、PCIe 1:4 スイッチ チップを入手しようとしていたところ、1 つの x1 リンクから 4 つの x1 リンクを生成する ASM1184 1:4 コントローラーを見つけました。 これはまさに私が必要としていたもので、グーグルで調べてみると、このチップはあらゆる種類の大量の中国製 PCIe スプリッタ ボードやギガバイトなどのメーカーのデスクトップ マザーボードで使用されており、ボードはウォルマートなどでも販売されていることがわかりました。 ASM118x (ASM1184 は 1:4、ASM1182 は 1:2) チップ自体も、Aliexpress で簡単に見つかります。主な問題は、ドキュメントが不足していることです。 技術的には、実際のデバイスの回路図は最低限必要なものです。チップは外部制御なしでスタンドアロンで動作するように設計されているようです。私は ASM1182 用の回路図を見つけましたが、友人は最近 ASM1184 用の回路図を見つけました。 ただし、外部制御用の I2C レジスタなどは謎のままです。
したがって、ASM1184 のようなチップは魅力的で安価で、スタンドアロン IC としても製品の一部としても Aliexpress で簡単に入手できますが、デバッグは困難になる可能性があります。 ありがたいことに、私が知っている欧米のメーカーの 1 社が、PCIe スイッチに関してあなたの危機を救ってくれます。それは、Pericom が買収した PCIe 製品ラインを備えた Diades Incorporated です。 PCIe スイッチの完全なデータシートをオープンにダウンロードでき、Digikey にはかなりのデータシートがあります。 Broadcom の PCIe スイッチに遭遇することもありますが、ご想像のとおり、そのオープン性は典型的な Broadcom 製品としては当然のことであり、別名、存在しません。
ケーブル経由で PCIe を接続しようとしており、x1 リンクで問題ない場合は、USB3 ケーブルよりもうまくいかない可能性があります。実際、USB3 ケーブルは非常に適した媒体です。 2 つの高速 USB3 相違ペアがあり、USB3 が整合性要件に関しては扱いにくいインターフェイスであることを考慮すると、USB3 向けのケーブル配線は PCIe に適しています。 USB3 ケーブルには USB2 ペアも搭載されており、100MHz REFCLK ペアはそれに完全に適合します。 全体として、USB3 ケーブルと PCIe x1 リンクはまさに理想的な組み合わせです。 鉱山機器メーカーもこれを認識しており、スロット エクステンダー、PCIe スイッチ、NVMe アダプターなど、USB3 ケーブルとコネクタを介して PCIe リンクを接続するあらゆる種類のアクセサリが市場に溢れています。 採掘の人気が下がって以来、これらのアクセサリーは安価で入手できるようになりました。
一般的なマイニング ライザー ボードは、メインボードに接続するための USB3 ソケットを備えた x1 プラグ ボード、対応する USB3 ソケットを備えた x16 スロット ボード、および追加の電源入力 (場合によっては電源レギュレーターも含む) で構成されます。 3 番目のコンポーネントは、両端に USB-A コネクタが付いた USB3 ケーブルです。 PCIe で型破りなものを設計するハッカーにとって、これらのアクセサリを再利用することは魅力的かもしれません。結局のところ、USB3 ソケットとケーブルは多くの種類で簡単に見つけることができます。
確かに、おそらく成功するでしょう。そのような方法で PCIe を精査することが絶対に実行可能であることを証明できるものがあるとすれば、これらすべてのマイニング エクステンダーが実際に、無数のマイナー全員のために 24 時間 365 日の条件で機能しているということです。 ただし、いくつかの問題に注意してください。 たとえば、頻繁には発生しない小さなピン配置の問題が 1 つあります。高速 TX および RX の差動ペアは USB3 ピンに残りますが、どの PCIe ペアがどの USB3 ペアに接続されるかは完全に保証されていません。
しかし、より重要なのは、USB2 部分の +5V および GND (はい、別のワイヤ) ワイヤに送られる信号の種類が異なる可能性があり、これが起こることが知られているということです。 私の友人はこれらのワイヤを使用してデバイスを構築しましたが、彼女が持っていた PCIe ライザーには PEWAKE と PREST が搭載されていることが判明し、その設計は驚異的に機能しました。 しかし、その後、ロシアの鉱山フォーラムでのライザーの互換性調査 (翻訳) により、+5V ワイヤが 3.3V、さらには 12V を伝送するいくつかのライザーとスイッチ ボードが見つかりました。所有する特定のライザーに合わせて設計します。 ライザー機器用に設計しようとして、一般的なライザー エクステンダーの「メインボード内 x1 プラグ」または「x16 スロット」ボードのいずれかに依存している場合は、使用しているものが実際に機能していることを再確認する必要があります。考えているピン配置に従ってください。 危険なライザーを使用すると、爆発的な状況が発生する可能性があります。 悲しいことに、これらのライザーは、便利なケーブルを介して PCIe を伝送するための標準をほぼ定義しましたが、まだそこまで到達していません。
また、このようなマイナー キットに付属している電源アダプターも必ず使用しないようにしてください。これらすべての「SATA 電源から PCIe 6 ピン」には、入力電力と出力電力の間に深刻な不一致があります。 これらのマイニング ボードに問題があるとすれば、これらのアダプタが組み込まれていることです。PCIe カードが、アダプタの安価に作られた SATA 電源コネクタが処理できる電力を少しでも超える電力を消費した場合、実際には火災の危険が生じる可能性があります。
PCIe 詐欺の目的のためにマイニング アクセサリを破壊するハッカーのルートは唯一のものではありません。 PCIe 経由で接続するおいしいチップを見つけた場合、または完全に合法的な手段でどこかで見つけた PCIe リンクを拡張したい場合は、独自の PCB を設計してください。 現在では、デスクトップ用のフルサイズ スロットかモバイル用の M.2 スロットを選択できます。また、古い機器や産業用機器を対象としている場合は、mPCIe も機能します。
デスクトップで使用する場合は、豊富な PCIe ソケットから選択できます。 このようなソケットに差し込むには、厚さ 1.6 mm の PCB が必要です。ありがたいことに、これはどの工場でも入手できる標準的な PCB の厚さであり、一般に最も安価な PCB の厚さでもあります。 PCIe ソケットに差し込む PCB エッジを面取りしたい場合があります。多くの場合、PCB 製造工場では、多少の追加コストをかけてこれを行うことができますが、この面取りは、ヤスリや予備の xacto ナイフを使用して事後的に追加することもできます。刃。
モバイル スロットに関しては、M.2 については以前に詳しく説明しました。 シンプルな M.2 ガイドラインは次のとおりです。カードには ENIG を備えた 0.8 mm PCB を使用し、PCB に M.2 スロットを追加する場合はステンシルがあることを確認してください。 次に、使いやすいキーイングを選択します。WiFi カード用の A+E、WiFi カード接続用の E ソケット、最大 x4 の PCIe 用の M キー スロットとカード、最大 x2 の PCIe 用の B+M カードと互換性です。 B キー (WWAN) と M キー (SSD) ソケットの両方を備えています。 M.2 ソケットが多数販売されており、スロットとカードの両方のテンプレートも販売されています。 mPCIe の場合は 1mm PCB が機能し、やはり金 (ENIG) メッキが必須です。
モバイルまたはデスクトップの PCIe カードまたはソケットを使用する場合でも、diffpair レイアウトのガイドライン、必要な信号の数、およびリンク幅と世代間の強力な互換性は変わりません。 PCIe を使用して設計しているものは何であれ、達成するのは難しい作業ではありません。高速化への取り組みを支援する PCIe の回復力のおかげで、PCIe プロジェクトの目標を達成できる可能性が高くなります。