使用pci互连主板

时间:2011-08-07 15:02:50

标签: cluster-computing microcontroller connect pci

我有一些旧的主板,我想知道是否有可能用互连线创建一对pci标题卡并写一些软件来驱动互连卡,以允许其中一个主板访问cpu而另一个是ram?我确信这将是一项艰巨的任务,包括为头板编写设备驱动程序,然后编写应用程序以利用互连;也许是一个简单的演示,演示了在每个处理器上运行的线程以及两组ram的使用,可能会创建一个迷你虚拟机,将32位mobos上的2x3gb ram映射到单个6 gb地址空间。每个pci标题卡上可能需要一个微控制器作为翻译。

鉴于mobos几乎总是有多个pci插槽,我想知道这些互连的卡对是否可用于某种高速beowulf集群中的菊花链主板。

我会为每个主板使用debian,并且可能只是每个卡的atmega128,并带有几条用于互连的带状电缆。

pci基本上只是一个io总线,所以我不明白为什么这不可能(但这会很难)。

有没有人有任何建议或者以前做过这类事情?

更新

谢谢马丁。你所说的是有道理的,如果有可能它之前就已经完成了,那似乎也是如此。

相反,是否可以通过使用“假装”可启动存储设备(硬盘,USB棒等)启动它来间接控制从CPU?只要从属主机认为它是由真实设备上的操作系统操作它就可以工作。

这可能会扩展到任何接口(sata,ide,usb等);如果你用sata / ide / usb线连接两个pc(将ide功能区的一端插入一个主板,另一个插入另一个主板),这将是你需要的所有硬件。关键是在主PC上为该接口创建一个新的驱动程序,因此,不是主PC将该接口视为具有存储设备,它将被驱动为从属计算机的虚拟可引导硬盘。这对我来说仍然是一项相当困难的工作,因为我之前从未做过设备驱动程序,但至少我不需要烙铁(这将远远超出我的范围)。我可能能够为linux开发一个开源的ide驱动程序,研究它,然后用它来创建一些反向行为的东西(而不是从中获取数据,应用程序将数据放到它上面以供从机访问一个硬盘)。然后,我可以使用基本的Linux内核并尝试从主计算机上的应用程序启动从属计算机(通过butchered master pc ide / sata / usb设备驱动程序)。为了安全起见,我可能会尝试尽可能地隔离我的自定义驱动程序,目标是不使用主机上的任何其他东西的接口(主机可能会使用通常未使用的ide总线的所有SATA硬盘,所以如果我创建了一个自定义的ide驱动程序,它可能会减少主机系统的问题 - 因为它是由sata驱动的。)

有没有人知道这样的事情(从另一台电脑上伪装可启动硬盘)之前曾经尝试过吗?它会在youtube上做一个非常酷的hackaday,但也认真地说它可以为并行计算增加一个新的维度,如果它被证明是有希望的。

2 个答案:

答案 0 :(得分:1)

PCI总线无法接管其他CPU。

您可以创建一个可以将数据从一台计算机上的程序传输到另一台计算机的互连。以太网卡是最常见的实现,但对于高性能群集,有更快的直接连接,如infiband

不幸的是,PCI比旧的ISA总线更难以构建卡,您需要表面贴装控制器芯片和特定的轨道布局来匹配PCI的阻抗要求。  速度超过几兆比特/秒需要了解传输线和连接电缆的特性。

答案 1 :(得分:1)

  

每个主板都会使用debian,每张卡上只需要一个atmega128,并带有几根带状线缆用于互连。

     

pci基本上只是一个io总线,所以我不明白为什么这不可能(但这会很难)。

LOL。 PCI至少是一个32位33MHz总线。所以简直无法接触到ATMEGA。

但你的想法是:

  

一对带有互连线的pci接头卡,并写一些软件来驱动互连卡,以便其中一个主板可以访问另一个主机上的cpu和ram [...]

只需使用一对PCI Firewire(IEEE 1394)卡(和Firewire线缆),这是很便宜的。甚至还有一个Linux驱动程序允许通过firewire进行远程调试。