|
|
  |
Как повысить скорость работы по сети AT91SAM7X256 |
|
|
|
May 4 2008, 15:33
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(prottoss @ May 4 2008, 18:27)  Я говорю не про не про Ethernet заголовок, который можно копировать и с помощью memcpy - ради бога (+- один попугай), а про то что ссказал Rst7 постом выше - про реку данных (или даже пакетов по 60 байт - их две реки в приличной сети), которые приходится постоянно копировать. Ну дык на 60-ти байтных пакетах +/- попугай ой как видно. На коротких пакетах уже и неактуально манипулировать четырьмя блоками, быстрее скопировать и передать одним. Цитата Ну в таком случае по вашему копирование двух указателей на данные а не самих данных тожде memcpy? Нет, я рассматривыаю только копирование частей тела пакета. Указатели это другой вопрос, который упирается в другую проблему - чем больше блоков и чем короче блоки тем неэффективнее используется DMA. (на кадый пересылаемый блок DMA 4 раза должен обратиться к дескриптору, если блоки сравнимы по длине с дескриптором * 2, то эффективность сильно упадет).
|
|
|
|
|
May 4 2008, 15:52
|

Гуру
     
Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659

|
Цитата(defunct @ May 4 2008, 22:33)  Ну дык на 60-ти байтных пакетах +/- попугай ой как видно.На коротких пакетах уже и неактуально манипулировать четырьмя блоками, быстрее скопировать и передать одним. Спорный вопрос. К тому же тема именно про большие объемы данных между приложениями, а не про скорость обмена ARP, DNS, BOOTP и прочими пакетами. Здесь как раз актуально то, что EMAC эти данные уже поместил в память, и у нас есть выбор - отдать данные приложению через memcpy, или как список указателей на блоки данных. Во втором случае программа получается намного сложнее и объемнее по коду, но и скорость доставки данных приложению намного выше.
--------------------
|
|
|
|
|
May 4 2008, 16:33
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(prottoss @ May 4 2008, 15:01)  FreeRTOS не лучшая ОСь для повышения скорости. Глупость какая  Цитата почему бы не выбрать что-нить (OS) побыстрее и посеръезнее? Попробуйте перевести проект на ucOS-II. uCOS-II одна из самых простых и "несерьезных" осей. За счет экстремально примитивного шедулера потециально чуть быстее перепланирует задачи при их малом количестве. Это очень далеко от способностей "ускорить" IP стек. Цитата а возможно и исчезнут проблемы при компиляции в ARM-режиме... И еще шерсть возможно станет мягкой и щелковистой  . Ну нет проблем с ARM режимом. Совсем нет. Цитата(defunct @ May 4 2008, 15:58)  По объему кода? По быстродействию, естественно. На объемы кода в подавляющем большинстве случаеев наплевать. Да и по обьему не обещанные 30% а около 15.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 4 2008, 16:37
|
Гуру
     
Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261

|
Цитата(defunct @ May 4 2008, 19:58)  А с чем вы несогласны с заявлением? В подавляющем большинстве аудио потоков, пакеты не превышают 100 байт. Если пакеты маленькие, - их не много. Общий траффик для звука вряд ли больше 64 килобит/сек (G.711). Для G729 бит рейт не больше 11.8 килобит/сек, а для G.723 - он вообще меньше 6.3 килобит/сек. Можно предположить, это не те потоки, для которых нужно "повышать скорость работы по сети". Накладные расходы при передачи мультимедиа - заголовок UDP достаточно небольшой, - 8 байт, так что различие между двумя пакетами по 100 байт + два заголовка и между одним пакетом 200 байт + один заголовок невелико - 4%. Кроме того, RTP позволяет передавать внутри одного UDP-пакета несколько пакетов RTP, так что можно сэкономить и здесь. Ну и, наконец, мультимедиа - это не только "звук", но и "видео", а здесь пакеты отнюдь не маленькие... Вот с этим "всем" я и не согласен..
|
|
|
|
|
May 4 2008, 16:37
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата Длина блоков, применительно к SAM7X уже выбрана - 128 байт для принимаемых пакетов - на мой взгляд оптимальна. Кстати, как раз удобно парсить заголовок пакета Подождите радоваться. Вот понадобится поднять IPv6, сразу окажется, что весьма погано лезет в 128.Добавлено позже: это я погорячился. IPv6 еще помещается в 128 байт, но если добавится какой-нибудь дополнительный подзаголовок, возможность которого оговаривает IPv6, то может оказаться, что не влезет.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
May 4 2008, 16:52
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(blackfin @ May 4 2008, 18:37)  Если пакеты маленькие, - их не много. Общий траффик для звука вряд ли больше 64 килобит/сек (G.711). Ага, только их может быть много, например, 30 потоков. Что в общем-то в сумме тоже немного - менее 2 мегабит, но формирование заголовеов начинает напрягать. А еще прием еще 30...
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|