0

私はいくつかの古いモボを持っており、相互接続ワイヤを備えた 1 組の PCI ヘッダー カードを作成し、相互接続カードを駆動するソフトウェアを作成して、モボの 1 つが CPU と RAM にアクセスできるようにすることが可能かどうか疑問に思っていました。他?ヘッダー ボード用のデバイス ドライバーを作成してから、相互接続を利用するアプリケーションを作成するのは大変な作業になると思います。おそらく、各プロセッサで実行されるスレッドと両方の RAM セットの使用を示す簡単なデモで、32 ビット mobo 上の 2x3gb RAM を単一の 6 GB アドレス空間にマップするミニ仮想マシンを作成します。トランスレータとして機能するために、各 pci ヘッダー カードにマイクロコントローラが必要になる場合があります。

mobo にはほとんどの場合複数の pci スロットがあるため、これらの相互接続されたカードのペアを使用して、ある種の高速 beowulf クラスターで mobo をデイジーチェーン接続できるのではないかと考えています。

私は各モボにdebianを使用し、おそらく各カードにatmega128を使用し、相互接続用のリボンケーブルを2本使用します。

pci は基本的に単なる io バスなので、なぜこれが不可能なのかわかりません (しかし、かなり難しいでしょう)。

誰かアドバイスがありますか、またはこの種のことは以前に行われましたか?

アップデート:

ありがとうマーティン。あなたの言うことは理にかなっていますし、もしそれが可能であれば、それは以前にすでに行われているようにも思えます.

代わりに、「ふりをする」起動可能なストレージデバイス(ハードディスク、USBスティックなど)を使用して起動することにより、スレーブCPUを間接的に制御することは可能でしょうか? スレーブ mobo が、実際のデバイス上のオペレーティング システムによって操作されていると考える限り、動作するはずです。

これは、任意のインターフェイス (sata、ide、usb など) に拡張される可能性があります。2 台の PC を sata/ide/usb ケーブルで接続した場合 (ide リボンの一端を 1 つの mobo に接続し、もう一方の端を別の mobo に接続する)、必要なハードウェアはこれだけです。重要なのは、マスターPCでそのインターフェース用の新しいドライバーを作成することです。そのため、マスターPCがそのインターフェースをストレージデバイスとして扱うのではなく、スレーブコンピューターのダミーの起動可能なハードディスクとして駆動されます。私はこれまでデバイスドライバーをやったことがないので、これはまだかなり難しい仕事ですが、少なくともはんだごては必要ありません(私をはるかに超えているでしょう)。Linux 用のオープン ソース ide ドライバーを取得して研究し、それを肉屋にして逆に動作するものを作成できるかもしれません (データを取得するのではなく、アプリケーションは、スレーブマシンがハードディスクのようにアクセスできるようにデータをそこに置きます)。次に、基本的な Linux カーネルを使用して、マスター コンピューター上のアプリケーションからスレーブ コンピューターを起動してみることができます (解体されたマスター pc ide/sata/usb デバイス ドライバーを介して)。安全のために、私はおそらく、マスター PC の他のものに使用されていないインターフェイスをターゲットにすることで、カスタマイズしたドライバーを可能な限り分離しようとします (マスター PC は、通常は使用されない ide バスを持つすべての sata ハードディスクを使用する可能性があります。カスタム ide ドライバーを作成すると、ホスト システムで問題が発生しにくくなる可能性があります (これは sata 駆動であるため)。

このようなこと (別の PC から起動可能なハードディスクを偽造すること) がこれまでに試みられたことがあるかどうか知っている人はいますか? YouTube でかなりクールなハッカデーになるだろうが、有望であることが証明されれば、並列コンピューティングに新しい次元を追加することも真剣に考えられる.

4

2 に答える 2

1

PCI バスは他の CPU を引き継ぐことができません。

あるマシン上のプログラムから別のマシンにデータを転送できる相互接続を作成できます。イーサネット カードが最も一般的な実装ですが、高性能クラスターにはinfibandのような高速な直接接続があります。

残念ながら、PCI は古い ISA バスよりもカードを構築するのが難しく、PCI のインピーダンス要件に一致するように、表面実装コントローラー チップと特定のトラック レイアウトが必要です。数メガビット/秒を超えるには、伝送路や接続ケーブルの特性などを理解する必要があります。

于 2011-08-07T15:42:31.723 に答える
1

各モボにdebianを使用し、おそらく各カードにatmega128を使用し、相互接続用のリボンケーブルを2本使用します。

pci は基本的に単なる io バスなので、なぜこれが不可能なのかわかりません (しかし、かなり難しいでしょう)。

笑。PCI は、少なくとも 32 ビット 33MHz バスです。したがって、ATMEGAには手が届きません。

しかし、あなたの考え:

相互接続ワイヤを備えた1組のPCIヘッダーカードと、相互接続カードを駆動するソフトウェアを作成して、moboの1つがCPUとRAMにアクセスできるようにします[...]

これは、1 組の PCI Firewire ( IEEE 1394 ) カード (および Firewire ケーブル)だけで安価に実現できます。FireWire を介したリモート デバッグを可能にする Linux ドライバさえあります。

于 2011-10-16T11:32:10.350 に答える