Ursprungligen inskrivet av pa1983
antalet bitar en CPu arbetar med har normalt sett å göra med register lägden eller ALU'ns bred eller annat som avgör den maximala lägden på isntrucktioner och datan som kan bearbetas.
En processor arbetar med instrucktioner och data.
Instrucktionerna går ofta under namnet Op-code och datan under namnet Operand.
Datan kan också vara en minnesadres beroende på vad för instrucktion det rör sig om.
En 8bit CPU kan hantera 8bit långa data sett och den har i regel 8bit isntrucktioner också.
Dessa lagras normalt set på en å samma addres i minent så därför krävs det att varge addres i minnet är 16bit lång då instrucktionern kommer först och datan efter.
Med anndra ord kan en instrucktion set ut så här.
00101011 10010000
Mellanrummet symbolicerar bara var instrucktionen slutaro ch var datanbörjar.
Varge instrucktion har sin egna binära kobination och tolkas av decodern eller också kallade micro-instruction logic unit. Först läses instrucktionen och dess data in i Instrucktions Registret. Sedan tar decodern och läser in dom första 8biten som är isntrucktionen och decrypterar dom. Sedan ser decodern till att resterande 8bit som är data eller alternativt en minnesaddres till att dessa kommer till rätt plats i processorn.
är det data kan det tex laddas in i accumilatorn, nog det msät vicktiga register i processorn eller så kan det skickas till ALU enheten för addering eller för att gämföra datan mot annan data för att i så fall hoppa till en annan addres i minnet om ett visst tillstånd uppfyles.
Det kan också vara en minnesadres som sagt och då går det till PC villket betyder Program Counter villket enkelt sätt är en sidräknare eller radräknare. Minnet har olika addreser PC håller koll på villken addres processorn arbetar i och noramlt sett när inga hopp till följd av en isntrucktion sker så räknar PC enheten fram ett steg efter varge utförd isntrucktion. Men man kan med oliak isntrucktioner tala om för processorn att hoppa till en annan addres i minnet villket är väldigt vicktigt för att kunan skriva nyttiga program som gör nåt vicktigt och inte bara kör rad för rad i minnet. Då blir det det ju som enbok som tar slut. Tänk er själva att ni lsäte en bok skriven som ett program där det på olika ställen stog att hoppa nu till sida 5 om ni har gröna sockar på er annar fortsätter ni läsa där ni är.
Troligtvis skulle ni aldrig komma ur den boken och lite så fungerar datorprogram.
Lägde på datan och instrucktioneran processorn kan arbeta med beror oftast på des registerlägder.
Som ni har sett så fins det ett antal register i en grundläggande processor.
Accumelatorn också kallad AC eller ACC, IR som är Instucktions Register, och PC som är program counter.
Detta är en mycket grundlägande CPU och en modärn är mycket mer komplex.
En modärn CPU har många register och en del lägre än 32 eller 64bit.
Delvis för att en modärn CPU oftast kan arbeta med vissa speciela isntrucktioner som är mycket lägre än 32 eller 64bit.
Tex 128bit SIMD isntrucktioner likt SSE.
Dock brukar en CPU som har 32bit långa instrucktioner ha en total lägd på 32bit för isntrucktionen i sig och 32bit för datan villket blir 64bit total lägd också ha en 64bit bred buss.
Dock inte nödvändigtvis sant men kan vara så. Oftast var det enklast så för i tiden då man inte hade cache och systembusar på det viset utan minnet direckt anslutit mot processorn.
Men i det fallet att man hade en 16bit CPU och på en 8bit buss så fick man helt enkelt hämta första 8bit en cykel och andra 8bti andra cykeln.
Z-80 var en CPu med både 8 och 16bit register men det är en 8bit ZPU i grunden. Den hade 8bit ALU enhet så nån ricktit 16bit CPU var den inte även om den kunde arbeta med 16it tal delvis.
Gammla P6 eller pentium PRO och pentium 2och fram har 36bit minnesadresering men är en 32bit CPU i grunden.
varför en CPU oftast inte kan addresera mer minne än sina registers lägder är just för att addresering av minnet görs i form av isntrucktion + data så för att addresera över 32bit minne behövs motsvarane lägd på addresen.
Är registrena bara 32bit långa så ryms inte nåt annat än max 32bit och då blir 32bit addresering max. Dock kan man kringå detta genom speciela isntrucktioner som tex styr ett Segmenterigs register som kan hålla tex 4bit extra. så det blir 4 + 32bit. Genom att tillämpa en speciel instrucktion för segmenterigsregister som sedan följs av datan där dom sissta 4biten utgör 16 möjliga kombinationer som var står för ett segment i minnet.
Med en minnesadresering på 32bit som grundo ch 4bit segmenterigs register så utgör det 16st 4Gb segment. Så genom att peka på valfrit segment och sedan addresera det som vanligt så kan man få 16x4Gb. Dock inte specielt omptimalt om man helt plötsligt måste åt data i ett annat segment så måste man först köra isntrucktionen för att byta segment och ange segment man vill hoppa till.
Därför är det klart bättre att välja en CPU som har rätt registerlägd och även mjukvara i orm av SO som kan addresera allt minnet man vill ha.
Så en 64bit CPU kan addresera mycket mer minne snabbare än en icke native 64bit processor.
Gammal intel processorer så som 8086 och 286 mm som inte var 32bit utan tex 8 eller 16bit addreserade olika segment och det kan ses i dos som arbetade på det viset. Blev lite av ett problem med stora program senare.
Att öka processorns register och även förlänga des ALU villket brukar gå hand i hand tilltåer ju en också att räkna på störe tal snabbare än att dela upp jobbet i små små fragment. Så en 64bit CPU kan beräkna stora tal mycket snabbare än en 32bits processor. Nu kräver inte vardaglia program den lägden i allmänhet men superdatorer har sedan länge varit 64bit då dom fräsmt arbetat med flytal med hög preciton.
Men en processor som är tex 64bit bör ha 64bits register och en 64bit alu i alla fall för att anses som 64bit. 64bit minnesadresering är i dagsläget ganska onödigt då det är en sjuk mägd minne man kan addresera. En modärn processor bör ju också kunna hantera 64bit flytal. Men flytalsenhet är iget som ärett msåte för att en processor ska vara en processor. En decoderm, dom grundlägadne registrena jag nämde och en ALU enhet som kan göra lite enkla beräkningar och man har en processor.