Общи насоки за 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-и и, поне ценово, решението изглежда перспективно.