Hoe werkt een x86 Processor?

Pagina: 1
Acties:
  • 265 views sinds 30-01-2008
  • Reageer

  • Possstema
  • Registratie: Juli 2002
  • Laatst online: 10-03 22:48
Ik loop al heel lang rond met de vraag: "Hoe werkt een x86 processor nou?".
(ff voor de noobs dat is bv. een pentium proc van intel of een athlon van amd, de proc's dus waar (de meeste van ons) het meest mee te maken hebben).
Waarschijnlijk zijn er veel meer mensen die dat niet weten.

Ik weet wel dat een proc met 1 en 0 werkt enzo en (heb ik van een ander gehoord) dat een proc eigenlijk alleen maar kan rekenen. Nu snap ik niet hoe kan je nou windows opstarten met alleen maar sommetjes |:( . Dit lijkt mij dus niet helemaal goed.

Voor de mensen die het wel wetenhoe een proc werkt (en het wil posten :P ) zou je het dan zo makkelijk willen uitleggen, het liefst met voorbeelden zoals wordt gedaan in nieuws: Quantumcomputer mogelijk met huidige techniek (zoals meneer apenstaartje doet).

A.u.b. geen vragen over mijn proc is dood waarom enzo maar alleen hoe zo'n ding werkt

Ik heb al in de search gezocht naar een gelijk topic maar heb ik niet gevonden.
Ik heb toestemming van it snows dus A.u.b. niet gelijk een slotje erop behalve als het niet meer over het onderwerp gaat ("duhhh" 8)7 ).

  • Rafe
  • Registratie: Mei 2002
  • Laatst online: 27-06-2025
Technische PMG documentatie
http://whatis.techtarget....14,sid9,00.html?query=x86
http://www.howstuffworks.com/motherboard6.htm

Niet zulke moeilijke vragen stellen vroeg op de ochtend :P
Ik hoop dat je hier wat aan heb

Verwijderd

[google=hoe werkt een processor]

  • Pogostokje
  • Registratie: September 2001
  • Laatst online: 06-08 22:03

Pogostokje

* twiet *

Een processor is niet iets wat je in 3 zinnen uitlegd. Sterker nog, ik denk dat 50% van de mensen het niet eens zouden kunnen snappen al zouden ze willen. :)

Pak eens een boek over processor architecturen of Google eens wat op dat gebied. Lijkt mij handiger. ;)

... ook ik heb soms per ongeluk gelijk.


  • Abbadon
  • Registratie: Februari 2000
  • Laatst online: 15:38
Possstema schreef op 17 november 2002 @ 10:47:

Ik heb toestemming van it snows dus A.u.b. niet gelijk een slotje erop behalve als het niet meer over het onderwerp gaat ("duhhh" 8)7 ).


ItSnows kan wel meer zeggen :+

Grap is dat het gewoonweg niet zomaar in een post uit te leggen is, het enige wat we kunnen doen is je wat links geven naar artikelen over de werking van een cpu of evt. een specifiekere vraag beantwoorden waar je tegenaan loopt als je diverse artikelen hebt doorgenomen (want dat moet je sowieso doen, anders is het onbegonnen werk).

Hier een link met daar meerdere artikelen (en met name "the secrets of..") , dit gecombineerd met de andere links en google zullen je wel het een en ander duidelijk kunnen maken :)

Just pick a dead end and chill out 'till you die.


  • Possstema
  • Registratie: Juli 2002
  • Laatst online: 10-03 22:48
Verwijderd schreef op 17 november 2002 @ 10:53:
[google=hoe werkt een processor]
heb ik al gedaan maar dan krijg je van die oppervlakkige verhalen met vaak moeilijke termen zonder voorbeelden enzo. is het echt niet mogelijk om het eens te proberen om vanaf het begin uit te leggen hoe zo'n ding werkt.
Pogostokje schreef op 17 November 2002 @ 10:56:
Een processor is niet iets wat je in 3 zinnen uitlegd. Sterker nog, ik denk dat 50% van de mensen het niet eens zouden kunnen snappen al zouden ze willen. :)

Pak eens een boek over processor architecturen of Google eens wat op dat gebied. Lijkt mij handiger. ;)
Hoeft niet in drie zinnen daarom open ik ook een topic daar passen wel wat meer dan 3 zinnen in hoor.

En zo'n boek is al helemaal moeilijk. Over dat google kijk hierboven.

  • Possstema
  • Registratie: Juli 2002
  • Laatst online: 10-03 22:48
Abbadon schreef op 17 november 2002 @ 11:13:

[...]


ItSnows kan wel meer zeggen :+

Grap is dat het gewoonweg niet zomaar in een post uit te leggen is, het enige wat we kunnen doen is je wat links geven naar artikelen over de werking van een cpu of evt. een specifiekere vraag beantwoorden waar je tegenaan loopt als je diverse artikelen hebt doorgenomen (want dat moet je sowieso doen, anders is het onbegonnen werk).

Hier een link met daar meerdere artikelen (en met name "the secrets of..") , dit gecombineerd met de andere links en google zullen je wel het een en ander duidelijk kunnen maken :)
ok 'k vind het wel jammer want ik was heeeeeeeel erg geinteresseert. Als er echt niemand is die het makkelijk(er) kan uitleggen doe er dan maar een slotje op.

  • Abbadon
  • Registratie: Februari 2000
  • Laatst online: 15:38
Misschien heb je geluk en kan iemand de basics simpel uiteenzetten, mij lukt dat zo niet voor de vuist weg (moet ik eerst meer inlezen). Maar probeer eens wat verschillende artikelen, anders blijft die cpu voor altijd een volledige blackbox ;)

Just pick a dead end and chill out 'till you die.


Verwijderd

Possstema schreef op 17 november 2002 @ 11:19:
[...]


ok 'k vind het wel jammer want ik was heeeeeeeel erg geinteresseert. Als er echt niemand is die het makkelijk(er) kan uitleggen doe er dan maar een slotje op.
Het is gewoon heel erg moeilijk om uit te leggen hoe een processor werkt, dit vertel je niet zomaar even. Mensen zijn nu ook al 50 jaar bezig met chips en ze worden ook steeds ingewikkelder.

Het beste wat je kunt doen is gewoon bij zoekmachines goed zoeken.

  • The Third Man
  • Registratie: September 2001
  • Laatst online: 15:43

The Third Man

The Third Jellyfish

Het probleem is dat een processor op zijn beurt weer bestaat uit schakelingen en geheugens die op hun beurt weer uit kleinere schakelingen bestaan, dus kan je niet 123 alle mogelijkheden ervan belichten.

Wel kan je het simpele schema zoals een computer te werk gaat (want een processor is eigenlijk de computer, de rest in de grijze kast is alleen maar luxe) uitleggen. Namelijk dat de processor niets anders doet dan programma's uitvoeren. In de processor zit ook de program counter die bijhoudt op welk geheugenadres de processor verder moet gaan. Dus de processor leest steeds de inhoud van de geheugencel uit die in de programcounter genoemd wordt uit en voert die uit.

  • Pogostokje
  • Registratie: September 2001
  • Laatst online: 06-08 22:03

Pogostokje

* twiet *

Hoeft niet in drie zinnen daarom open ik ook een topic daar passen wel wat meer dan 3 zinnen in hoor.
Ik denk dat tientallen jaren research zich niet in een topic op GoT laat uitleggen. Als je dat niet wilt geloven, dan niet. ;)

De VERY basics zijn als volgt:
Een processor bestaat uit meerdere delen. Deze delen zelf onderhouden contact met de buitenwereld via geheugenoverdrachten, zodat bv. je videokaart weet dat er ergens iets getekend moet worden. Zo'n geheugenoverdracht is een stroming van 1 & 0 die in een noodvaart over de systeembus heen geblazen worden.
Intern in het blokje wat men processor noemt zitten de uiteindelijke rekendoos, die kan simpele optellingen enzo maken met geheugenadressen. De onderdelen daaromheen zorgen er voor dat deze opdrachten in de juiste volgorde gedaan worden en dat de juiste geheugenadressen bekend zijn (cache geheugen) zodat er niet gewacht hoeft te worden.

... ook ik heb soms per ongeluk gelijk.


  • _nethack
  • Registratie: September 2000
  • Laatst online: 03-08 12:04

_nethack

We're all MAD here

Kijk hier eens: http://www.howstuffworks.com/microprocessor.htm
Daar wordt relatief simpel uitgelegd hoe het een en ander ongeveer werkt :)

(hmm deze pagina kom je ook terecht via een van de links van Rafe hierboven :))

Sometimes you just have to sit back, relax, and let the train wreck itself


  • PowerFlower
  • Registratie: Juni 2001
  • Laatst online: 03:46

PowerFlower

être diable et jouer fleur

Possstema schreef op 17 november 2002 @ 10:47:
Ik weet wel dat een proc met 1 en 0 werkt enzo en (heb ik van een ander gehoord) dat een proc eigenlijk alleen maar kan rekenen. Nu snap ik niet hoe kan je nou windows opstarten met alleen maar sommetjes |:( . Dit lijkt mij dus niet helemaal goed.
ROFL... dan sla je ook wel heel wat stappen over. Ten eerste werkt een processor intern wel met alleen maar 1en en 0en, maar daar zijn al weer instructies mee samengesteld om het te doen te maken daar iets mee te programmeren. De processor loopt die functies in principe gewoon na elkaar af (bijv. tel deze twee getallen bij elkaar op, spring tien plaatsen vooruit etc.).

<even met zevenmijlslaarzen verder>

In principe is alles wat een processor doet het manipuleren van geheugenplaatsen. Maar alles wat je er uit ziet komen is dat ook: de plaatjes op je scherm zijn voor je processor gewoon getallen. Alles wat uit je toetsenbord naar de processor gaat, zijn ook getallen. Daar is dus prima van alles mee te doen voor een processor.

<even met zevenmijlslaarzen verder>

Van die sommetjes naar Windows is dus nog al een sprong. Het is niet voor niets dat zo'n programma opgebouwd is uit een enorme hoeveelheid modules. Als je in Windows letters op het scherm wil zetten, hoef je dus niet alle getallen in het geheugen van je grafische kaart zo in te gaan stellen dat op de juiste plek die letter verschijnt. Je zegt gewoon tegen zo'n module dat hij ergens een A neer moet zetten. Die module is al eens door iemand gemaakt en kun je daar dus gewoon voor gebruiken.

/off-topic:
best lastig om dit uit te leggen zeg. Zeker omdat ik nooit x86 assembly geprogrammeerd heb, wel ooit de Zilog Z80. Die was 8 bits en nogal basic, ik ging eens een boek met x86 code inkijken en was verbijsterd, jah da's wel heel makkelijk! Dat ding kan gewoon zelf al vermenigvuldigen en floating point getallen aan! En ik maar prutsen met 2 gecombineerde 8 bits registers om getallen boven de 256 aan te kunnen! :D

Verwijderd

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 :)

Verwijderd

Ik heb trouwens een waarschijnlijke fout ontdekt in een van de gegeven urls:
http://www.howstuffworks.com/microprocessor1.htm

In dat tabelletje staat dat de 8080 gewoon 2x zo rap is als de 8088... Terwijl die gewoon 5 jaar ouder is...? Moet denk ik 0.064 zijn ofzow...

  • star-saber
  • Registratie: Maart 2000
  • Laatst online: 04-08 11:08

star-saber

Ryzen

zal de 8086 moeten staan denk ik
die had namelijk een 16 bit adres bus

Verwijderd

x86 CPU werking is idd niet eenvoudig, ik krijg 2 lesuren per week over µProcessoren en dat is moeilijk te verstaan, zelfs met een "domme" 8-bitter. Wat zou het zijn als de leerkracht begint met een AMD Hammer uit te leggen?

  • Possstema
  • Registratie: Juli 2002
  • Laatst online: 10-03 22:48
Thnx Softice het wordt al een stuk duidelijker zo. Ik d8 eerst dus dat een cpu eigenlijk alleen maar rekenden (daarom vond ik het ook zo vaak lijken) maar dat ding doet dus wel ietwat veel meer.

Verwijderd

Possstema schreef op 17 November 2002 @ 19:54:
Thnx Softice het wordt al een stuk duidelijker zo. Ik d8 eerst dus dat een cpu eigenlijk alleen maar rekenden (daarom vond ik het ook zo vaak lijken) maar dat ding doet dus wel ietwat veel meer.
Het is een grote aaneenschakeling van logica. Alleen duurt het ff voordat je het zelf logisch overziet :)
Pagina: 1