Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: реализация PCIE
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > ISA/PCI/PCI-X/PCI Express
ecs
Всем добрый день.
Задача стоит в вводе данных через PCI Express в компьютер, минимальная скорость потока ~ 30мегабайт\сек. Юсб не предлагатьsm.gif

Интересует мнение профессионалов и всех участников форума в построении данной системы (только со стороны платы), требуются все пути решения данной задачи начиная от самых дорогих(разработка на стороне не в счет) до самых бюджетных. Данная тема будет полезна не только мне но и новичкам кто собрался работать с PCIE. Заранее спасибо.
Gate
А максимальная?
ecs
Цитата(Gate @ Jan 31 2011, 21:22) *
А максимальная?

Особого значения не имеет, конечно с увеличение скорости и цена растет. Кто то выбирает Xilinx, кто то Alter'y вот интересно узнать кто на чем реализует данный интерфейс, какой бюджет, ну и подводные камни
Gate
До 200 Мб/сек pex8311: http://plxtech.com/products/expresslane/pex8311
Выше - не вижу смысла в таких платах вообще - что вы будете дальше делать с таким потоком?
ecs
Цитата(Gate @ Feb 1 2011, 18:43) *
До 200 Мб/сек pex8311: http://plxtech.com/products/expresslane/pex8311
Выше - не вижу смысла в таких платах вообще - что вы будете дальше делать с таким потоком?

Гнать видео в компьютер
а в качестве Контроллера для работы с Generic Local Bus что выбрали бы?

Один из простых, но дорогих вариантов, можно выбрать в качестве контроллера - ПЛИС например Virtex-4, Virtex-5, Virtex-6 + к нему купить ядро от PLDA.

Или

Контроллер ПЛИС - Stratix IV GX FPGAs + ядро Altera PCI Express hard IP core

Интересны еще другие варианты!
Gate
Цитата(ecs @ Feb 2 2011, 12:42) *
Гнать видео в компьютер
а в качестве Контроллера для работы с Generic Local Bus что выбрали бы?

pex8311 + FPGA
Если учесть, что pex8311 стоит около $50, то ставить в качестве контроллера pcix fpga+ip экономически может быть выгодно только при серийном производстве.
Еще раз осмелюсь повторить: гнать в (офисный) компьютер поток 200 мб/с бессмысленно - с ним ничего не удастся сделать. Такие скорости надо обрабатывать на плате, уменьшая поток в разы.
ecs
Цитата(Gate @ Feb 2 2011, 13:10) *
pex8311 + FPGA
Если учесть, что pex8311 стоит около $50, то ставить в качестве контроллера pcix fpga+ip экономически может быть выгодно только при серийном производстве.
Еще раз осмелюсь повторить: гнать в (офисный) компьютер поток 200 мб/с бессмысленно - с ним ничего не удастся сделать. Такие скорости надо обрабатывать на плате, уменьшая поток в разы.

ну вообще поток видео будет примерно ~ 30 мб\сек
тогда как лучше сделать?
dmitry-tomsk
Цитата(ecs @ Feb 2 2011, 14:15) *
ну вообще поток видео будет примерно ~ 30 мб\сек
тогда как лучше сделать?

xc6slx25t за 50$. Встроенный pcie 200 мбайт/сек.
ecs
Цитата(dmitry-tomsk @ Feb 2 2011, 17:53) *
xc6slx25t за 50$. Встроенный pcie 200 мбайт/сек.

к нему нужно покупать ядро? сколько оно может примерно стоить?
dmitry-tomsk
Цитата(ecs @ Feb 2 2011, 22:46) *
к нему нужно покупать ядро? сколько оно может примерно стоить?

не нужно, нужен только пдп контроллер, пример в xapp859.
ecs
Цитата(dmitry-tomsk @ Feb 2 2011, 23:25) *
не нужно, нужен только пдп контроллер, пример в xapp859.

дак готового варианта получается нету( в xapp859 этот пдп контроллер внутри fpga, а саму корку взломанную можно найти?
dmitry-tomsk
Цитата(ecs @ Feb 3 2011, 12:36) *
дак готового варианта получается нету( в xapp859 этот пдп контроллер внутри fpga, а саму корку взломанную можно найти?

в s-6 стоит аппаратный блок pcie, начиная с ise 12 лицензия не требуется.
ecs
dmitry-tomsk Ничего не понял) Есть fpga s-6 в ней в внутри уже заложен физический уровень, т.е. микросхемы от NXP или TI не нужны, а сам протокол обмена(запросы, ответы) это реализуется в fpga программно, но для этого нужна корка ведь так? Если не так поправьте пожалуйста. Никогда не имел дело с xilinx:(
dmitry-tomsk
Цитата(ecs @ Feb 3 2011, 14:39) *
dmitry-tomsk Ничего не понял) Есть fpga s-6 в ней в внутри уже заложен физический уровень, т.е. микросхемы от NXP или TI не нужны, а сам протокол обмена(запросы, ответы) это реализуется в fpga программно, но для этого нужна корка ведь так? Если не так поправьте пожалуйста. Никогда не имел дело с xilinx:(

нужна обёртка для ядра, смотрите даташиты
Bad0512
Цитата(dmitry-tomsk @ Feb 3 2011, 17:04) *
нужна обёртка для ядра, смотрите даташиты

Пару слов вдогонку... При потоках 200мБс Вам не обойтись без промежуточной памяти приличного размера.
У 6 спартана кстати есть аппаратный контроллер памяти. Корку ДМА готовую конечно можно найти, но всё
равно в ней Вам как минимум разобраться придётся - все эти корки очень заточены и оптимизированы под
определённые приложения.
dmitry-tomsk
Цитата(Bad0512 @ Feb 4 2011, 15:33) *
Пару слов вдогонку... При потоках 200мБс Вам не обойтись без промежуточной памяти приличного размера.
У 6 спартана кстати есть аппаратный контроллер памяти. Корку ДМА готовую конечно можно найти, но всё
равно в ней Вам как минимум разобраться придётся - все эти корки очень заточены и оптимизированы под
определённые приложения.

неправда, спокойно 200 мбайт сек через 2 кбайта фифошки (скорость записи в память pc), обратно мне больше 170 не удалось получить.
makc
Цитата(dmitry-tomsk @ Feb 4 2011, 15:47) *
неправда, спокойно 200 мбайт сек через 2 кбайта фифошки (скорость записи в память pc), обратно мне больше 170 не удалось получить.


Расскажите пожалуйста о подробностях реализации обратной передачи данных. Т.е. из памяти в плату. Мы занимаемся подобной задачей, но сейчас скорость оказывается ниже из-за того, что при чтении данные приходят в составе completion с относительно большой задержкой. Поэтому возникает такой вопрос: какой размер данных Вы запрашиваете при формировании TLP на чтение? И каково значение maximum payload size было в тестовой системе?
dmitry-tomsk
Цитата(makc @ Feb 5 2011, 00:43) *
Расскажите пожалуйста о подробностях реализации обратной передачи данных. Т.е. из памяти в плату. Мы занимаемся подобной задачей, но сейчас скорость оказывается ниже из-за того, что при чтении данные приходят в составе completion с относительно большой задержкой. Поэтому возникает такой вопрос: какой размер данных Вы запрашиваете при формировании TLP на чтение? И каково значение maximum payload size было в тестовой системе?

запрашиваю max read size байт, как правило, равно max payload size и равно 128 байт для большинства материнок (моей в том числе). До 32 исходящих запросов без ожидания ответа, хотя реально хватает 8 на x1 для 170 мбайт/сек. На x8 не знаю, может и фифошек будет мало нужно будет увеличивать буфер, ждём плату.
makc
Цитата(dmitry-tomsk @ Feb 5 2011, 14:18) *
запрашиваю max read size байт, как правило, равно max payload size и равно 128 байт для большинства материнок (моей в том числе). До 32 исходящих запросов без ожидания ответа, хотя реально хватает 8 на x1 для 170 мбайт/сек. На x8 не знаю, может и фифошек будет мало нужно будет увеличивать буфер, ждём плату.


Спасибо. Я в общем-то и предполагал, что необходимо сразу отправлять несколько запросов на чтение и потом дожидаться нескольких completion, но уверенности в корректности такого подхода не было.
FLTI
Цитата(Bad0512 @ Feb 4 2011, 15:33) *
Пару слов вдогонку... При потоках 200мБс Вам не обойтись без промежуточной памяти приличного размера.
У 6 спартана кстати есть аппаратный контроллер памяти. Корку ДМА готовую конечно можно найти, но всё
равно в ней Вам как минимум разобраться придётся - все эти корки очень заточены и оптимизированы под
определённые приложения.


Цитата(dmitry-tomsk @ Feb 4 2011, 16:47) *
неправда, спокойно 200 мбайт сек через 2 кбайта фифошки (скорость записи в память pc), обратно мне больше 170 не удалось получить.


Диаметрально противоположные мнения wacko.gif
Кто прав и почему ? Или оба правы, но каждый по-своему?
dsmv
Цитата(FLTI @ Aug 4 2011, 19:14) *
Диаметрально противоположные мнения wacko.gif
Кто прав и почему ? Или оба правы, но каждый по-своему?


Правы оба.
FIFO => DMA => PCIExpress

2 кбайт FIFO вполне достаточно для согласования скорости.
FLTI
Цитата(dsmv @ Aug 8 2011, 14:40) *
Правы оба.
FIFO => DMA => PCIExpress

2 кбайт FIFO вполне достаточно для согласования скорости.

Непонятно, в чём тогда прав Bad0512, который пишет, что ФИФО недостаточно и нужен буфер приличного размера?
Напоминаю, что мы говорим о потоках около 200МБайт/с.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.