Het aantal kernen dat een processor heeft. Programma's die hiervoor niet geoptimaliseerd zijn, zullen niet noemenswaardig sneller afgehandeld worden. Echter kunnen wel twee verschillende programma's tegelijk op twee verschillende kernen gedraaid worden, wat een aanzienlijk voordeel oplevert bij het draaien van meerdere programma's tegelijk. Tegenwoordig hebben de meeste desktopprocessors meerdere kernen: tussen de 2 en 6 kernen is gebruikelijk.
Een processor dient instructies van het te verwerken programma in volgorde uit te voeren. Het programma zelf staat in het RAM-geheugen. De processor heeft daarom een teller, de programmateller, die het geheugenadres van de volgende instructie bijhoudt. In de zogeheten "fetch-fase" (ophaalfase) haalt de processor de instructie op van het geheugenadres dat in de programmateller staat. De code in dit adres is de volgende uit te voeren instructie en deze wordt in het instructieregister geplaatst.
Stel dat de code in het instructieregister 0001010100010010 is. Wat betekent dat voor de processor? Een instructie is niets anders dan een reeks bits en in de decodeerfase wordt bepaald 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.
In het voorbeeld gebruikt de processor 8 bits voor het nummer van de instructie. De processor kent dus maximaal 28 = 256 verschillende instructies. De in het voorbeeld uit te voeren instructie heeft nu het nummer aangegeven door de eerste 8 bits, dus nummer 00010101, wat decimaal 21 is en in dit geval optellen betekent. Over het algemeen zal het instructienummer naar ieder component gestuurd worden, in dit geval zal alleen de optelcomponent zich klaarmaken om te gaan optellen.
De resterende bits van het instructieregister, nl. 00010010 bepalen de plaats waar de processor zijn gegevens zal halen, dit kunnen bepaalde registers zijn, maar in complexere instructies ook een geheugenadres. In dit geval gaat het om de registers en onze processor heeft 16 registers. Om aan te geven welke registers we willen gebruiken, kunnen we gewoon de nummers van beide registers vermelden, waarvoor voor elk vier bits nodig zijn. In het voorbeeld dus de registers 0001 (=1) en 0010 (=2). De instructie houdt dus in dat de inhoud van de registers 1 en 2 bij elkaar worden opgeteld. Impliciet is tevens vastgelegd dat het resultaat in het eerstgenoemde register staat.
Vervolgens begint de zogeheten "execute-fase" (uitvoerfase). 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 die een optelling uitvoert. Vervolgens wordt het resultaat in een klein stukje tijdelijk geheugen opgeslagen.
Vervolgens begint de "store-fase" (opslagfase). Het register waar het resultaat voor bestemd is (r1), gaat in de luisterstand. Als op de elektrische leidingen een getal voorbij komt voor een register, dan vervangt het het getal dat het bewaart met het getal dat het voorbij ziet komen. Het getal dat berekend is, wordt vervolgens op de leidinkjes gezet.
Het uitvoeren van de instructie is nu afgerond, de programmateller wordt verhoogd en de processor wordt voorbereid op het uitvoeren van de volgende instructie.
Asynchrone processors[bewerken]
Asynchrone processors werken zonder centrale klokpuls. Zij hebben dus geen last van bovengenoemde problemen.
Een asynchrone processor werkt volgens het principe dat een deelschakeling, naast de 'datalijn' minimaal één extra lijn heeft om aan te geven dat zijn staat stabiel is. Op dat moment kan de volgende schakeling in werking treden. Het voordeel hiervan is dat de processor functioneert op de maximumsnelheid van zijn componenten. Ook gebruiken niet-gebruikte delen van het systeem nagenoeg geen energie wat het energiegebruik drastisch reduceert.
Een nadeel is het complexere chipontwerp. Voor een asynchrone processor met dezelfde functionaliteit als zijn synchrone variant zijn wel drie keer zoveel transistoren nodig. De ontwikkeltijd is ook veel langer.
In de huidige markt zijn asynchrone processors schaars, mede door hun complexiteit. Sommige gehoorapparaten gebruiken al asynchrone processors. Analisten sluiten niet uit dat asynchrone processors in de toekomst een grotere rol gaan spelen. Waarschijnlijk zullen zij in de toekomst veel gebruikt worden in toepassingen waar energiezuinig gebruik een rol speelt, denk aan apparaten die op batterijen werken, zoalspda-computers of notebooks.
De eerste licenceerbare en commercieel beschikbare asynchrone microprocessor processor was de ARM996HS, ontwikkeld door ARM Holdings en Handshake Solutions (een dochter van Philips). De processor is gebaseerd op de ARM9-kern en zal voornamelijk gebruikt worden in auto's.