ну могу попробовать на пальцах.
В процессоре есть много блоков. Например ALU. Этот блок занимается арифметикой.
Сам блок состаит из всяких подблоков. Например сумматоров. Сумматоров много, но они не 64битные, а например 16битные (утрирую для примера).
Чтобы сложить EAX + EDX нужно 4 такта для одного сумматора.
А можно взять 4 16 битных сумматора и сложить за один так (там есть хитрость с переносом, но пока не будем про неё).
Из за того что процессоры сейчас огромные (по числу транзисторов) и очень быстрые, то ограничение скорости света сказывается уже на сантиметровых размерах процессора. Как следствие, загрузить битики в сумматор из регистра (даже не из кеша, а из регистра) может потребовать такт, а то и больше.
В результате просто сложить два регистра может потребовать 1 такт на загрузку в сумматор, два такта на работу четырех сумматоров, такт на закгрузку результата в регистр. Итого 4.
Но если нам нужно сложить много регистров, то в среднем на сложение потребуется один такт (так как предварительные работы будут делаться параллельно).
Также, разные регистры могут быть сложены параллельно.
например:
ADD AX, BX
ADD CX, DX
можно выполнить параллельно. Так как есть свободные сумматоры и блоки по загрузки данных в сумматоры.
А вот
ADD AX, BX
ADD AX, CX
уже нельзя сделать паралельно, так как чтобы выполнить вторую операцию, надо точно знать результат первой. ПРоцессор в этом случае получает пенальти и простаивает..
А иногда получается, что нет сумматоров в наличии, они чем то другим заняты и операция увеличивается на два / три такта и суммирование далется одним.
В X86 семействе есть команды которые требуют сразу многих сложений для одной операции, например:
ADD EDX[SX], 88 # это операция увеличивает значение в памяти, при этом сначала выполняет сложение EDX + SX чтобы вычислить нужный адрес. Кажется, это называется индексная арифметика.
В резльутате получается, что переставив пару команд местами, производительность может вырости в разы, так как они будут лучше параллелиться. Не забываем что кроме регистров, есть еще разные флаги у процессора и там тоже есть свои конфликты.
Пока писал, понял, что было бы проще нагуглить статью, которая бы на картинках и нормальных примерах показывала бы принципы работы конвеера.