Ответ 1
Примечание к истории: Intel реализовала свою 64-битную ISA, которую они назвали IA-64, которая была полной заменой 32-разрядной ISA-сервера x86 в их процессорах Itanium. IA-64 не был обратно совместим с x86 и никогда не стал популярным за пределами рынка серверов высокого класса.
AMD создала ISA AMD64 как постепенную эволюцию по сравнению с ISA x86
. AMD64 быстро завоевала популярность и признание, и Intel также приняла его, но в разное время называла его IA-32e, EM64T и Intel64. Intel64 и AMD64 почти идентичны с несколькими отличиями.
Wikipedia перечисляет эти различия:
-
Команды Intel 64 BSF и BSR действуют иначе, чем AMD64, когда источник равен нулю, а размер операнда - 32 бита. Процессор устанавливает флаг нуля и оставляет верхние 32 бита адресата undefined.
-
AMD64 требует другого формата обновления микрокода и управления MSR (регистры, специфичные для модели), в то время как Intel 64 реализует обновление микрокода без изменений от своих 32-разрядных процессоров.
-
Intel 64 не имеет некоторых MSR, которые считаются архитектурными в AMD64. К ним относятся SYSCFG, TOP_MEM и TOP_MEM2.
-
Intel 64 разрешает SYSCALL/SYSRET только в 64-битном режиме (не в режиме совместимости) и позволяет SYSENTER/SYSEXIT в обоих режимах. AMD64 не имеет SYSENTER/SYSEXIT в обоих под-режимах длинного режима.
-
В 64-битном режиме рядом с ветвями с префиксом размера 62H (операнд размер) ведут себя по-разному. Intel 64 игнорирует этот префикс: инструкция имеет расширенное смещение 32-битного знака, а указатель инструкции не усечен. AMD64 использует 16-битное поле смещения в инструкции и очищает верхние 48 бит указателя инструкции.
-
Процессоры AMD повышают значение Invalid Exception с плавающей запятой при выполнении FLD или FSTP 80-битной сигнализации NaN, в то время как процессоры Intel не работают.
-
Intel 64 не имеет возможности сохранять и восстанавливать уменьшенную (и, следовательно, более быструю) версию состояния с плавающей запятой (с использованием инструкций FXSAVE и FXRSTOR).
-
Недавние процессоры AMD64 снова включили ограниченную поддержку сегментации с помощью бит Long Range Segment Limit Enable (LMSLE) для облегчения виртуализации 64-битных гостей.
-
При возврате к неканоническому адресу с использованием SYSRET процессоры AMD64 выполняют общий обработчик ошибок защиты на уровне привилегий 3, а на процессорах Intel 64 - на уровне привилегий 0.