Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить

DMA на шине ISA

Ср июл 19, 2017 19:57:31

А вот еще вопрос... Если запрограммировать DMA канал 1,2 или 3 на обмен 1 м-байтовым блоком на чипсете 440BX, то есть ли шанс, что DMA обмен может быть прерван операционной системой (например XP) или есть полная гарантия что DMA обмен будет строго по кварцевому генератору который тактирует DMA канал?

Например, я хочу сделать вывод на LPT с DMA и, получить отсчеты с точностью тактирования DMA канала от кварцевого генератора и, при этом, иметь гарантию, что ОС Win-XP не прервет DMA обмен ни при каких обстоятельствах?

Re: DMA на шине ISA

Ср июл 19, 2017 20:02:48

Есть необходимые знания для разработки драйвера работающего с DMA по правилам ОС?

Re: DMA на шине ISA

Ср июл 19, 2017 20:41:30

Есть необходимые знания для разработки драйвера работающего с DMA по правилам ОС?

Ну, уже почти есть. Но, вопрос в аппаратуре чипсета, например 440BX. Позволит ли аппаратно 440BX учинить непрерываемый вывод?
Что касается драйвера, хочу использовать существующий в режиме DMA. Если Вы обладаете знаниями режима DMA на шине ISA чипсета 440BX, то подскажите реально ли сделать непрераваемый ОС DMA обмен, ведь, как я понимаю, от ОС здесь мало что зависит (ничего не зависит), все дело в аппаратуре шины и ДМА. Поправьте если что не так?

P.S. Ведь, если я правильно понимаю, DMA на шине ISA в "современных" :) чипсетах (440BX или старше, где есть PCI и бус мастер) ну тех где есть ISA шина :)), обменивается с памятью чисто аппаратно. И, плевать чипсету на тип установленной операционной системы многозадачная она или нет, Microsoft или Linux. Так или не так?

По крайней мере в микроконтроллерах ARM именно так, где есть контроллер DMA на шине AHB то контроллеру DMA глубоко фиолетово чем теперь тешиться ядро ARM, он ДМА ориентируется только на тактовый кварцевый генератор. А производительности шины AHB хватает на ядро и ДМА всегда. То-есть ДМА на шине это как отдельный независимый аппаратный контроллер который в будучи инициализирован, вовсе не в курсе дел о том чем занято ядро процессора на шине AHB.

P.P.S. Тоесть, вопрос заключается в аппаратуре, ведь шины обмена с памятью, будучи однажды сконфигурированы, в процессе работы операционной системы, независимо от ее типа, ей ОС уже никак не управляются. Будь-то AHB в ARM гипертранспорт в AMD процессорах PCI - PCI экспресс и ее отросток ISA от Интел и прочее, и тому подобное. Вот в чем вопрос?

Точно также, на мой взгляд, ОС независимо от типа и производителя, не управляет конвейером процессора кеш памятью и кеш промахами, все эти дела на совести жесткого цифрового автомата и, поддаются только начальной конфигурации со стороны ПО (ОС) и, никак, их работа ОС невидна независимо от реального или "нереального" времени сама Операционка. Эти россказни, о том что Windows не является системой реального времени, полная чушь в свете сказанного.

Re: DMA на шине ISA

Ср июл 19, 2017 21:51:12

astrahard писал(а):Но, вопрос в аппаратуре чипсета, например 440BX. Позволит ли аппаратно 440BX учинить непрерываемый вывод?
Скачайте даташит на чипсет и посмотрите.

Re: DMA на шине ISA

Ср июл 19, 2017 21:53:46

^^_"Многабукаффниасилелбизпрабелавсёслитна" ("щютка" юмора) 8)

А ежели сурьёзно, то п.д.п. в архитектуре "штеуд"* остаётся один-в-один ,как и было в i8237
Поэтому просто изучите ,как работает i8237 - и будет Вам "щщасттье"

*_(с)(рус./лат.)

Re: DMA на шине ISA

Ср июл 19, 2017 22:20:28

Вот если мои рассуждения имеют право быть. Почему в MACH3 ЧПУ это не так. Там в сигнале с ЛПТ присутствует фазовый дребезг, и он зависит от нагрузки на систему. Но, если вывод через ДМА с окном в мегабайт, то на частоте 40 килогерц он длиться 25 секунд и, процессору нужно лишь рассчитать циферки для буфера раз в 25 секунд. Учитывая, что у процессоров Интел вычислительной мощности не занимать "на прямых участках" пока тормоза не грянут в виде переключения контекста, то получается что все должно быть очень гладко. Но на практике это не так. Вот и возникает вопрос в MACH3 подход несовершенный, или в моих рассуждениях есть подводные камни (ДМА обмен независимый от процессора и ОС)?

Re: DMA на шине ISA

Ср июл 19, 2017 22:31:55

Вот если мои рассуждения имеют право быть.
..
.. он длит-ь-ся ..
"-Что делает ? - длит себя" .. <- извините за придирочку ... :oops:

Согласно "дэйтащиит"-у п.д.п. длится до тех пор, пока процессор не против ..

Ну ведь Вам же сказали выше, что треба почитать "дэйтащиит" - стало быть почитайте ,дабы не мудрствовать лукаво.

Re: DMA на шине ISA

Ср июл 19, 2017 22:41:54

Вот если мои рассуждения имеют право быть.
..
.. он длит-ь-ся ..
"-Что делает ? - длит себя" .. <- извините за придирочку ... :oops:

Согласно "дэйтащиит"-у п.д.п. длится до тех пор, пока процессор не против ..

Ну ведь Вам же сказали выше, что треба почитать "дэйтащиит" - стало быть почитайте ,дабы не мудрствовать лукаво.


А ссылку на "дэйтащиит"? По моему, это актуально для первых ПС, где ДМА и процик работали с памятью по очереди, в современных шинах это вроде не так и, ДМА с проциком работают на шине одновременно не мешая друг другу, то-есть производительности шины с памятью хватает обоим, например, когда нет видео карты и видеопамять отъедается от ОЗУ, Windows не возражает и, картинка не дергается.

Re: DMA на шине ISA

Ср июл 19, 2017 22:50:49

ну неследует путать дма апаратное шин PCI/ISA и порты -там есть буфера...они так и так будут работать с заддержкой к томуже если ты гонишь чтото в порт командос оси то оно и програмнозависими нотправилный драйвер уровня ядра или дос наверняка это сможет

Re: DMA на шине ISA

Ср июл 19, 2017 23:17:45

Мне думается, что Вы petrenko не в курсе о работе аппаратного хаба чипсетов дальше чем древний IBM PC, которым являются современные шины с оперативкой, например гипертранспорт от АМД, AHB от АРМ и.т.п., PCI bus master. Имею наглость думать, что и авторы MACH3 тоже в этих вопросах плавают, иначе чем объяснить, что основную работу за ними доделывают периферийные контроллеры малой производительности.

Добавлено after 3 minutes 21 second:
ну неследует путать дма апаратное шин PCI/ISA и порты -там есть буфера...они так и так будут работать с заддержкой к томуже если ты гонишь чтото в порт командос оси то оно и програмнозависими нотправилный драйвер уровня ядра или дос наверняка это сможет


В том то и дело, что программный ввод вывод это некошерно, на примере хард дисков, это этап пройденный (только ДМА), а там тоже есть порты ВВ и это не мешает.

Добавлено after 6 minutes 27 seconds:
petrenko "Поэтому просто изучите ,как работает i8237 - и будет Вам "щщасттье""

Тот факт, что в чипсете наличествует i8237 не означает, что все работает как и в древнем ПС ХТ, добавляется современная шина обмена с ОЗУ и, это очень существенно меняет дело. i8237 отделен от системы (процессора) новой шиной (не было в ХТ). И работает в режиме разделения с контекстными интервалами зачастую меньше наносекунды.

Добавлено after 5 minutes 40 seconds:
Например в системе на АМД процессоре i8237 оказывается отделен от ядра процессора очень интересной шиной ГИПЕРТРАНСПОРТ и, например Windows, совершенно наплевать как эта ГИПЕРТРАНСПОРТ устроена, главное что она дает ядру процессора доступ к ОЗУ и, как она шина это делает ее проблемы ОС не вмешивается (любая ОС любой серии).

Добавлено after 8 minutes 49 seconds:
Уж следует напомнить, что современная аппаратура способна запустить несколько разнородных ОС на одной платформе, например Windows & Linux одновременно, так что, всякие разговоры о том является ли Windows системой реального времени? совершенно бессмысленны, Microsoft смеются над вопросом, так как считают свою Винду в этом случае, лишь надстройкой на платформе современного чипсета.

Re: DMA на шине ISA

Ср июл 19, 2017 23:20:35

У BX440 и других "продвинутых" dma(==п.д.п.) по сравнению с "древним" i8237 добавилось типа-как-бы "кеширование"( за счёт "разделяемой" памяти ) и передачи стали 32-битные . И он может условно "одновременно" с процессором читать из памяти. Но только читать. Записывать одновременно нарочно не поддерживается во избежание коллизий.
"Найскайтэ" ссылки за Вас не буду - для этого есть поисковые машины WWW .
( Также желательно изучить работу comemL.vxd )

Re: DMA на шине ISA

Ср июл 19, 2017 23:46:21

У BX440 и других "продвинутых" dma(==п.д.п.) по сравнению с "древним" i8237 добавилось типа-как-бы "кеширование"( за счёт "разделяемой" памяти ) и передачи стали 32-битные . И он может условно "одновременно" с процессором читать из памяти. Но только читать. Записывать одновременно нарочно не поддерживается во избежание коллизий.
"Найскайтэ" ссылки за Вас не буду - для этого есть поисковые машины WWW .
( Также желательно изучить работу comemL.vxd )

Не, я согласен, что Вы знаете кое что чего мне неизвестно. Но вот это "ДМА работает пока процик не против" меня запутывает. Буду копать в направлении, почему такие системы ЧПУ как MACH3 (любительские) так мало работы выполняют, например в них нет модулей руления сервоприводом (ПИДы там всякие) и, это доверяется периферии, хотя производительности процессора хоть отбавляй. На что она производительность тратиться? на ожидание а не на вычисления, другого объяснение не находиться. Такое впечатление, что синхронизация там очень примитивна и это дает кажущуюся загрузку какой-то работой.

Re: DMA на шине ISA

Ср июл 19, 2017 23:58:30

Ну да.

А чего там "запутывать-ся" то ?

Вы сопоставьте частоту ISA и нынешних процессоров. За один цикл ISA сколько инструкций выполняет процесор ? От 50 до 1000 - и всё это время его выводы запросто пребывают "в отключке"(z) ,инструкции берутся из кеша (,теперь даже уже и при ветвлении). Но вот что будет при прерывании , при генерации исключений и при переключении контекста ?(почти риторичекий)

Всё таки почитайте , как советовали выше , "дэйтащиит" .

Re: DMA на шине ISA

Чт июл 20, 2017 00:17:07

Ну да.

А чего там "запутывать-ся" то ?

Вы сопоставьте частоту ISA и нынешних процессоров. За один цикл ISA сколько инструкций выполняет процесор ? От 50 до 1000 - и всё это время его выводы запросто пребывают "в отключке"(z) ,инструкции берутся из кеша (,теперь даже уже и при ветвлении). Но вот что будет при прерывании , при генерации исключений и при переключении контекста ?(почти риторичекий)

Всё таки почитайте , как советовали выше , "дэйтащиит" .


Ну вот опять Вы про отключку на 50 -1000 циклов. Шина есть - аппаратный хаб, даже если бы процик обращался к шине каждый такт ISA ничего не поменяется как я представляю, потому что ядро процессора мягко говоря "мало информировано" вообще о существовании где-то на периферии шины ISA. И в свете этого, мне непонятно, как умудрились создатели драйвера ЛПТ для МАТЧ3 получить в выходном сигнале фазовый шум, так как по моим представлениям можно на ЛПТ генерировать сигнал с точностью кварцевого тактового генератора без всяких дополнительных аппаратных примочек. Вот "доверие" к авторам этой ЧПУ и порождает неуверенность, и подозрение о каких-то "подводных камнях".

Re: DMA на шине ISA

Чт июл 20, 2017 00:52:59

Я вам открою "жуткую тайну" : ядро процессора вообще ни о чём "не информировано" ! Оно только берёт код и выполняет.

( то, что на какой то там шине по адресу ,например 03Fh ,подключен какой то там порт - есмь токмо условность, чтоб разным программам одинаково было например посылать на печать какие то байтики, и об этой условности знают программисты, но никак не ядро )

Ежели Вам хочется получить надёжную систему, реагирующую в реальном времени и управляющую в реальном времени, то это можно сделать даже на весьма медленных и "древних" процессорах ,хоть даже на тактовой в 500килоГерц ,но ( ! ) при условии, что не тратится время ни на прерывания ни на переключения контекста.
С "продвинутыми" и быстрыми процессорами ,оставляя многозадачность, тоже можно , но с обязательным переключением на ентот критически важный процесс строго по таймеру с наивысшим приоритетом с запретом прерываний в тайм-слоте ентого самого критически важного процесса . И ,естественно, применение ассемблера sело облегчает.

Re: DMA на шине ISA

Чт июл 20, 2017 04:15:42

Когда я говорил о "Мало информированности" подразумевается, что устройства, процессор и ДМА прикрученный к ЛПТ ни в какой степени не тормозят функции друг друга.
А вот статья на русском
2005_08_110.pdf
(199.84 KiB) Скачиваний: 174
где приведены рассуждения о шинах. Что интересно противопоставляются стратегии Multi-master bus с программным распределение полосы пропускания и с аппаратным арбитражем. Вот для той-же PCI арбитраж неясен мне, кой где в BIOS есть упоминания. Но в целом, для скорости ISA это не так актуально, все равно никто не сумеет помешать и, как Вы правильно заметили, достаточно знать как программируется i8237. Что касается прерываний и переключения контекста, это тоже никаким образом не может повлиять на арбитраж в интересах ISA, в том числе и прерывания ISA. Так мне кажется.
Ответить