Может кто-нибудь объяснить, есть ли разница между архитектурами intel64 и amd64?
Может кто-нибудь объяснить, есть ли разница между архитектурами intel64 и amd64?
Ответы:
Из того, что я прочитал, 64-разрядная технология расширенной памяти (EM64T) является реализацией AMD AMD64, и различия между Intel64 и AMD64 заключаются в следующем:
Инструкции EM64T BSF и BSR действуют по-разному, когда источник равен 0, а размер операнда составляет 32 бита. Процессор устанавливает нулевой флаг и оставляет верхние 32 бита места назначения неопределенными.
AMD64 поддерживает 3DNow! инструкции. Это включает в себя предварительную выборку с кодом операции 0x0F 0x0D и PREFETCHW, которые полезны для сокрытия задержки памяти.
EM64T не имеет возможности сохранять и восстанавливать сокращенную (и, следовательно, более быструю) версию состояния с плавающей запятой (включая инструкции FXSAVE и FXRSTOR).
В EM64T отсутствуют некоторые специфичные для модели регистры, которые считаются архитектурными для AMD64. К ним относятся SYSCFG, TOP_MEM и TOP_MEM2.
EM64T поддерживает обновление микрокода, как и в 32-битном режиме, тогда как процессоры AMD64 используют другой формат обновления микрокода и управляют MSR.
Инструкция CPUID EM64T очень зависит от производителя, как это обычно для процессоров в стиле x86.
EM64T поддерживает инструкции MONITOR и MWAIT, которые используются операционными системами для лучшей работы с Hyper-threading.
Системы AMD64 позволяют использовать апертуру AGP в качестве IO-MMU. Операционные системы могут воспользоваться этим, чтобы позволить обычным устройствам PCI DMA в памяти выше 4 ГБ. Системы EM64T требуют использования отказов буфера, которые медленнее.
SYSCALL и SYSRET также поддерживаются только в режиме IA-32e (не в режиме совместимости) на EM64T. SYSENTER и SYSEXIT поддерживаются в обоих режимах.
Близкие ветви с префиксом 0 × 66 (размер операнда) ведут себя по-разному. Один тип ЦП очищает только верхние 32 бита, а другой тип очищает верхние 48 бит.
На странице x86 Википедии вы можете прочитать
В 1999-2003 гг. AMD расширила эту 32-разрядную архитектуру до 64-разрядных и назвала ее x86-64 в ранних документах, а затем - AMD64. Вскоре Intel приняла архитектурные расширения AMD под названием IA-32e, которое впоследствии было переименовано в EM64T и, наконец, в Intel 64.
Другими словами, дифференциатором является в основном маркетинг. Существуют специфичные для Intel и AMD расширения набора инструкций, но пока вы пишете программы в пространстве пользователя, вам обычно не нужно знать разницу.
you don't generally need to know the difference
Неправильно: даже незначительная разница в общих инструкциях очень важна. Bugs.chromium.org/p/nativeclient/issues/detail?id=2010