我有一些旧主板,我想知道是否可以创建一对带有互连线的 pci 头卡并编写一些软件来驱动互连卡以允许其中一个主板访问 cpu 和 ram另一个?我确信这将是一项艰巨的任务,包括为头板编写设备驱动程序,然后编写应用程序以使用互连;也许是一个简单的演示,演示在每个处理器上运行一个线程并使用两组 ram,也许创建一个迷你虚拟机,将 32 位主板上的 2x3gb ram 映射到单个 6gb 地址空间。每个 pci 头卡上可能需要一个微控制器来充当转换器。
鉴于主板几乎总是有多个 pci 插槽,我想知道这些互连的卡对是否可以用于在某种高速 beowulf 集群中菊花链主板。
我会为每个主板使用debian,并且可能只为每张卡使用atmega128,并使用几条带状电缆进行互连。
pci 基本上只是一个 io 总线,所以我不明白为什么这是不可能的(但这会很困难)。
有没有人有任何建议或以前做过这种事情?
更新:
谢谢马丁。你说的很有道理,而且如果可能的话,它似乎以前已经做过了。
相反,是否可以通过使用“假装”可引导存储设备(硬盘、USB 记忆棒等)引导从属 CPU 来间接控制从属 CPU?只要从属主板认为它是由真实设备上的操作系统操作的,它就应该可以工作。
这可能会扩展到任何接口(sata、ide、usb 等);如果您使用 sata/ide/usb 电缆将两台电脑连接在一起(将 ide 带的一端插入一个主板,另一端插入另一个主板),这将是您需要的所有硬件。关键是在主控计算机上为该接口创建一个新驱动程序,因此主控计算机不会将该接口视为其上有存储设备,而是将其作为从属计算机的虚拟可引导硬盘驱动。这对我来说仍然是一项相当困难的工作,因为我以前从未做过设备驱动程序,但至少我不需要烙铁(这将远远超出我的范围)。我也许可以为 linux 获取一个开源 ide 驱动程序,对其进行研究,然后对其进行处理以创建一些反向行为(而不是从中获取数据,应用程序将数据放到它上面,以便从机像硬盘一样访问)。然后我可以使用基本的 linux 内核并尝试从主计算机上的应用程序启动从计算机(通过屠宰的主 pc ide/sata/usb 设备驱动程序)。为了安全起见,我可能会尝试通过针对主 pc 上不用于其他任何东西的接口来尽可能隔离我的自定义驱动程序(主 pc 可能使用通常未使用 ide 总线的所有 sata 硬盘,所以如果我创建了一个自定义 ide 驱动程序,它可能会减少主机系统的问题 - 因为它是 sata 驱动的)。
有谁知道以前是否曾尝试过这样的事情(从另一台电脑伪造可启动硬盘)?它将在 youtube 上成为一个非常酷的 hackaday,但如果它被证明有希望,它也可以为并行计算增加一个新的维度。