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

Такты инструкций условного выполнения

До конца нет полного понимания, что происходит, когда инструкция условного выполнения не выполняется. Она заменяется на nop или вообще ничего в данный момент не выполняется, экономя 1 такт?

На сайте ARM есть примерчик: http://infocenter.arm.com/help/index.jsp?t...ch02s05s04.html

Напротив подобных команд написано в столбце циклов: 1 (not executed).

Допустим, есть еще более простой пример:

if (a>0)
{
    b += c;
}

 

Это сводится к двум командам:

CMP ...
ADD<> ...

 

Каждая из команд выполняется за такт. При выполнении условия (a > 0) будет затрачено 2 такта. Что будет, когда условие окажется ложным? Сама команда ADD<> не выполнится. В итоге 1 такт или 2 такта (с учетом nop) будут затрачены?

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


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

Там два разных примера и смысл там, насколько я понимаю, такой:

Первый пример - традиционный с условным переходом, где каждая ветка имеет свои уникальные инструкции, помимо общих инструкций проверки условия и условного перехода.

Второй пример - линейный с использованием условного выполнения на стадии каждой инструкции и если инструкция не нужна, она трактуется как NOP и выполняется за 1 такт - чудес не бывает))).

 

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

Первый лучше тем, что работает на всех ARM Cortem-M, включая M0.

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


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

она трактуется как NOP и выполняется за 1 такт - чудес не бывает))).

Ясно, спасибо. Хотел уточниться :)

Обычно для условий, после которых до 3 простых инструкций идет, рекомендуют в умных книжках использовать условное выполнение.

К сожалению, в очередной раз приходится решать задачу по прогнозированию числа требуемых тактов на алгоритм сигнальной обработки. Неблагодарное дело. Умозрительно всё не учтешь. С сигнальниками сравнивал STM32 F7. Зато, может, научусь умным вещам, разбираясь с тонкостями :) Так-то не каждый день приходится вникать в такое.

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


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

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

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

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

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

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

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

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

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

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