Re: Пакетное чтение по шине PCI-Express
От: Геннадий Майко США  
Дата: 28.08.08 10:36
Оценка: 8 (1)
Здравствуйте, alex_line, Вы писали:

_>Необходимо обеспечить передачу от устройства на шине PCI-Express в память компа потока в 20Мбайт/с примерно. Устройство это предоставляет буфер, из которого нужно читать порциями по 2Кб. Простое копирование процессором из буфера девайса в ОЗУ не успевает копировать весь поток. Полагаю дело в том, что в этом случае чтение идет порциями по 4 байта, а пакет, передаваемый по шине, содержит много служебной информации и пропускной способности шины не хватает.

_>Как можно сделать (у девайса пока нет ДМА) обмен по шине с большей длиной пакета (с большим куском полезных данных) и возможно ли это в принципе?
--
Боюсь, что гарантированно пропустить такой поток данных, без использования DMA, будет очень трудно даже через PCI-e.

Мы как-то пытались увеличить burst-size для PCI шины, и нам удавалось немного улучшить ее bandwith, используя поток с очень большим IRQL, в котором в цикле просто записывали байты в устройство. На быстрых машинах это приводил к тому, что PCI bridge объединял последовательные запросы к устройству в один burst. Но улучшения не были большими, по сравнению с DMA.

C уважением,
Геннадий Майко.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.