2013-05-06 1 views
1

Я знаю, что SSE являются альтернативой инструкциям с плавающей запятой x87, , но FPU x87 все еще используется в современных процессорах, таких как Ivy-Bridge или Haswell?Либо потоковые SIMD-расширения заменяют набор инструкций x87?

Были ли SSE заменены набором инструкций x87?

ответ

6

x90 FPU по-прежнему доступен. Он может или не может использовать то же оборудование, что и устройства SSE, и может быть быстрее или может быть медленнее, но ваш процессор по-прежнему будет понимать инструкции x87.

Так что нет, это не чистая замена (есть также вещи, которые вы могли бы сделать в x87, которые не поддерживаются в наборе команд SSE)

Но учтите, что если они вдруг убрана поддержка для инструкций x87, каждая программа, которая опиралась на нее, внезапно перестала бы работать.

Ouch.

+1

Однако, что касается большинства компиляторов, x87 в действительности не существует больше в 64-разрядных средах, так как они не будут генерировать код для него. Они обычно генерируют инструкции SSE даже для работы с одиночными числами с плавающей запятой. –

+4

@SebastianRedl: многие компиляторы C и C++ будут генерировать код для x87, когда явно используется тип 'long double'; для 'float' и' double', однако, вы абсолютно правы. –

+1

@StephenCanon True для компиляторов, где long double! = Double (не все из них), но кто использует длинный двойной? ;) –

0

Насколько мне известно, до сих пор нет замены SSE для инструкций x87 остаточных FPREM и FPREM1, которые обычно используются для реализации функций C, как fmod, remainder и remquo. Поэтому он все равно будет использоваться еще некоторое время.