«ЕС» - это общий термин для Единицы исполнения. АЛУ является одним из примеров исполнительного устройства. FADD и FMUL, то есть сумматор или умножитель с плавающей запятой, являются другими примерами, так как в этом отношении есть (есть) блок памяти для загрузки и хранения.
ЕС, имеющие отношение к инструкциям LEA, - это ALU (сложение, вычитание, И / ИЛИ и т. Д.) И AGU (блок генерации адреса). AGU связан с конвейерами памяти, TLB, кешем данных и т. Д.
Типичный процессор Intel x86, когда я писал первое руководство по Codegen, имел 2 ALU, 1 конвейер загрузки, связанный с AGU, конвейер адреса магазина, связанный со вторым AGU, и конвейер данных хранилища. По состоянию на 2016 год большинство из них имеют 3 или 4 ALU и более одной загрузочной трубы.
LEA является 3-мя инструкциями ввода - BaseReg + IndexReg * Scale + Offset. Так же, как режим адресации памяти x86, который на самом деле имеет 4-й вход, сегмент базы, который не является частью расчета LEA. 3 входа обязательно стоят больше, чем 2 входа, необходимые для ADD.
На некоторых машинах ALU может выполнять только 2 операции ввода. Поэтому LEA может выполняться только на AGU, в частности, на AGU, используемом для загрузки (поскольку ALU хранилища не записывает регистр). Это может означать, что вы не можете выполнять LEA одновременно с загрузкой или двумя LEA одновременно, тогда как вы можете выполнять две операции добавления и загрузки в одном цикле.
На других машинах LEA может выполняться одним, двумя или тремя ALU. Возможно, вместо AGU - возможно, а также ALU. Это доказывает большую гибкость.
Или, простые LEA, например, reg scale + offset, могут быть выполнены на ALU, тогда как самые большие LEA, например, breg + ireg scale + offset, могут быть ограничены или, возможно, даже разбиты на два мопа.
Итак, вопрос сводится к тому, какой ЕС (исполнительный блок) обрабатывает какие LEA? АЛУ или АГУ? Ответ зависит от машины.
Общий текст в руководстве по оптимизации может просто сказать «ЕС», а не «AGU или ALU, в зависимости от модели» или «в зависимости от того, какой ЕС способен обработать этот конкретный LEA».