реклама на сайте
подробности

 
 
> Реально Fast Ethernet, Использование RAW-пакетов
Aprox
сообщение Mar 3 2008, 21:30
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131



Периодически вспыхивают дискуссии о реальной скорости передачи данных по Ethernet. У меня именно такая задача - в сенменте Ethernet-100 обеспечить передачу потока данных со скоростью не менее 80 Мbps. Как я уже докладывал, существующие стеки TCP/IP не обеспечивают такой скорости, даже в протоколе UDP. Для известных конструкций на микроконтроллерах, реальная скорость не превышает 20..25 Mbps. Поэтому было решено отойти от стандартов TCP/IP и максимально сократить программное вмешательство процессора в процесс отсылки пакетов. Городить FPGA для ENET-100 тоже не показалось оправданным. В результате, поиск остановился на кристалле STR912FAxx c ARM9 и Ethernet контроллером на борту. Почему именно на нем. Потому, что в нем так организована периферия, AHB шина, контроллер внешней шины и DMA-MAC, что позволяет заполнять FIFO MAC-контроллера внешними данными автономно, минуя шину процессора и минуя шину FLASH и SRAM. Т.е. процессор практически не тормозится, а закачка данных идет на максимальной скорости. Я реализовал простейший вид RAW-пакетов в формате Ethernet-II: <Dst><Src><FrameId><...Data...>. Где FrameId мне любезно предоставил наш уважаемый гуру. Вот первые результаты натурных испытания на модуле MMstr912 от Propox получена максимальная скорость передачи данных- 96 Mbps. Использование 100M сети на 96%. Это скорость, когда процессор ничем не занят. В реале же, я ожидаю незначительного снижения производительности из-за того, что подготовка и отсылка пакетов практически полностью осуществляется аппаратными средствами кристалла. Было проверено также прохождение такого потока данных через свитч. Нареканий нет. Также проверена возможность WinPCAP капчурить поток пакетов такой скорости поступления и записывать их в файл. Работает исправно на Windows XP c обычным пентиумом 800MHz. Сейчас я полон оптимизма и приступаю к реализации WEB-сервера на RAW-пакетах.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Raimis
сообщение Mar 9 2008, 18:33
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 23-11-05
Пользователь №: 11 279



Цитата(Aprox @ Mar 4 2008, 01:30) *
Периодически вспыхивают дискуссии о реальной скорости передачи данных по Ethernet...
Для известных конструкций на микроконтроллерах, реальная скорость не превышает 20..25 Mbps...

Мы тоже начали городить что-то подобное, но испугались что нехватит мощности ST912xx процессора и выбрали проц помощенее - iMX27 от freescale ( мощности небывает слишком много smile.gif.
Цитата(Aprox @ Mar 4 2008, 01:30) *
Вот первые результаты натурных испытания на модуле MMstr912 от Propox получена максимальная скорость передачи данных- 96 Mbps

Как я понимаю тесты делались со стандартным ST MAC/DMA (ENET) фирмваром? Генерились готовые пакеты (в FPGA?) и передавались в FIFO MAC-контролера? А какой размер был тестовых пакетов? Максимальный? А есть возможность повторить тест, но с маленькими пакетами? Могут в таком тесте возникнуть сложности с пакетами размером до 100Б? Есть узкое место?
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Mar 13 2008, 21:40
Сообщение #3


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Решил я тут проверить эти утверждения.
Картина немного не такая.

Я сделал чистый эксперимент и вообще не использовал програмную поддержку для передачи данных в Ethernet.
Я сделал цепочку из 1000 дескрипторов для DMA и запускал пересылку при разных длинах пакетов.
Причем пересылались данные из внутренней RAM.
Привожу графики реальных замеров.



Как видно скорость можно получить и 98 Mbit/s
В плюс также полное отсутствие ошибок при приеме пакетов на PC.
Но при коротких пакетах сделать 90 Mbit не реально даже из внутренного RAM
Хуже того, при коротких пакетах начинаются флуктуации, вероятно обусловленные коллизиями на AHB шине. Т.е. шина у STR91 явно не предназначена для толстого трафика.

Еще надо помнить, что внешний порт у STR91 идет через шины APB и AHB, т.е. этот трафик конфликтует со всеми другими каналами DMA и обращениями к периферии и пропускная способность ограничена где-то 20 Mbyte/s т.е. критическая граница слишком близко.

Также серьезно тормозится выполнение програмного кода. Этот анализ есть на моем сайте.

Ну и на конец серьезное приложение на STR91 обязательно потребует операционки, а там такие финты с DMA не пройдут, будет много накладных для обеспечения межзадачной синхронизации.

iMX в этом плане значительно лучше, у него и системные шины быстрее и внеший порт минимум в 4-е раза быстрее и есть коммутатор на внутренней шине чтобы разделять потоки данных.

Цитата(Raimis @ Mar 9 2008, 23:03) *
Мы тоже начали городить что-то подобное, но испугались что нехватит мощности ST912xx процессора и выбрали проц помощенее - iMX27 от freescale ( мощности небывает слишком много smile.gif.

Как я понимаю тесты делались со стандартным ST MAC/DMA (ENET) фирмваром? Генерились готовые пакеты (в FPGA?) и передавались в FIFO MAC-контролера? А какой размер был тестовых пакетов? Максимальный? А есть возможность повторить тест, но с маленькими пакетами? Могут в таком тесте возникнуть сложности с пакетами размером до 100Б? Есть узкое место?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Aprox   Реально Fast Ethernet   Mar 3 2008, 21:30
- - aaarrr   Цитата(Aprox @ Mar 4 2008, 00:30) Как я у...   Mar 3 2008, 22:10
|- - Aprox   Цитата(aaarrr @ Mar 4 2008, 01:10) На ARM...   Mar 4 2008, 09:22
|- - aaarrr   Цитата(Aprox @ Mar 4 2008, 12:22) Мой выб...   Mar 4 2008, 10:18
|- - Aprox   Цитата(aaarrr @ Mar 4 2008, 13:18) По сто...   Mar 4 2008, 15:06
|- - aaarrr   Цитата(Aprox @ Mar 4 2008, 18:06) Если не...   Mar 4 2008, 15:29
|- - Aprox   Цитата(aaarrr @ Mar 4 2008, 18:29) Скорос...   Mar 5 2008, 15:19
- - aaarrr   Понятно. У меня тоже в одной разработке использует...   Mar 5 2008, 15:27
|- - Aprox   Цитата(Raimis @ Mar 9 2008, 21:33) Как я ...   Mar 10 2008, 08:04
||- - Raimis   Цитата(Aprox @ Mar 10 2008, 12:04) Я проб...   Mar 11 2008, 13:47
||- - Aprox   Цитата(Raimis @ Mar 11 2008, 16:47) это о...   Mar 11 2008, 18:39
|- - Aprox   Цитата(AlexandrY @ Mar 14 2008, 00:40) Ре...   Mar 14 2008, 12:14
|- - AlexandrY   Нет PAUSE пакетов никаких не было. Во первых карта...   Mar 14 2008, 14:41
|- - Aprox   Цитата(AlexandrY @ Mar 14 2008, 17:41) Не...   Mar 14 2008, 15:33
- - GL_basik   А как Ваше устройство отреагирует на сеть, где mul...   Mar 11 2008, 07:03
- - Aprox   Цитата(GL_basik @ Mar 11 2008, 10:03) А к...   Mar 11 2008, 12:36
- - Aprox   Цитата(Aprox @ Mar 11 2008, 15:36) Как ра...   Mar 12 2008, 17:00


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 12th August 2025 - 02:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.02161 секунд с 7
ELECTRONIX ©2004-2016