Movatterモバイル変換


[0]ホーム

URL:


Перейти до вмісту
Вікіпедія
Пошук

x86-64

Матеріал з Вікіпедії — вільної енциклопедії.
(Перенаправлено зX64)
AMD64, x86_64
Офіційний логотип технології AMD64
РозробкаAMD
Розрядність64-біт, 32-біт
Появаквітень 2003 року
Тип архітектуриCISC
Інструкціїзмінної довжини
Реалізація переходівумовні jmp
Порядок байтівlittle-endian
Регістри
Загального призначення16
Рухома кома16

x86-64 (x86_64,x64,AMD64,Intel 64) — 64-бітова архітектурамікропроцесора і відповідний набір інструкцій, розроблені компанієюAMD. Це розширення архітектуриx86 з повною зворотною сумісністю. Набір інструкцій x86-64 було впроваджено компанією AMD на процесорах для серверних платформ серіїOpteron у квітні 2003 року, для процесорів домашнього використання, починаючи із процесорів серіїAthlon 64 у вересні 2003 року. Всі подальші моделі процесорів (Athlon 64 FX, Athlon 64 X2, Phenom, Turion 64, а також пізнішні моделіSempron) також були оснащені цим набором інструкцій. Цей набір інструкцій був ліцензований основним конкурентом AMD — компанієюIntel (з незначними доповненнями) під назвою Intel 64 (раніше відомі як Em64t і Ia-32e) в пізніх моделях процесорівPentium 4, Core 2, Xeon та інших. КорпораціїMicrosoft іSun Microsystems використовують для позначення цього набору інструкцій термін «x64», проте каталог зфайлами для архітектури в дистрибутивах Microsoft називається «amd64» (для порівняння: назва «i386» використовується для архітектуриIA-32, оскільки першим процесором цієї архітектури бувIntel 80386).

Архітектура і система команд

[ред. |ред. код]

Архітектура вводить дві нові особливості:

  1. Розширені регістри:
    • 8 регістрів спільного призначення (R8 — R15);
    • всі 16 регістрів спільного призначення 64-бітні;
    • 8 нових 128-бітних регістрівSSE (XMM8 — XMM15);
    • новий командний префікс (REX) для доступу до розширених регістрів.
  2. Спеціальний режим«Long mode»:

Історія створення

[ред. |ред. код]

AMD64 було створено як альтернативу до архітектуриIA-64, що розвивалась компаніями Intel та HP. Анонсовано архітектуру ще в 1999 році з повною специфікацією в серпні 2000. AMD64 з самого початку позиціювалась як еволюційний шлях додавання 64-розрядних обчислювальних можливостей до існуючої архітектури х86, на відміну від підходу Intel, що створювала абсолютно нову архітектура IA-64.Першим процесором, що підтримував цю технологію був AMDOpteron, який був випущений в квітні 2003 року.

Недоліки архітектури

[ред. |ред. код]

Однією з особливостей роботи з 64-розрядними регістрами є «затирання» їх верхньої половини командами, які оперують з 32-розрядними операндами.[1] Наприклад, від послідовності

moveax,0F0F0AABBhshlrax,32; Тепер RAX = F0F0AABB00000000hmoveax,2

програміст може очікувати, що регістр RAX міститиме значення F0F0AABB00000002h. Однак це не так: значення RAX після наведеної послідовності операцій дорівнює 2, оскільки командаmov з 32-розрядним операндом обнулює всі верхні біти (таким чином, її поведінка стає аналогічною командіmovzx). Дана поведінка процесора є повністю протилежною до випадку роботи з 32-бітними регістрами і їх половинками, де верхня половина значення завжди зберігається:

movax,0F0F0hshleax,16; Тепер EAX = F0F00000hmovax,2; Тепер EAX = F0F00002h, як і очікувалося

Значних недоліків 64-х бітна архітектура в 32-бітну не внесла.Варто зазначити лише:

  • трохи збільшені вимоги програм до пам’яті зумовлені збільшенням адрес і операндів;
  • відсутнє суттєве збільшення продуктивності: при перекомпіляції програм можна очікувати приріст лише в межах 5-15%;
  • збільшені вимоги до місця на жорсткому диску 64-х бітнимиОС: системі потрібно зберігати окремо 64-х та 32-х бітні бібліотеки для забезпечення сумісності.

Назви

[ред. |ред. код]

Існує декілька варіантів назв цієї технології, які, деколи, приводять до плутанини і можуть ввести користувача в оману.

  • x86-64. Первинний варіант. Саме під цією назвою фірмою AMD була опублікована перша попередня специфікація.
  • AA-64. Так архітектуру охрестив популярний неофіційний довідник sandpile.org (внісши інформацію практично відразу після публікацій першої попередньої специфікації) за аналогією з Ia-64, і що як і раніше так її називає, як AMD Architecture 64.
  • Hammer Architecture. Інколи зустрічалася назва по перших ядрах процесорів, що розроблялися, отримали назви Clawhammer (обценьки) і Sledgehammer (кувалда) інколи званих просто Hammer (молоток).
  • Amd64. Після випуску перших Hammer'ів в назві архітектури з'явилася назва фірми-розробника Advanced Micro Devices. Зараз є офіційним для реалізації AMD.
  • Yamhill Tehnology. Перша назва реалізації технології від Intel. Інколи згадувалася назва CT (Clackamas Technology).
  • EM64T. Перша офіційна назва реалізації Intel. Розшифровувалося як Extended Memory 64 Technology.
  • IA-32E. Інколи зустрічалося спільно з EM64T, частіше для позначення довгого режиму, який в документації Intel називається «Режимом IA-32E».
  • Intel 64. Поточна офіційна назва архітектури Intel. Поступово Intel відмовляється від найменувань IA-32, IA-32E і EM64T на користь цієї назви, яка тепер є єдиною офіційною для цієї архітектури.
  • x64 Офіційна назва версій операційних систем Windows і Solaris, також використовувана як назва архітектури фірмами Microsoft і Sun Microsystems.

Відмінності між AMD64 і Intel 64

[ред. |ред. код]
  • Робота інструкційBSF іBSR у Intel 64 відрізняється від AMD64, у випадку коли джерело дорівнює нулю, а розмір операнда 32 біти. Процесор Intel встановлює прапор «нуль» і залишає верхні 32 розряди цілі невизначеними.
  • Формат оновлення мікрокоду, а також регістри MSR, пов'язані з мікрокодом, відрізняються у AMD64 і Intel 64. Intel зберігає схему оновлення мікрокоду такою ж, як вона була у їх 32-розрядних процесорах.
  • Intel 64 не має деяких регістрівMSR, які вважаються архітектурно важливими у AMD64, зокрема:SYSCFG,TOP_MEM,TOP_MEM2.
  • ІнструкціїSYSCALL/SYSRET у Intel 64 працюють лише у 64-розрядному режимі (не працюють у режимі сумісності),[2]:4-397 натомість інструкціїSYSENTER/SYSEXIT дозволені у обох режимах.[2]:4-400 AMD64 не підтримуєSYSENTER/SYSEXIT у обох підрежимахlong mode.[3]:33
  • У 64-розрядному режимі ближні переходи з префіксом 66H (англ.operand size override) діють по-різному: Intel 64 ігнорує даний префікс і команда має 32-розрядние зміщення зі знаком, а вказівник інструкції не відсікається. У AMD64 зміщення 16-розрядне, а верхні 48 розрядів вказівника інструкцій процесор очищує.
  • Процесори AMD при виконанні інструкційFLD абоFSTP над 80-розрядним значеннямNaN призводять до виняткової ситуації обробки чисел з рухомою комою, в той час як процесори Intel таку ситуацію не спричиняють.
  • У Intel 64 відсутня можливість збереження і відновлення зменшеного варіанту стануспівпроцесора рухомої коми (за допомогою інструкційFXSAVE іFXRSTOR).
  • У процесорах AMD, починаючи зOpteron Rev. E іAthlon 64 Rev. D, знову з'явилася обмежена підтримкасегментації за допомогою біту Long Mode Segment Limit Enable (LMSLE). Дане нововведення призначалося «для полегшення віртуалізації гостьового 64-розрядного коду».[4][5]
  • При поверненні інструкцієюSYSRET, якщо адреса неканонічна, процесори AMD64 викликають обробникgeneral protection fault[en] з рівнем привілеїв 3,[6] в той час як процесори Intel 64 викликають його з рівнем привілеїв 0.[2]:4-412

x86S

[ред. |ред. код]

x86S — запропонована 2023-го року фірмою Intel подальша еволюція системи команд x86-64, спрямована на спрощення і відмову від застарілих режимів і особливостей процесора.[7] Запропоновано вилучити підтримку 16- і 32-розрядних операційних систем, але 32-розрядні програми користувача зможуть виконуватися у 64-розрядному режимі ОС. Важливою зміною є початкове завантаження процесора — воно відбуватиметься одразу у 64-розрядному режимі (на відміну від «класичного» завантаження x86 у16-розрядному «реальному» режимі. Також з'явиться можливість активування5-рівневих таблиць сторінок пам'яті без попереднього перемикання у режим з вимкненими сторінками.

Запропоновано вилучити наступні особливості і режими:[8]

  • Шлюзи сегментації
  • 32-розрядне кільце захисту (VT-x більше не емулюватиме даний режим)
  • Кільця захисту 1 та 2
  • Доступ допортів вводу/виводу з кільця 3. Іншими словами, програми користувача не зможуть виконувати інструкціїIN /OUT
  • «Рядкові» інструкції вводу/виводуINS таOUTS
  • Реальний режим (включно з так званимunreal mode), 16-розрядний захищений режим,режим віртуального 8086[en]
  • 16-розрядний режим адресування (так званий «unrestricted guest mode» вилучається з VT-x)
  • Підтримку контролера перериваньIntel 8259 (єдиний контролер переривань, що підтримуватиметься процесором, будеX2APIC)
  • Деякі біти режимів операційної системи, які не використовуються

На думку Intel, ці зміни логічно слідують за вилученням підтримки керування адресноюлінією A20[en] (2008 рік), і вилученням підтримки 16- і 32-розрядних ОС уfirmware Intel (2020 рік). Підтримка застарілих ОС у нових процесорах реалізовуватиметься за допомогою віртуалізації.[8]

Див. також

[ред. |ред. код]

Джерела

[ред. |ред. код]
  1. Why do x86-64 instructions on 32-bit registers zero the upper part of the full 64-bit register?.Stack Overflow(англ.). 24 червня 2012. Архіворигіналу за 8 лютого 2021. Процитовано 10 лютого 2021.
  2. абвIntel 64 and IA-32 Architectures Software Developer’s Manual Volume 2 (2A, 2B & 2C): Instruction Set Reference, A-Z(PDF). Intel. September 2013. Архіворигіналу(PDF) за 20 жовтня 2013. Процитовано 21 січня 2014.
  3. AMD Corporation (December 2016).Volume 2: System Programming(PDF).AMD64 Architecture Programmer's Manual. AMD Corporation. Архіворигіналу(PDF) за 13 липня 2018. Процитовано 25 березня 2017.
  4. How retiring segmentation in AMD64 long mode broke VMware. Pagetable.com. 9 листопада 2006. Архіворигіналу за 18 липня 2011. Процитовано 2 травня 2010.
  5. VMware and CPU Virtualization Technology(PDF). VMware. Архіворигіналу(PDF) за 17 липня 2011. Процитовано 8 вересня 2010.[Архівовано 17 липня 2011 уWayback Machine.]
  6. AMD64 Architecture Programmer’s Manual Volume 3: General-Purpose and System Instructions(PDF). AMD. May 2018. с. 419. Архіворигіналу(PDF) за 20 серпня 2018. Процитовано 2 серпня 2018.
  7. Intel Publishes "X86-S" Specification For 64-bit Only Architecture.www.phoronix.com(англ.).
  8. абEnvisioning a Simplified Intel Architecture for the Future.intel.com(англ.).
Перегляд цього шаблону
  Тематичні сайти
Нормативний контроль
Зняті з виробництва
доx86
Ранні x86 (16-біт)
IA-32 (32-біт)
AMD64 (64-біт)
Сучасні
AMD64 (64-біт)
Списки
Мікроархітектура
Набори інструкцій
Отримано зhttps://uk.wikipedia.org/w/index.php?title=X86-64&oldid=44039327
Категорії:
Прихована категорія:

[8]ページ先頭

©2009-2025 Movatter.jp