Toen personal computers voor het eerst werden uitgevonden, stond hun centrale verwerkingseenheid (CPU) op zichzelf en had slechts één processorkern. De processor zelf was de kern; het idee om een multiple-core processor te hebben was tot nu toe ongehoord. Tegenwoordig is het helemaal niet ongewoon om computers, telefoons en andere apparaten met meerdere cores te zien - inderdaad, vrijwel elke commercieel beschikbare computer van welke aard dan ook heeft meerdere cores. Deze kernen bevinden zich in dezelfde, enkele, CPU of centrale verwerkingseenheid.
Het hebben van meerdere kernen is een groot voordeel. Met slechts één kern kan een computer slechts aan één taak tegelijk werken, waarbij een taak moet worden voltooid voordat deze naar een andere wordt verplaatst. Met meer cores kan een computer echter aan meerdere taken tegelijk werken, wat vooral handig is voor diegenen die veel multitasken.
Voordat we precies ingaan op de manier waarop multi-coreprocessors werken, is het belangrijk om een beetje te praten over het achtergrondverhaal van verwerkingstechnologie, waarna we zullen bespreken wat multi-coreprocessors doen.
Wat geschiedenis
Voordat processors met meerdere cores werden gebouwd, probeerden mensen en bedrijven zoals Intel en AMD computers met meerdere CPU's te bouwen. Dit betekende dat een moederbord met meer dan één CPU-socket nodig was. Dit was niet alleen duurder, vanwege de fysieke hardware die nodig is voor een andere CPU-socket, maar het verhoogde ook de latentie vanwege de verhoogde communicatie die nodig was om tussen de twee processors plaats te vinden. Een moederbord moest gegevens opsplitsen over twee volledig afzonderlijke locaties op een computer in plaats van alles eenvoudigweg naar de processor te sturen. Fysieke afstand betekent in feite dat een proces langzamer is. Het plaatsen van deze processen op één chip met meerdere kernen betekent niet alleen dat er minder afstand is om te reizen, maar het betekent ook dat verschillende kernen middelen kunnen delen om bijzonder zware taken uit te voeren. Intel's Pentium II- en Pentium III-chips werden bijvoorbeeld beide geïmplementeerd in versies met twee processors op één moederbord.
Na een tijdje moesten processoren krachtiger zijn, dus ontwikkelden computerfabrikanten het concept van hyperthreading. Het concept zelf kwam van Intel en werd voor het eerst bedacht in 2002 op de Xeon-serverprocessors van het bedrijf en later op de Pentium 4-desktopprocessors. Hyper-threading wordt tegenwoordig nog steeds in processors gebruikt en is zelfs het belangrijkste verschil tussen de i5-chips van Intel en de i7-chips. Het profiteert in feite van het feit dat er vaak ongebruikte bronnen in een processor zijn, vooral wanneer taken niet veel verwerkingskracht vereisen, die voor andere programma's kunnen worden gebruikt. Een processor die hyperthreading gebruikt, presenteert zichzelf in principe aan een besturingssysteem alsof deze twee kernen heeft. Natuurlijk heeft het niet echt twee cores, maar voor twee programma's die de helft van de beschikbare verwerkingskracht of minder gebruiken, kunnen er net zo goed twee cores zijn vanwege het feit dat ze samen kunnen profiteren van alle kracht die de processor te bieden heeft. Hyper-threading zal echter iets langzamer zijn dan een processor met twee cores wanneer er onvoldoende verwerkingskracht is om te delen tussen de twee programma's die de kern gebruiken.
Je kunt hier een inzichtelijke video vinden met een korte, meer gedetailleerde uitleg over hyperthreading.
Multi-processors
Na veel experimenteren konden eindelijk CPU's met meerdere cores worden gebouwd. Dit betekende dat een enkele processor in principe meer dan één verwerkingseenheid had. Een dual-core processor heeft bijvoorbeeld twee verwerkingseenheden, een quad-core vier, enzovoort.
Dus waarom ontwikkelden bedrijven processoren met meerdere kernen? Welnu, de behoefte aan snellere processors werd steeds duidelijker, maar ontwikkelingen in single-core processors vertraagden. Van de jaren tachtig tot de jaren 2000 konden ingenieurs de verwerkingssnelheid verhogen van meerdere megahertz naar verschillende gigahertz. Bedrijven als Intel en AMD deden dit door de grootte van transistors te verkleinen, waardoor meer transistors in dezelfde hoeveelheid ruimte mogelijk werden, waardoor de prestaties werden verbeterd.
Vanwege het feit dat de kloksnelheid van de processor erg gekoppeld is aan het aantal transistors dat op een chip past, begon de ontwikkeling van hogere processorsnelheden toen de transistor-krimptechnologie begon te vertragen. Hoewel dit niet het moment was waarop bedrijven voor het eerst op de hoogte waren van multi-coreprocessors, begonnen ze te experimenteren met multi-coreprocessors voor commerciële doeleinden. Hoewel multi-coreprocessors voor het eerst werden ontwikkeld in het midden van de jaren tachtig, waren ze ontworpen voor grote bedrijven en werden ze pas echt herzien voordat de single-core-technologie begon te vertragen. De eerste multi-coreprocessor werd ontwikkeld door Rockwell International en was een versie van de 6501-chip met twee 6502-processors op één chip (meer details zijn hier beschikbaar in dit Wikipedia-artikel).
Wat doet een multi-core processor?
Nou, het is echt allemaal vrij eenvoudig. Met meerdere kernen kunnen meerdere dingen tegelijk worden gedaan. Als u bijvoorbeeld aan e-mails werkt, een internetbrowser hebt geopend, werkt aan een Excel-spreadsheet en naar muziek luistert in iTunes, dan kan een quad-coreprocessor aan al deze dingen tegelijk werken. Of, als een gebruiker een taak heeft die meteen moet worden voltooid, kan deze worden opgesplitst in kleinere, gemakkelijker te verwerken taken.
Het gebruik van meerdere kernen is ook niet alleen beperkt tot meerdere programma's. Google Chrome geeft bijvoorbeeld elke nieuwe pagina een ander proces, wat betekent dat het gebruik kan maken van meerdere cores tegelijk. Sommige programma's zijn echter wat single-threaded wordt genoemd, wat betekent dat ze niet zijn geschreven om meerdere cores te kunnen gebruiken en als zodanig niet kunnen doen. Hyper-threading komt hier opnieuw in het spel, waardoor Chrome meerdere pagina's naar twee "logische kernen" op één daadwerkelijke kern kan verzenden.
Hand in hand gaan met multi-core processors en hyper-threading is een concept dat multithreading wordt genoemd. Multithreading is in wezen de mogelijkheid voor een besturingssysteem om te profiteren van meerdere cores door code op te splitsen in zijn meest basale vorm, of threads, en deze tegelijkertijd naar verschillende cores te voeren. Dit is natuurlijk belangrijk in zowel multi-processors als multi-core processors. Multi-threading is iets ingewikkelder dan het klinkt, omdat het vereist dat besturingssystemen code op een juiste manier bestellen, zodat het programma efficiënt kan blijven werken.
Besturingssystemen zelf doen vergelijkbare dingen met hun eigen processen - het is niet alleen beperkt tot applicaties. Besturingssysteemprocessen zijn dingen die het besturingssysteem altijd op de achtergrond doet, zonder dat de gebruiker het hoeft te weten. Vanwege het feit dat deze processen altijd aan de gang zijn, kan hyper-threading en / of meerdere cores erg nuttig zijn, omdat het de processor vrijmaakt om te kunnen werken aan andere dingen zoals wat er in apps gebeurt.
Hoe werken multi-coreprocessors?
Ten eerste moeten het moederbord en het besturingssysteem de processor herkennen en dat er meerdere cores zijn. Oudere computers hadden slechts één kern, dus een ouder besturingssysteem werkt mogelijk niet zo goed als een gebruiker het probeert te installeren op een nieuwere computer met meerdere kernen. Windows 95 ondersteunt bijvoorbeeld geen hyper-threading of meerdere cores. Alle recente besturingssystemen ondersteunen multi-coreprocessors, waaronder Windows 7, 8, de nieuw uitgebrachte 10 en Apple's OS X 10.10.
Kort gezegd, het besturingssysteem vertelt het moederbord dat er een proces moet worden uitgevoerd. Het moederbord vertelt het de processor. In een multi-core processor kan het besturingssysteem de processor vertellen om meerdere dingen tegelijk te doen. In wezen, door de richting van het besturingssysteem, worden gegevens van de harde schijf of RAM, via het moederbord, naar de processor verplaatst.
Multi-core processor
Binnen een processor zijn er meerdere niveaus van cachegeheugen die gegevens bevatten voor de volgende bewerking of bewerkingen van de processor. Deze niveaus van cachegeheugen zorgen ervoor dat de processor niet ver hoeft te zoeken om zijn volgende proces te vinden, wat veel tijd bespaart. Het eerste niveau van cachegeheugen is de L1-cache. Als de processor de gegevens die hij nodig heeft voor zijn volgende proces in de L1-cache niet kan vinden, kijkt hij naar de L2-cache. De L2-cache is groter in geheugen, maar is langzamer dan de L1-cache.
Single Core-processor
Als een processor niet kan vinden waarnaar hij op zoek is in L2-cache, gaat hij verder naar L3 en als een processor dat heeft, L4. Daarna ziet het eruit in het hoofdgeheugen of in het RAM-geheugen van een computer.
Er zijn ook verschillende manieren waarop verschillende processors omgaan met de verschilcaches. Sommigen dupliceren bijvoorbeeld de gegevens op de L1-cache op de L2-cache, wat in feite een manier is om ervoor te zorgen dat de processor kan vinden waarnaar hij op zoek is. Dit neemt natuurlijk meer geheugen in beslag in de L2-cache.
Verschillende niveaus van cache spelen ook een rol in multi-coreprocessors. Gewoonlijk heeft elke kern zijn eigen L1-cache, maar deze deelt L2-cache. Dit is anders dan wanneer er meerdere processors waren, omdat elke processor zijn eigen L1, L2 en een ander niveau cache heeft. Met meerdere single-core processors is het delen van cache eenvoudig niet mogelijk. Een van de belangrijkste voordelen van het hebben van een gedeelde cache is de mogelijkheid om een cache optimaal te gebruiken, vanwege het feit dat als de ene kern de cache niet gebruikt, de andere dat wel kan.
In een multi-coreprocessor kan een kern bij het zoeken naar gegevens door zijn eigen unieke L1-cache kijken en zich dan vertakken naar gedeelde L2-cache, RAM en uiteindelijk de harde schijf.
Het is waarschijnlijk dat we de ontwikkeling van meer kernen zullen blijven zien. Kloksnelheden van de processor zullen zeker beter blijven worden, zij het met lagere snelheden dan voorheen. Hoewel het nu niet ongewoon is om octa-core processoren te zien in dingen als smartphones, konden we snel genoeg processoren zien met tientallen cores.
Waar denk je dat de multi-coreverwerkingstechnologie het volgende is? Laat het ons weten in de reacties hieronder of door een nieuwe thread te starten op ons communityforum.