Цитата(Nitrex @ Dec 23 2015, 23:27)

А есть разница в скорости при использовании UDP или TCP?
Ну, смотрите:
TCP гарантирует доставку и ждет ответов от получателя, следовательно пока не отреагировала та сторона некоторое время мы будем простаивать и ждать ответа. Так же необходимо следить за состоянием сессии и т.д.
TCP заголовок 16 байт (если без опций смотреть), а UDP заголовок - 8. Следовательно при одной и той же длине пакета с UDP можно передать на 8 байт больше с каждым пакетом.
Для TCP обязательно рассчитывать контрольную сумму (а она считается в том числе и по данным), для UDP контрольную сумму можно не рассчитывать и заполнить нулями (т.е. снизить нагрузку на процессор дополнительными расчетами, однако все эти расчеты может делать сетевая карточка/встроенное MAC-ядро в HPS, если это поддерживается и настраивается).
Так, в случае UDP можно заранее подготовить весь заголовок (если известно куда отправляются данные и получатель не меняется), и только подставлять данные (просто склеивая) и отправлять целый пакет (с Ethernet/IP/UDP заголовками) через RAW сокет.
Разница между TCP и UDP есть. Не думаю, что на HPS UDP НАМНОГО будет быстрее, чем TCP, он немного проще, вот и всё.
Если использовать Jumbo фреймы, то можно немного снизить нагрузку (будет меньше прерываний и пакетов в принципе).
В доке Cyclone V Hard Processor System Technical Reference Manual в разделе про EMAC написано:
Цитата
Programmable frame length supporting standard and jumbo Ethernet frames (with size up to 3800 bytes)
Насколько это работает в этом MAC-ядре я не знаю - не пробовал.
Если данные, которые вы передаетё хорошо сжимаются, то можно попробовать сжимать, а потом передавать