top of page
Machiel Bijl

Hoe werken de cores en threads van een processor?

Als mensen zijn wij slecht in staat om te multi-tasken. We kunnen over het algemeen als we ons op een taak moeten concentreren niet nog ons op een tweede taak focussen. Er schijnt hierin nog een verschil te zitten tussen een mannen- en vrouwenbrein maar toch blijkt dit een uitdaging voor iedereen. Een processor is echter wel in staat om te multitasken. Dit komt door dat een processor tegenwoordig uit meerdere kernen bestaat die ieder instructies kunnen uitvoeren. De grote vraag is natuurlijk hoe dit precies werk.


Intel processor

CPU scheduling

Om goed te begrijpen hoe een processor meerdere kernen inzet moet je eerst de scheduling van de CPU begrijpen. De scheduler kan je zien als een soort planner in een groot bedrijf. Er zijn onwijs veel taken af te handelen en de planner moet gaan bedenken wie welke taak wanneer moet gaan uitvoeren. Er zijn taken met hoge prioriteit die door de meest bekwame mensen uitgevoerd moeten worden maar ook taken met lagere prioriteit die door een stagiair uitgevoerd kunnen worden.


De processor werkt met threads. Elke thread is een instructie, een soort som die de processor moet gaan oplossen. De scheduler bepaald welke threads als eerste uitgevoerd moeten worden en dus een hoge prioriteit hebben. Deze threads worden naar voren geschoven in de rij met instructies en worden als eerste afgehandeld. Programmeurs kunnen een instructie een prioriteitswaarde meegeven in het programma waardoor de scheduler goede keuzes kan maken. Ook Windows heeft nog invloed op de prioriteit door te kijken hoeveel rekenkracht een instructie nodig heeft en waarvoor de instructie bedoeld is. Als je bijvoorbeeld beweegt met je muis is het aannemelijk dat die instructie een hoge prioriteit heeft omdat dit direct resultaat moet opleveren op jouw computerscherm.


CPU kernen

Iedere CPU kern kan dus een thread "oplossen". Hierdoor is een CPU in staat om te multitasken. Het is zelfs zo dat bijvoorbeeld intel CPU's P-cores en E-cores hebben. De P-cores zijn fysiek groter en krijgen zwaardere taken toebedeeld. De E-cores zijn kleiner en krijgen makkelijkere instructies. Het voordeel hiervan is dat je dus meer kernen op 1 CPU kwijt kan doordat die E-cores kleiner zijn. Ook is het nog mogelijk dat processorkernen zich viruteel opsplitsen en hierdoor meerdere instructies tegelijk kan uitvoeren. Dit is de reden dat bijvoorbeeld de Ryzen 5 7600X 6 cores heeft en 12 threads.


Intel P-cores en E-cores
Intel P-cores en E-cores

Een andere methode waarop meerdere kernen ingezet worden is parallellisatie. Bij deze methode wordt 1 instructie opgeknipt in meerdere delen. Dit werkt een beetje alsof je een som opknipt in meerdere sommen. Bijvoorbeeld:


3x4x2x3=


Als ik alleen deze som zou berekenen zou ik deze gewoon op volgorde berekenen. Oftewel:

3x4 = 12

12x2 = 24

24x3 = 72


3x4x2x3 = 72


Bij parrallellisatie knip je de som in meerdere delen. Als ik hem bijvoorbeeld in 2 threads verdeel is het alsof je de som met zijn tweeën aan het oplossen bent:

Thread 1: Thread 2:

3x4= 12 2x3 = 6

12x6 =72


Door deze techniek wordt de rekenkracht van voor 1 instructie dus verdeeld over meerdere kernen/threads waardoor je sneller resultaat hebt.


Wanneer heb je veel kernen nodig?

De duurste processor is niet altijd de beste processor voor het doeleinde van jouw PC. Het gebruik van parallellisatie is namelijk niet even haalbaar voor programmeurs van games. Het is heel lastig om een game zo te programmeren dat deze de instructies goed kan verdelen tussen kernen. De GPU is ook geoptimaliseerd voor parallelisatie maar zorgt er eigenlijk alleen maar voor dat er frames op je scherm komen. Overige taken als Ai, besturing en het bepalen wat de GPU op jouw scherm moet toveren worden opgepakt door de CPU maar zijn dus heel lastig paralel te programmeren. Hierdoor heb je voor gaming niet heel veel aan een processor met een grote hoeveelheid kernen. Hier zijn wel nuances in, de ene game zet de CPU meer in dan de andere game. Programma's waarbij heel veel berekeningen makkelijk opgesplitst kunnen worden hebben juist wel heel veel profijt bij veel kernen. Denk bijvoorbeeld aan videobewerkingssoftware of 3D-modeleringsprogramma's.


3d rendering zichtbaar

Conclusie

Voordat je een processor koopt moet je dus altijd goed nadenken over waarvoor je deze gaat gebruiken. Wil je alleen gamen? Kijk dan naar een processor die niet perse veel kernen heeft maar wel snel een hoge kloksnelheid kan bereiken. Ga je je PC meer inzetten voor productie dan is het raadzaam om juist wel te kijken naar meer kernen. Ben je opzoek naar een pc voor jouw doeleinde maar weet je niet waar je moet beginnen? Laat je PC bouwen door een professional bij ikbouwjepc.nl



תגובות


bottom of page