Taak Paper werking van een processor

Een processor, of in het Nederlands centrale verwerkingseenheid genoemd, is het hart van een computer. Voor vele lijkt de werking van een processor heel moeilijk maar dat is het niet.
Hier is een voorbeeld van een optelling.
Stel op positie 10 in het geheugen staat de volgende machinetaalinstructie:
add r1,r2
Dit betekent dat in de registers r1 en r2 getallen zitten die bij elkaar opgeteld moeten worden.
De processor slaat het resultaat op in het register dat we het eerst vermelden, dus na deze instructie bevat register r1 de som van beide getallen. De instructie hierboven is de vorm hoe wij mensen hem zien.


De computer ziet de instructie in de vorm van een reeks nullen en enen. Hoe werkt dit? Iedere instructie heeft een nummer.
De werking
Stel: de processor gebruikt 8 bits voor het instructienummer, dan kunnen we 28 = 256 verschillende instructies in onze processor stoppen. Stel: "add" is instructienummer 21. Dat is een decimaal getal. Als we dat omzetten in een binair getal, dan wordt dat 00010101.
Stel: de processor heeft 16 registers. Om aan te geven welke registers we willen gebruiken, kunnen we gewoon de nummers van beide registers vermelden. Om 16 registers te kunnen nummeren heb je vier bits nodig. Register nummer 1 wordt dan binair 0001, en register 2 wordt dan binair 0010. Onze totale instructie ziet er dan zo uit:
0001010100010010
Een processor dient instructies in volgorde uit te voeren, dus heeft de processor een teller die de positie van de volgende instructie bijhoudt. Het uitvoeren van een instructie begint met de zogeheten "fetch"-fase, waarbij een instructie op die positie uit het geheugen wordt opgehaald. Onze instructie stond op positie 10, dus de teller van onze processor staat ook op 10. Stel onze processor kan 65536 verschillende posities aan, dan hebben we 16 bits nodig voor onze teller. Het getal 10 ziet er binair dan zo uit:
0000000000001010


Dit getal wordt via de elektrische lijntjes naar het geheugen geleid en onze instructie die op die plaats in het geheugen stond wordt via andere lijntjes terug de processor in geleid.
Vervolgens begint de "decode"-fase. Een instructie is feitelijk een reeks bits en de "decode"-fase heeft tot taak te bepalen wat er moet gebeuren; aan de hand van deze reeks bits worden de componenten in de processor die de instructie uitvoeren in de juiste stand gezet zodat zij de gewenste bewerking uitvoeren.
Over het algemeen zal het instructienummer naar iedere component gestuurd worden, en iedere component heeft een klein stukje geheugen waar het zijn configuratie uitleest. Ons instructienummer was 21, en dus zal de rekeneenheid van de processor op positie 21 in zijn eigen geheugen kijken en daar staat dat hij in optelstand moet gaan staan. Dus stelt de rekeneenheid zich in op optellen.
De getallen in register r1 en r2 moeten worden opgeteld. De registers, waar de getallen in opgeslagen staan zijn kleine stukjes geheugen in de processor met logica er omheen. Als een register zijn nummer voorbij ziet komen dan wordt dit register actief, hij zet zich klaar om zijn inhoud op de elektrische leidinkjes te zetten die naar andere delen van de processor gaan.
Vervolgens begint de zogeheten "execute"-fase. De processor staat in de juiste stand en de berekening wordt gestart. De twee getallen in de registers r1 en r2 stromen naar de rekeneenheid van de processor welke een optelling uitvoert. Vervolgens wordt het resultaat in een klein stukje tijdelijk geheugen opgeslagen.
Vervolgens begint de "store"-fase. Het nummer waarin opgeslagen wordt (dat is dus r1), wordt weer naar alle registers gestuurd en het register waar het voor bestemd is gaat in de luisterstand, als op de elektrische leidingen een getal voorbij komt, dan vervangt hij het getal dat hij bewaart met het getal dat hij voorbij ziet komen. Het getal dat berekend is wordt vervolgens op de leidinkjes gezet.
Ten slotte wordt de teller verhoogd (naar positie 11 dus) en wordt de processor voorbereid op het uitvoeren van de volgende instructie. Het uitvoeren van de instructie is nu afgerond.
Nog enkele begrippen die met de werking van de processor in verband staan:
- Register: Een tijdelijke interne geheugenbyte van een processor. Dit is geen onderdeel van het geheugen, maar wordt intern in de processor gebruikt.
- Interrupts: Onderbreking van een programma. Dit kan zowel hardwarematig als softwarematig gebeuren. De processor bergt al zijn registers op op de stack en gaat de gewenste taak uitvoeren. Als hij hiermee klaar is, haalt hij alle registers weer van de stack en vervolgt het programma waar hij mee bezig was, alsof er niets is gebeurd.
Bronnen:
- http://www.computerwoorden.nl/processor-woordenboek--i.htm
- http://nl.wikipedia.org/wiki/Processor

REACTIES

Er zijn nog geen reacties op dit verslag. Wees de eerste!

Log in om een reactie te plaatsen of maak een profiel aan.