|
|
  |
Самый быстрый и самый маленький TCP-стек., По просьбам трудящихся. |
|
|
|
Jul 28 2011, 19:43
|

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

|
QUOTE (VslavX @ Jul 28 2011, 22:32)  И что? Это неплохая технология А я что-то плохое говорил??? Я просто отметил, что Вам стало тесно в рамках простейшего взаимодействия между уровнями. Это НОРМАЛЬНО. QUOTE Вполне нормально ложится, есть .... если ... то .... просто будет .... Так о чем Вы это? О том, что можно добавить, углубить, расширить, улучшить.... Так я ровно о том-же, что можно, но и в первую очередь о том, что в абстрактном стеке всего этого НЕТ и придется его дорабатывать под возможности MAC. Либо НЕ дорабатывать - и так сойдет.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 28 2011, 19:45
|

embarrassed systems engineer
    
Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038

|
Цитата(Rst7 @ Jul 28 2011, 22:23)  конечно, да. Но заявки-то - "хотим 100M через TCP". А теперь давайте считать. Все ОЗУ там - 64кБайт. При скорости в Это заявки оторванные от реальности. Передать-принять 100мбит/сек, допустим, у Вас получилось, и похоже таки со 100% загрузкой ядра (раз 92 мбита из 95), но кто на этом проце и всего с 64К памяти осмысленно сгенерировать или обработать 12Мбайт/сек сможет? Вы можете привести пример, когда на LPC17xx нужно 100Мбит/сек и от этого будет смысл? Цитата(Rst7 @ Jul 28 2011, 22:23)  В реальной жизни это означает, что три обычных неуправляемых L2-свича в гирлянде приведут к падению скорости и ничего Вы стандартным построением TCP-стека не сделаете. Да и на Вашей реализации тоже ничего не сделаете. Как только данные станут осмысленными (а не генератор ПСЧ), то в приложении у Вас появится буфер, и упретесь в те же самые 64K.
|
|
|
|
|
Jul 28 2011, 20:04
|

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

|
QUOTE и похоже таки со 100% загрузкой ядра (раз 92 мбита из 95), А вот тут тонкость. Я малость оптимизировал (сократил в два раза с 30 до 15мкс) расчет IP Checksum, а результат не изменился. Так что CPU load там походу меньше 100%, но пока неясно недостижение теорпредела. Раз пошла такая пьянка, то я решил таки доделать вменяемую процедуру отправки пакета, которая не будет ждать готовности тупо в цикле. Правда, за сегодня сделать не успел, но, думаю, завтра получим нормальные данные по загрузке CPU. QUOTE Да и на Вашей реализации тоже ничего не сделаете. Как только данные станут осмысленными (а не генератор ПСЧ), то в приложении у Вас появится буфер, и упретесь в те же самые 64K. Ну я понимаю, что http-сервер недостаточно осмысленные данные генерирует, но ладно  Придется таки сделать читалку с SD с топовой скоростью. C 45DB даже смысла обсуждать нет, ибо там есть вообще произвольное чтение.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Jul 28 2011, 20:20
|

embarrassed systems engineer
    
Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038

|
Цитата(Rst7 @ Jul 28 2011, 23:04)  Ну я понимаю, что http-сервер недостаточно осмысленные данные генерирует, но ладно  Хм, а разве он их генерирует, а не просто берет ресурс из флешки? Тогда это у Вас аналог буфера на 512К, просто тип буфера const  Цитата(Rst7 @ Jul 28 2011, 23:04)  Придется таки сделать читалку с SD с топовой скоростью. C 45DB даже смысла обсуждать нет, ибо там есть вообще произвольное чтение. Имхо, не получится с SD по SPI ничего с нормальной скоростью прочитать. Ну в идеале будет 3Мбайт/сек - больше просто SPI не позволит. Надо ждать LPC1788 - там SD контроллер 4-битный и аппаратный, вот там можно попробовать до 100Мбит подняться.
|
|
|
|
|
Jul 28 2011, 20:28
|

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

|
QUOTE Хм, а разве он их генерирует, а не просто берет ресурс из флешки? Распаковывает на ходу и подставляет изменяемые параметры. Даже если и рассматривать флеш как буфер на 512к, у Вас-то такого нет  QUOTE Имхо, не получится с SD по SPI ничего с нормальной скоростью прочитать. Да ладно, я ногодрыгом 4хбитный интерфейс сэмулирую, мне не привыкать.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Jul 28 2011, 20:43
|

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

|
QUOTE Это для пакета в 1460 байт? Примерно 1 такт на байт? Можно глянуть код основного цикла подсчета? Потому как у меня полтора такта на байт выходит. Да. Я щас не у своего рабочего компа, завтра буду у него, выложу. Хотя... Момент... SVN - великая вещь CODE static UREG16 IPChecksum(UINT16 *data, UREG16 len) { unsigned long long acc=0; UINT32 *p=(UINT32*)data; UREG i=len>>5; if (i) { len-=i<<5; do { acc += *p++; acc += *p++; acc += *p++; acc += *p++; acc += *p++; acc += *p++; acc += *p++; acc += *p++; } while(--i); } i=len>>2; if (i) { len-=i<<2; do { acc+=*p++; } while(--i); } data=(UINT16*)p; if (len >=2) {acc+=*data;len-=2;} if(len == 1) { acc += *(UINT8 *)data; } do { acc=(acc&0xFFFF)+(acc>>16); } while((acc>>32)); UINT32 acc32=acc; do { acc32=(acc32&0xFFFF)+(acc32>>16); } while((acc32>>16)); return (~acc32)&0xFFFF; } Ну такое, туповато, но действенно.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Jul 28 2011, 20:55
|

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

|
QUOTE А что - на PIO получится 25МГц выдать? Ну придется извратнуться, конечно. Главное там - не процом ждать готовности, на этот предмет есть пара идей. QUOTE и нарвался на встречное предложение "покрутить мое лицо ногами"  Ну это кто на что учился.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Jul 29 2011, 15:28
|
Частый гость
 
Группа: Участник
Сообщений: 163
Регистрация: 22-02-07
Пользователь №: 25 578

|
Rst7 Сколько данный стек занимает RAM? В LPC1114 можно использовать?
--------------------
Мужество есть лишь у тех, кто ощутил сердцем страх! В. Кипелов, Беги за солнцем.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|