Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
О! То-то чуствовал, что забыл что-то достаточно важное. 09.11.06 18:14 Число просмотров: 2378
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
|
> Там вроде есть аппаратная буферизация и DMA трансферы. -)) О! То-то чуствовал, что забыл что-то достаточно важное.
Да, есть, кроме Standart и Bidirectional, еще EPP и ECP. Были они придуманы с момента разработки быстропечатающих лазерных принтеров "высокого" разрешения (300 ДПИ). Тогда приходилось прогонять на страничку достаточно большой объем данных так, что прокачка по интерфейсу получалась медленнее, чем выход самой странички. Эти режимы позволяют прокачивать "в принтер" с более "высокой" скоростью!
Я досконально с этими режимами не разбирался, но насколько понял, используется режим ДМА и аппаратное стробирование. То есть при прокачке байта в принтер надо пулить порт состояния готовности принтера, устанавливать бит строба на небольшой промежуток времени и снимать его. Итого довольно много микросекундных обращений к портам. Так вот боюсь, что эти режимы не сработают на чтение из порта, да и прироста скорости не дадут, если не используется аппаратная синхронизация. Хотя чем черт не шутит. Пусть энтузиасты, у которых есть интерес и время поковыряются и напишут.
Да, и еще, есть определенные предложения: 1) Сделать девайс, к которому нужно обращаться не по портам, а по адресам памяти. Не "inp al, dx", а "mov ax, [dx]". 2) Слышал, что для увеличения скорости обращения к портам их можно отмэпить на оперативку и все так же mov'ом обращаться.
|
|
|