Здравствуйте, netch80, Вы писали:
V>>Была сделана ставка на компилятор, что он сможет анализировать сценарии и грамотно раскидывать команды по VLIW. N>Вот объясни мне, каким образом можно "грамотно раскидывать команды", когда при среднем времени выполнения, условно, 2 такта, каждая из них может получить непредсказуемую задержку до 200 тактов?
В проце есть инструкции предзагрузки как отдельных ячеек памяти, так и целых регионов, компилятор может расставлять (и расставляет) такие команды в коде несколько "заранее".
В любом случае, эффективно обыграть эту проблему с целью утилизации выч. блоков получилось только с аппаратной многопоточностью, а не через ОоО и переименование регистров.
Единственно что, 2x аппаратная многопоточность оказалась недостаточной, более хорошо выглядели 4x и даже 16x многопоточность.
Просто, как обычно, оно проскакивало не в топах по техпроцессу и не в самых популярных де-факто архитектурах. ))