
Александр Васильевич,
Современная сетевая карта - это полноценный комп, это больше не 8237,
саундбластер про и десяток их регистров/портов.
Драйвера для нее настолько сложны, что нет смысла даже начинать, это сотни
мегабайт кода фирмвари и мегабайты кода интерфейса со стороны ОС к этой
фирмвари.
Нет никакой необходимости что-то понимать или не понимать, нужен опыт
тюнинга, пара обзоров и не более того, кто что пробовал.
Это тот случай, когда проще поменять/поэкспериментировать и *не терять
больше на этом времени. Время стоит очень дорого, намного дороже, чем
железо.*
Люди на жизнь зарабатывают тем, что умеют быстро что-то там подкрутить и
оно едет дальше как-то удовлетворительно, глубокого понимания больше не
нужно, оно *не поможет *с тюнингом*, достаточно спросить *у ChatGPT или
на/у Stackoverflow через гугла.
Поезд глубокого понимания программирования PIC/DMA ушел, оно нужно тем, кто
программят PIC/APIC/DMA, а тем, кто настраивает, больше это не нужно. Мало
того, когда мне недавно нужен был РоС, ЧатГПТ сделал мне C/Asm код за 5
минут, т.е. *тратить время *на написание кода - тоже не надо - это дорого.
Организация, в которой я сейчас работаю, подавляющее большинство кода
пишется в подписочном ChatGPT (от ошибок в дизайне софта впрочем не
спасает).
Мало того, я вот недавно был свидетелем горя от ума на этой почве, когда
желание прикрутить именно 8237 в мосте ITE к современной платформе через
мост PCIe-PCI-ISA и глубокое понимание как работает DMA в современных
системах привело к тому, что человек потерялся в маршрутизации этих
сигналов: сделал от карты к процу возврат, а от проца к карте - нет, ну
типа как-то придумаем, когда ему все говорят астанавитесь, нет возможности
субстрактивного декодинга 00-FF портов, они легаси и хардвайред в PCH, нет,
я найду как. Ну ок. Способа нет, кроме VM или недокументированных трапов
SMM. Чел остановился на VM варианте, с которым всё остальное (сделать всё
только на железе) теряет смысл.
On Fri, May 9, 2025 at 10:12 AM Alexander V Soroka
1) аппаратное, когда "все стоп! сохраняем все регистры в стеке и прыгаем на прогу обработки прерывания". 2) аппартное, мы выставляем "флаг" в каком-то регистре и идем дальше, если никто не пришел за данными, то они перезаписываются следующими. 3) аппаратное, Учтройство приняло кусок данных, и само инициировало по Прямому Доступу к Памяти (ПДП) перенос данных в некую область Памяти. После этого Устройство продолжает работу. Т.е. Процессор сам по себе, Устройство само по себе, а данные блокируют доступ Процессора к Памяти только на момент "перелива".При этом если Процессор н е"ходит" в той области памяти куда льет Устройство по ПДП, то ничего не тормозится.