Loading AI tools
64-бітна версія набору інструкцій x86 З Вікіпедії, вільної енциклопедії
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).
Розробка | AMD |
---|---|
Розрядність | 64-біт, 32-біт |
Поява | квітень 2003 року |
Тип архітектури | CISC |
Інструкції | змінної довжини |
Реалізація переходів | умовні jmp |
Порядок байтів | little-endian |
Регістри | |
Загального призначення | 16 |
Рухома кома | 16 |
Архітектура вводить дві нові особливості:
AMD64 було створено як альтернативу до архітектури IA-64, що розвивалась компаніями Intel та HP. Анонсовано архітектуру ще в 1999 році з повною специфікацією в серпні 2000. AMD64 з самого початку позиціювалась як еволюційний шлях додавання 64-розрядних обчислювальних можливостей до існуючої архітектури х86, на відміну від підходу Intel, що створювала абсолютно нову архітектура IA-64. Першим процесором, що підтримував цю технологію був AMD Opteron, який був випущений в квітні 2003 року.
Однією з особливостей роботи з 64-розрядними регістрами є «затирання» їх верхньої половини командами, які оперують з 32-розрядними операндами.[1] Наприклад, від послідовності
mov eax, 0F0F0AABBh
shl rax, 32 ; Тепер RAX = F0F0AABB00000000h
mov eax, 2
програміст може очікувати, що регістр RAX міститиме значення F0F0AABB00000002h. Однак це не так: значення RAX після наведеної послідовності операцій дорівнює 2, оскільки команда mov
з 32-розрядним операндом обнулює всі верхні біти (таким чином, її поведінка стає аналогічною команді movzx
). Дана поведінка процесора є повністю протилежною до випадку роботи з 32-бітними регістрами і їх половинками, де верхня половина значення завжди зберігається:
mov ax, 0F0F0h
shl eax, 16 ; Тепер EAX = F0F00000h
mov ax, 2 ; Тепер EAX = F0F00002h, як і очікувалося
Значних недоліків 64-х бітна архітектура в 32-бітну не внесла. Варто зазначити лише:
Існує декілька варіантів назв цієї технології, які, деколи, приводять до плутанини і можуть ввести користувача в оману.
BSF
і BSR
у Intel 64 відрізняється від AMD64, у випадку коли джерело дорівнює нулю, а розмір операнда 32 біти. Процесор Intel встановлює прапор «нуль» і залишає верхні 32 розряди цілі невизначеними.SYSCFG
, TOP_MEM
, TOP_MEM2
.SYSCALL
/SYSRET
у Intel 64 працюють лише у 64-розрядному режимі (не працюють у режимі сумісності),[2]:4-397 натомість інструкції SYSENTER
/SYSEXIT
дозволені у обох режимах.[2]:4-400 AMD64 не підтримує SYSENTER
/SYSEXIT
у обох підрежимах long mode.[3]:33FLD
або FSTP
над 80-розрядним значенням NaN призводять до виняткової ситуації обробки чисел з рухомою комою, в той час як процесори Intel таку ситуацію не спричиняють.FXSAVE
і FXRSTOR
).SYSRET
, якщо адреса неканонічна, процесори AMD64 викликають обробник general protection fault[en] з рівнем привілеїв 3,[6] в той час як процесори Intel 64 викликають його з рівнем привілеїв 0.[2]:4-412x86S — запропонована 2023-го року фірмою Intel подальша еволюція системи команд x86-64, спрямована на спрощення і відмову від застарілих режимів і особливостей процесора.[7] Запропоновано вилучити підтримку 16- і 32-розрядних операційних систем, але 32-розрядні програми користувача зможуть виконуватися у 64-розрядному режимі ОС. Важливою зміною є початкове завантаження процесора — воно відбуватиметься одразу у 64-розрядному режимі (на відміну від «класичного» завантаження x86 у 16-розрядному «реальному» режимі. Також з'явиться можливість активування 5-рівневих таблиць сторінок пам'яті без попереднього перемикання у режим з вимкненими сторінками.
Запропоновано вилучити наступні особливості і режими:[8]
IN
/ OUT
INS
та OUTS
На думку Intel, ці зміни логічно слідують за вилученням підтримки керування адресною лінією A20[en] (2008 рік), і вилученням підтримки 16- і 32-розрядних ОС у firmware Intel (2020 рік). Підтримка застарілих ОС у нових процесорах реалізовуватиметься за допомогою віртуалізації.[8]
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.