Нулевая накладная петля в DSP - PullRequest
0 голосов
/ 03 июля 2019

Blackfin выполняет цикл с нулевыми накладными расходами в циклическом буфере. Как он понимает, что количество итераций завершено без сравнения или уменьшения счетчика?

1 Ответ

0 голосов
/ 03 июля 2019

Из документации blackfin:

Секвенсор поддерживает механизм зацикливания на ноль.Секвенсор содержит две единицы цикла, каждая из которых содержит три регистра.Каждый блок цикла имеет регистр Loop Top (LT0, LT1), регистр Loop Bottom (LB0, LB1) и регистр Loop Count (LC0, LC1).
Два набора регистров цикла с нулевыми издержками реализуют циклы, используяаппаратные счетчики вместо программных инструкций для оценки условий цикла.После оценки обработка переходит на новый целевой адрес.Оба набора регистров включают регистры Loop Counter (LC), Loop Top (LT) и Loop Bottom (LB).

Это работает, если счетчик цикла уменьшается каждый раз, когда циклВведено.
Затем, когда программный счетчик достигает Loop Bottom, достаточно проверить значение этого счетчика для перехода

  • к следующей инструкции и выйти из цикла, если Loop Counter == 0
  • до Loop Top для продолжения итераций, если Loop Counter! = 0. Также необходимо уменьшить счетчик циклов одновременно.

Это обеспечивает цикл с нулевыми накладными расходами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...