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

 
 
> Spartan 6 + LwIP, как добиться максимальной скорости
Golikov A.
сообщение Apr 26 2013, 17:51
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Всем привет. Наконец то запустил LwIP на микроблайзе в спартане 6. Микроблайз работает на 100 МГц, мак контроллер МАК - лите, физика гигабитная, но зарезана на 100 МБит.

У меня получилось передача по ТСР со скоростью 15 Мбит. Это если слать с компьютера большой файл пакетами по 5000 байт. Если пакеты длинные (10-50Кбайт), то скорость падает до 7 МБит, а если коротенькими пакетиками то скорость падает до каких то очень мизирных значений. Шлю из C# через TcpClient. В Спартане реализован эхо сервер, шлю пакет потом принимаю его обратно, считаю время между отправкой и приемом. Также время смотрел в wireshark, там отмечается время когда прошел пакет в плис, и когда пошел обратно АКК. Скорость 15 МБит - реальность

Я так понимаю что основной затык в ядре микроблайз, LwIP работает из DDR, потому что после того как я его подключил проект вырос до каких то неприличных 120 КБайт, и во внутреннюю память не влез. DDR не двух портовый, а данные и программа лежат в одной памяти, кеши все включил, но lwIP активно создает буфера в куче.

Собственно вопрос что надо сделать чтобы получить те данные что заявлены в описании LwIP для мак лите, а именно 50 Мбит прием, 38 Мбит передача?

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Golikov A.
сообщение May 1 2013, 08:45
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Мне как раз интересно зачем делают шину АХИ лайт 50, почему не 100? Есть где то какие то описания? Есть какие то ограничения?

Просто у меня проект с 64 Кбайт кэша так и не запустился, падает после подключения кеша инструкций. С 32 Кбайтами кэша работает. Вот думаю может работает на переделе, и чуть увеличу нагрузку начнет сбоить... Не понимаю ни как проверить, ни как обеспечить запас...

Go to the top of the page
 
+Quote Post
akorud
сообщение May 1 2013, 10:55
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 203
Регистрация: 12-11-10
Из: Poland
Пользователь №: 60 842



Цитата(Golikov A. @ May 1 2013, 10:45) *
Мне как раз интересно зачем делают шину АХИ лайт 50, почему не 100? Есть где то какие то описания? Есть какие то ограничения?

Просто у меня проект с 64 Кбайт кэша так и не запустился, падает после подключения кеша инструкций. С 32 Кбайтами кэша работает. Вот думаю может работает на переделе, и чуть увеличу нагрузку начнет сбоить... Не понимаю ни как проверить, ни как обеспечить запас...

Потому, что не нужно sm.gif. Через AXI lite в типичных системах доступны регистры периферии операции с которыми сравнительно редкие. Также стоит учесть что, как правило, единственный мастер на шине - микроблейз, транзакции генерируются программно - например *(uint32_t* GPIO_REG_ADDR) = val; - и процессор просто не состоянии ее загрузить.
Можно и 100 - но тогда больше вероятность (зависит от чипа и от размера проекта), что не сойдутся тайминги и придется добавлять промежуточные регистры (FULLY_REGISTERED или LIGHT_WEIGT вместо BYPASS) - а оно надо? Да и потребляет больше на 100.
Кстати о таймингах - в процессе синтеза они анализируются для наихудшего случая (температура 85 и минимальное напряжения питания). Так что описанные симптомы указывают что таки не сошлись, а вы не заметили, либо внешние условия совсем плохи (напряжение питания, целостность сигналов).

P.S. Если нужно только мигать LED раз в секунду - можно частоту шины установить 5Гц (насколько я помню одна транзакция столько около 5 тактов занимает) - и тогда в программе вообще не придется задержек делать - процессор 99.999999% времени будет в состоянии ожидания.

P.P.S. Мне показалось у AXI-based систем довольно крутой "порог вхождения", приходилось и документацию от ARM читать (AXI = AMBA) и с ChipScope ночами сиживать... Зато потом - sky is the limit sm.gif

Сообщение отредактировал akorud - May 1 2013, 11:12
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение May 1 2013, 11:36
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата(akorud @ May 1 2013, 14:55) *
Потому, что не нужно sm.gif. Через AXI lite в типичных системах доступны регистры периферии операции с которыми сравнительно редкие. Также стоит учесть что, как правило, единственный мастер на шине - микроблейз, транзакции генерируются программно - например *(uint32_t* GPIO_REG_ADDR) = val; - и процессор просто не состоянии ее загрузить.
Можно и 100 - но тогда больше вероятность (зависит от чипа и от размера проекта), что не сойдутся тайминги и придется добавлять промежуточные регистры (FULLY_REGISTERED или LIGHT_WEIGT вместо BYPASS) - а оно надо? Да и потребляет больше на 100.
Кстати о таймингах - в процессе синтеза они анализируются для наихудшего случая (температура 85 и минимальное напряжения питания). Так что описанные симптомы указывают что таки не сошлись, а вы не заметили, либо внешние условия совсем плохи (напряжение питания, целостность сигналов).

P.S. Если нужно только мигать LED раз в секунду - можно частоту шины установить 5Гц (насколько я помню одна транзакция столько около 5 тактов занимает) - и тогда в программе вообще не придется задержек делать - процессор 99.999999% времени будет в состоянии ожидания.

P.P.S. Мне показалось у AXI-based систем довольно крутой "порог вхождения", приходилось и документацию от ARM читать (AXI = AMBA) и с ChipScope ночами сиживать... Зато потом - sky is the limit sm.gif


Я планировал через акси лайт набивать фифо модуля, который потом будет данные наружу синхронно пихать по нескольким каналам. Но в целом и 50МГц мне подойдет...

Только вот вопрос, передачи по акси лайт не блокирующая? То есть если я в цикле что-то пишу, я же так и буду стоять ждать? В операционной системе понятно что другие процессы будут выполняться, а без операционки я так в этом процессе и повисну? Причем я так понимаю записывая в память просто через указатель, у меня даже нет шансов во время ожиданий что-то еще поделать. Или я не прав?

Тайминги я не то чтобы не заметилsm.gif Я просто даже не уверен что знаю где смотреть. Я в микроблайзе ваще по нулям и плисинами давно не занимался, а еще все так поменялось пока я армами занимался...sm.gif Был уверен что если частота задана, клок визард все клоки создал, то процессор просто не соберется если что-то не так с таймингами... Где посмотреть? Подскажите пожалуйста.

У меня питальник всего 800 мА на 12 вольт. Вроде бы в стандартном варианте плисинка жрет по 12 вольтам (ну понятно что до плисины куча регуляторов и преобразователей) около 300 мА, и я думал что это с запасиком... Но регистры я добавил на шину что на память идет, это мне позволило стабильно запускать проект с 32 КБайтами кеша, хотя среда говорила что никаких бонусов не будет, и предлагала Light Wight вместо Full registered, но я не пошел на поводуsm.gif... а вот 64 КБайта так и не пустились.....

последние про порог вхождения если честно я ваще не понялsad.gif... типа трудно разобраться, но потом быстро поедем? Меня не покидает чувство какого-то наколеночного продукта если честно. Проц - это проц, он сделан, описан, оттестирован, а тут шуршал шуршал, что-то собрал, оно как-то завелось, а вот как хрен знает... Все время сижу и думаю вот оно сейчас работает, а завтра? А если дождь пойдет?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Golikov A.   Spartan 6 + LwIP   Apr 26 2013, 17:51
- - Methane   Цитата(Golikov A. @ Apr 26 2013, 20:51) С...   Apr 26 2013, 18:00
- - Golikov A.   Спасибо капитан очевидность. Вопрос к тем кто уже...   Apr 27 2013, 04:37
|- - Methane   Цитата(Golikov A. @ Apr 27 2013, 07:37) С...   Apr 27 2013, 04:47
- - Golikov A.   1514 байт по данным ваершарка. на самом деле я ду...   Apr 27 2013, 05:42
|- - Methane   Цитата(Golikov A. @ Apr 27 2013, 08:42) 1...   Apr 27 2013, 05:55
- - Golikov A.   Потому я и спрашиваю кто это делал. Я уже крутил...   Apr 27 2013, 06:44
|- - Methane   Цитата(Golikov A. @ Apr 27 2013, 09:44) П...   Apr 27 2013, 06:49
- - Corvus   Я делал Начните с xapp1026, цифры, что там заяв...   Apr 27 2013, 14:18
- - Golikov A.   я начал с MACLite без дма, без фифо, на акси лайте...   Apr 27 2013, 17:09
|- - Corvus   Цитата(Golikov A. @ Apr 27 2013, 21:09) В...   Apr 27 2013, 18:04
- - Golikov A.   Спасибо погляжу. Про инвалидате кэша это понятно...   Apr 27 2013, 20:38
|- - Corvus   Цитата(Golikov A. @ Apr 28 2013, 00:38) п...   Apr 28 2013, 05:13
- - Golikov A.   То есть LWiP сам переходит на отложенное подтвержд...   Apr 28 2013, 06:23
- - akorud   Из опыта: DDR тут практически не влияет если кеш р...   Apr 28 2013, 17:39
|- - Methane   Цитата(akorud @ Apr 28 2013, 20:39) В lwI...   Apr 28 2013, 17:50
|- - Golikov A.   Цитата(akorud @ Apr 28 2013, 21:39) Из оп...   Apr 28 2013, 18:15
|- - alexPec   А может чтобы исключить задержки подтверждения и о...   Apr 28 2013, 19:59
|- - akorud   Цитата(Golikov A. @ Apr 28 2013, 20:15) Е...   Apr 29 2013, 07:23
- - Golikov A.   Вот кручу кэши, Кэш данные на 2 Бандка ДДР(адреса...   Apr 29 2013, 09:28
|- - akorud   Цитата(Golikov A. @ Apr 29 2013, 11:28) В...   Apr 29 2013, 19:04
- - Golikov A.   А что за плисины, какие частоты и сколько они в ит...   Apr 29 2013, 20:43
|- - akorud   Цитата(Golikov A. @ Apr 29 2013, 22:43) А...   Apr 30 2013, 21:06
- - Golikov A.   я без операционки... А почему частота системной ш...   May 1 2013, 04:36
|- - akorud   Цитата(Golikov A. @ May 1 2013, 06:36) я ...   May 1 2013, 08:09
|- - akorud   Цитата(Golikov A. @ May 1 2013, 13:36) Я ...   May 1 2013, 11:59
- - Golikov A.   А где времянку глянуть, это чей отчет? в суммари д...   May 1 2013, 13:26
|- - akorud   Цитата(Golikov A. @ May 1 2013, 15:26) хо...   May 1 2013, 18:41
- - Golikov A.   с цинком не было готового модуля, а с разводкой ДД...   May 1 2013, 19:06
|- - akorud   Цитата(Golikov A. @ May 1 2013, 21:06) с ...   May 1 2013, 19:52
|- - Golikov A.   Цитата(akorud @ May 1 2013, 23:52) Zynq и...   May 2 2013, 03:54
|- - akorud   Цитата(Golikov A. @ May 2 2013, 05:54) Бу...   May 6 2013, 17:58
- - Golikov A.   Спасибо большое! у меня отличие что виктим ...   May 6 2013, 18:23
|- - akorud   Цитата(Golikov A. @ May 6 2013, 20:23) Сп...   May 6 2013, 18:59
|- - Golikov A.   Цитата(akorud @ May 6 2013, 22:59) 6S45-3...   May 7 2013, 06:07
|- - akorud   Цитата(Golikov A. @ May 7 2013, 08:07) А ...   May 7 2013, 09:49
- - Golikov A.   то есть system.ucf вообще пуст? или он каким то ви...   May 8 2013, 06:21
|- - akorud   Цитата(Golikov A. @ May 8 2013, 08:21) то...   May 8 2013, 07:17
- - Golikov A.   угум спасибо. Это успокаивает, я все думал может т...   May 8 2013, 09:59
- - rsv   Вообще говоря могучий констрейн на ddr нужен, и со...   May 8 2013, 13:39
|- - akorud   Цитата(rsv @ May 8 2013, 15:39) Вообще го...   May 8 2013, 15:08
- - Golikov A.   про ДДР понятно, иначе оно и работать не будет. Та...   May 9 2013, 04:55
|- - akorud   Цитата(Golikov A. @ May 9 2013, 06:55) # ...   May 9 2013, 06:00
- - Golikov A.   это маленький кусок. Там акси и акси лайт акси ла...   May 9 2013, 17:50


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

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 07:45
Рейтинг@Mail.ru


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