2013-09-01 2 views
1

Какова реальная скорость передачи данных по шине PCI 32-бит/33 МГц? Нам необходимо передать 32-килобайтные 32-битные сэмплы с PCI-карты на процессор Intel под управлением Windows. Я бы подумал, что блок будет передаваться в 1 мсек, но он принимает 40 мсек. Плата PCI имеет PLX PCI-9056. Мы обращаемся к карточной памяти с виртуальным адресом, но наш процессор затенен, что заставляет меня думать, что скорость передачи данных задерживается при участии ЦП. Если мы перейдем к DMA, перейдем ли мы ближе к 1 мсек? Причина, по которой я сомневаюсь, заключается в том, что в Руководстве пользователя PXI SDK указано:Реалистичная скорость передачи данных по шине PCI с использованием DMA?

«Чтение/запись в пространстве памяти BAR, как правило, медленное относительное число. Читает, как правило, только 2-4 МБ/с».

+0

Передача с использованием PIO? Если это так, я обнаружил с помощью анализатора шины PCI в системе intel, что шина использовалась только примерно в 1/8 раза. В эквиваленте AMD такого ограничения не было найдено. При этом использование процессора звучит как узкое место. DMA должен помочь тогда - даже если загрузка ЦП не связана с самой передачей. – ash

+0

Устройство с шинным устройством должно получить наилучшую производительность. Это вариант? – ash

+0

Другая мысль - если процессор привязан, он, скорее всего, не сидит на инструкциях ввода-вывода. Может быть, что-то еще происходит там, на что стоит смотреть. – ash

ответ

1

Вы должны проверить, можно ли включить пакетный режим и непрерывный пакет, так что несколько DWords могут передаваться без новых адресных циклов. Это делает вещи намного быстрее. PLX PCI9056 поддерживает этот параметр, но он должен быть установлен SW соответственно. У нас есть скорость передачи данных до 90 МБ/с с DMA Master Transfer на нашей специально разработанной карте захвата кадров.