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

Непонятки с арбитром

Здравствуйте!

Ситуация такая: использую ядро Xilinx axi4-stream interconnect 2.1 для коммутации 8-ми потоков в один, фифо для всех слейвов настроены на пакетный режим с переключением по tlast, арбитраж установлен в режим Round-Robin, клоки слейвов и свитча одинаковы, клок мастера асинхронен им. Данные идут пачками таким образом, что все фифо заполняются одновременно на размер достаточный для переключения. На каждую пачку на входе арбитра ожидал увидеть на выходе пакеты последовательно с каждого из фифо, начиная с нулевого. Но! Первый раз выкачка началась не с нулевого, а со второго или третьего фифо. Немного удивился, но придумал, как это обойти - задержал входы каждого следующего фифо на один такт, относительно предыдущего. Т.о. нулевое фифо заполняется до момента переключения первым, затем первое фифо и т.д. Как и ожидалось, выкачка началась с нулевого фифо, НО затем арбитр перепрыгнул на 7 фифо. Порядок данных на выходе важен, поэтому меня такой вариант не устраивает. Попытался разобраться в коде ядра, но с наскока ничего не вышло.

Сталкивался ли кто-то с таким поведением, и насколько оно соответствует принципу Round-Robin?

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


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

Приветствую!

 

... На каждую пачку на входе арбитра ожидал увидеть на выходе пакеты последовательно с каждого из фифо, начиная с нулевого. Но! Первый раз выкачка началась не с нулевого, а со второго или третьего фифо. ...

Сталкивался ли кто-то с таким поведением, и насколько оно соответствует принципу Round-Robin?

Вполне соответствует - Round-Robin это всего лишь арбитраж с циклическим приоритетом для равновероятного доступа и он не гарантирует строго последовательный выбор каналов. Для этого надо самому контролировать последовательность выдачи данных с канальных FIFO.

 

Успехов! Rob.

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


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

Приветствую!

 

 

Вполне соответствует - Round-Robin это всего лишь арбитраж с циклическим приоритетом для равновероятного доступа и он не гарантирует строго последовательный выбор каналов. Для этого надо самому контролировать последовательность выдачи данных с канальных FIFO.

 

Успехов! Rob.

 

 

Понял, спасибо. Где-то в интернете набрел на похожую трактову Round-Robin, в итоге пришел к такому же выводу, но хотелось услышать стороннее мнение.

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


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

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

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

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

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

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

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

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

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

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