использование pci для соединения материнских плат

у меня есть несколько старых мобильных устройств, и мне было интересно, возможно ли создать пару карт заголовка pci с межблочными проводами и написать какое-нибудь программное обеспечение для управления межсетевыми картами, чтобы позволить одному из мобильных устройств получить доступ к процессору и оперативной памяти. другой? я уверен, что это будет трудоемкая задача, связанная с написанием драйвера устройства для плат заголовка, а затем с написанием приложения для использования межсоединения; возможно, простая демонстрация, демонстрирующая поток, работающий на каждом процессоре, и использование обоих наборов оперативной памяти, возможно, создание мини-виртуальной машины, которая сопоставляет 2x3 ГБ оперативной памяти на 32-битных мобильных устройствах с одним адресным пространством 6 ГБ. на каждой карте заголовка PCI может потребоваться микроконтроллер, который будет действовать как транслятор.

учитывая, что мобильные устройства почти всегда имеют несколько слотов PCI, мне интересно, можно ли использовать эти взаимосвязанные пары карт для последовательного подключения мобильных устройств в своего рода высокоскоростной кластер Beowulf.

Я бы использовал Debian для каждого мобильного устройства и, возможно, просто atmega128 для каждой карты с парой ленточных кабелей для соединения.

pci - это просто шина ввода-вывода, поэтому я не понимаю, почему это невозможно (но это было бы довольно сложно).

кто что посоветует или такое уже было?

Обновлять:

Спасибо, Мартин. То, что вы говорите, имеет смысл, и, казалось бы, если бы это было возможно, то это уже было бы сделано раньше.

Вместо этого можно ли косвенно управлять ведомым процессором, загружая его с фиктивного загрузочного устройства хранения (жесткий диск, USB-накопитель и т. д.)? Пока ведомый mobo думает, что им управляет операционная система на реальном устройстве, он должен работать.

Это потенциально может распространяться на любой интерфейс (sata, ide, usb и т. д.); если вы соедините два компьютера вместе с помощью кабеля sata/ide/usb (подключите один конец ленты ide к одному мобильному устройству, а другой — к другому), это будет все необходимое оборудование. ключ заключается в создании нового драйвера для этого интерфейса на главном компьютере, поэтому вместо того, чтобы главный компьютер рассматривал этот интерфейс как имеющий на нем запоминающее устройство, он будет управляться как фиктивный загрузочный жесткий диск для подчиненного компьютера. это по-прежнему было бы довольно сложной работой для меня, потому что я никогда раньше не занимался драйверами устройств, но, по крайней мере, мне не понадобится паяльник (что было бы намного дальше меня). я мог бы взять драйвер ide с открытым исходным кодом для Linux, изучить его, а затем разбить его, чтобы создать что-то, что действует в обратном порядке (вместо того, чтобы получать данные с него, приложение помещает данные в него для доступа ведомой машины, например жесткий диск). Затем я мог бы взять базовое ядро ​​​​Linux и попытаться загрузить подчиненный компьютер из приложения на главном компьютере (через драйвер устройства ide / sata / usb для главного ПК). в целях безопасности я, вероятно, попытался бы максимально изолировать свой настроенный драйвер, нацелившись на интерфейс, который не используется ни для чего другого на главном компьютере (главный компьютер может использовать все жесткие диски sata с обычно неиспользуемой шиной ide, поэтому, если я создал собственный драйвер ide, это может вызвать меньше проблем с хост-системой, потому что он управляется sata).

Кто-нибудь знает, пробовали ли когда-нибудь раньше что-то подобное (подделка загрузочного жесткого диска с другого компьютера)? Это было бы довольно крутой вечеринкой на YouTube, но, если серьезно, это могло бы добавить новое измерение к параллельным вычислениям, если бы оно оказалось многообещающим.


person Jared    schedule 07.08.2011    source источник


Ответы (2)


Шина PCI не может заменить другой ЦП.

Вы можете создать межсоединение, которое может передавать данные из программы на одной машине на другую. Ethernet-карта является наиболее распространенной реализацией, но для высокопроизводительных кластеров есть более быстрые прямые соединения, такие как infiband.

К сожалению, PCI сложнее создавать карты, чем старая шина ISA, вам нужны микросхемы контроллера для поверхностного монтажа и специальные схемы дорожек, чтобы соответствовать требованиям PCI к импедансу. Чтобы двигаться быстрее, чем несколько мегабит в секунду, необходимо понимать такие вещи, как линии передачи и характеристики соединительного кабеля.

person Martin Beckett    schedule 07.08.2011

будет использовать Debian для каждого мобильного устройства и, возможно, просто atmega128 для каждой карты с парой ленточных кабелей для соединения.

pci - это просто шина ввода-вывода, поэтому я не понимаю, почему это невозможно (но это было бы довольно сложно).

РЖУ НЕ МОГУ. PCI - это как минимум 32-битная шина 33 МГц. Так просто вне досягаемости для ATMEGA.

Но ваше представление о:

пару разъемных карт pci с межблочными проводами и написать некоторое программное обеспечение для управления межблочными картами, чтобы позволить одному из мобильных устройств получить доступ к процессору и оперативной памяти на другом [...]

Это возможно с помощью пары плат PCI Firewire (IEEE 1394) (и карты Firewire). кабель). Существует даже драйвер для Linux, который позволяет выполнять удаленную отладку через FireWire.

person Turbo J    schedule 16.10.2011