Перейти к содержанию
    

Протокол IP на virtex5

Уважаемый All! Помогите!

Жизнь заставила самому взяться за написание стека протоколов UDP/IP на microblaze для обертки HARD TEMAC на virtex5. Причем имеется критичность по быстродействию. Но, как назло, Ethernet кадр, получаемый из TEMAC, содержит 14-байтовый заголовок, состоящий из МАС-адреса источника, - 6 байт, МАС-адреса получателя - 6 байт, и кода типа протокола - 2 байта. Всего 14 байт. В результате собственно IP или ARP заголовок является не выровненным по 32 битам, что не позволяет при его копировании использовать 32-битные команды пересылки, а вынуждает использовать 16-битные команды. Что, в свою очередь. убивает быстродействие. По моему мнению, решением могла бы быть вставка произвольного 16-битного слова в начало кадра, но как это сделать? Ну или я торможу в чем-то очень тривиальном...

Изменено пользователем Pavel_SSS

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уважаемый All! Помогите!

Жизнь заставила самому взяться за написание стека протоколов UDP/IP на microblaze для обертки HARD TEMAC на virtex5. Причем имеется критичность по быстродействию.

 

Что за приложение?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что за приложение?

Коммуникационное приложение на Virtex 5, с одной стороны ethernet, с другой 4 интерфейса 16хLVDS. Задача Virtex'а - обработать данные, двигающиеся в обе стороны, задача процессора на microblase - собрать все в UDP и отправить, а так же принять из UDP рассовать по интерфейсам. Скорость порядка 30 мегабайт в секунду. Сейчас, с 16-битными пересылками, скорость не достигается. Есть мнение, что с 32-битными пересылками будет достигаться с запасом. Сейчас TEMAC FIFO опрашиваются поллингом, вот думаю, если применить ДМА корку, сможет она сместить 32-битные слова на 2 позиции? Пока даже собираюсь от безысходности переписать TEMAC FIFO...

Изменено пользователем Pavel_SSS

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема решена очень просто. SDMA, который часть MPMC, позволяет копировать данные в буфер, начинающегося с любого адреса байта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...