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 уважением,
Геннадий Майко.
Пакетное чтение по шине PCI-Express
От: alex_line  
Дата: 28.08.08 07:38
Оценка:
Необходимо обеспечить передачу от устройства на шине PCI-Express в память компа потока в 20Мбайт/с примерно. Устройство это предоставляет буфер, из которого нужно читать порциями по 2Кб. Простое копирование процессором из буфера девайса в ОЗУ не успевает копировать весь поток. Полагаю дело в том, что в этом случае чтение идет порциями по 4 байта, а пакет, передаваемый по шине, содержит много служебной информации и пропускной способности шины не хватает.
Как можно сделать (у девайса пока нет ДМА) обмен по шине с большей длиной пакета (с большим куском полезных данных) и возможно ли это в принципе?
Re[2]: Пакетное чтение по шине PCI-Express
От: alex_line  
Дата: 28.08.08 11:02
Оценка:
Здравствуйте, Геннадий Майко, Вы писали:

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


Я так понимаю, что системный DMA здесь тоже не поможет?
Re[3]: Пакетное чтение по шине PCI-Express
От: Геннадий Майко США  
Дата: 28.08.08 11:16
Оценка:
Здравствуйте, alex_line,

_>Я так понимаю, что системный DMA здесь тоже не поможет?

--
Увы, точно не поможет.

C уважением,
Геннадий Майко.
Re[2]: Пакетное чтение по шине PCI-Express
От: TarasCo  
Дата: 28.08.08 19:44
Оценка:
ГМ>Мы как-то пытались увеличить burst-size для PCI шины, и нам удавалось немного улучшить ее bandwith, используя поток с очень большим IRQL, в котором в цикле просто записывали байты в устройство. На быстрых машинах это приводил к тому, что PCI bridge объединял последовательные запросы к устройству в один burst. Но улучшения не были большими, по сравнению с DMA.

Когда я баловался железками при PIO обмене через PCI осциллографом выяснил, что транзакции на шине объединялись в пакеты длиной в среднем 4-8. В итоге для 33Мгц 32 битной PCI шины давало скорость около ( выше ) 30МБ/c. Данные писались порциями в DPC.
Да пребудет с тобою сила
Re[3]: Пакетное чтение по шине PCI-Express
От: Аноним  
Дата: 29.08.08 19:33
Оценка:
TC>Когда я баловался железками при PIO обмене через PCI осциллографом выяснил
Не перевелись еще на земле русской... NMI при помощи шариковой ручкой в ISA слот втыркнуто не доводилось генерить?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.