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).
Офіційний логотип технології AMD64 | |
Розробка | AMD |
---|---|
Розрядність | 64-біт, 32-біт |
Поява | квітень 2003 року |
Тип архітектури | CISC |
Інструкції | змінної довжини |
Реалізація переходів | умовні jmp |
Порядок байтів | little-endian |
Регістри | |
16 | |
Рухома кома | 16 |
Архітектура і система команд
Архітектура вводить дві нові особливості:
- Розширені регістри:
- 8 регістрів спільного призначення (R8 — R15);
- всі 16 регістрів спільного призначення 64-бітні;
- 8 нових 128-бітних регістрів SSE (XMM8 — XMM15);
- новий командний префікс (REX) для доступу до розширених регістрів.
- Спеціальний режим «Long mode»:
- до 64-біт віртуальних адрес;
- 64-бітні вказівки команд (RIP);
- плоский (flat) адресний простір.
Історія створення
AMD64 було створено як альтернативу до архітектури IA-64, що розвивалась компаніями Intel та HP. Анонсовано архітектуру ще в 1999 році з повною специфікацією в серпні 2000. AMD64 з самого початку позиціювалась як еволюційний шлях додавання 64-розрядних обчислювальних можливостей до існуючої архітектури х86, на відміну від підходу Intel, що створювала абсолютно нову архітектура IA-64. Першим процесором, що підтримував цю технологію був AMD Opteron, який був випущений в квітні 2003 року.
Недоліки архітектури
Однією з особливостей роботи з 64-розрядними регістрами є «затирання» їх верхньої половини командами, які оперують з 32-розрядними операндами. Наприклад, від послідовності
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-бітну не внесла. Варто зазначити лише:
- трохи збільшені вимоги програм до пам’яті зумовлені збільшенням адрес і операндів;
- відсутнє суттєве збільшення продуктивності: при перекомпіляції програм можна очікувати приріст лише в межах 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-розрядному режимі (не працюють у режимі сумісності),:4-397 натомість інструкціїSYSENTER
/SYSEXIT
дозволені у обох режимах.:4-400 AMD64 не підтримуєSYSENTER
/SYSEXIT
у обох підрежимах long mode.: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-розрядного коду».
- При поверненні інструкцією
SYSRET
, якщо адреса неканонічна, процесори AMD64 викликають обробник [en] з рівнем привілеїв 3, в той час як процесори Intel 64 викликають його з рівнем привілеїв 0.:4-412
x86S
x86S — запропонована 2023-го року фірмою Intel подальша еволюція системи команд x86-64, спрямована на спрощення і відмову від застарілих режимів і особливостей процесора. Запропоновано вилучити підтримку 16- і 32-розрядних операційних систем, але 32-розрядні програми користувача зможуть виконуватися у 64-розрядному режимі ОС. Важливою зміною є початкове завантаження процесора — воно відбуватиметься одразу у 64-розрядному режимі (на відміну від «класичного» завантаження x86 у . Також з'явиться можливість активування 5-рівневих таблиць сторінок пам'яті без попереднього перемикання у режим з вимкненими сторінками.
Запропоновано вилучити наступні особливості і режими:
- Шлюзи сегментації
- 32-розрядне кільце захисту (VT-x більше не емулюватиме даний режим)
- Кільця захисту 1 та 2
- Доступ до з кільця 3. Іншими словами, програми користувача не зможуть виконувати інструкції
IN
/OUT
- «Рядкові» інструкції вводу/виводу
INS
таOUTS
- (включно з так званим unreal mode), 16-розрядний захищений режим, [en]
- 16-розрядний режим адресування (так званий «unrestricted guest mode» вилучається з VT-x)
- Підтримку контролера переривань (єдиний контролер переривань, що підтримуватиметься процесором, буде X2APIC)
- Деякі біти режимів операційної системи, які не використовуються
На думку Intel, ці зміни логічно слідують за вилученням підтримки керування адресною [en] (2008 рік), і вилученням підтримки 16- і 32-розрядних ОС у firmware Intel (2020 рік). Підтримка застарілих ОС у нових процесорах реалізовуватиметься за допомогою віртуалізації.
Див. також
Джерела
- . Stack Overflow (англ.). 24 червня 2012. Архів оригіналу за 8 лютого 2021. Процитовано 10 лютого 2021.
- (PDF). Intel. September 2013. Архів оригіналу (PDF) за 20 жовтня 2013. Процитовано 21 січня 2014.
- AMD Corporation (December 2016). (PDF). AMD64 Architecture Programmer's Manual. AMD Corporation. Архів оригіналу (PDF) за 13 липня 2018. Процитовано 25 березня 2017.
- . Pagetable.com. 9 листопада 2006. Архів оригіналу за 18 липня 2011. Процитовано 2 травня 2010.
- (PDF). VMware. Архів оригіналу (PDF) за 17 липня 2011. Процитовано 8 вересня 2010.
- (PDF). AMD. May 2018. с. 419. Архів оригіналу (PDF) за 20 серпня 2018. Процитовано 2 серпня 2018.
- Intel Publishes "X86-S" Specification For 64-bit Only Architecture. www.phoronix.com (англ.).
- Envisioning a Simplified Intel Architecture for the Future. intel.com (англ.).
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
x86 64 x86 64 x64 AMD64 Intel 64 64 bitova arhitektura mikroprocesora i vidpovidnij nabir instrukcij rozrobleni kompaniyeyu AMD Ce rozshirennya arhitekturi x86 z povnoyu zvorotnoyu sumisnistyu Nabir instrukcij x86 64 bulo vprovadzheno kompaniyeyu AMD na procesorah dlya servernih platform seriyi Opteron u kvitni 2003 roku dlya procesoriv domashnogo vikoristannya pochinayuchi iz procesoriv seriyi Athlon 64 u veresni 2003 roku Vsi podalshi modeli procesoriv Athlon 64 FX Athlon 64 X2 Phenom Turion 64 a takozh piznishni modeli Sempron takozh buli osnasheni cim naborom instrukcij Cej nabir instrukcij buv licenzovanij osnovnim konkurentom AMD kompaniyeyu Intel z neznachnimi dopovnennyami pid nazvoyu Intel 64 ranishe vidomi yak Em64t i Ia 32e v piznih modelyah procesoriv Pentium 4 Core 2 Xeon ta inshih Korporaciyi Microsoft i Sun Microsystems vikoristovuyut dlya poznachennya cogo naboru instrukcij termin x64 prote katalog z fajlami dlya arhitekturi v distributivah Microsoft nazivayetsya amd64 dlya porivnyannya nazva i386 vikoristovuyetsya dlya arhitekturi IA 32 oskilki pershim procesorom ciyeyi arhitekturi buv Intel 80386 AMD64 x86 64Oficijnij logotip tehnologiyi AMD64RozrobkaAMDRozryadnist64 bit 32 bitPoyavakviten 2003 rokuTip arhitekturiCISCInstrukciyizminnoyi dovzhiniRealizaciya perehodivumovni jmpPoryadok bajtivlittle endianRegistri16Ruhoma koma16Arhitektura i sistema komandArhitektura vvodit dvi novi osoblivosti Rozshireni registri 8 registriv spilnogo priznachennya R8 R15 vsi 16 registriv spilnogo priznachennya 64 bitni 8 novih 128 bitnih registriv SSE XMM8 XMM15 novij komandnij prefiks REX dlya dostupu do rozshirenih registriv Specialnij rezhim Long mode do 64 bit virtualnih adres 64 bitni vkazivki komand RIP ploskij flat adresnij prostir Istoriya stvorennyaAMD64 bulo stvoreno yak alternativu do arhitekturi IA 64 sho rozvivalas kompaniyami Intel ta HP Anonsovano arhitekturu she v 1999 roci z povnoyu specifikaciyeyu v serpni 2000 AMD64 z samogo pochatku poziciyuvalas yak evolyucijnij shlyah dodavannya 64 rozryadnih obchislyuvalnih mozhlivostej do isnuyuchoyi arhitekturi h86 na vidminu vid pidhodu Intel sho stvoryuvala absolyutno novu arhitektura IA 64 Pershim procesorom sho pidtrimuvav cyu tehnologiyu buv AMD Opteron yakij buv vipushenij v kvitni 2003 roku Nedoliki arhitekturiOdniyeyu z osoblivostej roboti z 64 rozryadnimi registrami ye zatirannya yih verhnoyi polovini komandami yaki operuyut z 32 rozryadnimi operandami Napriklad vid poslidovnosti mov eax 0 F0F0AABBh shl rax 32 Teper RAX F0F0AABB00000000h mov eax 2 programist mozhe ochikuvati sho registr RAX mistitime znachennya F0F0AABB00000002h Odnak ce ne tak znachennya RAX pislya navedenoyi poslidovnosti operacij dorivnyuye 2 oskilki komanda mov z 32 rozryadnim operandom obnulyuye vsi verhni biti takim chinom yiyi povedinka staye analogichnoyu komandi movzx Dana povedinka procesora ye povnistyu protilezhnoyu do vipadku roboti z 32 bitnimi registrami i yih polovinkami de verhnya polovina znachennya zavzhdi zberigayetsya mov ax 0 F0F0h shl eax 16 Teper EAX F0F00000h mov ax 2 Teper EAX F0F00002h yak i ochikuvalosya Znachnih nedolikiv 64 h bitna arhitektura v 32 bitnu ne vnesla Varto zaznachiti lishe trohi zbilsheni vimogi program do pam yati zumovleni zbilshennyam adres i operandiv vidsutnye suttyeve zbilshennya produktivnosti pri perekompilyaciyi program mozhna ochikuvati pririst lishe v mezhah 5 15 zbilsheni vimogi do miscya na zhorstkomu disku 64 h bitnimi OS sistemi potribno zberigati okremo 64 h ta 32 h bitni biblioteki dlya zabezpechennya sumisnosti NazviIsnuye dekilka variantiv nazv ciyeyi tehnologiyi yaki dekoli privodyat do plutanini i mozhut vvesti koristuvacha v omanu x86 64 Pervinnij variant Same pid ciyeyu nazvoyu firmoyu AMD bula opublikovana persha poperednya specifikaciya AA 64 Tak arhitekturu ohrestiv populyarnij neoficijnij dovidnik sandpile org vnisshi informaciyu praktichno vidrazu pislya publikacij pershoyi poperednoyi specifikaciyi za analogiyeyu z Ia 64 i sho yak i ranishe tak yiyi nazivaye yak AMD Architecture 64 Hammer Architecture Inkoli zustrichalasya nazva po pershih yadrah procesoriv sho rozroblyalisya otrimali nazvi Clawhammer obcenki i Sledgehammer kuvalda inkoli zvanih prosto Hammer molotok Amd64 Pislya vipusku pershih Hammer iv v nazvi arhitekturi z yavilasya nazva firmi rozrobnika Advanced Micro Devices Zaraz ye oficijnim dlya realizaciyi AMD Yamhill Tehnology Persha nazva realizaciyi tehnologiyi vid Intel Inkoli zgaduvalasya nazva CT Clackamas Technology EM64T Persha oficijna nazva realizaciyi Intel Rozshifrovuvalosya yak Extended Memory 64 Technology IA 32E Inkoli zustrichalosya spilno z EM64T chastishe dlya poznachennya dovgogo rezhimu yakij v dokumentaciyi Intel nazivayetsya Rezhimom IA 32E Intel 64 Potochna oficijna nazva arhitekturi Intel Postupovo Intel vidmovlyayetsya vid najmenuvan IA 32 IA 32E i EM64T na korist ciyeyi nazvi yaka teper ye yedinoyu oficijnoyu dlya ciyeyi arhitekturi x64 Oficijna nazva versij operacijnih sistem Windows i Solaris takozh vikoristovuvana yak nazva arhitekturi firmami Microsoft i Sun Microsystems Vidminnosti mizh AMD64 i Intel 64Robota instrukcij BSF i BSR u Intel 64 vidriznyayetsya vid AMD64 u vipadku koli dzherelo dorivnyuye nulyu a rozmir operanda 32 biti Procesor Intel vstanovlyuye prapor nul i zalishaye verhni 32 rozryadi cili neviznachenimi Format onovlennya mikrokodu a takozh registri MSR pov yazani z mikrokodom vidriznyayutsya u AMD64 i Intel 64 Intel zberigaye shemu onovlennya mikrokodu takoyu zh yak vona bula u yih 32 rozryadnih procesorah Intel 64 ne maye deyakih registriv MSR yaki vvazhayutsya arhitekturno vazhlivimi u AMD64 zokrema SYSCFG TOP MEM TOP MEM2 Instrukciyi SYSCALL SYSRET u Intel 64 pracyuyut lishe u 64 rozryadnomu rezhimi ne pracyuyut u rezhimi sumisnosti 4 397 natomist instrukciyi SYSENTER SYSEXIT dozvoleni u oboh rezhimah 4 400 AMD64 ne pidtrimuye SYSENTER SYSEXIT u oboh pidrezhimah long mode 33 U 64 rozryadnomu rezhimi blizhni perehodi z prefiksom 66H angl operand size override diyut po riznomu Intel 64 ignoruye danij prefiks i komanda maye 32 rozryadnie zmishennya zi znakom a vkazivnik instrukciyi ne vidsikayetsya U AMD64 zmishennya 16 rozryadne a verhni 48 rozryadiv vkazivnika instrukcij procesor ochishuye Procesori AMD pri vikonanni instrukcij FLD abo FSTP nad 80 rozryadnim znachennyam NaN prizvodyat do vinyatkovoyi situaciyi obrobki chisel z ruhomoyu komoyu v toj chas yak procesori Intel taku situaciyu ne sprichinyayut U Intel 64 vidsutnya mozhlivist zberezhennya i vidnovlennya zmenshenogo variantu stanu spivprocesora ruhomoyi komi za dopomogoyu instrukcij FXSAVE i FXRSTOR U procesorah AMD pochinayuchi z Opteron Rev E i Athlon 64 Rev D znovu z yavilasya obmezhena pidtrimka segmentaciyi za dopomogoyu bitu Long Mode Segment Limit Enable LMSLE Dane novovvedennya priznachalosya dlya polegshennya virtualizaciyi gostovogo 64 rozryadnogo kodu Pri povernenni instrukciyeyu SYSRET yaksho adresa nekanonichna procesori AMD64 viklikayut obrobnik en z rivnem privileyiv 3 v toj chas yak procesori Intel 64 viklikayut jogo z rivnem privileyiv 0 4 412x86Sx86S zaproponovana 2023 go roku firmoyu Intel podalsha evolyuciya sistemi komand x86 64 spryamovana na sproshennya i vidmovu vid zastarilih rezhimiv i osoblivostej procesora Zaproponovano viluchiti pidtrimku 16 i 32 rozryadnih operacijnih sistem ale 32 rozryadni programi koristuvacha zmozhut vikonuvatisya u 64 rozryadnomu rezhimi OS Vazhlivoyu zminoyu ye pochatkove zavantazhennya procesora vono vidbuvatimetsya odrazu u 64 rozryadnomu rezhimi na vidminu vid klasichnogo zavantazhennya x86 u Takozh z yavitsya mozhlivist aktivuvannya 5 rivnevih tablic storinok pam yati bez poperednogo peremikannya u rezhim z vimknenimi storinkami Zaproponovano viluchiti nastupni osoblivosti i rezhimi Shlyuzi segmentaciyi 32 rozryadne kilce zahistu VT x bilshe ne emulyuvatime danij rezhim Kilcya zahistu 1 ta 2 Dostup do z kilcya 3 Inshimi slovami programi koristuvacha ne zmozhut vikonuvati instrukciyi IN OUT Ryadkovi instrukciyi vvodu vivodu INS ta OUTS vklyuchno z tak zvanim unreal mode 16 rozryadnij zahishenij rezhim en 16 rozryadnij rezhim adresuvannya tak zvanij unrestricted guest mode viluchayetsya z VT x Pidtrimku kontrolera pererivan yedinij kontroler pererivan sho pidtrimuvatimetsya procesorom bude X2APIC Deyaki biti rezhimiv operacijnoyi sistemi yaki ne vikoristovuyutsya Na dumku Intel ci zmini logichno sliduyut za viluchennyam pidtrimki keruvannya adresnoyu en 2008 rik i viluchennyam pidtrimki 16 i 32 rozryadnih OS u firmware Intel 2020 rik Pidtrimka zastarilih OS u novih procesorah realizovuvatimetsya za dopomogoyu virtualizaciyi Div takozhx86 IA 64 Komp yuterna platformaDzherela Stack Overflow angl 24 chervnya 2012 Arhiv originalu za 8 lyutogo 2021 Procitovano 10 lyutogo 2021 PDF Intel September 2013 Arhiv originalu PDF za 20 zhovtnya 2013 Procitovano 21 sichnya 2014 AMD Corporation December 2016 PDF AMD64 Architecture Programmer s Manual AMD Corporation Arhiv originalu PDF za 13 lipnya 2018 Procitovano 25 bereznya 2017 Pagetable com 9 listopada 2006 Arhiv originalu za 18 lipnya 2011 Procitovano 2 travnya 2010 PDF VMware Arhiv originalu PDF za 17 lipnya 2011 Procitovano 8 veresnya 2010 PDF AMD May 2018 s 419 Arhiv originalu PDF za 20 serpnya 2018 Procitovano 2 serpnya 2018 Intel Publishes X86 S Specification For 64 bit Only Architecture www phoronix com angl Envisioning a Simplified Intel Architecture for the Future intel com angl