X86-64
x86-64 (такође познат и као x64, x86 64 и amd64) је 64-битна верзија скупа инструкција x86. Он подржава далеко веће количине виртуелне и физичке меморије него што је то могуће код претходника, омогућавајући програмима складиштење веће количине података у меморији. x86-64 такође пружа 64-битне регистре опште намене и бројне друге побољшања. Оригиналну спецификацију је направио АМД, а спроведена је од стране АМД-а, Интела, VIА, и других. Потпуно је компатибилан са 16-битним и 32-битним x86 кодом. Пошто су потпуни 16-битни и 32-битни скупови инструкција остали имплементирани у хардверу без икакве емулације, постојећи x86 програми раде без проблема у компатибилности или лошијих перформанси, док постојеће апликације које користе нове карактеристике дизајна процесора могу постићи побољшања перформанси.

Пре избацивања, "x86-64" и "x86_64" су се односили на скуп инструкција. После избацивања, АМД је назван АМД64.
Intel initially used the names IA-32e and EM64T before finally settling on Intel 64 for their implementation. Some in the industry, including Apple, Интел је у почетку користио имена ИА-32Е и ЕМ64Т пре коначног решења да се користи име Интел 64 за њихово спровођење. Неки у индустрији, укључујући и Епл, користити x86-64 и x86_64, док други, посебно Сан Мајкросистемс (сада Оракл) и Мајкрософт, користе x64 док BSD породица оперативних система и неколико Линукс дистрибуција користе АМД64.

АМД К8 процесор је први имплементирао архитектуру, и ово је био први значајан додатак x86 архитектури коју је дизајнирала нека компанија осим Интела. Интел је био принуђен да следи тај пример и увео је модификовану НетБрст (енгл. NetBurst) породицу која је била потпуно софтверски компатибилана са дизајном и спецификацијама АМД-а. VIА Текнолоџис (енгл. VIA Technologies) је представио x86-64 у својој VIА Исаја (енгл. Isaiah) архитектури, са VIА Нано.

x86-64 спецификација се разликује од Интелове Итаниум (раније ИА-64) архитектуре, чији скуп инструкција није компатибилан са x86 архитектуром.

АМД64 

Скуп инструкција из АМД64 је имплементиран у АМД-овом Оптерону, Атлон64, Атлон 64 FX, Атлон64 X2, Атлон II, Атлон X2, Турион 64, Турион 64 X2, касније и Семпрон, Феном, Феном II, FX, и Фјужн (енгл. Fusion) процесорима.

Историја АМД64 
АМД64 је настао као алтернатива радикално другачије ИА-64 архитектуре, која је дизајниран од стране компаније Интел и ХП. Првобитно објављена у 1999 са пуном спецификацијом у августу 2000, АМД64 архитектура је направљена да се дода 64-битно рачунарство на постојећу x86 архитектуру, за разлику од Интеловог стварања потпуно нове 64-битну архитектуру са ИА-64.

Први АМД64 процесор, Оптерон, је избачен у априлу 2003.

Карактеристике архитектуре 

Примарна карактеристика АМД64 је доступност 64-битних процесорских регистара, на пример rax, rbx и слично, 64-битне аритметичке и логичке операције целим бројем, и 64-битни виртуелне адресе. Дизајнери су искористили прилику да направе и друга побољшања. Најзначајније промене укључују:
 64-битни цео број: Сви регистри опште намене (ГПР) су проширена са 32 бита на 64 бита, и све аритметичке и логичке операције, операције меморија-регистар и регистар-меморија, итд, сада могу да раде директно на 64-битним целим бројевима.
 Додатни регистри: Поред повећања величине регистара опште намене, број именованих регистара опште намене је повећан са осам (eax, ebx, ecx, edx, ebp, esp, esi, edi) у x86 на 16 (rax, rbx, rcx, rdx, rbp, rsp, rsi, rdi, r8, r9, r10, r11, r12, r13, r14, r15). Због тога је могуће држати више локалних променљивих у регистрима, а не на стеку, и да регистри чувају често приступљене константе; аргументи за мале и брзе потпрограме може такође бити усвојен у регистрима у већој мери. АМД64 и даље има мање регистре од многих заједничких РИСЦ скупова инструкција (који обично имају 32 регистара) или машина сличних ВЛИВ-у, као што су ИА-64 (који има 128 регистара). Међутим, имплементација АМД64 може имати далеко више интерних регистара од броја архитектонских регистара изложених по скупу инструкција (види преименовање регистара).
 Додатни XMM (ССЕ) регистри: Слично, број 128-битних XMM регистара (користи се за стриминг СИМД инструкција) је такође повећан са 8 на 16.
 Већи простор за виртуелно адресирање: АМД64 архитектура дефинише 64-битни виртуелни адресни формат, од којих се 48 бита користе у тренутним имплементацијама. Ово омогућава до 256 терабајта (248 бајтова) виртуелног адресног простора. Дефиниција архитектуре омогућава да ова граница буде подигнута у будућим имплементацијама до пуних 64 бита, проширујући виртуелни адресни простор до 16 ексабајта (264 бајтова). То је много у односу на само 4 гигабајта (232 бајта) за x86.
То значи да се над веома великим датотекама може бити оперисан преко мапирања целог фајла у адресни простор процеса (што је често много брже него рад позивима читања и писања), уместо мапирања региона датотеке у и ван адресног простора.
 Већи физички адресни простор: оригинална имплементација АМД64 архитектуре имплементира 40-битне физичке адресе и тако могао да адресира до 1 ТБ (240 бајта) РАМ меморије. Тренутне имплементације АМД64 архитектуре (почевши од АМД 10х микроархитектуре) проширују га на 48-битне физичке адресе и због тога може да адресира и до 256 ТБ РАМ-а. Архитектура дозвољава продужење до 52 бита у будућности (ограничен због page table entry формата); ово би омогућило адресирање до 4 петабајта РАМ-а. За поређење, 32-битни x86 процесори су ограничени на 64 GB РАМ меморије у Physical Address Extension режиму, или 4 GB РАМ-а без ПАЕ режима.
 Већи физички адресни простор у легаси (енгл. legacy) режиму: Када ради у режиму легаси АМД64 архитектура подржава ПАЕ режим, као и већина најновијих x86 процесора, али АМД64 протеже ПАЕ од 36 бита до архитектонског лимита од 52 бита физичкое адресе. Било каква имплементација стога дозвољава исту границу физичке адресе у дугом режиму.
 ССЕ инструкције: Оригинална АМД64 архитектура је усвојила Интелов ССЕ и ССЕ2 и као основне инструкције. ССЕ3 инструкције су додате у априлу 2005. ССЕ2 је алтернатива ИЕЕЕ 80-битној прецизности x86 скупа инструкција са избором од ИЕЕЕ 32-битног или 64-битног рачунања са покретним зарезом. Ово обезбеђује операцијама са покретним зарезом да буду компатибилне са многим другим савременим процесорима. ССЕ и ССЕ2 инструкције су такође проширене да раде на осам нових XMM регистара. ССЕ и ССЕ2 су доступни у 32-битном режиму у модерним x86 процесорима; Међутим, ако се они користе за 32-битне програме, ти програми ће радити само на системима са процесорима који имају ову функцију. Ово није проблем у 64-битним програмима, јер сви АМД64 процесори имају ССЕ и ССЕ2 и, па користећи ССЕ и ССЕ2 инструкције и уместо x86 инструкција не смањује скуп машина на којима се x86-64 програми могу покренути. ССЕ и ССЕ2 су генерално бржи и дуплирају већину карактеристика традиционалнеих x86 инструкција, MMX, и 3DNow!.
 No-Execute bit: "NX" бит (63. у page table) омогућава оперативном систему да одреди које странице виртуелне адресе могу садржати извршни код а које не могу. Покушај да се изврши код са странице означене са " no execute" ће резултовати у преступу при приступању меморији, сличано покушај да се пише преко " read-only" стране. Ово би требало да отежа злонамерном коду да преузме контролу над системом преко " buffer overrun" или "unchecked buffer" напада. Слична функција је доступна на x86 процесорима од 80286 као атрибутом сегментних дескриптора, међутим ово ради само на целом сегменту истовремено.

Сегментирано адресирање је дуго сматрано застарелим начином рада, а сви актуелне ПЦ (PC) оперативни системи на снази заобилазе га, постављајући све сегменте на базну адресу нуле и (у 32-битној имплементацији) величине 4 GB. АМД је први продавац породице x86 који је спровео "no-execute" у линеарном моду адресирања. Функција је такође доступна у легаси режиму на АМД64 процесорима, а однедавно и на Интел x86 процесорима, када се користи ПАЕ.

 Уклањање старијих карактеристика: неколико карактеристика "системског програмирања" x86 архитектуре се не користе у модерним оперативним системима и нису доступни на АМД64 у дугом (64-битном и компатибилном) режиму. Ово укључује сегментирано адресирање (иако сегменти ФС и ГС сегменти остају у закржљалој форми за употребу као додатних базних показивача ОС структурама), који је механизам за промену стања задатка, и виртуелни 8086 мод. Ове особине остају у потпуности имплементиране у "легаси режиму", што дозвољава овим процесорима покретање 32-битних и 16-битних оперативних система без модификација. Неке инструкције за које се показало да су ретко коришћене нису подржане у 64-битном режиму: чување/враћање сегмента регистара на стек, чување/враћање свих регистара, децимална аритметика, BOUND и INTO инструкције, " far " скокове и позива са непосредним операнадима.

Детаљи виртуелног адресног простора

Канонска форма адресирања 
Иако су виртуелне адресе ширине 64 бита у 64-битном режиму, актуелне имплементације (и сви чипови за које се зна да су у фази планирања) не дозвољавају да се цео виртуелни адресни простор од 264 бајтова (16 ЕБ) користи. Већини оперативних система и апликација неће требати толики адресни простор за догледну будућност (на пример, Windows имплементација за АМД64 су користи само 16 ТБ, или 44 бита), па спровођење такве широке виртуелне адресе ће једноставно повећати сложеност и Трошкови без стварне користи. АМД је стога одлучио да, у првим имплементацијама архитектуре, само најмање значајних 48 бита виртуелне адресе би преводилац адреса заправо користио. Даље, од бита 48 до 63 сви морају бити копија бита 47, или процесор ће подићи изузетак. Адресе које испуњавају ово правило се називају "канонске форме." Адресе канонске форма иду од 0 до 00007FFF'FFFFFFFF и од FFFF8000'00000000 до FFFFFFFF'FFFFFFFF, за укупно 256ТБ употребљивог виртуелног адресног простора.

Ово омогућава важну функцију за каснију скалабилност на право 64-битно адресирање: многим оперативним системима (укључујући Windows НТ породицу) узима вишу половину простора адреса (назван kernel простор) за себе и оставља доњу половину (кориснички простор) за апликациони код, корисничке стекове, хипове и друге регионе података. Дизајн "канонске адресе" обезбеђује да свака компатибилна имплементација АМД64 има две меморијске половине: доња половина почиње на адреси 00000000'00000000 и "расте нагоре" како више виртуелних адреса постану доступни, док је виша половина "усидрена" на врх адресе простора и расте надоле. Такође, фиксирање садржаја неискоришћене бит-них адреса спречава њихову употребу од стране оперативног система као flag, privilege markers, итд, зато што би таква употреба могла да постане проблематична када је архитектура проширена да спроводи више битова виртуелних адреса.

Page table структура 
Дуги режим 64-битног адресирања ("long mode") је надскуп Physical Address Extensions (ПАЕ), због тога, величина страница може бити 4 КБ (212 бајтова) или 2 MB (221 бајт). Дуги режим такође подржава странице величине 1 GB (230 бајтова). Уместо page table система на три нивоа којег користе системи у ПАЕ режиму, системи који раде у дугом моду користи четири нивоа page table: ПАЕ-ов Page-Directory Pointer Table продужен је од 4 уноса до 512, а додатна Page-Map Level 4 (ПМЛ4) табела се додаје, која садржи 512 ставки у 48-битним имплементацијама. У имплементацијама које пружају веће виртуалне адресе, потоња табела би расла или да задовољи довољне уносе да опише цео ранг адреса, до теоријског максимума од 33.554.432 уноса за 64-битну имплементацију, или ће бити преранкирани новим нивоом за мапирање као што је ПМЛ5. Пуна хијерархија мапирања страница од 4 MB за цели 48-битни простор би заузео више од 512 MB РАМ-а (око 0,196% од 256 ТБ целог виртуелног простора)

Границе оперативних система 
Оперативни систем такође може ограничити виртуални простор за адресирање. Детаљи су дати у одељку „Компатибилност са оперативним системима и карактеристике“.

Детаљи физичког адресног простора 
Тренутне АМД64 имплементације подржавају физички адресни простор до 248 бајтова РАМ-а или 256 ТБ. Већа количина инсталираног РАМ-а омогућава оперативном систему да држи више "pageable" података и кода у РАМ-у, што може побољшати перформансе, мада ће различита оптерећења имати различите тачке умањујућих повратка.

Горња граница меморије која се може користити у датом x86-64 систему зависи од разних фактора и могу бити далеко мање него максимум процесора. На пример, од јуна 2010, нема познатих матичних плоча за x86-64 процесором који подржавају 256 ТБ РАМ меморије. Оперативни систем може да постави додатна ограничења на количину РАМ који је употребљив или подржан. Детаљи о овоме су дати у одељку тачки су дате у " Компатибилност са оперативним системима и карактеристике ".

Режими рада 

Традиционални x87 ФПУ регистарски стек није укључен у екстензији регистара величине фајлова у 64-битном режиму.

Дуги режим 
Ово је примарни начин рада архитектуре. То је комбинација процесоровог "нејтив" (енгл. native) 64-битног режима и комбинованог 32 и 16-битног режима. Користе га 64-битни ОС-и. Под 64-битним оперативним системом, 64-битни програми раде у 64-битном режиму, а 32-битни и 16-битни заштићени режим апликације (које не морају да користите стварни или виртуелни 8086 режим како би се извршио било кад) ради у режиму компатибилности. Real-mode програми и програми који користе виртуелни 8086 режим у било ком тренутку не може да се покрену у дугом моду, осим ако није у питању емулирање софтвера.

Пошто је основни скуп инструкција исти, скоро да не постоји умањење перформанси у заштићеном режиму x86 кода. Ово је другачије од Интеловог ИА-64, где разлике у основном скупу инструкција значи да рад 32-битног кода се мора урадити или емулацијом x86 (што чини процес споријим) или са наменском x 86 процесором. Међутим, на платформи x86-64, многе апликације могу да имају користи од 64-битног рекомпајлирања, због додатних регистара у 64-битном коду и гарантоване ССЕ2 ФПУ подршке, коју могу да користе компајлер за оптимизацију. Међутим, апликацијама које редовно рукују целим бројевима ширим од 32 бита, као што су криптографски алгоритми, биће потребно прерађивање кода како би искористиле предности 64-битних регистара.

Легаси режим 
Режим користи 16-бита ("заштићени мод" или "прави мод") и 32-битне оперативне системе. У овом режиму, процесор се понаша као 32-битни x86 процесор, а само 16-битни и 32-битни код може бити извршен. Легаси режим омогућава максимално 32-битно виртуелно адресирање који ограничава виртуелни адресни простор на 4 GB. 64-битни програми се не могу покренути из овог режима.

АМД64 имплементације 
Следећи процесори имплементирају АМД64 архитектуру:
 Opteron
 Athlon 64
 Athlon 64 X2
 Athlon 64 FX
 Athlon II (праћен "X2", "X3", or "X4" који означавају број језгара, и XLT модели)
 Turion 64
 Turion 64 X2
 Sempron ("Палермо" E6 и сви "Манила" модели)
 Phenom (праћен "X3" or "X4" који означавају број језгара)
 Phenom II (праћен "X2", "X3", "X4" or "X6 који означавају број језгара)
 FX
 Fusion

Интел 64 
Интел 64 је Интелова имплементација x86-64. Коришћен је у новијим верзијама Пентијума 4, Целерон Д, Ксеон и Пентијум Дуал Кор (енгл. Pentium Dual-Core) процесора, Атом 230, 330, D410, D425, D510, D525, N450, N455, N470, N475, N550, N570, N2600 и N2800 и све верзије Пентиум Икстрим Едишн (енгл. Pentium Extreme Edition), Кор 2 (енгл. Core 2), Кор и7, Кор и5, Кор и3 процесора.

Историја Интела 64 
Кроз историју, АМД је развијао и правио процесоре по Интеловом дизајну, али са појавом x86-64 улоге су замењене. Интел се нашао у ситуацији где је прихватио архитектуру коју је АМД направио као екстензију Интелове x86 процесорске линије. Интелов пројекат је оригинално назван Јамхил (енгл. Yamhill). Након година негирања постојања радова на овом пројекту, Интел је објавио да он заправо постоји. Крег Берет, ПУО Интела у то време, је признао да је ово једна од најлошије чуваних тајни.

Интелов назив за овај скуп инструкција је променио неколико пута. Крајем 2006 Интел је почео користити име Интел 64 за његово спровођење, као што АМД користи АМД64.

Имплементације Интела 64 
Први процесор који је имплементирао Интел 64 је био Ксеон са кодним именом Нокона (енгл. Nocona), јуна 2004. Насупрот томе, почетни Прескот чипови (фебруара 2004) нису омогућили ову функцију. Интел је касније почео са продајом Пентијум 4, са овом функцијом омогућеном. Е0 ревизија додаје eXecute Disable (ЕД), и био је укључен у тадашње Ксеон процесоре са кодним именом Ирвиндејл (енгл. Irwindale). Све 9xx, 8xx, 6xx, 5x9, 5x6, 5x1, 3x6, и 3x1 серије процесора имају Интел 64, као и Кор 2 ЦПЈ као што ће и будући процесори имати. Интел 64 је присутан и у последњим верзијама Целерон Д линије.

Први Интел мобилни процесор са Интел 64 је Мером верзија Кор 2 процесора, која је избачена 27. јула 2006. Ниједан од Интелових пртходних ЦПЈ није имплементирао Интел 64.

Следећи процесори имају Интел 64 архитектуру:
 NetBurst микроархитектура
 Xeon (сви модели после "Nocona")
 Celeron (неки модели после "Prescott")
 Pentium 4 (неки модели после "Prescott")
 Pentium D
 Pentium Extreme Edition
 Core микроархитектура
 Xeon (сви модели од "Woodcrest")
 Core 2 (укључујући мобилне процесоре од "Merom")
 Pentium Dual-Core (E2140, E2160, E2180, E2200, E2220, E5200, E5300, E5400, E6300, E6500, T2310, T2330, T2370, T2390, T3200 и T3400)
 Celeron (Celeron 4x0; Celeron M 5xx; E3200, E3300, E3400)
 Atom микроархитектура
 200 series
 300 series
 N4xx, N5xx series
 Dxxx series
 Nehalem, Sandy Bridge, Ivy Bridge and Haswell микроархитектура
 Core i3
 Core i5
 Core i7

VIА-ина имплементација 
VIА Нано, ранија знана као VIА Исаја (VIA Isaiah) је 64-битни процесор за личне рачунаре. VIА Нано је избачена од компаније VIА Текнолоџис (енгл. VIA Technologies) 2008. након 5 година развоја. Ова нова архитектура је започета испочетка, и објављена је 24. јануара 2008. Процесор подржава неколико специфичних екстензија за поправљање ефикасности у применама са слабом снагом. Очекује се да ће VIА Исаја бити дупло бржа у рачунању са целим бројевима и 4 пута бржа у рачунању са покретним зарезом од VIА Естер при еквивалентом такту. Потрошња енергије је слична као претходне генерације БИА ЦПЈ, са снагом од 5 W до 25 W. Исаја је направљена да подржи функције као што је x86-64 скуп инструкција и x86 виртуелисање, који нису били доступни у пређашњим верзијама, VIА Ц7 линији.

Разлике између АМД 64 и Интел 64 
Иако скоро идентични, постоје неке разлике између одва два скупа инструкција у семантици неколико ретко коришћених машинских инструкција (и/или ситуација), који се углавном користе за системско програмирање. Компајлери углавном праве машински код, који избегава било какве различитости, бар за обичне апликационе програме. Ово је стога интересантно углавном програмерима компајлера, оперативних система, и слично, који морају да се баве индивидуалним и специјалним системским инструкцијама.

Скорашње имплементације 
 BSF и BSR инструкције код Интел 64 се понашају другачије када је извор нула и када је операнд 32 бита. Процесор поставља нулти flag и оставља горња 32 бита дестинације недефинисане.
 АМД 64 захтева другачији формат за ажурирање микрокода и контроле МСР-а (model-specific registers) док Интел 64 имплементира ажурирање микрокода исто као код својих 32-битних процесора.
 Интел 64 нема неке МСР-ове који се сматрају битним код АМД 64. То су SYSCFG, TOP_MEM, и TOP_MEM2.
 Интел 64 дозвољава SYSCALL и SYSRET само у 64-битном режиму (не и у режиму компатибилности). Дозвољава SYSENTER и SYSEXIT у оба режима.
 АМД 64 нема SYSENTER и SYSEXIT у оба подрежима дугог режима.
 Блиске гране са 66Х префиксом се понашају другачије. Интел 64 чисити само горњих 32 бита, док АМД 64 чисти горњих 48 битова.
 Интел 64 нема могућност да сачува и поврати смањену и бржу верзију стања помераног зареза (укључујући FXSAVE и FXRSTOR инструкције)
 Скорашњи АМД 64 процесори имају поново уведену ограничену подршку за сегментисање како би олакшали виртуелисање 64-битних гестова.

Старије имплементације 
 Рани АМД64 процесори нису имали CMPXCHG16B инструкцију, која је екстензија CMPXCHG8B инструкције присутна на већини пост-80486 процесора. Слично као CMPXCHG8B, CMPXCHG16B омогућава атомске операције на окталним речима. Ово је корисно за паралелне алгоритме који користе "compare and swap" на подацима већим од показивача, што је често у "lock-free" and "wait-free" алгоритмима. Без CMPXCHG16B се морају користити заобилазнице, као што су критична секција или алтернативни "lock-free" приступи. Ово такође спречава да 64-битни Windows има адресни простор за кориснички режим већи од 8 ТБ. 64-битна верзија Windowsа 8.1 захтева ову функцију.
 Рани АМД 64 и Интел 64 процесори нису имали LAHF и SAHF инструкције. АМД је увео инструкције са њиховим Атлон64, Оптерон и Турион 64 процесори ревизије Д у марту 2005 док је Интел увео инструкције са Пентијумом 4 Г1 у децембру 2005. 64-битна верзија Windowsа 8.1 захтева ову функцију.
 Рани Интел 64 процесори нису имали NX бит од АМД64 архитектуре. Ову функцију захтева свака верзија Windowsа 8.
 Ране Интел 64 имплементације су дозвољавале само 64 GB физичке меморије док су оригиналне АМД64 имплементације дозвољавале присту 1 ТБ физичке меморије. Скорашње АМД64 и Интел 64 имплементације обезбеђују 256 ТБ физичког адресног простора (и АМД планира екпанзију до 4 петабајта). Капацитет физичке меморије ове величине је прикладан за велике апликације (као што су велике базе података), и рачуарсктво високих перформанси (централно оријентисане апликације и научничко рачунарство).

Компатибилност са оперативним системима и карактеристике 
Следећи оперативни системи подржавају x86-64 архитектуру у дугом режиму.

BSD

ДрегонФлај BSD 
Прелиминарни инфраструктурни рад је започео у фебруару 2004. за x86-64 порт. Овај развој је касније застао. Развој је почео поново током јула 2007 и наставио током Гугловог лета кода 2008. и СОЦ 2009. Прва официјелна верзија која је подржавала x86-64 је била 2.4.

Фри BSD 
Фри BSD (FreeBSD) је додао подршку под именом амд64 као екпериментална архитектура у 5.1 верзији у јуну 2003. Био је садржан у стандардној дистрибуцији од 5.2 јануара 2004. Верзија 6.0 је средила неке проблеме са радом x86 на амд64, и већина драјвера ради нормално, као на x86 архитектури.

Нет BSD 
Овде је архитектура x86-64 први пут добила подршку 19. јуна 2001. Од Нет BSD-а 2.0, амд64 је у потпуној интеграцији са овим системом. 32-битни код је подржан у 64-битном режиму, са netbsd-32 kernel слојем за компатибилност за 32-битне системске позиве. NX бит је коришћен за обезбеђивање неизвршивог стека и хипа са гранулацијом по страни (сегментирано гранулирање се користи на 32-битној x86)

ДОС 
Могуће је ући у дуги режим у ДОС-у без ДОС екстендера, али се кориник мора вратити на реалан режим да би позвао БИОС или ДОС прекиде.

Дакође је могуће ући у дуги режим, са ДОС екстендером сличним DOS/4GW, али комплекснији јер x86-64 нема виртуелни 8086 режим. ДОС то не зна, и не треба очекивати предности, осим ако ДОС ради у емулацији са адекватним драјвером за виртуелисање, на пример интерфејс за масовно складиштење.

Линукс 
Линукс је био први ОС који је покренуо x86-64 у дугом режиму, почев од верзије 2.4 2001. Линук такође обезбеђује компатибилност за покретање 32-битних програма. Ово омогућава да се програми рекомпајлирају у дугом режим задржавајући коришћење 32-битних програма. Неколико Линукс дистрибуција се тренутно испоручује са x86-64-native kernel-има. Неки, као што су Арк Линукс, СУСЕ, Мандрива, и Дебиан ГНУ/Линукс, омогућавају корисницима да инсталирају скуп 32-битних компоненти и библиотека приликом инсталирања са 64-битног DVD-а, што омогућава да већина постојећих 32-битних апликације ради. Друге дистрибуције, као што су Федора, Слеквер и Убунту, доступни су у једној верзији компајлирану за 32-битну архитектуру и другу компајлирану за 64-битну архитектуру. Федора и Ред Хет Ентерпрајс Линукс дозвољава истовремену уградњу свих усерланд компоненти у 32 и 64-битне верзије на 64-битном систему.

x32 ABI (Application Binary Interface), уведен у Линук 3.4, омогућава програмима компајлираним за x32 ABI да ради у 64-битном режиму x86-64, док користи само 32-битне показиваче и поља података. Иако ово ограничава програм на виртуелни адресни простор од 4 GB такође се смањује меморијски отисак програма и у неким случајевима може дозволити да ради брже.

64-битни Линукс дозвољава до 128 ТБ виртуелне адресе за појединачне процесе, и може да адресира око 64 ТБ физичке меморије, под условом да нема процесорских и ограничења система.

ОС Х 
Мак ОС Х v10.4.7 и даље верзије v10.4 покрећу 64-битне командне алатке користећи POSIX и математичке библиотеке на 64-битним Интел машинама, као што све верзија 10.4 и 10.5 раде на 64-битним PowerPC машинама. Мак ОС Х подржава 64-битне ГУИ апликацје користећи Кокоа, Кварц, ОПЕНГЛ, и X11 на 64-битним Интел машинама, као и на 64-биотним PowerPC машинама. Све библиотеке које нису за ГУИ такође подржавају 64-битне апликције на тим платформама. Кернел, и све ектензије су само 32-битне.

Мак ОС Х 10.6 је прва верзија која подржава 64-битни кернел. Међутим, не могу сви 64-битни рачунари покренути 64-битни кернел. 64-битни кернел, као 32-битни кернел, подржава 32-битне апликације, оба језгра такође подржавају 64-битне апликације. 32-битне апликације имају ограничени виртуелни адресни простор на 4 GB испод оба језгра.
ОС Х 10.8 обухвата само 64-битни кернел, али наставља да подржава 32-битне апликације.

ОС Х користи универзални бинарни формат за пакетирање 32 и 64-битне верзије апликације и библиотекарског кода у једној датотеци, најприкладнија верзија се аутоматски бира у време учитавања. У Мек ОС Х 10.6, универзални бинарни формат се такође користи за кернел и за оне екстензије кернела који подржавају 32-битне и 64-битне кернеле.

Соларис 
За Соларис 10, баш као и са SPARC архитектуру, постоји само један слика оперативног система, која садржи 32-битни и 64-битни кернел, и означено је као "x64/x86" DVD-РОМ слика. Подразумевано понашање је да се покрене 64-битни кернел, омогућавајући да се и 64-битни и постојећи или нови 32-битни програми бити покренути. 32-битни кернел се може ручно изабрати, у ком случају ће само 32-битни програми радити. Команда isainfo може да се користи за утврђивање да ли систем ради под 64-битном кернелу.

За Соларис 11, само 64-битни кернел је обезбеђен. Међутим, 64-битни кернел подржава и 32 и 64-битне програме, библиотеке, и системске позиве.

Windows 
x64 клијент и сервер издања система Мицрософт Windows, Windows XP Professional и Windows Сервер 2003 x64 Едитион су пуштени марта 2005. Интерно они су заправо исти буилд (5.2.3790.1830 SP1), јер деле исту изворну базу и оперативног система, па чак и ажурирања система су пуштена у обједињене пакете, као Windows 2000 Профешнал и Сервер издања за x86. Windows Виста, који такође има много различитих издања, објављена је у јануару 2007. Windows 7 је пуштен у јулу 2009. Windows Сервер 2008 Р2 и новије верзије ће бити доступане само као x64 верзије. Windows за x64 има следеће карактеристике:
 8 TB of "user mode" virtual address space per process. 8 ТБ "Кориснички" виртуелни адресни простор по процесу. x64 може да користи све ово, под условом да је повезан "large address aware" опцијом.
Ово је увећање од 4096 за дифолтна 2 GB виртуелног адресног простора корисничког режима које нуди 32-битни Windows.
 8 ТБ мод кернела виртуелног адресног простора за оперативни систем. Као и код адресног простора корисничког режима, то је повећање 4096 преко 32-битне верзије Windowsа. Већи простор првенствено користи кеш меморију фајл-система и кернел режим "хипа" (енгл. heaps) (nonpaged pool and paged pool). Windows користи само 16 ТБ од 256 ТБ имплементирано од процесора јер рани АМД64 процесори нису имали CMPXCHG16B инструкцију.
 Способност да покрену постојеће 32-битне апликације (.exe) и Динамиц Линк библиотеке dynamic link libraries (.dlls) користећи WoW64. Осим тога, 32-битни програм може, ако је повезан са "large address aware" опцијом, да користите до 4 GB виртуелног адресног простора у 64-битном Windows-у, уместо подразумеване 2 GB (опционално 3 GB са / 3 GB boot опцијом и "large address aware" опцијом) коју нуди 32-битни Windows.
За разлику од употребе боот опције / 3 GB на к86, ово не умањује кернел-режим-виртуелног адресног простора на располагању оперативном систему. 32-битне апликације стога могу имати користи одпокретање на x64 Windowsу, чак и ако нису рекомпајлиране за x86-64.
 И 32 и 64-битне апликације, ако нису повезане са "large address aware", ограничене су на 2 GB виртуелног адресног простора. Способност да се користе до 128 GB (Windows XP / Виста), 192 GB (Windows 7), 512 GB (Windows 8), 1 ТБ (Windows Сервер 2003), 2 ТБ (Windows Сервер 2008) или 4 ТБ (Windows Сервер 2012) од физичке меморије (РАМ-а).
 ЛЛП64 модел података: "int" и "long" типови су широке 32 бита, long long је 64 бита, док показивачи и типови изведени из показивача су широке 64 бита.
 Управљачки програми за уређаје у кернел моду морају бити 64-битне верзије, не постоји начин да покренете 32-битни кернел-режим програма у оквиру 64-битног оперативног система. Управљачки програми корисничког режиа могу бити или 32-битни или 64-битни.
 16-битни Windows (Win16) и ДОС апликације неће радити на x86-64 верзијама оперативног система Windows због уклањања Виртуал ДОС Машине (NTVDM) који се ослањао на могућност коришћења виртуелног 8086 режима. Виртуелни 8086 режим не може се унети у току рада у дугом режиму.
 Пуна имплементација НКС (Не Екецуте) функције заштите страница. Ово је такође имплементирано на недавним 32-битним верзијама оперативног система Windows, када су стартовани у ПАЕ режиму.
 Уместо ФС сегмент дескриптора на x86 верзијама Windows НТ фамилије, ГС сегмент дескриптор се користи да укаже на две дефинисане структуре оперативног система: Thread Information Block (NT_TIB) у корисничком режиму и Processor Control Region (KPCR) у режиму кернела. Тако је, на пример, у корисничком режиму ГС:0 адреса првог члана Thread Information Block-а. Одржавање ове конвенције је олакшало портовање x86-64, али је натерало АМД да задржи функцију сегмената ФС и ГС у дугом режиму - чак иако сегментирано адресирање по себи није стварно користи од стране било ког модерног оперативног система.
 Рани извештаји тврде како operating system scheduler неће сачувати и обновити к87 ФПУ стање машине преко thread context прекидача. Посматрано понашање показује да ово није случај: к87 стање се чува и врати, осим за kernel-mode-only thread-ове (ограничење које постоји и у 32-битној верзији). Најновија документација доступна од Мајкрософта наводи да се x87/MMX/3DNow! инструкције могу користити у дугом режиму, али да су застареле и могу изазвати проблеме са компатибилношћу у будућности.
 Неке компоненте као што су Мајкрософт Џет Дејтабејз Енџин (енгл. Microsoft Jet Database Engine) и приступ подацима објеката неће бити портовани у 64-битној архитектури, као што су x86-64 и ИА-64.
 Мајкрософт Вижуал Студио може компајлирати изворне апликације да циљају или x86-64 архитектуре, која може да ради само на 64-битном Windowsу, или архитектуре ИА-32, које могу радити као 32-битне апликације на 32-битном Windowsу или 64-битном Windowsу у режиму емулације WoW64. Managed апликације могу бити компајлиране или у ИА-32, x86-64 или ЕниЦПУ режиму. Софтвер створен у прва два режима се понаша као његов ИА-32 или x86-64 кодни дупликат. Међутим када се користи режим ЕниЦПУ, апликације у 32-битним верзијама оперативног система Windows раде као 32-битне апликације, док раде као 64-битна апликација у 64-битним издањима оперативног система Windows.

Конзоле за видео игре 
ПлејСтејшн 4 и ИксБокс Један садрже Јагуар, вишејезграни процесор кога је дизајнирао АМД. Оба користе x86-64 да адресирају 8 GB РАМ-а.

Конвенције за називе у индустрији 
Пошто су АМД64 и Интел 64 суштински слични, многи софтверски и хардверски производи користе један израз да искажу своју компатибилност са обе имплементације. АМД-ов оригинални назив за ову процесорску архитектуру, " x86-64", се још увек користи за ову сврху, као и варијанта "x86_64". Друге компаније, као што су Мајкрософз и Сан Мајкросистемс/Оракл, користе израз "x64" у маркетиншким материјалима.

Многи оперативни системи и производи, посебно оне која су ушли на тржиште x86-64 пре уласка Интела на тржиште, користе термин "АМД64" или "амд64" да се односи и на АМД64 и Интел 64.
 BSD системи, као што су ФрееБСД, МиднигхтБСД, НетБСД и ОпенБСД реферишу на АМД64 и Интел 64 именом "амд64".
 Линукс кернел и ДрегонФлај BSD назива 64-битну архитектуру "x86_64".
 Дебиан, Убунту, Генту називају и АМД64 и Интел 64 називом "амд64".
 GNU Compiler Collection, Fedora, PackageKit, openSUSE, и Arch Linux називају 64-битну архитектуру "x86_64".
 Хаику назива 64-битну архитектуру "x86_64".
 У ЈДК се користи име амд64 за директоријум у коме су x86-64 датотеке.
 ОС ИКС назива 64-битну архитектуру "x86_64".
 Microsoft Windows: x64 верзије оперативног система Windows користе АМД64 надимак интерно да одреде различите компоненте које користе или су компатибилни са овом архитектуром. На пример, променљивој окружења PROCESSOR_ARCHITECTURE је додељена вредност "амд64" насупрот " x86" у 32-битним верзијама, а системски директоријум на Windows x64 Едишн инсталационом ЦД-РОМ-у је назван "АМД64", за разлику од "и386 "у 32-битним верзијама.
 Соларис: команда isalist у Соларис оперативном систему идентификује оба система као "амд64".
 Т2 СДЕ назива и АМД64 и Интел 64 називом " x86-64", у директоријумима изворног кода.

Проблеми са лиценцирањем 
Интел лиценцира АМД-у право да користи оригиналну архитектуру x86 на којима се заснива АМД x86-64. У 2009, АМД и Интел су решили неколико тужби и неслагања око унакрсног-лиценцирања, проширујући своје уговоре унакрсног-лиценцирања.

Референце

Спољашње везе 
 AMD's AMD64 Developer Guides and Manuals
 x86-64: Extending the x86 architecture to 64-bits – technical talk by the architect of AMD64 (video archive), and second talk by the same speaker (video archive)
 AMD's "Enhanced Virus Protection"
 Intel tweaks EM64T for full AMD64 compatibility
 Analyst: Intel Reverse-Engineered AMD64
 Early report of differences between Intel IA32e and AMD64
 Porting to 64-bit GNU/Linux Systems, by Andreas Jaeger from GCC Summit 2003 . An excellent paper explaining almost all practical aspects for a transition from 32-bit to 64-bit.
 Tech Report article: 64-bit computing in theory and practice
 Intel 64 Architecture
 Intel Software Network: "64 bits"
 TurboIRC.COM tutorial of entering the protected and the long mode the raw way from DOS
 Optimization of 64-bit programs
 Seven Steps of Migrating a Program to a 64-bit System
 Memory Limits for Windows Releases
x86-64 ( такође познат и као x64 , x86и amd64 ) јебитна верзија скупа инструкција x86. Он подржава далеко веће количине виртуелне и физичке меморије него што је то могуће код претходника , омогућавајући програмима складиштење веће количине података у меморији. x86-64 такође пружабитне регистре опште намене и бројне друге побољшања . Оригиналну спецификацију је направио АМД , а спроведена је од стране АМД-а , Интела , VIА , и других . Потпуно је компатибилан сабитним ибитним x86 кодом . Пошто су потпунибитни ибитни скупови инструкција остали имплементирани у хардверу без икакве емулације , постојећи x86 програми раде без проблема у компатибилности или лошијих перформанси , док постојеће апликације које користе нове карактеристике дизајна процесора могу постићи побољшања перформанси . Пре избацивања , " x86-64 " и " x86_64 " су се односили на скуп инструкција . После избацивања , АМД је назван АМД64 . Intel initially used the names IA-32e and EM64T before finally settling on Intelfor their implementation . Some in the industry , including Apple , Интел је у почетку користио имена ИА-32Е и ЕМ64Т пре коначног решења да се користи име Интелза њихово спровођење . Неки у индустрији , укључујући и Епл , користити x86-64 и x86_64 , док други , посебно Сан Мајкросистемс ( сада Оракл ) и Мајкрософт , користе x64 док BSD породица оперативних система и неколико Линукс дистрибуција користе АМД64. АМД К8 процесор је први имплементирао архитектуру , и ово је био први значајан додатак x86 архитектури коју је дизајнирала нека компанија осим Интела . Интел је био принуђен да следи тај пример и увео је модификовану НетБрст ( енгл . NetBurst ) породицу која је била потпуно софтверски компатибилана са дизајном и спецификацијама АМД-а . VIА Текнолоџис ( енгл . VIA Technologies ) је представио x86-64 у својој VIА Исаја ( енгл . Isaiah ) архитектури , са VIА Нано. x86-64 спецификација се разликује од Интелове Итаниум ( раније ИА-64 ) архитектуре , чији скуп инструкција није компатибилан са x86 архитектуром . АМД64 Скуп инструкција из АМД64 је имплементиран у АМД-овом Оптерону , Атлон64 , АтлонFX , Атлон64 X2 , Атлон II , Атлон X2 , Турион ТурионX2 , касније и Семпрон , Феном , Феном II , FX , и Фјужн ( енгл . Fusion ) процесорима . Историја АМД64 АМД64 је настао као алтернатива радикално другачије ИА-64 архитектуре , која је дизајниран од стране компаније Интел и ХП . Првобитно објављена уса пуном спецификацијом у августу АМД64 архитектура је направљена да се додабитно рачунарство на постојећу x86 архитектуру , за разлику од Интеловог стварања потпуно новебитну архитектуру са ИА-64. Први АМД64 процесор , Оптерон , је избачен у априлу Карактеристике архитектуре Примарна карактеристика АМД64 је доступностбитних процесорских регистара , на пример rax , rbx и слично,битне аритметичке и логичке операције целим бројем , ибитни виртуелне адресе . Дизајнери су искористили прилику да направе и друга побољшања . Најзначајније промене укључују : битни цео број : Сви регистри опште намене ( ГПР ) су проширена сабита набита , и све аритметичке и логичке операције , операције меморија-регистар и регистар-меморија , итд , сада могу да раде директно набитним целим бројевима . Додатни регистри : Поред повећања величине регистара опште намене , број именованих регистара опште намене је повећан са осам ( eax , ebx , ecx , edx , ebp , esp , esi , edi ) у x86 на( rax , rbx , rcx , rdx , rbp , rsp , rsi , rdi , r8 , r9 , r10 , r11 , r12 , r13 , r14 , r15 ) . Због тога је могуће држати више локалних променљивих у регистрима , а не на стеку , и да регистри чувају често приступљене константе ; аргументи за мале и брзе потпрограме може такође бити усвојен у регистрима у већој мери . АМД64 и даље има мање регистре од многих заједничких РИСЦ скупова инструкција ( који обично имајурегистара ) или машина сличних ВЛИВ-у , као што су ИА-64 ( који имарегистара ) . Међутим , имплементација АМД64 може имати далеко више интерних регистара од броја архитектонских регистара изложених по скупу инструкција ( види преименовање регистара ) . Додатни XMM ( ССЕ ) регистри : Слично , бројбитних XMM регистара ( користи се за стриминг СИМД инструкција ) је такође повећан сана Већи простор за виртуелно адресирање : АМД64 архитектура дефинишебитни виртуелни адресни формат , од којих себита користе у тренутним имплементацијама . Ово омогућава дотерабајтабајтова ) виртуелног адресног простора . Дефиниција архитектуре омогућава да ова граница буде подигнута у будућим имплементацијама до пунихбита , проширујући виртуелни адресни простор доексабајтабајтова ) . То је много у односу на самогигабајтабајта ) за x86. То значи да се над веома великим датотекама може бити оперисан преко мапирања целог фајла у адресни простор процеса ( што је често много брже него рад позивима читања и писања ) , уместо мапирања региона датотеке у и ван адресног простора . Већи физички адресни простор : оригинална имплементација АМД64 архитектуре имплементирабитне физичке адресе и тако могао да адресира доТБбајта ) РАМ меморије . Тренутне имплементације АМД64 архитектуре ( почевши од АМД микроархитектуре ) проширују га набитне физичке адресе и због тога може да адресира и доТБ РАМ-а . Архитектура дозвољава продужење добита у будућности ( ограничен због page table entry формата ) ; ово би омогућило адресирање допетабајта РАМ-а . За поређење,битни x86 процесори су ограничени наGB РАМ меморије у Physical Address Extension режиму , илиGB РАМ-а без ПАЕ режима . Већи физички адресни простор у легаси ( енгл. legacy ) режиму : Када ради у режиму легаси АМД64 архитектура подржава ПАЕ режим , као и већина најновијих x86 процесора , али АМД64 протеже ПАЕ одбита до архитектонског лимита одбита физичкое адресе . Било каква имплементација стога дозвољава исту границу физичке адресе у дугом режиму . ССЕ инструкције : Оригинална АМД64 архитектура је усвојила Интелов ССЕ и ССЕ2 и као основне инструкције . ССЕ3 инструкције су додате у априлу ССЕ2 је алтернатива ИЕЕЕбитној прецизности x86 скупа инструкција са избором од ИЕЕЕбитног илибитног рачунања са покретним зарезом . Ово обезбеђује операцијама са покретним зарезом да буду компатибилне са многим другим савременим процесорима . ССЕ и ССЕ2 инструкције су такође проширене да раде на осам нових XMM регистара . ССЕ и ССЕ2 су доступни убитном режиму у модерним x86 процесорима ; Међутим , ако се они користе забитне програме , ти програми ће радити само на системима са процесорима који имају ову функцију . Ово није проблем убитним програмима , јер сви АМД64 процесори имају ССЕ и ССЕ2 и , па користећи ССЕ и ССЕ2 инструкције и уместо x86 инструкција не смањује скуп машина на којима се x86-64 програми могу покренути . ССЕ и ССЕ2 су генерално бржи и дуплирају већину карактеристика традиционалнеих x86 инструкција , MMX , иNow !. No-Execute bit : " NX " бит у page table ) омогућава оперативном систему да одреди које странице виртуелне адресе могу садржати извршни код а које не могу . Покушај да се изврши код са странице означене са " no execute " ће резултовати у преступу при приступању меморији , сличано покушај да се пише преко " read-only " стране . Ово би требало да отежа злонамерном коду да преузме контролу над системом преко " buffer overrun " или " unchecked buffer " напада . Слична функција је доступна на x86 процесорима одкао атрибутом сегментних дескриптора , међутим ово ради само на целом сегменту истовремено . Сегментирано адресирање је дуго сматрано застарелим начином рада , а сви актуелне ПЦ ( PC ) оперативни системи на снази заобилазе га , постављајући све сегменте на базну адресу нуле и ( убитној имплементацији ) величинеGB . АМД је први продавац породице x86 који је спровео " no-execute " у линеарном моду адресирања . Функција је такође доступна у легаси режиму на АМД64 процесорима , а однедавно и на Интел x86 процесорима , када се користи ПАЕ . Уклањање старијих карактеристика : неколико карактеристика " системског програмирања " x86 архитектуре се не користе у модерним оперативним системима и нису доступни на АМД64 у дугомбитном и компатибилном ) режиму . Ово укључује сегментирано адресирање ( иако сегменти ФС и ГС сегменти остају у закржљалој форми за употребу као додатних базних показивача ОС структурама ) , који је механизам за промену стања задатка , и виртуелнимод . Ове особине остају у потпуности имплементиране у " легаси режиму " , што дозвољава овим процесорима покретањебитних ибитних оперативних система без модификација . Неке инструкције за које се показало да су ретко коришћене нису подржане убитном режиму : чување / враћање сегмента регистара на стек , чување / враћање свих регистара , децимална аритметика , BOUND и INTO инструкције , " far " скокове и позива са непосредним операнадима . Детаљи виртуелног адресног простора Канонска форма адресирања Иако су виртуелне адресе ширинебита убитном режиму , актуелне имплементације ( и сви чипови за које се зна да су у фази планирања ) не дозвољавају да се цео виртуелни адресни простор одбајтоваЕБ ) користи . Већини оперативних система и апликација неће требати толики адресни простор за догледну будућност ( на пример , Windows имплементација за АМД64 су користи самоТБ , илибита ) , па спровођење такве широке виртуелне адресе ће једноставно повећати сложеност и Трошкови без стварне користи . АМД је стога одлучио да , у првим имплементацијама архитектуре , само најмање значајнихбита виртуелне адресе би преводилац адреса заправо користио . Даље , од битадосви морају бити копија бита или процесор ће подићи изузетак . Адресе које испуњавају ово правило се називају " канонске форме . " Адресе канонске форма иду оддоFF'FFFFFFFF и од FFFF8000' 00000000 до FFFFFFFF'FFFFFFFF , за укупноБ употребљивог виртуелног адресног простора . Ово омогућава важну функцију за каснију скалабилност на правобитно адресирање : многим оперативним системима ( укључујући Windows НТ породицу ) узима вишу половину простора адреса ( назван kernel простор ) за себе и оставља доњу половину ( кориснички простор ) за апликациони код , корисничке стекове , хипове и друге регионе података . Дизајн " канонске адресе " обезбеђује да свака компатибилна имплементација АМД64 има две меморијске половине : доња половина почиње на адреси00000000 и " расте нагоре " како више виртуелних адреса постану доступни , док је виша половина " усидрена " на врх адресе простора и расте надоле . Такође , фиксирање садржаја неискоришћене бит-них адреса спречава њихову употребу од стране оперативног система као flag , privilege markers , итд , зато што би таква употреба могла да постане проблематична када је архитектура проширена да спроводи више битова виртуелних адреса . Page table структура Дуги режимбитног адресирања ( " long mode " ) је надскуп Physical Address Extensions ( ПАЕ ) , због тога , величина страница може битиКБбајтова ) илиMBбајт ) . Дуги режим такође подржава странице величинеGBбајтова ) . Уместо page table система на три нивоа којег користе системи у ПАЕ режиму , системи који раде у дугом моду користи четири нивоа page table : ПАЕ-ов Page-Directory Pointer Table продужен је одуноса до а додатна Page-Map Level( ПМЛ4 ) табела се додаје , која садржиставки убитним имплементацијама . У имплементацијама које пружају веће виртуалне адресе , потоња табела би расла или да задовољи довољне уносе да опише цео ранг адреса , до теоријског максимума од554.432 уноса забитну имплементацију , или ће бити преранкирани новим нивоом за мапирање као што је ПМЛ5 . Пуна хијерархија мапирања страница одMB за целибитни простор би заузео више одMB РАМ-а ( око196% одТБ целог виртуелног простора ) Границе оперативних система Оперативни систем такође може ограничити виртуални простор за адресирање . Детаљи су дати у одељку „ Компатибилност са оперативним системима и карактеристике “ . Детаљи физичког адресног простора Тренутне АМД64 имплементације подржавају физички адресни простор добајтова РАМ-а илиТБ . Већа количина инсталираног РАМ-а омогућава оперативном систему да држи више " pageable " података и кода у РАМ-у , што може побољшати перформансе , мада ће различита оптерећења имати различите тачке умањујућих повратка . Горња граница меморије која се може користити у датом x86-64 систему зависи од разних фактора и могу бити далеко мање него максимум процесора . На пример , од јуна нема познатих матичних плоча за x86-64 процесором који подржавајуТБ РАМ меморије . Оперативни систем може да постави додатна ограничења на количину РАМ који је употребљив или подржан . Детаљи о овоме су дати у одељку тачки су дате у " Компатибилност са оперативним системима и карактеристике " . Режими рада Традиционални x87 ФПУ регистарски стек није укључен у екстензији регистара величине фајлова убитном режиму . Дуги режим Ово је примарни начин рада архитектуре . То је комбинација процесоровог " нејтив " ( енгл. native ) битног режима и комбинованогибитног режима . Користе габитни ОС-и . Подбитним оперативним системом,битни програми раде убитном режиму , абитни ибитни заштићени режим апликације ( које не морају да користите стварни или виртуелнирежим како би се извршио било кад ) ради у режиму компатибилности . Real-mode програми и програми који користе виртуелнирежим у било ком тренутку не може да се покрену у дугом моду , осим ако није у питању емулирање софтвера . Пошто је основни скуп инструкција исти , скоро да не постоји умањење перформанси у заштићеном режиму x86 кода . Ово је другачије од Интеловог ИА-64 , где разлике у основном скупу инструкција значи да радбитног кода се мора урадити или емулацијом x86 ( што чини процес споријим ) или са наменском xпроцесором . Међутим , на платформи x86-64 , многе апликације могу да имају користи одбитног рекомпајлирања , због додатних регистара убитном коду и гарантоване ССЕ2 ФПУ подршке , коју могу да користе компајлер за оптимизацију . Међутим , апликацијама које редовно рукују целим бројевима ширим одбита , као што су криптографски алгоритми , биће потребно прерађивање кода како би искористиле предностибитних регистара . Легаси режим Режим користибита ( " заштићени мод " или " прави мод " ) ибитне оперативне системе . У овом режиму , процесор се понаша каобитни x86 процесор , а самобитни ибитни код може бити извршен . Легаси режим омогућава максималнобитно виртуелно адресирање који ограничава виртуелни адресни простор наGB.битни програми се не могу покренути из овог режима . АМД64 имплементације Следећи процесори имплементирају АМД64 архитектуру : Opteron Athlon AthlonX2 AthlonFX Athlon II ( праћен " X2 " , " X3 " , or " X4 " који означавају број језгара , и XLT модели ) Turion TurionX2 Sempron ( " Палермо " E6 и сви " Манила " модели ) Phenom ( праћен " X3 " or " X4 " који означавају број језгара ) Phenom II ( праћен " X2 " , " X3 " , " X4 " or " X6 који означавају број језгара ) FX Fusion Интел Интелје Интелова имплементација x86-64 . Коришћен је у новијим верзијама Пентијума Целерон Д , Ксеон и Пентијум Дуал Кор ( енгл . Pentium Dual-Core ) процесора , Атом D410 , D425 , D510 , D525 , N450 , N455 , N470 , N475 , N550 , N570 , N2600 и N2800 и све верзије Пентиум Икстрим Едишн ( енгл . Pentium Extreme Edition ) , Кор( енгл . Core Кор и7 , Кор и5 , Кор и3 процесора . Историја Интела Кроз историју , АМД је развијао и правио процесоре по Интеловом дизајну , али са појавом x86-64 улоге су замењене . Интел се нашао у ситуацији где је прихватио архитектуру коју је АМД направио као екстензију Интелове x86 процесорске линије . Интелов пројекат је оригинално назван Јамхил ( енгл. Yamhill ) . Након година негирања постојања радова на овом пројекту , Интел је објавио да он заправо постоји . Крег Берет , ПУО Интела у то време , је признао да је ово једна од најлошије чуваних тајни . Интелов назив за овај скуп инструкција је променио неколико пута . КрајемИнтел је почео користити име Интелза његово спровођење , као што АМД користи АМД64. Имплементације Интела Први процесор који је имплементирао Интелје био Ксеон са кодним именом Нокона ( енгл . Nocona ) , јуна Насупрот томе , почетни Прескот чипови ( фебруаранису омогућили ову функцију . Интел је касније почео са продајом Пентијум са овом функцијом омогућеном . Е0 ревизија додаје eXecute Disable ( ЕД ) , и био је укључен у тадашње Ксеон процесоре са кодним именом Ирвиндејл ( енгл . Irwindale ) . Свеx,x,x, 9,6,1,6 , и1 серије процесора имају Интел као и КорЦПЈ као што ће и будући процесори имати . Интелје присутан и у последњим верзијама Целерон Д линије . Први Интел мобилни процесор са Интелје Мером верзија Корпроцесора , која је избачена јула Ниједан од Интелових пртходних ЦПЈ није имплементирао Интел Следећи процесори имају Интелархитектуру : NetBurst микроархитектура Xeon ( сви модели после " Nocona " ) Celeron ( неки модели после " Prescott " ) Pentium( неки модели после " Prescott " ) Pentium D Pentium Extreme Edition Core микроархитектура Xeon ( сви модели од " Woodcrest " ) Core( укључујући мобилне процесоре од " Merom " ) Pentium Dual-Core ( E2140 , E2160 , E2180 , E2200 , E2220 , E5200 , E5300 , E5400 , E6300 , E6500 , T2310 , T2330 , T2370 , T2390 , T3200 и T3400 ) Celeron ( Celeron0 ; Celeron Mx ; E3200 , E3300 , E3400 ) Atom микроархитектура series series N4xx , N5xx series Dxxx series Nehalem , Sandy Bridge , Ivy Bridge and Haswell микроархитектура Core i3 Core i5 Core i7 VIА-ина имплементација VIА Нано , ранија знана као VIА Исаја ( VIA Isaiah ) јебитни процесор за личне рачунаре . VIА Нано је избачена од компаније VIА Текнолоџис ( енгл . VIA Technologies ) наконгодина развоја . Ова нова архитектура је започета испочетка , и објављена је јануара Процесор подржава неколико специфичних екстензија за поправљање ефикасности у применама са слабом снагом . Очекује се да ће VIА Исаја бити дупло бржа у рачунању са целим бројевима ипута бржа у рачунању са покретним зарезом од VIА Естер при еквивалентом такту . Потрошња енергије је слична као претходне генерације БИА ЦПЈ , са снагом одW доW . Исаја је направљена да подржи функције као што је x86-64 скуп инструкција и x86 виртуелисање , који нису били доступни у пређашњим верзијама , VIА Ц7 линији . Разлике између АМДи Интел Иако скоро идентични , постоје неке разлике између одва два скупа инструкција у семантици неколико ретко коришћених машинских инструкција ( и / или ситуација ) , који се углавном користе за системско програмирање . Компајлери углавном праве машински код , који избегава било какве различитости , бар за обичне апликационе програме . Ово је стога интересантно углавном програмерима компајлера , оперативних система , и слично , који морају да се баве индивидуалним и специјалним системским инструкцијама . Скорашње имплементације BSF и BSR инструкције код Интелсе понашају другачије када је извор нула и када је операндбита . Процесор поставља нулти flag и оставља горњабита дестинације недефинисане . АМДзахтева другачији формат за ажурирање микрокода и контроле МСР-а ( model-specific registers ) док Интелимплементира ажурирање микрокода исто као код својихбитних процесора . Интелнема неке МСР-ове који се сматрају битним код АМД То су SYSCFG , TOP_MEM , и TOP_MEM2. Интелдозвољава SYSCALL и SYSRET само убитном режиму ( не и у режиму компатибилности ) . Дозвољава SYSENTER и SYSEXIT у оба режима . АМДнема SYSENTER и SYSEXIT у оба подрежима дугог режима . Блиске гране са префиксом се понашају другачије . Интелчисити само горњихбита , док АМДчисти горњихбитова . Интелнема могућност да сачува и поврати смањену и бржу верзију стања помераног зареза ( укључујући FXSAVE и FXRSTOR инструкције ) Скорашњи АМДпроцесори имају поново уведену ограничену подршку за сегментисање како би олакшали виртуелисањебитних гестова . Старије имплементације Рани АМД64 процесори нису имали CMPXCHG16B инструкцију , која је екстензија CMPXCHG8B инструкције присутна на већини пост-80486 процесора . Слично као CMPXCHG8B , CMPXCHG16B омогућава атомске операције на окталним речима . Ово је корисно за паралелне алгоритме који користе " compare and swap " на подацима већим од показивача , што је често у " lock-free " and " wait-free " алгоритмима . Без CMPXCHG16B се морају користити заобилазнице , као што су критична секција или алтернативни " lock-free " приступи . Ово такође спречава дабитни Windows има адресни простор за кориснички режим већи одТБ.битна верзија Windowsа1 захтева ову функцију . Рани АМДи Интелпроцесори нису имали LAHF и SAHF инструкције . АМД је увео инструкције са њиховим Атлон64 , Оптерон и Турионпроцесори ревизије Д у мартудок је Интел увео инструкције са ПентијумомГ1 у децембрубитна верзија Windowsа1 захтева ову функцију . Рани Интелпроцесори нису имали NX бит од АМД64 архитектуре . Ову функцију захтева свака верзија Windowsа Ране Интелимплементације су дозвољавале самоGB физичке меморије док су оригиналне АМД64 имплементације дозвољавале пристуТБ физичке меморије . Скорашње АМД64 и Интелимплементације обезбеђујуТБ физичког адресног простора ( и АМД планира екпанзију допетабајта ) . Капацитет физичке меморије ове величине је прикладан за велике апликације ( као што су велике базе података ) , и рачуарсктво високих перформанси ( централно оријентисане апликације и научничко рачунарство ) . Компатибилност са оперативним системима и карактеристике Следећи оперативни системи подржавају x86-64 архитектуру у дугом режиму . BSD ДрегонФлај BSD Прелиминарни инфраструктурни рад је започео у фебруару за x86-64 порт . Овај развој је касније застао . Развој је почео поново током јулаи наставио током Гугловог лета кода и СОЦ Прва официјелна верзија која је подржавала x86-64 је била4 . Фри BSD Фри BSD ( FreeBSD ) је додао подршку под именом амд64 као екпериментална архитектура у1 верзији у јуну Био је садржан у стандардној дистрибуцији од2 јануара Верзија0 је средила неке проблеме са радом x86 на амд64 , и већина драјвера ради нормално , као на x86 архитектури . Нет BSD Овде је архитектура x86-64 први пут добила подршку јуна Од Нет BSD-а0 , амд64 је у потпуној интеграцији са овим системом.битни код је подржан убитном режиму , са netbsd-32 kernel слојем за компатибилност забитне системске позиве . NX бит је коришћен за обезбеђивање неизвршивог стека и хипа са гранулацијом по страни ( сегментирано гранулирање се користи набитној x86 ) ДОС Могуће је ући у дуги режим у ДОС-у без ДОС екстендера , али се кориник мора вратити на реалан режим да би позвао БИОС или ДОС прекиде . Дакође је могуће ући у дуги режим , са ДОС екстендером сличним DOS / 4GW , али комплекснији јер x86-64 нема виртуелнирежим . ДОС то не зна , и не треба очекивати предности , осим ако ДОС ради у емулацији са адекватним драјвером за виртуелисање , на пример интерфејс за масовно складиштење . Линукс Линукс је био први ОС који је покренуо x86-64 у дугом режиму , почев од верзије4 Линук такође обезбеђује компатибилност за покретањебитних програма . Ово омогућава да се програми рекомпајлирају у дугом режим задржавајући коришћењебитних програма . Неколико Линукс дистрибуција се тренутно испоручује са x86-64-native kernel-има . Неки , као што су Арк Линукс , СУСЕ , Мандрива , и Дебиан ГНУ / Линукс , омогућавају корисницима да инсталирају скупбитних компоненти и библиотека приликом инсталирања сабитног DVD-а , што омогућава да већина постојећихбитних апликације ради . Друге дистрибуције , као што су Федора , Слеквер и Убунту , доступни су у једној верзији компајлирану забитну архитектуру и другу компајлирану забитну архитектуру . Федора и Ред Хет Ентерпрајс Линукс дозвољава истовремену уградњу свих усерланд компоненти уибитне верзије набитном систему. x32 ABI ( Application Binary Interface ) , уведен у Линук4 , омогућава програмима компајлираним за x32 ABI да ради убитном режиму x86-64 , док користи самобитне показиваче и поља података . Иако ово ограничава програм на виртуелни адресни простор одGB такође се смањује меморијски отисак програма и у неким случајевима може дозволити да ради брже. 64-битни Линукс дозвољава доТБ виртуелне адресе за појединачне процесе , и може да адресира окоТБ физичке меморије , под условом да нема процесорских и ограничења система . ОС Х Мак ОС Х v10.4.7 и даље верзије v10.4 покрећубитне командне алатке користећи POSIX и математичке библиотеке набитним Интел машинама , као што све верзија4 и5 раде набитним PowerPC машинама . Мак ОС Х подржавабитне ГУИ апликацје користећи Кокоа , Кварц , ОПЕНГЛ , и X11 набитним Интел машинама , као и набиотним PowerPC машинама . Све библиотеке које нису за ГУИ такође подржавајубитне апликције на тим платформама . Кернел , и све ектензије су самобитне . Мак ОС Х6 је прва верзија која подржавабитни кернел . Међутим , не могу свибитни рачунари покренутибитни кернел.битни кернел , каобитни кернел , подржавабитне апликације , оба језгра такође подржавајубитне апликације.битне апликације имају ограничени виртуелни адресни простор наGB испод оба језгра . ОС Х8 обухвата самобитни кернел , али наставља да подржавабитне апликације . ОС Х користи универзални бинарни формат за пакетирањеибитне верзије апликације и библиотекарског кода у једној датотеци , најприкладнија верзија се аутоматски бира у време учитавања . У Мек ОС Х6 , универзални бинарни формат се такође користи за кернел и за оне екстензије кернела који подржавајубитне ибитне кернеле . Соларис За Соларис баш као и са SPARC архитектуру , постоји само један слика оперативног система , која садржибитни ибитни кернел , и означено је као " x64/ x86 " DVD-РОМ слика . Подразумевано понашање је да се покренебитни кернел , омогућавајући да се ибитни и постојећи или новибитни програми бити покренути.битни кернел се може ручно изабрати , у ком случају ће самобитни програми радити . Команда isainfo може да се користи за утврђивање да ли систем ради подбитном кернелу . За Соларис самобитни кернел је обезбеђен . Међутим,битни кернел подржава иибитне програме , библиотеке , и системске позиве. Windows x64 клијент и сервер издања система Мицрософт Windows , Windows XP Professional и Windows Серверx64 Едитион су пуштени марта Интерно они су заправо исти буилд2.3790.1830 SP1 ) , јер деле исту изворну базу и оперативног система , па чак и ажурирања система су пуштена у обједињене пакете , као WindowsПрофешнал и Сервер издања за x86. Windows Виста , који такође има много различитих издања , објављена је у јануару Windowsје пуштен у јулу Windows СерверР2 и новије верзије ће бити доступане само као x64 верзије. Windows за x64 има следеће карактеристике : TB of " user mode " virtual address space per process.ТБ " Кориснички " виртуелни адресни простор по процесу. x64 може да користи све ово , под условом да је повезан " large address aware " опцијом . Ово је увећање одза дифолтнаGB виртуелног адресног простора корисничког режима које нудибитни Windows . ТБ мод кернела виртуелног адресног простора за оперативни систем . Као и код адресног простора корисничког режима , то је повећањепрекобитне верзије Windowsа . Већи простор првенствено користи кеш меморију фајл-система и кернел режим " хипа " ( енгл. heaps ) ( nonpaged pool and paged pool ). Windows користи самоТБ одТБ имплементирано од процесора јер рани АМД64 процесори нису имали CMPXCHG16B инструкцију . Способност да покрену постојећебитне апликације ( .exe ) и Динамиц Линк библиотеке dynamic link libraries ( .dlls ) користећи WoW64 . Осим тога,битни програм може , ако је повезан са " large address aware " опцијом , да користите доGB виртуелног адресног простора убитном Windows-у , уместо подразумеванеGB ( опционалноGB са / GB boot опцијом и " large address aware " опцијом ) коју нудибитни Windows . За разлику од употребе боот опције / GB на к86 , ово не умањује кернел-режим-виртуелног адресног простора на располагању оперативном систему.битне апликације стога могу имати користи одпокретање на x64 Windowsу , чак и ако нису рекомпајлиране за x86-64 . Иибитне апликације , ако нису повезане са " large address aware " , ограничене су наGB виртуелног адресног простора . Способност да се користе доGB ( Windows XP / Виста ) ,GB ( WindowsGB ( WindowsТБ ( Windows СерверТБ ( Windows СерверилиТБ ( Windows Серверод физичке меморије ( РАМ-а ) . ЛЛП64 модел података : " int " и " long " типови су широкебита , long long јебита , док показивачи и типови изведени из показивача су широкебита . Управљачки програми за уређаје у кернел моду морају битибитне верзије , не постоји начин да покренетебитни кернел-режим програма у оквирубитног оперативног система . Управљачки програми корисничког режиа могу бити илибитни илибитни. битни Windows ( Win16 ) и ДОС апликације неће радити на x86-64 верзијама оперативног система Windows због уклањања Виртуал ДОС Машине ( NTVDM ) који се ослањао на могућност коришћења виртуелногрежима . Виртуелнирежим не може се унети у току рада у дугом режиму . Пуна имплементација НКС ( Не Екецуте ) функције заштите страница . Ово је такође имплементирано на недавнимбитним верзијама оперативног система Windows , када су стартовани у ПАЕ режиму . Уместо ФС сегмент дескриптора на x86 верзијама Windows НТ фамилије , ГС сегмент дескриптор се користи да укаже на две дефинисане структуре оперативног система : Thread Information Block ( NT_TIB ) у корисничком режиму и Processor Control Region ( KPCR ) у режиму кернела . Тако је , на пример , у корисничком режиму ГС:0 адреса првог члана Thread Information Block-а . Одржавање ове конвенције је олакшало портовање x86-64 , али је натерало АМД да задржи функцију сегмената ФС и ГС у дугом режиму - чак иако сегментирано адресирање по себи није стварно користи од стране било ког модерног оперативног система . Рани извештаји тврде како operating system scheduler неће сачувати и обновити к87 ФПУ стање машине преко thread context прекидача . Посматрано понашање показује да ово није случај : к87 стање се чува и врати , осим за kernel-mode-only thread-ове ( ограничење које постоји и убитној верзији ) . Најновија документација доступна од Мајкрософта наводи да се x87 / MMX / 3DNow! инструкције могу користити у дугом режиму , али да су застареле и могу изазвати проблеме са компатибилношћу у будућности . Неке компоненте као што су Мајкрософт Џет Дејтабејз Енџин ( енгл . Microsoft Jet Database Engine ) и приступ подацима објеката неће бити портовани убитној архитектури , као што су x86-64 и ИА-64. Мајкрософт Вижуал Студио може компајлирати изворне апликације да циљају или x86-64 архитектуре , која може да ради само набитном Windowsу , или архитектуре ИА-32 , које могу радити каобитне апликације набитном Windowsу илибитном Windowsу у режиму емулације WoW64 . Managed апликације могу бити компајлиране или у ИА-32 , x86-64 или ЕниЦПУ режиму . Софтвер створен у прва два режима се понаша као његов ИА-32 или x86-64 кодни дупликат . Међутим када се користи режим ЕниЦПУ , апликације убитним верзијама оперативног система Windows раде каобитне апликације , док раде каобитна апликација убитним издањима оперативног система Windows . Конзоле за видео игре ПлејСтејшни ИксБокс Један садрже Јагуар , вишејезграни процесор кога је дизајнирао АМД . Оба користе x86-64 да адресирајуGB РАМ-а . Конвенције за називе у индустрији Пошто су АМД64 и Интелсуштински слични , многи софтверски и хардверски производи користе један израз да искажу своју компатибилност са обе имплементације . АМД-ов оригинални назив за ову процесорску архитектуру , " x86-64 " , се још увек користи за ову сврху , као и варијанта " x86_64 " . Друге компаније , као што су Мајкрософз и Сан Мајкросистемс / Оракл , користе израз " x64 " у маркетиншким материјалима . Многи оперативни системи и производи , посебно оне која су ушли на тржиште x86-64 пре уласка Интела на тржиште , користе термин " АМД64 " или " амд64 " да се односи и на АМД64 и Интел BSD системи , као што су ФрееБСД , МиднигхтБСД , НетБСД и ОпенБСД реферишу на АМД64 и Интелименом " амд64 " . Линукс кернел и ДрегонФлај BSD називабитну архитектуру " x86_64 " . Дебиан , Убунту , Генту називају и АМД64 и Интелназивом " амд64 " . GNU Compiler Collection , Fedora , PackageKit , openSUSE , и Arch Linux називајубитну архитектуру " x86_64 " . Хаику називабитну архитектуру " x86_64 " . У ЈДК се користи име амд64 за директоријум у коме су x86-64 датотеке . ОС ИКС називабитну архитектуру " x86_64 " . Microsoft Windows : x64 верзије оперативног система Windows користе АМД64 надимак интерно да одреде различите компоненте које користе или су компатибилни са овом архитектуром . На пример , променљивој окружења PROCESSOR_ARCHITECTURE је додељена вредност " амд64 " насупрот " x86 " убитним верзијама , а системски директоријум на Windows x64 Едишн инсталационом ЦД-РОМ-у је назван " АМД64 " , за разлику од " и386 " убитним верзијама . Соларис : команда isalist у Соларис оперативном систему идентификује оба система као " амд64 " . Т2 СДЕ назива и АМД64 и Интелназивом " x86-64 " , у директоријумима изворног кода . Проблеми са лиценцирањем Интел лиценцира АМД-у право да користи оригиналну архитектуру x86 на којима се заснива АМД x86-64 . У АМД и Интел су решили неколико тужби и неслагања око унакрсног-лиценцирања , проширујући своје уговоре унакрсног-лиценцирања . Референце Спољашње везе AMD's AMD64 Developer Guides and Manuals x86-64 : Extending the x86 architecture tobits – technical talk by the architect of AMD64 ( video archive ) , and second talk by the same speaker ( video archive ) AMD's " Enhanced Virus Protection " Intel tweaks EM64T for full AMD64 compatibility Analyst : Intel Reverse-Engineered AMD64 Early report of differences between Intel IA32e and AMD64 Porting tobit GNU / Linux Systems , by Andreas Jaeger from GCC Summit . An excellent paper explaining almost all practical aspects for a transition frombit tobit . Tech Report article:bit computing in theory and practice IntelArchitecture Intel Software Network : " 64 bits " TurboIRC.COM tutorial of entering the protected and the long mode the raw way from DOS Optimization ofbit programs Seven Steps of Migrating a Program to abit System Memory Limits for Windows Releases