Отговори на тема  [ 5 мнения ] 
Общи насоки за pciexpress разработка 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Мар 13, 2006 12:59 pm
Мнения: 3855
Местоположение: Габрово
Мнение Общи насоки за pciexpress разработка
Вътри ми се една идея, ама не съм уверен че имам знанията, да преценя доколко е постижимо и какви параметри ще получа.
Става въпрос за pcie хардуер от тип endpoint, т.е. слейв устройство на бъса на компютър (по-скоро на SBC - те масово имат експрес новите SoC-ове). Имам избран "микроконтролер" с поддръжка на root complex или на endpoint - мисля че имплементацията вътре е не Cadence (IP-то).
На високо ниво, това устройство (PCIe или miniPCIe или нещо къстъм като форм-фактор) трябва да си върти неговия софтуер, да си обслужва интерфейсите (перифериите) на микроконтролера (не е много "микро" всъщност) и да обмяна данни в Host PC-то през експреса. Специфичното в трансферите е че се гони ниска латентност - всъщност, "ниска" е в смисъла на няколко микросекудни, да кажем под 10мкс, което по стандартите на pcie май е детска игра. Да кажем че на всеки 100мкс трябва да се хвърлят по няколко стотин байта във всяка посока (и в двете посоки). Очаква се картата да инициира трансферите и да оставя и взема данните във системната памет на ПЦ-то (или SBC-то).
Там ми е чуденката какви "есктри" има експреса (наследени от пци или нови) - например, доколко микроконтролера ще може да "алоцира" памет в пространството на ПЦ-то и да пише в нея - т.е. дали е типично endpoint контролерите да могат да "map"-ват ПЦ паметта в своето пространство и да се избегне копирането примерно? Типично е и да се организира tripple buffer между картата и ПЦ-то.
Играх си с едно nvme ssd на същата платформа, ама докато върви Линукс на "микрото" и го играе root complex - новите евтини ССД-та нямат РАМ буфер на тях, но се хвалят с "HBM" - "Host Memory Buffer". Като тръгне животното и гледам в логовете че се обажда че са резервирани 64Мбайта от хост паметта за HBM. Това би било интересно да се ползва и в моя случай.
Изображение

Та, ако не е станало ясно, тъмна ми е тая част от Вселената и се надявам някой да ме осветли дали разсъждавам правилно. "Алтернативните" предложения са нагъчкани със скъпи бриждове и ASIC-и и, поне ценово, решението изглежда перспективно.


Съб Дек 11, 2021 10:01 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Фев 04, 2005 8:59 pm
Мнения: 6019
Местоположение: София
Мнение Re: Общи насоки за pciexpress разработка
gicho написа:
Да кажем че на всеки 100мкс трябва да се хвърлят по няколко стотин байта във всяка посока (и в двете посоки). Очаква се картата да инициира трансферите и да оставя и взема данните във системната памет на ПЦ-то (или SBC-то).

Не съм аз човека, дето да ти дава акъл за PCIe, но за няколкото байта защо първо не пробваш по стандартния метод.
В BAR конфигурацията се задава прекъсване и регион памет.
Настройваш картата да генерира прекъсване на всеки 100мкс и от драйвера четеш и пишеш байтвете в картата.

_________________
Warriors of the Night, ASSEMBLER!!!


Съб Дек 11, 2021 10:11 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Мар 13, 2006 12:59 pm
Мнения: 3855
Местоположение: Габрово
Мнение Re: Общи насоки за pciexpress разработка
Щото още съм далеко - обмислям дизайна и събирам ингормация да видя дали има шанс да стане. Прекъсването е ясно - софтуера в мцу-то ще блъска прекъсване за събитията като приети/предадени данни и други.
По принцип, разните мрежови карти, дискове и прочие показват че е напълно възможно като производителност - моите изисквания са аналогични на етернет пакет примерно, и знаем че там постгат далеч по-високи скорости и по-ниски латентности.

Едит: препрочетох ти идеята - имаш предвид хоста да си търси данните след известие от картата. И така може, но в крайния вариант трябва да имам другото - картата е сложила приетите данни вече и сръчква хоста да ги взима и ползва.


Съб Дек 11, 2021 3:18 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Дек 14, 2004 12:31 pm
Мнения: 3282
Мнение Re: Общи насоки за pciexpress разработка
И аз не съм в позиция да давам акъли по високите нива на протокола, но защо не погледнеш как го правят в RIFFA (Reusable Integration Framework for FPGA Accelerators)

https://sites.google.com/a/eng.ucsd.edu ... /riffa_2_0

Тази магистъратура би трябвало да свърши работа като въведение "Interconnecting a Linux Host with a FPGA Board through PCI-Express"

https://pergamos.lib.uoa.gr/uoa/dl/fron ... 21/theFile

Успех и пиши от време на време по темата. ще е интересно.


Съб Дек 11, 2021 5:50 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Мар 13, 2006 12:59 pm
Мнения: 3855
Местоположение: Габрово
Мнение Re: Общи насоки за pciexpress разработка
Благодаря за линковете, има интересна информация. Засега съм на много начално проучвателно ниво, но ако тръгне нанякъде ще споделя.


Нед Дек 12, 2021 5:15 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 5 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 4 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни