История изменений
Исправление uin, (текущая версия) :
There are many different instruction pipeline microarchitectures, and instructions may be executed out-of-order. A hazard occurs when two or more of these simultaneous (possibly out of order) instructions conflict.
Собственно всё. Процессор обязан номинально соблюдать правильную последовательность кода, и соответственно если он суперскалярный и тем более ОоО он обязан отслеживать зависимость по данным, и вот тут вот:
add r3, r1, r2;
mul r4, r1, r3;
mov r2, r4;
все команды зависят друг от друга и mov не может скопировать r4 пока его не перемножат.
Исправление uin, :
There are many different instruction pipeline microarchitectures, and instructions may be executed out-of-order. A hazard occurs when two or more of these simultaneous (possibly out of order) instructions conflict.
Собственно всё. Процессор обязан номинально соблюдать правильную последовательность кода, и соответственно если он суперскалярный и тем более ОоО он обязан отслеживать зависимость по данным, и вот тут вот:
add r3, r1, r2;
mul r4, r1, r3;
mov r2, r4;
все команды зависят друг от друга и mov не может быть исполнен раньше чем перемножение.
Исходная версия uin, :
There are many different instruction pipeline microarchitectures, and instructions may be executed out-of-order. A hazard occurs when two or more of these simultaneous (possibly out of order) instructions conflict.
Собственно всё. Процессор обязан номинально соблюдать правильную последовательность кода, и соответственно если он суперскалярный и тем более ОоО он обязан отслеживать зависимость по данным, и вот тут вот:
add r3, r1, r2;
mul r4, r1, r3;
mov r2, r4;
все команды зависят друг от друга и mov не может быть исполнен раньше чем перемножение.