Ik zal proberen het een en ander duidelijk uit te leggen.
Alles is binair op te bouwen met de meest logische bouwstenen. In de digitale techniek hoor je vaak functies als AND, OR, XOR, NOT etc. Deze functies zijn allemaal binair op te bouwen. Dit wordt gedaan met flipflop's etc. Deze bouwstenen zijn weer opgebouwd uit weerstand, condensator en belangerijkste transistors.
Nu zul je dus ook begrijpen waarom er zo ontzettend veel transistoren in CPU's zitten. Naar mate de CPU's steeds geavanceerder worden zijn er dus ook meer transistoren nodig om de logische circuits op te bouwen.
Een processor voert namelijk binaire in instructies uit. Een binaire code bepaalt wat de CPU voor logisch pad volgt. Ik zal hieronder daar meer over vertellen.
Om te beginnen zal ik wat vertellen over de opbouw van een x86 CPU.
Een CPU bestaat uit de volgende onderdelen.
ALU (Arithmatic Logic Unit) - Dit is de eenheid binnen de CPU waar het rekenwerk afgehandeld wordt.
CPU registers - Dit zijn registers waar de CPU bepaalde waarden vasthoudt met betrekking tot geheugen adressering en programma variabelen.
De CPU registers van de x86 zijn 16 bit. Bij de geavanceerdere CPU's is dit inmiddels al 32 bits breed. Er is een register wat voor ALU reken functies wordt gebruikt. Verder zijn er een aantal data registers en een aantal index registers. De index registers worden gebruikt om binnen een segment in het geheugen (uitleg hieronder) een lokatie aan te wijzen.
De CPU registers zijn weer onder te verdelen in data- en segment registers. Data registers worden dus gebruikt om tijdelijke variabelen van een programma vast te houden.
De segment registers is een ander verhaal. Deze registers verwijzen naar een bepaald geheugen segment. Je hebt verschillende segmenten. Code en data segmenten. De naam zegt het al. Code wordt gebruikt om programma instructies uit te voeren. Data wordt gebruikt voor opslaan en inlezen van variabelen.
Een ook belangerijk onderdeel van de CPU is de instruction decoder. Zoals ik al had vermeld zou ik daar op terug komen. De instructie decoder ontrafelt dus een binaire programma instructie uit het geheugen. De CPU haalt uit het code segment door middel van de instruction pointer een instructie op. Dit is een index register die de huidige instructie binnen het code segment aanwijst.
De instructie decoder ontrafelt dan wat voor logisch circuit de CPU aanspreekt om de betreffende instructie uit te voeren.
Verder communiceert de CPU met geheugen en randapparatuur. Dit wordt gedaan via de data bus. Dit is bij iedereen wel bekend als de standaard kreten. ISA, EISA, PCI. Deze data bus is qua bandbreedte ook vergroot naarmate de technologie vorderde. In begin 16 bits. Inmiddels al op 64 bits.
Naast de databus heeft de CPU ook een aantal I/O control lijnen. Input/Output. Deze lijnen bepalen wat de CPU doet. Communiceren met randapparatuur of met geheugen. Via deze lijnen wordt bepaald waar de databus op het moment voor gebruikt wordt.
Dit alles wordt aangestuurd via een klokpuls. De standaard kreten wederom. FSB en CPU speed. Front side bus en kloksnelheid. Nu is het zo dat dit allemaal goed op elkaar is afgestemd. Het werkt in principe op de zelfde manier als je hart. Deze pompt het bloed door je lichaam zodat alle organen blijven werken. Het zelfde geldt voor de CPU. De CPU houdt contact met geheugen en randapparatuur d.m.v. klokpulsen.
De CPU zelf kan intern veel sneller werken dan de bus en het geheugen zelf kan. De bus zelf is weer afhankelijk van de randapparatuur die eraan hangt. Deze kan de ontzettend hoge snelheid van de CPU niet aan. Daarom wordt de FSB veel lager geklokt. Het geheugen draait meestal op de zelfde snelheid als de FSB, OC in acht genomen. (Jullie tweakers doen niet anders

)Dit hangt natuurlijk af van het kwalitatief gebruikte geheugen. De CPU wordt dan m.b.v. een multiplier hoger geklokt. Een klokpulsje kan voorgesteld worden als een overgang van 0 naar 1 en 1 naar 0. Dit laat zich zien als een continue lopende blokgolf. De overgang van 0 naar 1 wordt dan gebruikt door de CPU om een handeling uit te voeren.
Ik kan hier nog wel lappen tekst over vol schrijven. Maar dit is in het kort gezegd hoe het een en ander werkt. Buiten de CPU zijn er nog meer zaken. Zoals communicatie CPU en randapparatuur d.m.v. IRQ's. Ik raad je echt aan een goed boek erbij te pakken. Dit lijkt inderdaad in het begin erg verwarrend. Het geheel zit heel logisch in elkaar. Het is zeer verstandig om goed bekend te worden met binaire en hexadecimale talstelsels. Aangezien je dit veel gaat tegenkomen als je cpu architectuur bestudeerd.
Het beste is gewoon om op google te zoeken naar goeie links die de architectuur van een x86 CPU goed beschrijft. Dit is de enige manier om er op een goeie manier bekend mee te raken. Zoals ik al zei is dit in het begin lastig. Maar als je er de tijd voor neemt en er de wil voor hebt is alles mogelijk