Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: LPT - какая маскимальная скорость запси?
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
MCZ
Ув. коллеги, интересует вопрос:

@start:
mov ax, 0378
mov dx,00FF
out ax,dx
jmp @start

какой максимальной скорости выдачи байта можно достичь на LPT порт в DOS режиме при отлюченных прерываниях?

Спасибо.

-Al-
В среднем ~1мкс на Байт. Т.е. ~1МБайт/сек. Скорость ограничивается в основном возможностями шины и самого порта, от ОС практически не зависит при правильном использовании.
VslavX
Цитата(-Al- @ Oct 19 2010, 09:30) *
В среднем ~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 тыс обращений sad.gif.
LPT у меня используется более 10 лет - куча всяких AVR/ARM/SPI-программаторов на ByteBlaster/Wiggler и самописных утилит, так что указанные цифры из практики - цифру скорости доступа все утилиты выводят при инициализаци порта. Тенденция с LPT печальная, но никак руки до FT2232H не дойдут sad.gif. Сейчас бы я на LPT никак не закладывался.
-Al-
Цитата(VslavX @ Oct 19 2010, 11:28) *
Любопытно что чем современней компьютер тем меньшую скорость дискретного (не по 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 тыс обращений sad.gif.
LPT у меня используется более 10 лет - куча всяких AVR/ARM/SPI-программаторов на ByteBlaster/Wiggler и самописных утилит, так что указанные цифры из практики - цифру скорости доступа все утилиты выводят при инициализаци порта. Тенденция с LPT печальная, но никак руки до FT2232H не дойдут sad.gif. Сейчас бы я на LPT никак не закладывался.

На новых матерях работа с LPT вообще идет через SMI, т.е. путем эмуляции, только для совместимости, потому и скорость ниже.
VslavX
Цитата(-Al- @ Oct 19 2010, 11:00) *
На новых матерях работа с LPT вообще идет через SMI, т.е. путем эмуляции, только для совместимости, потому и скорость ниже.

Тот который System Management Interface? Не знаю, у меня device manager показывает что LPT подключен через LPC - low-pin-count интерфейс. Да и все эти легаси периферийные контроллеры обычно имеют интерфейс LPC. То есть - в современных чипсетах COM/LPT/floppy/GAME/PS2/RTC не закладывают, это все делает один внешний чип.
ReAl
Нет, через SMI тормоза были бы совсем жуткие, а хуже 1,5-2мкс на обращение я не встречал.
А с PCI та ещё фигня, одна и та же плата PCI-LPT на старом пне-166 с тремя PCI-слотами даёт меньше 0,3мкс/обращение, работа через байт-бластер даёт почти ту же скорость работы с AVR, что и FT2232-не-H на современном компе.
Она же в нынешних компах с кучей всего даёт 0.7-0.8мкс (а набортный через LPC - 1.2-1.3мкс). "за тридвять мостов" всё стоит. На пакетную работу рассчитано, одиночные обращения пока протолкаются...
MCZ
Пасиб,
т.е. дергать одним пином чаще чем 1 Mhz не получится....
Разве что посылать FF и каждый сдвинуть на 1/8....

А больше нечем вроде., жаль скоростных портов таких нет....

rx3apf
Цитата(MCZ @ Oct 19 2010, 14:38) *
А больше нечем вроде., жаль скоростных портов таких нет....

Может быть, FT245 поможет ?
VslavX
Цитата(ReAl @ Oct 19 2010, 12:13) *
Нет, через SMI тормоза были бы совсем жуткие, а хуже 1,5-2мкс на обращение я не встречал.
А с PCI та ещё фигня, одна и та же плата PCI-LPT на старом пне-166 с тремя PCI-слотами даёт меньше 0,3мкс/обращение

Помнится мне что Интел начала пропихивать PCI (которая пару лет до этого "прозябала") одновременно с первыми Pentium - вроде бы у него даже front-end шина имела некоторые фичи облегчающие и упрощающие работу моста на PCI. Так что неудивительно что оно так быстро работает - все ж родное. Я тогда разрабатывал плату PCI-COM (на TI16C550) - так она в 8 циклов 33MHz укладывалась полностью (можно было и меньше но сам UART тормозил). Поэтому теоретически 4 Мбайт/сек (и более) достичь можно было бы, но оно ж "за тридевять мостов" smile.gif
А результат FT2232-не-H интересный, спасибо за информацию.
ReAl
Полуоффтоп

Это результат "того 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 уже много.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.