Перейти к содержанию
    

LPT - какая маскимальная скорость запси?

Ув. коллеги, интересует вопрос:

 

@start:

mov ax, 0378

mov dx,00FF

out ax,dx

jmp @start

 

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

 

Спасибо.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В среднем ~1мкс на Байт. Т.е. ~1МБайт/сек. Скорость ограничивается в основном возможностями шины и самого порта, от ОС практически не зависит при правильном использовании.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В среднем ~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 никак не закладывался.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Любопытно что чем современней компьютер тем меньшую скорость дискретного (не по 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, т.е. путем эмуляции, только для совместимости, потому и скорость ниже.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На новых матерях работа с LPT вообще идет через SMI, т.е. путем эмуляции, только для совместимости, потому и скорость ниже.

Тот который System Management Interface? Не знаю, у меня device manager показывает что LPT подключен через LPC - low-pin-count интерфейс. Да и все эти легаси периферийные контроллеры обычно имеют интерфейс LPC. То есть - в современных чипсетах COM/LPT/floppy/GAME/PS2/RTC не закладывают, это все делает один внешний чип.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет, через SMI тормоза были бы совсем жуткие, а хуже 1,5-2мкс на обращение я не встречал.

А с PCI та ещё фигня, одна и та же плата PCI-LPT на старом пне-166 с тремя PCI-слотами даёт меньше 0,3мкс/обращение, работа через байт-бластер даёт почти ту же скорость работы с AVR, что и FT2232-не-H на современном компе.

Она же в нынешних компах с кучей всего даёт 0.7-0.8мкс (а набортный через LPC - 1.2-1.3мкс). "за тридвять мостов" всё стоит. На пакетную работу рассчитано, одиночные обращения пока протолкаются...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пасиб,

т.е. дергать одним пином чаще чем 1 Mhz не получится....

Разве что посылать FF и каждый сдвинуть на 1/8....

 

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Может быть, FT245 поможет ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет, через 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 интересный, спасибо за информацию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Полуоффтоп

 

Это результат "того 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 уже много.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...