26

Может кто-нибудь объяснить, есть ли разница между архитектурами intel64 и amd64?

2 ответа2

26

Из того, что я прочитал, 64-разрядная технология расширенной памяти (EM64T) является реализацией AMD AMD64, и различия между Intel64 и AMD64 заключаются в следующем:

  • Команды BS64 и BSR EM64T действуют по-разному, когда источник равен 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 (размер операнда) ведут себя по-разному. Один тип CPU очищает только верхние 32 бита, а другой тип очищает верхние 48 бит.

8

На странице x86 Википедии вы можете прочитать

В 1999-2003 гг. AMD расширила эту 32-разрядную архитектуру до 64-разрядных и назвала ее x86-64 в ранних документах, а затем - AMD64. Вскоре Intel приняла архитектурные расширения AMD под названием IA-32e, которое впоследствии было переименовано в EM64T и, наконец, в Intel 64.

Другими словами, дифференциатором является в основном маркетинг. Существуют специфичные для Intel и AMD расширения для набора инструкций, но пока вы пишете программы в пространстве пользователя, вам обычно не нужно знать разницу.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .