Чи може хтось пояснити, чи є різниця між архітектурами Intel64 та amd64?
Чи може хтось пояснити, чи є різниця між архітектурами Intel64 та amd64?
Відповіді:
З того, що я читав, розширена 64-розрядна технологія пам'яті (EM64T) - це реалізація Intel AMD64 AMD, і відмінності між Intel64 і AMD64 полягають у наступному:
Інструкції BSF та 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 (розмір операнду) поводяться по-різному. Один тип процесора очищає лише верхні 32 біти, тоді як інший тип очищає верхній 48 біт.
На сторінці x86 Wikipedia ви можете прочитати
У 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