Computerarchitectuur

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken

Met de computerarchitectuur, of kortweg de architectuur, van een computersysteem wordt de opbouw van de fundamentele operationele structuur van een computersysteem bedoeld. Een weergave van een computer- of processorarchitectuur bevat de functionele omschrijving van de vereisten, in het bijzonder snelheden en verbindingen, en ontwerptoepassingen van een computer of processor.[1][2] Grotere computersystemen, zoals computerclusters, bestaan uit meerdere computers die in een computernetwerk met elkaar verbonden zijn. Computerarchitectuur en netwerkarchitectuur beginnen in elkaar over te lopen als het bijvoorbeeld om (deels) gedistribueerde databases gaat.[3]

CPU-architectuur[bewerken]

Schematische weergave van de uitvoering van een instructie door een MIPS-CPU.
Het halfgeleidermateriaal in de NEC VR5000 RISC-processor.

De eerste twee figuren rechts laten een schematische weergave van de instructieverwerking door een MIPS RISC-processor en het halfgeleidermateriaal in een MIPS-processor zien. Het schema laat zien hoe een instructie verwerkt wordt door een eenvoudige CPU met een Von Neumann-processorarchitectuur.

Instructieverwerking[bewerken]

De instructie wordt verwerkt in een cyclus waarin vijf stappen onderscheiden kunnen worden:

  1. de instructie, de gegevens en adressering worden tijdens de IF-stap (instruction fetch) uit het geheugen opgehaald,
  2. de gegevens voor het uitvoeren van de instructie worden tijdens de ID-stap (instruction decode) in het registergeheugen van de processor geplaatst,
  3. de instructie wordt met de gegevens in de registers tijdens de EX-stap (execute) verwerkt,
  4. de resultaten in de registers worden tijdens de MEM-stap (memory access) in het geheugen opgeslagen en als de instructie helemaal is uitgevoerd krijgt de processor de opdracht om de volgende IF-stap uit te voeren,
  5. als de instructie in stap vier nog niet volledig is uitgevoerd dan volgt de WB-stap (write back) met de opdracht om de volgende ID-stap in de verwerkingscyclus van de instructie uit te voeren.

In het schema is de rol van functionele eenheden, zoals arithmetic logic units (ALU's) en multiplexers (MUX), in het verwerkingsproces met symbolen weergegeven.

Geheugen en gegevensopslag[bewerken]

Tijdens de uitvoering van de IF-stap worden de gegevens uit het geheugen gelezen. Meestal draait een processor op een hogere klokfrequentie dan de perifere hardware of de geheugenchips op een moederbord. In dergelijke gevallen wordt met het rood gekleurde vakje in het schema het cache geheugen van de processor bedoeld. Tijdens de MEM-stap worden de verwerkte gegevens uit de registers in het geheugen opgeslagen. De datacommunicatie met de perifere hardware en de geheugenchips verloopt niet op het niveau van elementaire instructies voor de CPU maar wordt door speciale microcontrollers verricht die de geheugenhiërarchie van de computer beheren.

Instructies en verwerkingscycli[bewerken]

Naast het wegschrijven van de resultaten naar het geheugen wordt in de MEM-stap gecontroleerd of de verwerking van de instructie voltooid is. Als er meer verwerkingscycli doorlopen moeten worden dan wordt de WB-stap uitgevoerd. Omdat de gegevens die in de MEM-stap in het geheugen opgeslagen werden nog in de registers staan hoeven ze niet ingelezen te worden zodat de processor direct met het uitvoeren van de ID-stap verder kan gaan.

Hoeveel verwerkingscycli nodig zijn voor het uitvoeren van een instructie hangt af van het type instructie. Een binaire bits-gewijze logische operatie kan in een enkele cyclus uitgevoerd worden. Voor het uitvoeren van een optelling van twee gehele getallen zijn meerdere cycli nodig en het uitvoeren van een vermenigvuldiging vraagt om een veelvoud van het aantal verwerkingscycli dat nodig is voor een optelling.

Systeemarchitectuur[bewerken]

In hedendaagse toepassingen worden vaak meerdere CPU's met grotere functionele eenheden, zoals FPU's, een GPU, DMA en een USB-hub, samen op een System on Chip of SoC ondergebracht. Computerarchitectuur kan in een breder verband ook gedefinieerd worden als de wetenschap en de kunst van het selecteren en verbinden van hardware-onderdelen om computers te bouwen die voldoen aan eisen van functionaliteit, prestatie en kostprijs. De term wordt bijvoorbeeld gebruikt voor:

De verzameling machine-eigenschappen moeten ontwikkelaars van besturingssystemen en toepassingen begrijpen om de computer te kunnen programmeren.

Computerarchitectuur wordt als vak op alle informaticascholen behandeld.