Kõige olulisem erinevus x86 ja x64 vahel on see, et esimene on 32-bitine arhitektuur ja viimane on 64-bitine käskkomplekti arhitektuur. Käskude komplekti arhitektuur (ISA) on väga oluline termin, mis kehtib kõigi protsessorite kohta. Juhised, mälu adresseerimine, registrid ja paljud muud protsessori arhitektuurilõigud on täpsustatud ISA-s. x86 on maailmakuulus ISA, mille Intel tutvustas 1978. aastal koos protsessoriga 8086. Siis juhtusid erinevad laiendused ja 2000. aastal lõi AMD spetsifikatsiooni, et laiendada käsku x86 64bitini nime AMD64 all. Hiljem rakendasid selle spetsifikatsiooni ka teised ettevõtted, näiteks Intel, ja see AMD64 on see, mida identifitseeritakse nimega x64.
x86 on Inteli tutvustatud juhiste komplekti arhitektuur koos kuulsa 8086 protsessoriga. 1978. aastal tutvustas Intel 8086 protsessorit, mis oli 16-bitine protsessor. Hiljem tutvustasid nad mitmesuguseid protsessoreid, näiteks 80186, 80286, 80386 ja 80486, ja kõik ühilduvad tagasiulatuvalt 8086 protsessoris kasutatud algsete juhistega. Kuna kõik need protsessorid lõpevad numbriga 86, identifitseeriti käskude komplekti arhitektuur nimega x86. 80386 kasutuselevõtuga laiendati x86 juhiseid 32-bitiseks süsteemiks. Siin tähendab 32-bitine, et kõik registrid, mälu- ja andmesiin on 32-bitised. Siis tulid Pentium protsessorid Pentium I, Pentium II, Pentium III, Pentium IV ja kõik need järgisid ka 32-bitist arhitektuuri. Kuid x86 arhitektuuriga juhtus ka mitmeid muid laiendusi, näiteks juhiste lisamine, näiteks MMX, SSE ja SSE2. Peale selle tehti ka palju muid parandusi. Seejärel laiendati x86 juhiskomplekti 64-bitiseks käskkomplektiks ja sellest hetkest alates hakati seda nimetama x64-ks, mida käsitleme järgmises osas. Üldiselt viitab x86 32-bitisele arhitektuurile, mis arenes välja 16-bitise arhitektuuriga, mis tuli välja 8086 protsessoriga.
8086 protsessor
32-bitine süsteem võib tähistada ainult kahte32 erinevad väärtused ja seetõttu on mälu adresseerimine piiratud selle aadresside arvuga. 232 baiti on 4 GB ja seetõttu oli x86 maksimaalne adresseeritava mälu piirang 4 GB. Selle ületamiseks tehti x86 arhitektuurile täiendavaid laiendusi. AMD tutvustas umbes 2000. aastal sellist spetsifikatsiooni, mis laiendas x86 arhitektuuri 64 bitini. See võeti kasutusele nime all AMD64. x64 on sellele AMD64 arhitektuurile veel üks nimi. Seda AMD64 või x64 arhitektuuri tuntakse ka nime all x86_64. 64-bitise arhitektuuriga said kõik registrid 64-bitiseks ning mälupuks ja andmesiin said samuti 64-bitiseid. Nüüd 264 saab käsitleda erinevaid väärtusi ja see annab võimaliku maksimaalse mälu tohutu ülempiiri. AMD K8 oli esimene protsessor, mis selle 64-bitise arhitektuuri juurutas. Siis võttis Intel ka selle arhitektuuri kasutusele. Intel Core protsessoritega, mis said alguse Intel Core 2-st, hakkas Intel kasutama seda arhitektuuri oma protsessorites. Praegu kasutavad seda x64 arhitektuuri kõik Inteli protsessorid, näiteks Core i3, Core i5 ja Core i7. Oluline on rõhutada, et see x64 arhitektuur on endiselt ühilduv vana x86 käskkomplektiga.
64-bitine protsessor
• x86 toodi turule umbes 1978. aastal, x64 tuli turule 2000. aastal.
• x86 tuli välja kuulsast Intel 8086 protsessorist ja seetõttu tutvustas Intel x86. Kuid x64, mis sai laiendusena x86-le, tutvustas AMD.
• x86 arhitektuur on 32 bitti. (Esimesed x86 protsessorid olid 16-bitised, kuid hilisemates protsessorites tehti laiendus 32-bitisele). x64 arhitektuur on 64 bitine.
• Seetõttu on x86 käsukomplekti arhitektuuriga protsessoritel 32-bitiseid registreid, 32-bitiseid mälusiine ja 32-bitiseid andmesiini. Kuid x64-l on 64-bitised registrid, 64-bitised mälubussid ja 64-bitised andmesiinid.
• x86-l on maksimaalne adresseeritava mälu piirang, mis on ülempiir 4 GB (232 baiti). Kuid x64-süsteemides on see piir tohutu, mis on 264 baiti.
• x64 on x86 laiendus; seetõttu on see palju parendatud ja võimas kui vana x86.
• Väärtused, mida saab registris salvestada x64-süsteemis, on suuremad kui väärtused, mida saab salvestada x86-põhises registris. Seetõttu saab x64 hakkama suuremate täisarvude arvutamisega palju kiiremini, kuna sellisel juhul pole vaja väärtuse jagamiseks ja talletamiseks sarnaselt x86-ga kasutada mitut registrit..
• x64 saab paralleelselt edastada suurema andmemahu piki andmesiini. See tähendab, et 64-bitine andmesiin suudab 64 bitti paralleelselt edastada, samas kui 32-bitise siiniga x86 arhitektuur suudab edastada ainult 32 bitti paralleelselt.
Kokkuvõte:
x86 käskude komplekti arhitektuur on 32 bitti, samas kui x64 käskude komplekti arhitektuur on 64 bitti. x64 tuli olemasoleva x86 arhitektuuri laiendusena. Registrid, mälubuss ja andmesiin x86 arhitektuuridel on 32 bitti, seevastu 64 bitti x64 korral. Seetõttu on x64-süsteemides maksimaalselt adresseeritav mälumaht palju suurem kui x86-süsteemides. x86 tutvustas Intel koos 8086 protsessoriga, mis oli 16-bitine protsessor ja aja jooksul laiendati seda x86 32-bitiseks. Hiljem tutvustas AMD x64 arhitektuuri, laiendades olemasolevat x86 arhitektuuri ja see x64 ühildub täielikult x86 käskkomplektiga.
Pildid viisakalt: