Яка різниця між Intel 64 та AMD64?


29

Чи може хтось пояснити, чи є різниця між архітектурами Intel64 та amd64?


3
IA64 = архітектура VLIW Intel / HP Itanium. AMD64 - це розширення розробленого AMD стандартного набору інструкцій x86.

6
Маркетинг. AMD розробила його, а потім ліцензувала його на Intel. AMD ліцензує x86 від Intel, а Intel ліцензує x64 від AMD. Це гарантує, що жоден не може подати до суду на іншого, не втрачаючи прав на продаж усієї своєї лінійки процесорів, оскільки вони б самі стріляли в ногу.

1
Ви маєте на увазі x86-64 або IA64? До такого ж , як AMD64 (буквально точного ж набору інструкцій, або вам буде потрібно пересобрать всі програми для одного процесора або інших), а останній є абсолютно іншою архітектурою процесора.
Прорив

2
Я маю на увазі x86-64. Спочатку Intel використовували імена IA-32e та EM64T, перш ніж остаточно влаштуватися на Intel 64 для їх реалізації.
Погром

Відповіді:


26

З того, що я читав, розширена 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 біт.


Звідки ви прочитали цей текст?
Тамара Війсман

4
Ну, деякі форуми / блоги + wikipedia ( en.wikipedia.org/wiki/EMT64#Intel_64 ). Також я переглянув деякі посібники від Intel та AMD.
Погром

@Nubok: Будь ласка, додайте різницю щодо впровадження архітектури за допомогою технологій (звичайно, 64-бітна версія)  !
user2284570

IO-MMU - велика справа - відсутність цього означає, що вам доведеться накопичити нетривіальну кількість низької пам’яті для буферизації (64MB - поточний дефолт в Linux). Пізніше Intel представила щось подібне як VT-d і використовувало його для дратівливого рівня сегментації продукту - однак надійність коду (а в деяких випадках і кремнію), як правило, призводила до того, що він не використовувався за замовчуванням в Linux для оригіналу цілей.
GreenReaper

8

На сторінці x86 Wikipedia ви можете прочитати

У 1999-2003 рр. AMD розширила цю 32-бітну архітектуру до 64 біт і назвала її як x86-64 у ранніх документах, а пізніше як AMD64. Незабаром Intel прийняла архітектурні розширення AMD під назвою IA-32e, яке пізніше було перейменовано на EM64T і нарешті на Intel 64.

Іншими словами, диференціатором в основному є маркетинг. У наборі інструкцій є специфічні розширення для Intel та AMD, але поки ви пишете програми в просторі користувачів, вам взагалі не потрібно знати різницю.


3
you don't generally need to know the differenceНеправильно: навіть незначна різниця в загальних інструкціях є дуже важливими bugs.chromium.org/p/nativeclient/issues/detail?id=2010
user2284570

4
Неправильно: навіть різниця незначна на загальні інструкції дуже важливі , щоб бути справедливим, (1), він сказав , що ви не в цілому повинні знати ці відмінності. Очевидно, є конкретні випадки, коли це може мати значення. (2) більшість з нас не пише затверджену пісочницю, яка повинна захищати будь-які доступні інструкції.
Ерік Ш
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.