Уже который раз всплывает в голове мысль, о том как можно решить проблему нехватки свободных (PCI) и отсутствия необходимых (ISA) слотов на платах
Пока только не могу понять, насколько сложно оно в софтовой реализации, т.е. в написании клиент-серверной части.
когда 3 года назад я спрашивал у знакомого программиста он меня послал в сторону кластерных ОС, но я думаю, что проблема
может решаться проще.
По идее корости 100Mbit должно вполне хватить для ISA устройств, Гигабитки тоже уже давно не редкость....а это уже скорость PCI шины.
Или я заблуждаюсь?
Задержки большие. И размер пакета маленький - много прерываний, грузится CPU, правда в современных MAC есть (отключаемый) буфер,но он только увеличит задержки. Можно конечно использовать jumbo frame на от задержек никуда не деться.
Не вникал, но может firewire для этих целей лучше подойдет. Но надо учитывать что и тот и другой девайс уже висит на какой-то шине.
Как раз скорость я бы рассматривал в последнюю очередь. Мы явно ж не IDE-контроллер собираемся шарить... Пока не хватает данных в задании - допустим, комп без ISA должен реально считать, что у него есть ISA-карта или как? Или какой-то софт должен считать?
IMHO, общее решение - надо думать МНОГО, частное для определенной платы + ее софт - меньше.
А кому счас легко...
Идея задумывалась в своё время для звукозаписи, тоесть надо было расшарить звуковухи именно как устройства для программы.
Но этот вариант отпал, т.к. в-общем есть радмин и управлять записью можно удалённо.
Теперь идея всплыла именно в общем виде: а можно-ли такое вообще?
Либо нечему гореть, либо нечем поджечь!
В общем случае - PCI девайс, который содержит ПЛИС, эмулирующий удаленный девайс, и контроллер сети (возможно - еще какой-то проц, если в ПЛИС не удастся программу впихнуть). + комп (или подобный девайс), который висит по другую сторону кабеля. Т.е. фактически удлиннитель шины.
Отсюда и ограничения: передача данных по словам - соответственно огромные задержки, шина при обмене сильно перегружена, + при медленном устройстве на другом конце - функционировать вообще не будет. Ну и + ко всему - определение девайса только при старте компа (если я ошибаюсь, поправьте - я не имел дела с хотплагом PCI устройств).
Уважаемые коллеги, в переписке с нашими англоязычными партнерами помните: whether - который, weather - погода, wether - кастрированый баран!
У некоторых людей торс - это просто разветвитель, позволяющий подключить руки и голову к заднице.
2 NiTro:
Не так всё злобно Хотелось железо одного компа расшарить для другого, а не делать удлинитель для девайса по Ethernet
Либо нечему гореть, либо нечем поджечь!
А это имхо не намного проще а то и сложнее... 1) Перехват записи в порты ввода-вывода (проблеммно - т.к. все дрова живут в Ring0) 2)DMA (тоже гиморно) и самое сложное - 3) конфликты при доступе. Если с 1м еще можно побороться (хотя - пресловутую StarForce насчет портов так и не обломали), со 2м - сделать через одно место, то с 3м как бороться - науке не известно Не факт, что ОСь не вздумает посреди процесса передачи данных опросить девайс. Не удивлюсь, если окончится BSOD.
Для частного же варианта (для 1 девайса) - реализуется высокоуровневая эмуляция. На клиенте - драйвер-wrapper, на сервере - софтина, транслирующая вызовы собссно драйверу девайса, и возвращающая результаты. Хотя, возможно, это будет претендовать и на ограниченную универсальность. По этому поводу можно посмотреть alter.org.ua/ru/downloads/ProxyDriverKit.rar
Уважаемые коллеги, в переписке с нашими англоязычными партнерами помните: whether - который, weather - погода, wether - кастрированый баран!
У некоторых людей торс - это просто разветвитель, позволяющий подключить руки и голову к заднице.
Отправить комментарий