Какова реальная разница между типами команд x86 и с плавающей точкой?

Существует два основных типа инструкций микропроцессора: целочисленные и с плавающей точкой.

Соответственно, они выполняются на целочисленном блоке обработки и на блоке обработки с плавающей запятой. Это имеет смысл, верно?

Но что говорит процессору отправить инструкцию в IPU или FPU? Как он узнает, какая инструкция какого типа?

Может быть, в инструкции есть бит / флаг / LUT или что-то, что отличает одно от другого?

1 ответ

Решение

Каждая инструкция ЦП имеет код операции. Процессор просматривает код операции, чтобы определить, к какому исполнительному модулю должна быть отправлена ​​инструкция. Для команд с плавающей точкой на x86 код операции обычно начинается с 1101 1.... т.е. первая шестнадцатеричная цифра D и затем устанавливается бит MS следующей цифры. Например FADD (с плавающей запятой) начинается с D8 или же DCв зависимости от того, какие аргументы следуют. В отличие от кода операции для целочисленной инструкции ADD обычно начинается с x000 0... (x может быть 0 или же 1), то есть первая цифра 0 или же 8 и вторая цифра имеет свой бит MS ясно. В зависимости от аргументов это может быть 01, 02, 03, 04, 05, 80, 81 или же 83,

Другие вопросы по тегам