3

Мне сказали, что запущенные программы генерируют данные вероятности, используемые для оптимизации повторяющихся инструкций.
Например, если структура управления «if-then-else» была оценена TRUE 8/10 раз, то в следующий раз, когда выполняется инструкция «if-then-else», существует вероятность 80% будет ИСТИНА. Эта статистика используется для запроса оборудования для загрузки соответствующих данных в регистры при условии, что результат будет ИСТИНА. Цель состоит в том, чтобы ускорить процесс. Если оператор действительно оценивает значение TRUE, данные уже загружаются в соответствующие регистры. Если оператор оценивает FALSE, тогда другие данные загружаются и просто записываются над тем, что было принято «более вероятно».
Мне трудно понять, как расчеты вероятности не выставляют взвешенную стоимость исполнения решений, которые она пытается улучшить. Это что-то действительно происходит? Это происходит на аппаратном уровне? Есть ли имя для этого? Кажется, я могу найти любую информацию по этой теме.динамическая оптимизация запущенных программ

ответ

4

Это сделано. Это называется предсказанием ветвей. Стоимость нетривиальная, , но обрабатывается специальным оборудованием, поэтому стоимость почти полностью связана с дополнительной схемой - это не влияет на время, затраченное на выполнение кода.

Это означает, что реальная стоимость будет одной из упущенных возможностей - то есть, если бы был какой-то другой способ проектирования ЦП, который использовал это количество схем для какой-либо другой цели и получил больше от этого. Мое непосредственное предположение заключается в том, что ответ обычно отсутствует - предсказание ветвления обычно довольно эффективное с точки зрения отдачи от инвестиций.

+0

отраслевой прогноз. ах, спасибо. –

Смежные вопросы