Bronvermelding: https://jeweka.nl/category/theorie-en-werkboeken Module 5, Hoofdstuk 5, Paragraaf 5.3 Blz 163-170

De Central Processing unit (CPU genoemd) is het hart van je computer/laptop. De CPU doet alle verwerkingen en stuurt alle onderdelen aan in je computer en daarom is dit wel 1 van je belangrijkste onderdelen in je Computer. Maar hoe werk zo CPU nou precies en welke kan je het beste kopen? Kom daar hieronder achter!

De Central Processing Unit (CPU)

Opbouw van de CPU

De Central Processing Unit bestaat uit de volgende drie delen:

  • de rekeneenheid (Arithmetic Logic Unit = ALU) en bijhorende registers;
  • de besturingseenheid (Control Unit = CU);
  • de registers (register section).

De onderdelen van de Central Processing Unit communiceren direct met elkaar en zijn onderling verbonden via een interne databus. De processor communiceert ook met andere delen in de computer. Via specifieke adressen kunnen deze delen worden aangesproken. Hiervoor beschikt de CPU over adreslijnen (address bus) en datalijnen (databus). Via de adresbus geeft de processor aan waar gegevens naartoe moeten worden verzonden of opgehaald.

Vervolgens worden de gegevens via de databus naar de betreffende computerdelen verzonden of hiervandaan uitgelezen. Let op: het aantal parallelle lijnen van een databus hoeft niet gelijk te zijn aan het aantal lijnen van een address bus. Ook kan er verschil zijn tussen het aantal datalijnen van de interne CPU-databus ten opzichte van de databus van de computer. Een CPU met een bredere interne databus zal duidelijk sneller werken.

De rekeneenheid (Arithmatic Logic Unit – ALU)

In de rekeneenheid van de CPU worden de rekenkundige en logische bewerkingen uitgevoerd. Rekenkundige bewerkingen zijn bijvoorbeeld optellen, aftrek ken, vermenigvuldigen en delen.

Een overzicht van rekenkundige bewerkingen: Rekenkundige en logische instructies

ADD (optellen)
SUB (aftrekken)
AND (Logische En-functie)
OR (Logische Of-functie)

Immediate-instructies (instructies met één constant getal)

ADDI (ADD Immidiate; De inhoud van de accu met één constant getal optellen)
SUBI (SUB Immidiate; De inhoud van de accu met één constant getal ver minderen)
ANDI (AND Immidiate; logische En-functie met een constante operand)
LDI (LoaD Immidiate; De accu laden met de inhoud van een adres)

Branch-instructies (Instructies met een offset / verschuiving: Branch betekent vertakking)

  • BZ (Branch if Zero; met een offset naar een andere positie in het programma gaan als de uitkomst nul is)
  • BEQ (Branch if EQual)
  • BRA (BRanch Always)

Tot de logische bewerkingen behoren onder andere het vergelijken (compare van twee bitcombinaties of het testen van bits in een bepaalde combinatie. Ook wordt de polariteit van de bewerking vastgesteld, dat wil zeggen of het resultaat een positieve of negatieve waarde heeft.

Operand, Opcode en Adders

Voor het uitvoeren van logische bewerkingen maakt de processor gebruik van AND-, OR- en XOR-poorten. Een bitcombinatie waarop een rekenkundige of logische bewerking moet worden uitgevoerd, wordt een operand” genoemd. De soort bewerking die de ALU moet uitvoeren heet de ‘opcode (operation code)

Een operand kan ook een adres zijn waar de te bewerken data in staan. Het resultaat van een bewerking wordt weggeschreven in een apart register dat accumulator (ACCU) wordt genoemd (zie afbeelding 5.13). Het “temp. reg.” is een hulpregister en staat voor temporary memory en wordt vaak afgekort als TEM.

ALU in en outputs van een CPU

Voorbeeld 5

Als de CPU de getallen 6 en 25 bij elkaar moet optellen worden de binaire bit combinaties bij elkaar opgeteld. Het resultaat zal tijdelijk in de ACCU worden geschreven:

De eigenlijke berekeningen worden gedaan in een full-adder. Dat is een serie half-adders die elk afzonderlijk één bit kan optellen van twee operanden. Mocht de optelling een carrybit veroorzaken dan wordt deze doorgegeven aan de volgende half-adder.

Full adder voor 8 bits

Het uitvoeren van instructies wordt in een microcomputer in 3 fasen verwerkt:

  • instructie fetch;
  • instructie decoderen;
  • instructie executie.

De CPU leest eerst de instructie uit het geheugen (fetch). Deze binair-gecodeerde instructie bevat de opcode. In de instructie-decoder wordt deze instructiecode gedecodeerd, waarna de instructie uitgevoerd wordt (executie). Deze volgorde wordt ook wel de ‘Von Neuman cyclus’ genoemd.

Eén- en multi-adres-instructies

Veel instructies worden uitgevoerd op de data van één adres: one-address instruction. Echter er zijn ook instructies die meer dan één adres bevatten. Men spreekt dan van multi-address instructions.

Instructies en data parallel verwerken

Moderne computers zijn uitgevoerd met meer processoren die tegelijkertijd parallel aan elkaar instructies uitvoeren. De Control Unit CU) regelt dan waar welke instructies zullen worden uitgevoerd. Dit maakt een computer veel sneller. Dit fenomeen heet pipelining.

Er wordt onderscheid gemaakt in data-stromen en instructie-stromen. Dit is terug te vinden in het uitvoeringsproces van verschillende computers. Men heeft daar de “taxonomie van Flynn” als handvat voor om deze te verdelen (afbeelding Hieronder). De betekenis van de 4 afkortingen zijn:

  • SISD = Single Instruction stream, Single Data stream;
  • SIMD = Single Instruction stream, Multiple Data stream;
  • MISD = Multiple Instruction stream, Single Data stream;
  • MIMD = Multiple Instruction stream, Multiple Data stream.
Tabel verwerking van een CPU

Single Instruction stream, Single Data stream (SISD): één processor voert één instructiestroom uit op (uniprocessor zoals de PC). één dataset

Single Instruction stream, Multiple Data stream (SIMD): één instructie wordt tegelijkertijd uitgevoerd op meer dere data. Dit noemen we een vector of array-processor. Een voorbeeld: een groep getallen (verzameling) moet met 10 vermenigvuldigd worden. In de lite ratuur spreekt men ook wel over CISC processoren (Complex Instruction Set Computer processors).

Multiple Instruction stream, Single Data stream (MISD): Dit type proces sor is niet doorontwikkeld.

Multiple Instruction stream, Multiple Data stream (MIMD): Er worden ver schillende bewerkingen onafhankelijk van elkaar op verschillende getallen (data) tegelijkertijd uitgevoerd in verschil lende processoren. Zie afbeelding 5.18.

Naast bovengenoemde soorten is er ook nog een SPMD (Single Program, Multiple Data); meerdere afzonderlijke processoren verwerken gelijktijdig dezelfde instructieset (maar op verschillende plaatsen) asyn chroon op verschillende datasets. Soms ook wel als “Single Process Multiple Data” aangeduid.

De besturings- en controle-eenheid (Timing and Control Unit)

De besturingseenheid heeft controle over de activiteiten van de processor. De besturingseenheid bepaalt dus wat er moet gebeuren en in welke volgorde. De signalen die de besturingseenheid afgeeft zijn afkomstig van de instructies die uit het softwareprogramma van computer komen.

De besturingseenheid beschikt over een eigen besturingsregister. Hierin wordt de instructie geplaatst, die op dat moment moet worden uitgevoerd. Soms zit in de besturingseenheid ook de clock, maar meestal is deze opgenomen in een aparte IC (clock-generator).

De besturingseenheid van een computer is verantwoordelijk voor de volgende taken:

  • lezen en interpreteren van programma-instructies;
  • dirigeren van opeenvolgende bewerkingen in de processor;
  • controleren van de stroom programma-instructies en gegevensopslag naar en vanuit de interne geheugens.

Het aansturen van de onderdelen die geactiveerd moeten worden op een bepaald moment wordt gedaan via de control Lines. Op de verschillende onderdelen zit een enable-ingang. Het activeringssignaal komt op deze ingang te staan. In afbeelding 5.19 zie je een veel gebruikte tri-state buffer met bijbehorende functietabel.

Tri-state buffer met enable ingang in een CPU

Voor de aansturing van de I/O-poorten worden meestal bidirectionele tri-state buffers gebruikt. Deze kunnen de data in twee richtingen doorlaten, afhankelijk van het signaal op de enable-ingang. Een voorbeeld zie je in afbeelding 5.20.

De buffer die in een CPU kan worden gebruikt
Zelf besturend systeem

De registers

Een register is een snel toegankelijk CPU-geheugen, waarin tijdelijk instructies, adressen of berekende gegevens worden opgeslagen. Registers kunnen dus ook een bron zijn van benodigde gegevens voor opeenvolgende bewerkingen. Er bestaan verschillende soorten registers, elk met een eigen specifieke toepassing. Binnen de CPU kunnen we de volgende registers onderscheiden:

Programmateller- Deze geeft aan waar in het geheugen de volgende instructie staat die moet worden uitgevoerd (= program counter).

Instructieregister – Deze vormt de opslagplaats van een door de CPU opgehaalde instructie.

Adresregister – Deze geeft aan waar in het geheugen informatie staat die moet worden opgeslagen.

Bufferregister -Deze dient als tussenopslag van een instructie of data.

Accumulator – deze dient als opslagplaats van de resultaten van een bewerking. Dit onderdeel wordt ook wel accu genoemd.

Statusregister – Deze geeft de bijzondere uitkomsten na een bewerking in de ALU aan, zodat daar in het verdere programma rekening mee gehouden kan worden (= condition code register). De belangrijkste zijn:

  • N = negative
  • Z = zero
  • V = overflow
  • C = carry

– Stack Pointer – Dit register binnen de CPU geeft het adres aan waar de laatste keer data zijn weggeschreven in het werkgeheugen. Deze werkt meestal volgens het principe van “Last In First Out (LIFO).

De instructieset en programma

leder type processor kan een beperkte verzameling instructies uitvoeren en deze verschilt per type processor. Een instructie is een stapsgewijze opdracht voor de processor om data te kunnen verwerken. De verzameling van processor- instructies noemen we een instructieset. Een instructieset is speciaal ontwikkeld voor een bepaald type processor. Dat betekent dat een instructieset niet zomaar uitgevoerd kan worden door een ander type processor. De instructie-decoder “vertaalt” de instructie voor het uitvoeren van de bewerking.

Een programma bevat instructies die in logische volgorde afgewerkt moeten worden. In zo’n programma kunnen ook sprong-instructies zijn opgenomen. bepaalde gevallen zal dan het programma een deel herhalen of overslaan. In Een speciale sprong-instructie is een sub-routine. Dat is een apart deelprogram ma in een hoofdprogramma wat tijdens het doorlopen van het hoofdprogramma meerdere malen doorlopen wordt.

Welke CPU kan ik het Beste Kopen?

Dit ligt helemaal aan de doelen die je hebt. Wil je een game PC of een PC voor videobewerking en dergelijke dan is het aan te rijden om een CPU te kopen die wat duurder zijn. De onderste Processors zijn goed voor deze doelen:

RYZEN 7 –> LINK.

Ryzen 5 –> LINK.

Intel Core i9 –> LINK.

RYZEN 9 –> LINK.

Intel Core I7 –> LINK.

Voor een PC waarmee je alleen maar wilt internetten zijn onderstaande Processors wel genoeg.

Intel Core I3 –> LINK.

Ryzen 3 –> LINK.

Bronvermelding: https://jeweka.nl/category/theorie-en-werkboeken Module 5, Hoofdstuk 5, Paragraaf 5.3 Blz 163-170

Geef een reactie

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.