2.3.1. Конвейер
ЦПУ Cortex способно выполнять большинство инструкций за один цикл. Также как и у ЦПУ ARM7 и ARM9, это достигается с помощью трехступенчатого конвейера.
ЦПУ Cortex-M3, также как и ARM7/ARM9, использует трехступенчатый конвейер. Однако Cortex-M3 также поддерживает предсказание переходов для минимизации количества перезагрузок конвейера
Во время выполнения одной инструкции, следующая - дешифрируется, а третья - считывается из памяти. Этот механизм отлично работает с линейным кодом, но, если требуется выполнить переход, то, прежде чем продолжить выполнение кода программы, потребуется очистка и перезагрузка конвейера. У ЦПУ ARM7 и ARM9 переходы существенно ограничивают производительность исполнения кода программы. Во избежание этого, трехступенчатый конвейер ЦПУ Cortex оснащен логикой предсказания переходов. Это означает, что при достижении инструкции условного перехода выполняется упреждающая выборка и, в результате, оба назначения инструкции условного перехода будут доступны для исполнения и снижение производительности не произойдет. Хуже обстоят дела с инструкциями косвенного перехода, т.к. в этом случае упреждающую выборку выполнить нельзя и перезагрузка конвейера может оказаться неизбежной.
Таким образом, конвейер - инструмент, от которого зависит результирующая производительность ЦПУ Cortex и который не требует каких-либо действий со стороны кода программы.
|