x86 vs x64
Den viktigaste skillnaden mellan x86 och x64 är att den förra är 32-bitars arkitekturen och den senare är 64-bitars instruktionsuppsättningsarkitekturen. En instruktionsuppsättningsarkitektur (ISA) är en mycket viktig term som gäller alla processorer. Instruktioner, minnesadressering, register och många andra arkitektoniska delar av en CPU specificeras av ISA. x86 är en världsberömd ISA som introducerades av Intel 1978 med 8086-processorn. Sedan hände olika tillägg och under 2000 skapade AMD specifikationen för att förlänga x86-instruktionsuppsättningen till 64bit under namnet AMD64. Senare implementerade även andra företag som Intel den specifikationen och den här AMD64 är den som identifieras med namnet x64.
Vad är x86?
x86 är en instruktionsuppsättningsarkitektur som introducerades av Intel med den berömda 8086-processorn. 1978 introducerade Intel 8086-processorn som var en 16-bitars processor. Senare introducerade de olika processorer som 80186, 80286, 80386 och 80486, och alla var bakåtkompatibla med den ursprungliga instruktionsuppsättningen som användes i 8086-processorn. Eftersom alla dessa processorer slutar med siffran 86 identifierades instruktionsuppsättningsarkitekturen med namnet x86. Med introduktionen av 80386 utvidgades x86-instruktionen till ett 32-bitars system. Här betyder 32 bitar att alla register, minnesbuss och databuss är 32 bitar. Sedan kom Pentium-processorer som Pentium I, Pentium II, Pentium III, Pentium IV och alla dessa följde också en 32-bitars arkitektur. Men olika andra tillägg hände till x86-arkitekturen, som tillägg av instruktioner som MMX,SSE och SSE2. Bortsett från det gjordes också många andra förbättringar. Sedan utvidgades x86-instruktionsuppsättningen till en 64-bitars instruktionsuppsättning och från och med nu kallades den som x64, vilket vi kommer att diskutera i nästa avsnitt. Hur som helst, i allmänhet hänvisar x86 till 32-bitars arkitekturen som utvecklats från en 16-bitars arkitektur som kom upp med 8086-processorn.
8086-processor
Vad är x64?
Ett 32-bitars system kan endast representera 2 32 distinkta värden och därför är minnesadresseringen begränsad till det antalet adresser. 2 32 byte är lika med 4 GB och därför hade x86 en maximal adresserbar minnesgräns på 4 GB. För att övervinna detta gjordes ytterligare förlängningar av x86-arkitekturen. AMD, omkring år 2000, introducerade en sådan specifikation som utökade x86-arkitekturen till 64 bitar. Detta introducerades under namnet AMD64. x64 är ett annat namn som ges till denna AMD64-arkitektur. Denna AMD64- eller x64-arkitektur är också känd under namnet x86_64. Med 64-bitarsarkitekturen blev alla register 64 bitar och minnesbussen och databussen blev också 64 bitar. Nu 2 64distinkta värden kan hanteras och detta ger en enorm övre gräns för det möjliga maximala minnet. AMD K8 var den första processorn som implementerade denna 64-bitars arkitektur. Då antog Intel också denna arkitektur. Med Intel Core-processorer som startade från Intel Core 2 började Intel använda denna arkitektur i sina processorer. För närvarande använder alla Intel-processorer som Core i3, Core i5 och Core i7 denna x64-arkitektur. Något viktigt att betona är att den här x64-arkitekturen fortfarande är bakåtkompatibel med den gamla x86-instruktionsuppsättningen.
64-bitars processor
Vad är skillnaden mellan x86 och x64?
• x86 introducerades runt år 1978 medan x64 kom upp senare 2000.
• x86 framkom från den berömda Intel 8086-processorn och därför introducerades x86 av Intel. Men x64, som kom som en förlängning till x86, introducerades av AMD.
• x86-arkitekturen är 32bit. (Första x86-processorerna var 16 bitar, men i senare processorer gjordes en förlängning till 32bit). x64-arkitekturen är 64 bitar.
• Processorer med x86 instruktionsuppsättningsarkitektur har därför 32 bitars register, 32 bitars minnesbuss och 32 bitars databuss. Men x64 har 64 bitars register, 64 bitars minnesbuss och 64 bitars databuss.
• x86 har en begränsning på maximalt adresserbart minne som är en övre gräns på 4 GB (2 32 byte). Men på x64-system är denna gräns enorm, vilket är 2 64 byte.
• x64 är en expansion av x86; därför är den mycket förbättrad och kraftfull än den gamla x86.
• Värden som kan lagras i ett register, i ett x64-system, är större än värden som kan lagras i ett x86-baserat register. Därför kan x64 hantera beräkning av större heltal mycket snabbare, eftersom det inte är nödvändigt att använda flera register i sådant fall för att dela upp värdet och lagra som i x86.
• x64 kan parallellt sända större data längs databussen. Det vill säga en databuss på 64 bitar kan parallellt sända 64 bitar medan x86-arkitekturen som har en 32-bitarsbuss endast kan parallellt sända 32 bitar.
Sammanfattning:
x86 vs x64
x86 instruktionsuppsättningsarkitektur är 32 bitar medan x64 instruktionsuppsättningsarkitektur är 64 bitar. x64 kom som en förlängning av den befintliga x86-arkitekturen. Register, minnesbuss, databuss på x86-arkitekturer är 32 bitar medan detta är 64 bitar på x64. Därför är den maximala mängden adresserbart minne mycket högre i x64-system än i x86-system. x86 introducerades av Intel med 8086-processorn som var en 16-bitars processor och med tiden utökades x86 till 32 bitar. Senare introducerade AMD x64-arkitekturen genom att utöka den befintliga x86-arkitekturen och den här x64 är helt bakåtkompatibel med x86-instruktionsuppsättning.
Bilder med tillstånd:
- Intel 8086 av Appaloosa (CC BY-SA 3.0)
- 64-bitars processor från Appaloosa (CC BY 3.0)