2014-01-22 2 views
0

Я увидел микроархитектуру Haswell из ниже ссылки, которая упоминает, что некоторые трубопроводы могут нести быстрый LEA, а некоторые могут работать медленным LEA, в чем смысл быстрого LEA и медленного LEA здесь? Связано с инструкцией LEA? Результаты поиска обычно являются предвзятостями в инструкции LEA и не приводят к прямому ответу. существуетЧто такое быстрый LEA и медленный блок LEA в микроархитектуре ЦП Inte?

http://www.realworldtech.com/haswell-cpu/4/

ответ

1

Наиболее специализированные блоки ALU только на части портов исполнения (с постоянными изменениями, сделанных из поколения в поколение), центральный процессор должен выбрать один из возможных портов в соответствии с инструкцией (или, скорее, микрооперация). Когда несколько идентичных портов могут сделать то же самое, он должен попытаться выполнить некоторую балансировку, и могут быть другие возможные факторы. Точный алгоритм, конечно, никогда не публикуется.

В этом случае операции LEA делятся на медленные и быстрые, в соответствии с this link, медленные из-за использования 3 операндов LEA (база, индекс, смещение). На самом деле это также дает вам монитор производительности для определения количества таких случаев, с которыми вы сталкиваетесь.

+0

спасибо. Меня интересует, почему LEA отделен от ALU, так как это всего лишь операция ALU (в основном добавить?) – Thomson

+0

@Thomson - * В основном *, но не * полностью *, это намного сложнее из-за дополнительного источника, и поэтому я полагают, что он использует выделенный блок выполнения - возможно, тот же, который обычно зарезервирован для операндов памяти (поскольку он уже существует и способен выполнять это вычисление). Простой Add/Sub ALU, вероятно, не справится с этим. См. Также этот ответ - http://stackoverflow.com/a/11389785/2016408 – Leeor