In de computertechniek is computerarchitectuur het conceptuele ontwerp en de fundamentele operationele structuur van een computersysteem. Het is de technische tekeningen en de functionele beschrijving van alle ontwerpvereisten (met name snelheden en onderlinge verbindingen), het is hoe verschillende onderdelen van een computer te ontwerpen en te implementeren - waarbij de aandacht vooral uitgaat naar de manier waarop de centrale verwerkingseenheid (CPU) intern werkt en hoe deze toegang krijgt tot adressen in het geheugen.
Het kan worden gedefinieerd als de wetenschap en de kunst om hardwarecomponenten te selecteren en met elkaar te verbinden om computers te creëren die voldoen aan functionele, prestatie- en kostendoelstellingen.
De computerarchitectuur omvat ten minste drie belangrijke subcategorieën:
- Instructieset architectuur, of ISA, is het abstracte model van een computersysteem dat gezien wordt door een machinetaal (of assemblagetaal) programmeur, inclusief de instructieset, geheugenadresmodi, processorregisters en adres- en dataformaten.
- Microarchitectuur, ook wel Computerorganisatie genoemd, is een lager niveau, een gedetailleerde beschrijving van het systeem die voldoende is om de werking van alle onderdelen van het computersysteem volledig te beschrijven, en hoe ze met elkaar verbonden zijn en samenwerken om de ISA te implementeren. De grootte van de cache van een computer bijvoorbeeld, is een organisatorische kwestie die over het algemeen niets met de ISA te maken heeft.
- Systeemontwerp dat alle andere hardwarecomponenten binnen een computersysteem omvat, zoals:
· Systeeminterconnecties zoals computerbussen en -schakelaars.
· Geheugencontrollers en hiërarchieën.
· CPU off-load mechanismen zoals directe toegang tot het geheugen.
· Zaken als multi-processing.
Zodra zowel ISA als microarchitectuur is gespecificeerd, moet het eigenlijke computersysteem worden ontworpen in hardware. Dit ontwerpproces wordt implementatie genoemd. Implementatie is meestal een hardware-engineering ontwerpproces.
De uitvoering kan verder worden opgesplitst in drie, maar niet volledig gescheiden stukken:
- Logische uitvoering: Ontwerp van blokken gedefinieerd in de microarchitectuur, voornamelijk op het niveau van de register-transfer en de poort.
- Circuit Implementatie: Transistor-niveau ontwerp van basiselementen (poorten, multiplexers, flip-flops, etc.) en van enkele grotere blokken (ALU's, caches, etc.) die kunnen worden geïmplementeerd op dit niveau, of zelfs op een lager fysiek niveau, om redenen van prestatievermogen.
- Fysieke uitvoering: Fysieke circuits worden uitgetekend, de verschillende circuitcomponenten worden in een chip-vloerplan of op een bord geplaatst en de draden die ze met elkaar verbinden worden gerouteerd.
Voor CPU's wordt het hele implementatieproces vaak CPU-ontwerp genoemd; het kan ook een familie van gerelateerde CPU-ontwerpen zijn, zoals RISC en CISC.