> если я верно понимаю, то pci - это расширение isa.PCI это PCI. Он бывает даже на штуках где ISA отродясь не было, как то ARM/MIPS/RISCV/etc... и если надо - и на него спеки укачать можно. У x86 в контексте PCI есть несколько своих особенностей, которых может не быть у иных архитектур (у большей части других архитектур нет "legacy IO space" в принципе, так что там абсолютно все делается через mem-mapped регионы, но современный софт и на x86 так же делает - потому и "legacy"). Электрически и логически PCI таки здорово другая шина относительно ISA.
Иногда PCI даже бывает в виде который может поразить воображение. Например ath9k_htc чипсеты usb вафли внутрях гейтуют usb -> PCI и дальше это зацеплено на более-менее обычный ath9k core "как в PCI картах". Бывает и в виде 2 чипов (один гейт, второй "сетевка атероса") так и 1 где это слили на 1 кристалл уже, но идея осталась. Так что PCI может быть чем угодно, вплоть до накристальной шины. Это ессно неуниверсально, специфично, решение "под задачу".
PCIe - c "логической" точки зрения на PCI весьма похож. С электрической - совсем другая история, для скорости заменили параллельную шину на скоростные дифференциальные lanes, что все же отливается в некую специфику которой раньше не было, скажем, message signalled interrupt (MSI) стали использовать именно в PCIe.
PCI и PCIe достаточно похожи по логике для того чтобы были возможны сравнительно простые чипы-трансляторы ("bridges"). Ну и всякие странности типа чипов-коммутаторов, умеющих разветвлять 1 интерфейс в эн. Подстава с этими продвинутостями в том что если какая-нить видяха на pcie висит за вот этим - вы картинку не увидите пока не инициализируете всю цепочку. Так что bring up топовой современной мамки в штуку типа САБЖ может быть интересным занятием. Надеюсь, объясняет почему "ранний дебаг" любят скидывать в компорт (serial/uart), "дебажный usb" и/или юзают JTAG. В системе где на экране нифига не видно - много не надебажишь, но можно зацепить другую систему к относительно простому интерфейсу и поймать выхлоп своего кода или посмотреть дебагером что там. Этот фокус полезен и в случае если допустим кернел заглох ДО того как смог видео инициализировать, я сталкивался с например НЕвзлетом PCI подсистемы в лине, видяха при этом "почему-то" недоступна :)
На PCI(-e) есть спеки, если надо. За время строительства города планы многократно дописывались и дорисовывались, разумеется, так что в полной современной версии чтиво весьма объемное. Это как город будущего или межзвездный крейсер. В маленьких кристаллах упаковано довольно много чего. С разными подсистемами, "бортовыми компьютерами" и прочим. Ну например HDD@SATA. На самом деле 2 системы, одна хост вторая периферия и скоростной линк. У HDD несколько своих процов и фирмвар, оно получает команды по интерфейсу, делает выводы что хост хотел, выполняет, возвращает результат. Ядер бывает более 1 - своя фоновая логика может быть и проч. Многие иные взаимодействия сводятся к похожим по смыслу паттернам. VGA в современных видяхах лишь слой абстракции/эмуляция. А реальная начинка совсем иная, конечно. Вон те видеодрова в лине ессно вырубают эту абстракцию и валят в "native" режим. Где мы видим весь город, небоскребы, маглевы, бортовые компьютеры которые ими рулили... ага... дайте-ка сервисным процикам пачку сервисных фирмвар. А заодно и интересные таблицы, вольтажи, частоты, PWM вентиля, ... не все команды безопасны, кто сказал что там нет self destruct? :)
> У одного моего знакомого есть древнющий комп под досом, сопряжённый
> с древнющим оборудованием через сделанную на заказ ISA-плату.
> Было бы неплохо эту плату перетащить в новый комп под линуксом и написать драйвер.
А оно точно имеет смысл в XXI веке? Эта плата чем-то уникальна по функциональности?
Мне в паре похожих по смыслу случаев оказалось проще с ноля ре-инженернуть примерно такие технологии, но в современном виде: мелкий армовский одноплатник с линем + микроконтроллер полностью заменяли примерно такой по смыслу гроб. Это мелкое, маложручее, и при правильном подходе довольно надежное. Ну да, я накодил фирмварь мк делавшую "быструю" часть и "analog IO", прицепил сие на относительно резвый SPI - да из проги в лине на одноплатнике таскаю из данные и пуляю команды. Учитывая что ISA тормоз маловероятно что там есть что-то с чем не справился бы МК. По минимуму такое может выглядеть как, простите, ардуина прицепленная к распи/банану/оранжу. Я предпочитаю более продвинутый уровень, юзая STM32, и в состоянии отрисовать себе кастомные печатки для мк в KiCad (опенсорсном, под линух). Одноплатники ессно готовые: перевыпускать 6-слойного монстрика самому довольно канительно. Хоть при сильном желании... воооон там на гитхабе олимексовый A64 c 64-бит процом и DDR, так что если кто всерьез настроился почувствовать себя OEM'ом, да опенсорсными тулсами - можно попытаться уже. Это ессно сложно и с 1 раза может не получиться даже у гуру.
Но да - как вы поняли чтобы так уметь надо быть весьма любопытным, фанатеть от направления и потому много учиться. На самом деле это главное, если вам интересно, вы пройдете путь и найдете ответы. Просто путь к пониманию как современные системы работают - довольно длинный.
> Там не должно быть сложно, плата просто роль ацп и цап исполняет, основная
> часть платы там аналоговая под задачу, трогать нутро платы учитывая мои
> нулевые навыки в электронике и её критичность и незаменимость я бы
> не стал, вместо этого бы попробовал воткнуть её в pci-isa переходник.
На самом деле ADC и DAC - особенно с скоростями и таймингами характерными для ISA на МК сделать не больно крутая проблема. И схемотехника скорее всего не больно какая сложная. В современном МК в простейшем случае будет чуть не пачка проводников из чипа на входы (+защиты от ESD, etc). Ну и кидать в SPI/UART/I2C/USB/... по вкусу/аппетитам. В более сложном может какой транслятор уровней/полярностей сигнала на операционниках. Ну да, при полном ноле в том как оно работает - имеет смысл поискать "схемотехника" который поможет это обыграть. Но вообще такой уровень реально даже в 1 лицо своротить, те винтажные штуки довольно простые были. При желании залезть в такую область имеет смысл разучить МК какой-нить, хотя-бы ардуину. Правда у ардуины DAC нет а ADC медлеенный, STM32 в этом сильно лучше (1MSPS@12 bit делается встроенными DAC/ADC, можно даже с буфером и DMA, с точными таймингами по таймеру).
И это... я не в курсе как та древняя штука будет работать в режиме трансляции PCI <-> ISA. Гейтование может портить тайминги или что-то не реализовывать и насколько это вообще будет работать - отдельный вопрос. Как пример, старый софт получающий эмулированый UART через usb-to-uart чип может не работать или работать странно, т.к. тайминги usb совсем иные и он не спососбен разворачиваться чаще чем 1 мс. Хардварный UART таких ограничений не имел, так что часть софта не работает или работает медленно/странно.
>>чипом "SuperIO" который на каком-нибудь LPC-bus
> в моей материнке именно так.
Довольно типовой паттерн дизайна. И от ISA там лишь весьма маргинальные остатки, минимальный огрызок эмуляции чтобы скормить легаси софту как якобы-ISA. Часть подобных вещей делается нехилыми хаками. Скажем IIRC usb-клаву и мыша "классике" скармливают аж вышибая DOS/bios/bootloader/etc к чертям аж SMI# и далее обработчик BIOS делает вид что это обращение и правда прокатило и это типа тоже клава. Добро пожаловать в Ring -1. И странный мир где вы многое не видели - но оно было. ME и PSP гораздо более "нервирующие" технологии, они хуже любого "Ring -1". Но всегда лучше знать как оно чем прятать голову в песок, не? :)