Jump to content

    
Sign in to follow this  
vlso

Выбор семейства FPGA (Altera/Intel) для устройства захвата данных на PCIe

Recommended Posts

Приветствую!

2 minutes ago, vlso said:

Спасибо, стало чуть понятнее. Только я не понял про "контроллер DMA". Это юзерский уровень hard IP, soft IP или это про некий контроллер в чипсете ?

Контроллер DMA  это user soft IP  -  может быть частью стандартной  IP core контроллера PCIe  от вендора - а можно и самому сваять как вам будет удобно по интерфесу или функционалу. 

5 minutes ago, vlso said:

Я всегда передаю большими пакетами больше 128kbyte. Таймаут - одна ms, после чего сливаю данные, даже если их накопилось меньше. С такой схемой думать про размер пакета уже не обязательно с точки зрения заполнения полосы пропускной способности PCIe. Главное, чтобы пакеты в PCIe не совсем маленькие были.

Физический размер  пакетов в PCIe может быть 128/256/512/1K  байт  (в обычных PC чаще всего 128 байт). Если вы сами не будете делаеть TLP уровень (будете использовать корку вендора с интерфесом к Avalon/AXI4) то вам об этом  думать не надо будет так как разбивка будет делатся внутри корки вендора. Ну а если захотите все сами на TLP делать то тогда ой  - об этом придется помнить.   

Медленность чтения из PC в переферию определяется  "навороченностью"  уровня DMA/TLP  -  на сколько он позволяет конвеезировать  запросы на чтение и склеивать ответы  с минимальными накладными расходами времени.

Удачи! Rob.

Share this post


Link to post
Share on other sites
1 hour ago, RobFPGA said:

В современных системах  размер буфера в дескрипторе обычно 4K (физ страница)  так как выделить большой непрерывный кусок физ-памяти бывает  довольно сложно.  Хотя в случае TC  с его 100 MB/s может и не надо будет сильно заморачиватся.   Как правильно заметили выше - TC нужно взять кит с PCIe  и  запустить PCIe ref-дизайн c DMA. Сразу станет понятно что и как.

А, вот для чего нужны эти дескрипторы. На мосте PEX8311 как раз была непрерывная память. Эксперименты и практика показали, что 64 MBytes это предел. Дальше win7 выделять не желает. :) Впрочем этого вполне хватало пока для наших задач.

Тогда вопрос. Если DMA контроллер это юзерская часть IP (soft), то дескрипторы где хранятся? В памяти PC или внутренней памяти FPGA ? Так-то если буфер в памяти PC 4 MByte, то памяти для дескрипторов надо 4k x Descriptor_size, что уже немало.

То есть с непрерывной памятью DMA-контроллер от Altera не работает? Только через механизм дескрипторов?

Kit купим обязательно. Всё равно хочу сначала возможности понять, какие есть. 

50 minutes ago, RobFPGA said:

Контроллер DMA  это user soft IP  -  может быть частью стандартной  IP core контроллера PCIe  от вендора - а можно и самому сваять как вам будет удобно по интерфесу или функционалу.

Спасибо, теперь стало ещё яснее. Я правильно понимаю, что контроллер DMA работает через "Transaction layer". Это и есть TLP пакеты ?

50 minutes ago, RobFPGA said:

Физический размер  пакетов в PCIe может быть 128/256/512/1K  байт  (в обычных PC чаще всего 128 байт). Если вы сами не будете делаеть TLP уровень (будете использовать корку вендора с интерфесом к Avalon/AXI4) то вам об этом  думать не надо будет так как разбивка будет делатся внутри корки вендора. Ну а если захотите все сами на TLP делать то тогда ой  - об этом придется помнить.   

Медленность чтения из PC в переферию определяется  "навороченностью"  уровня DMA/TLP  -  на сколько он позволяет конвеезировать  запросы на чтение и склеивать ответы  с минимальными накладными расходами времени.

Спасибо. Не так уж много осталось понять для старта.

Вот ещё хочу прояснить. Если я выберу Cyclone4GX, то мне надо будет использовать soft IP. Мне надо будет платить за использование IP (за каждое устройство).

Тот же вопрос про DMA-контроллер. Это уже ко всем семействам, как я понял.

Ну и традиционный вопрос о платности vendorID/deviceID. Сейчас я понимаю, что в cyclone 5 и 10 платить ничего не надо, так как есть аппаратный IP. А вот про cyclone4GX не понятно. Altera даёт бесплатно использовать свои vendorID/deviceID ?

Edited by vlso

Share this post


Link to post
Share on other sites
1 hour ago, vlso said:

про "контроллер DMA"

Это - "софт" корка в FPGA, через которую перемещаете данные по PCIe.

1 hour ago, vlso said:

Я всегда передаю большими пакетами больше 128kbyte. Таймаут - одна ms, после чего сливаю данные, даже если их накопилось меньше.

Понятно. В памяти компа выделяете при старте буфер один раз, инициализируете - а дальше всё делает FPGA. 

 

Share this post


Link to post
Share on other sites

Приветствую!

27 minutes ago, vlso said:

Тогда вопрос. Если DMA контроллер это юзерская часть IP (soft), то дескрипторы где хранятся? В памяти PC или внутренней памяти FPGA ? Так-то если буфер в памяти PC 4 MByte, то памяти для дескрипторов надо 4k x Descriptor_size, что уже немало.

Это  зависит от структуры DMA и схемы работы с дескрпторами. Обычно дескрипторы хранятся в системной памяти PC  и подкачиваются автоматом в DMA  по мере необходимости в небольшой внутренний буффер дескрипторов.  Но могут быть и варианты - например дескрипторы грузятся CPU  непосредственно в DMA в большой  буфер дескрипторов (типа FIFO) . 

 Число требуемых дескрипторов не обязательно должно соответствовать всему размеру буфера. Это число выбирают исходя из максимального времени на обслуживание  дескрипторов.  То есть распеределили часть буфера на 1К дескрипторов.  По окончанию обработки какой то части (например 128 штук)  по прерыванию или по опросу на эти 128 штук  рапределили следующую часть  буффера и.т.д.  В пределе если вы успеаете переинитить DMA  по окончанию пересылки дескриптора без остановки данных (например накапливая во внутреннем буфере) то и одного дескриптора достаточно. :wink2: 

Почитайте  описание  на PCIe, DMA, корок  а также их режимы работы (scatter-gather,  descriptor-ring,)  доступные  для  выбранного  семейства FPGA.

Удачи! Rob. 

Share this post


Link to post
Share on other sites
20 minutes ago, vlso said:

контроллер DMA работает через "Transaction layer". Это и есть TLP пакеты ?

нет. 

24 minutes ago, vlso said:

Если я выберу Cyclone4GX, то мне надо будет использовать soft IP. Мне надо будет платить за использование IP (за каждое устройство).

Тот же вопрос про DMA-контроллер. Это уже ко всем семействам, как я понял.

не нужно Вам 4 Циклон :)

DMA у Альтеры есть бесплатные, можно самому написать или купить у кого-нибудь еще (ИМХО хватит и Альтеровского или самописного).

PCIe soft IP ядро для 4 Циклона платное, но один раз платить и пользоваться или на каждое устройство - не интересовался.

27 minutes ago, warrior-2001 said:

Берите сразу Cyclone 10 GX.

была недавно тема с очередностью подачи и главное - снятия питания с этого чипа - меня опечалило.

Share this post


Link to post
Share on other sites
32 минуты назад, vlso сказал:

А вот про cyclone4GX не понятно

В Cycline IV GX есть аппаратное ядро PCIe (HIP PCIe). Оно заканчивается Avalon-ST интерфейсом. Мост на Avalon-MM входит в мегафункцию и реализуется на логике. Это все бесплатно. DMA контроллер тоже реализуется на логике. Как правило идет готовый пример со всем этим хозяйством.

В Cyclone V все тоже самое. Принципиальных отличий нет, если конечно вы не используете HPS.

 

Share this post


Link to post
Share on other sites
14 minutes ago, RobFPGA said:

Почитайте  описание  на PCIe, DMA, корок  а также их режимы работы (scater-gather,  descriptor-ring,)  доступные  для  выбранного  семейства FPGA.

Понял. Почитаю обязательно.

Большое спасибо за объяснение. Не думал, что буфер дескрипторов динамический.

Тогда примерно понятно, почему на x1 Gen1 100 MBytes/sec может в теории не получится при каких-то обстоятельствах.

50 minutes ago, warrior-2001 said:

Берите сразу Cyclone 10 GX. Кристалл пошустрее, hard IP те же. Долго будет доступен для закупки

Планирую пообщатся с дистрибьютерами. Иногда цены интересные предлагают. Партии у нас не особо большие (сотни в год), разве что присоединиться к крупному заказу, тогда может цена приемлемая будет.

Share this post


Link to post
Share on other sites

Приветствую!

27 minutes ago, vlso said:

Тогда примерно понятно, почему на x1 Gen1 100 MBytes/sec может в теории не получится при каких-то обстоятельствах.

Для x1 Gen1  можно расчитывать на 200-220 MB/s  при хорошем DMA/PCie контроллере и нормальной структуре системы.  

Удачи! Rob.

Share this post


Link to post
Share on other sites
28 minutes ago, Yuri124 said:

DMA у Альтеры есть бесплатные, можно самому написать или купить у кого-нибудь еще (ИМХО хватит и Альтеровского или самописного).

PCIe soft IP ядро для 4 Циклона платное, но один раз платить и пользоваться или на каждое устройство - не интересовался.

 

21 minutes ago, dvlwork said:

В Cycline IV GX есть аппаратное ядро PCIe (HIP PCIe). Оно заканчивается Avalon-ST интерфейсом. Мост на Avalon-MM входит в мегафункцию и реализуется на логике. Это все бесплатно. DMA контроллер тоже реализуется на логике. Как правило идет готовый пример со всем этим хозяйством.

В Cyclone V все тоже самое. Принципиальных отличий нет, если конечно вы не используете HPS.

Как-то не всё сходится. Если есть аппаратное ядро с Avalon, то за что платить не очень понятно. Если что я компиляцию проекта вообще не считаю (считаем, что quartus честно куплен). Именно беспокоят возможные отчисления за каждое устройство. Тут идея какая. Либо плачу за soft-IP, либо оно уже в чипе аппаратно.

to dvlwork: HPS не использую. Странно. По даташиту на cyclone упомянут только PIPE интерфейс. Может надо в другой pdf смотреть?

PIPE это какой из уровней ?

• Physical interface/media access control (PHY/MAC) layer
• Data link layer
• Transaction layer
 

35 minutes ago, Yuri124 said:

Вот у Xilinx статья - введение в PCIe

http://xillybus.com/tutorials/pci-express-tlp-pcie-primer-tutorial-guide-1

Спасибо, почитаю обязательно.

Share this post


Link to post
Share on other sites
1 minute ago, vlso said:

Как-то не всё сходится

Да, я напутал - считал. что в 4 Циклоне только софт ядро, сейчас глянул - есть хард, есть и софт. Хард - бесплатное, софт - платное.

Но при одинаковых ценах на IV и V чипы смысл делать на 4-м... Тем более, что примеры для пятого запускаются сразу.

Share this post


Link to post
Share on other sites
8 minutes ago, Yuri124 said:

Но при одинаковых ценах на IV и V чипы смысл делать на 4-м...

Я тут глаз положил на самые дешёвые. Они стоят около 25$ на digikey. Там правда всего два гигабитных трансивера. Один для PCIe, второй на входящий поток (в идеале хотелось два входящих потока, но и такой вариант тоже нужен для более узких применений). Cyclone5GX с такими ценами не видел пока.

Share this post


Link to post
Share on other sites
15 minutes ago, vlso said:

PIPE

физический уровень:

https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/an/an443.pdf
 

Quote

 

PIPE stands for PHY Interface for the PCI Express Architecture.

The PIPE specification was developed by Intel. Although it is not a standard like PCI Express,

the PIPE interface is the most widely adopted interface between the PHY and the MAC layers (Figure 1).

 

См. на картинке где надпись PHY/MAC Interface (PIPE Interface)

Т.е. внутри, где уже идет распараллеливание в байты.

6 minutes ago, vlso said:

Они стоят около 25$ на digikey

Когда-то выбирал, таких дешевых не видел. А есть ли у них интерфейс к нужной Вам памяти? И достаточно ли внутри блоков памяти, если понадобится для FIFO, например.

Edited by Yuri124

Share this post


Link to post
Share on other sites
16 minutes ago, Yuri124 said:

Спасибо!

На второй странице схема.

Оказывается PIPE содержит в себе:

• Physical interface/media access control (PHY/MAC) layer
• Data link layer
• Transaction layer

Действительно, похоже, что в cyclone4GX и cyclone5GX аппаратные блоки имеют одинаковый функционал. Мой выбор теперь облегчился.

То есть, если и надо платить, то только за soft-IP DMA контроллера (или самому писать). Может конечно у Altera платность soft IP от семейства зависит. Надо будет выяснить у дистрибьютера.

Edited by vlso

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this