MCZ 0 19 октября, 2010 Опубликовано 19 октября, 2010 · Жалоба Ув. коллеги, интересует вопрос: @start: mov ax, 0378 mov dx,00FF out ax,dx jmp @start какой максимальной скорости выдачи байта можно достичь на LPT порт в DOS режиме при отлюченных прерываниях? Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
-Al- 0 19 октября, 2010 Опубликовано 19 октября, 2010 · Жалоба В среднем ~1мкс на Байт. Т.е. ~1МБайт/сек. Скорость ограничивается в основном возможностями шины и самого порта, от ОС практически не зависит при правильном использовании. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VslavX 0 19 октября, 2010 Опубликовано 19 октября, 2010 · Жалоба В среднем ~1мкс на Байт. Т.е. ~1МБайт/сек. Любопытно что чем современней компьютер тем меньшую скорость дискретного (не по DMA) обращения к LPT портам он обеспечивает, не говоря о том что сам LPT таки умирает - половина производителей материнок, например, на платы с LGA1156 LPT вообще не устанавливает. Cтарый добрый 486DX обеспечивал 2.5+ млн обращений к LPT в секунду. Потом появился Пентиум с PCI, а LPT остался как бы на ISA, и общение с ним происходило через мост ISA/PCI. А на PCI есть такая фишка - substractive decoding и этот мост обычно подключался по этой схеме - отвечал на транзакцию только после того как никто больше на PCI не ответил - то есть получили задержку. Скорость доступа к PCI упала до 1млн обращений. Сейчас ситуация еще хуже - обращение CPU к LPT проходит по сложному пути - процессорная шина/северный мост (если таковой есть), межмостовая шина, южный мост, хост PCI, мост PCI-ISA. Поэтому, например, на новых материнках на LGA1156 скорость упала еще вдвое - 500/600 тыс обращений :(. LPT у меня используется более 10 лет - куча всяких AVR/ARM/SPI-программаторов на ByteBlaster/Wiggler и самописных утилит, так что указанные цифры из практики - цифру скорости доступа все утилиты выводят при инициализаци порта. Тенденция с LPT печальная, но никак руки до FT2232H не дойдут :(. Сейчас бы я на LPT никак не закладывался. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
-Al- 0 19 октября, 2010 Опубликовано 19 октября, 2010 · Жалоба Любопытно что чем современней компьютер тем меньшую скорость дискретного (не по DMA) обращения к LPT портам он обеспечивает, не говоря о том что сам LPT таки умирает - половина производителей материнок, например, на платы с LGA1156 LPT вообще не устанавливает. Cтарый добрый 486DX обеспечивал 2.5+ млн обращений к LPT в секунду. Потом появился Пентиум с PCI, а LPT остался как бы на ISA, и общение с ним происходило через мост ISA/PCI. А на PCI есть такая фишка - substractive decoding и этот мост обычно подключался по этой схеме - отвечал на транзакцию только после того как никто больше на PCI не ответил - то есть получили задержку. Скорость доступа к PCI упала до 1млн обращений. Сейчас ситуация еще хуже - обращение CPU к LPT проходит по сложному пути - процессорная шина/северный мост (если таковой есть), межмостовая шина, южный мост, хост PCI, мост PCI-ISA. Поэтому, например, на новых материнках на LGA1156 скорость упала еще вдвое - 500/600 тыс обращений :(. LPT у меня используется более 10 лет - куча всяких AVR/ARM/SPI-программаторов на ByteBlaster/Wiggler и самописных утилит, так что указанные цифры из практики - цифру скорости доступа все утилиты выводят при инициализаци порта. Тенденция с LPT печальная, но никак руки до FT2232H не дойдут :(. Сейчас бы я на LPT никак не закладывался. На новых матерях работа с LPT вообще идет через SMI, т.е. путем эмуляции, только для совместимости, потому и скорость ниже. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VslavX 0 19 октября, 2010 Опубликовано 19 октября, 2010 · Жалоба На новых матерях работа с LPT вообще идет через SMI, т.е. путем эмуляции, только для совместимости, потому и скорость ниже. Тот который System Management Interface? Не знаю, у меня device manager показывает что LPT подключен через LPC - low-pin-count интерфейс. Да и все эти легаси периферийные контроллеры обычно имеют интерфейс LPC. То есть - в современных чипсетах COM/LPT/floppy/GAME/PS2/RTC не закладывают, это все делает один внешний чип. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 19 октября, 2010 Опубликовано 19 октября, 2010 · Жалоба Нет, через SMI тормоза были бы совсем жуткие, а хуже 1,5-2мкс на обращение я не встречал. А с PCI та ещё фигня, одна и та же плата PCI-LPT на старом пне-166 с тремя PCI-слотами даёт меньше 0,3мкс/обращение, работа через байт-бластер даёт почти ту же скорость работы с AVR, что и FT2232-не-H на современном компе. Она же в нынешних компах с кучей всего даёт 0.7-0.8мкс (а набортный через LPC - 1.2-1.3мкс). "за тридвять мостов" всё стоит. На пакетную работу рассчитано, одиночные обращения пока протолкаются... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MCZ 0 19 октября, 2010 Опубликовано 19 октября, 2010 · Жалоба Пасиб, т.е. дергать одним пином чаще чем 1 Mhz не получится.... Разве что посылать FF и каждый сдвинуть на 1/8.... А больше нечем вроде., жаль скоростных портов таких нет.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 19 октября, 2010 Опубликовано 19 октября, 2010 · Жалоба А больше нечем вроде., жаль скоростных портов таких нет.... Может быть, FT245 поможет ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VslavX 0 19 октября, 2010 Опубликовано 19 октября, 2010 · Жалоба Нет, через SMI тормоза были бы совсем жуткие, а хуже 1,5-2мкс на обращение я не встречал. А с PCI та ещё фигня, одна и та же плата PCI-LPT на старом пне-166 с тремя PCI-слотами даёт меньше 0,3мкс/обращение Помнится мне что Интел начала пропихивать PCI (которая пару лет до этого "прозябала") одновременно с первыми Pentium - вроде бы у него даже front-end шина имела некоторые фичи облегчающие и упрощающие работу моста на PCI. Так что неудивительно что оно так быстро работает - все ж родное. Я тогда разрабатывал плату PCI-COM (на TI16C550) - так она в 8 циклов 33MHz укладывалась полностью (можно было и меньше но сам UART тормозил). Поэтому теоретически 4 Мбайт/сек (и более) достичь можно было бы, но оно ж "за тридевять мостов" :) А результат FT2232-не-H интересный, спасибо за информацию. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 19 октября, 2010 Опубликовано 19 октября, 2010 · Жалоба Полуоффтоп Это результат "того LPT", а не FT2232 мега128 "с достаточно высокой тактовой", запись+чтение, что-то около: PCI-LPT, P-166, W98 - 6,5+5 секунды. набортный на том же P-166 - 13+12 секунд. PCI-LPT, современный комп, XP - 10+8 секунд набортный на ныншнем, XP - ну там 16-17+14-15. FT2232D, XP - 5+2 секунды (под убунтой немного медленнее) Именно для AVR FT2232H даёт выигрыш только для высоких частот тактирования процессора на возможности переключить в более мелкую сетку (с 6/N МГц на 30/N МГц) и поставить, скажем, 2.7 MHz там, где иначе пришлось бы ставить 2, так как 3 уже много. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться