thumb|300px|Een computercluster van Cubieboard singleboardcomputers met een Lubuntu besturingssysteem en Apache Hadoop. Apache Hadoop. Gearchiveerd op 13 juni 2023. Met de computerarchitectuur 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. Sinds 2015 zijn smartwatches ongeveer de kleinste computers omdat een smartwatch over een CPU beschikt waarmee de gebruiker verschillende programma's kan uitvoeren. Grotere computersystemen, zoals mainframes, supercomputers en computerclusters, bestaan uit meerdere computers die in een computernetwerk met elkaar verbonden zijn. De grens tussen computerarchitectuur en netwerkarchitectuur begint te vervagen als het bijvoorbeeld om het onderscheid tussen computers en cloudcomputing of (deels) gedistribueerde databases gaat.

Systeemarchitectuur Multikernprocessoren in moderne computersystemen, zoals servers, pc's en laptops, zijn gewoonlijk opgebouwd uit een aantal processorkernen, een GPU en cachegeheugen en controllers, die samen in een SoC zijn ondergebracht. Doorgaans wordt een multikernprocessor in een processorsocket op het moederbord van de computer vastgeklemd. Op het moederbord wordt het werkgeheugen aangebracht en een chipset verzorgt de verbindingen met de randapparatuur. Soms worden in de SoC van een tabletcomputer of een smartphone verschillende soorten CPUs gebruikt.

Processorarchitectuur thumb|300px|Schematische weergave van de stappen tijdens de verwerking van een instructie door een eenvoudige MIPS-CPU:1. Instruction Fetch2. Instruction Decode3. Execute4. Memory Access5. Write Back thumb|300px|Het halfgeleidermateriaal in de NEC VR5000 RISC-processor, een 64-bit R5000 MIPS-processor van NEC uit 1996. MIPS Technologies R5000 op cpu-world.com De eerste figuur rechts laat het processchema zien van de verwerking van een instructie door een MIPS RISC-processor. In de figuur daaronder is het halfgeleidermateriaal in een MIPS-R5000-processor, de zogenaamde die, afgebeeld. Het processchema geeft de stappen weer in de verwerking van een instructie door een eenvoudige CPU met een Von Neumann-processorarchitectuur.

Instructieverwerking Een eenvoudige MIPS-processor verwerkt elke instructie in een cyclus waarin vijf stappen onderscheiden kunnen worden: de instructie en de gegevens worden tijdens de IF-stap (Instruction Fetch) uit de level1-cache van het cachegeheugen opgehaald en de Program Counter wordt verhoogd, de instructie, geheugenadressen en data worden tijdens de ID-stap (Instruction Decode) in het instructieregister en de adres- en dataregisters geplaatst, de instructie en de gegevens in de registers worden tijdens de EX-stap (EXecute) verwerkt, de resultaten in de registers worden tijdens de MEM-stap (MEMory access) in het cachegeheugen opgeslagen, als de instructie helemaal is uitgevoerd dan wordt de volgende instructie uitgevoerd (IF-stap, stap 1), als de instructie nog niet helemaal is uitgevoerd, dan volgt de WB-stap, stap 5, tijdens de WB-stap (Write Back) wordt opdracht gegeven om de volgende ID-stap, stap 2 in de verwerkingscyclus, 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.

De verwerking van elke instructie verloopt volgens een reeks stappen en cycli die begint bij stap 1 en uiteindelijk hoort te eindigen bij stap 4: ... → 1 → 2 → 3 → 4 (→ 5 → 2 → 3 → 4)n → 1 → ... (PC = PC + 1) ........ (PC = PC + 1) waarbij n het aantal cycli is dat doorlopen moet worden om de operatie te voltooien.

Verwerkingscycli De waarde van het aantal verwerkingscycli n van een instructie is afhankelijk van het soort operatie en de waarden van de te verwerken gegevens in de registers. Voor het uitvoeren van een zogenaamde NOP-instructie, dat wil zeggen een "No OPeration"-instructie, is n gelijk aan 0. Tijdens het uitvoeren van een NOP-instructie worden geen gegevens uit het geheugen opgehaald of naar het geheugen weggeschreven, maar de waarde van de programmateller (Program Counter, PC) wordt voor het uitvoeren van een NOP-instructie wel verhoogd.

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

Cachegeheugen en werkgeheugen Sinds de introductie van de Intel 80486 SX en de 80486 DX2/66, met 8 kB cachegeheugen en een cachecontroller in de CPU, werden steeds meer processoren voorzien van een ingebouwd cachegeheugen. Intel A80486SX-16 op cpu-world.com Bovendien had de DX2/66 versie een ingebouwde 80487 floating-point coprocessor en een interne klokfrequentie die tweemaal zo hoog was als de 33 MHz klokfrequentie van de systeembus. Intel A80486DX2-66 op cpu-world.com

Het gebruik van een relatief klein, duur, maar snel, SRAM-cachegeheugen is noodzakelijk omdat de CPU de meeste instructies sneller verwerkt dan ze via de systeembus uitgewisseld kunnen worden tussen de CPU en de grote, goedkope, maar trage DRAM-modules van het werkgeheugen. Het beheer van het cachegeheugen en de datacommunicatie met het werkgeheugen, wordt door speciale microcontrollers verricht die de geheugenhiërarchie van de computer beheren.

Het werkgeheugen bevindt zich in de RAM-modules op het moederbord, terwijl het cachegeheugen en de cachecontrollers sinds het begin van de jaren negentig van de vorige eeuw in de CPU-chip zijn geïntegreerd. In de schema's wordt met de rood gekleurde vakjes het cachegeheugen in de processor bedoeld. Als processoren sneller worden, waardoor het verschil in verwerkingssnelheid tussen CPU, uitgedrukt in MIPS of FLOPS, en werkgeheugen toeneemt, worden er meer levels of lagen cachegeheugen gebruikt. Het aantal lagen cachegeheugen kan tegenwoordig tot drie lagen oplopen, terwijl die lagen steeds groter worden en sneller werken.

Virtueel geheugen thumb|300px|Disk-units van een CDC Cyber 170 mainframe, uit de jaren tachtig van de vorige eeuw, met een NOS/VE-besturingssysteem. Het NOS/VE-besturingssysteem van de Cyber 170 maakte gebruik van virtueel geheugen. Als er te weinig werkgeheugen op het moederbord geïnstalleerd is om de actieve de processen en de benodigde gegevens op te slaan, dan kan het virtueel geheugen geactiveerd en gebruikt worden. De VMM van het besturingssysteem kan blokken uit het werkgeheugen uitwisselen tegen blokken uit het virtuele geheugen op een harde schijf. Voor het virtuele geheugen kan een swap-bestand of een speciale swap-partitie gebruikt worden. Swap space and paging on GNU/Linux op archlinux.org. Gearchiveerd op 20 april 2021. All about Linux swap space op linux.com. Gearchiveerd op 17 juni 2023. Meestal wordt tweemaal zoveel virtueel geheugen op een swap-partitie aangemaakt als er werkgeheugen op een moederbord aanwezig is. De microcontroller die de blokken tussen het werkgeheugen en de swap-file of de swap-partitie uitwisselt, heet Direct Memory Access (DMA).

Omdat RAM-modules steeds goedkoper worden, en omdat swappen een computer sterk vertraagt, wordt steeds vaker voor uitbreiding van het werkgeheugen gekozen als het virtuele geheugen veel wordt gebruikt, zonder dat het virtuele geheugen wordt uitgebreid. Als een computer twee of vier RAM-slots heeft, dan kan het werkgeheugen een paar keer uitgebreid worden, bijvoorbeeld tot twee-, vier- of eventueel tot achtmaal de oorspronkelijke hoeveelheid werkgeheugen. Als het virtueel geheugen (VM) gelijk blijft en de hoeveelheid werkgeheugen (RAM) de eerste keer wordt verdubbeld, dan is VM = RAM. Als het werkgeheugen wordt verviervoudigd, dan is VM = RAM / 2.

Tegenwoordig raden steeds meer systeemontwerpers aan om op drukke en kwetsbare servers het werkgeheugen uit te breiden en het beschikbare virtuele geheugen beperkt of zo klein mogelijk te houden, bijvoorbeeld VM = 2 GiB, ongeacht of RAM = 1 GiB, RAM > 2 GiB of RAM > 16 GiB. Omdat het gebruik van virtueel geheugen de prestaties van een computersysteem door thrashing sterk kan verlagen, en omdat conflicten tussen cachemanagers en de DMA het systeem kan laten hangen of laten crashen, overwegen sommige systeemontwikkelaars (begin 2017) zelfs om swap-partities geheel uit het besturingssysteem van sommige servers te verwijderen. Christian Horn: "Do we really need swap on modern systems?" op de blog van Red Hat op 21 februari 2017. Gearchiveerd op 4 augustus 2017. How to Configure the Linux Out-of-Memory Killer op de site van Oracle Corporation. Gearchiveerd op 1 januari 2019. Red Hat Enterprise Linux 3: System Administration Guide: Removing Swap Space How to completely disable swap?. Gearchiveerd op 2 juli 2022. How to disable active swap memory on the Linux system

FPUs, GPUs en parallellisatie thumb|300px|De C240 van Convex Computer Corporation, een vector-minisupercomputer, gebouwd rond 1985 voor zwaar wetenschappelijk rekenwerk. Een floating point unit (FPU) verwerkt instructies voor berekeningen met zwevendekommagetallen. FPUs en vectorprocessoren kunnen de complexe berekeningen met goniometrische functies en arrays in minder cycli uitvoeren dan een floating-point emulator. Een floating-point emulator wordt bijvoorbeeld op een computer met een Intel 80386 of een ARMv7 gebruikt als vervanging van een FPU. Voorbeelden van moderne coprocessors voor zwaar, wetenschappelijk rekenwerk zijn de Xeon Phi coprocessors, zoals de Xeon Phi 7120, met 61 FPUs en 244 threads, en de Xeon Phi 7290F, met 72 FPUs en 288 threads. Intel Xeon Phi family Intel Xeon Phi 7120A Intel Xeon Phi 7290F Deze FPUs kunnen vier threads per processor verwerken. Ze worden in supercomputers toegepast waarmee onder andere weersverwachtingen en klimaatmodellen doorgerekend worden. Omdat deze coprocessors groot zijn en veel energie verbruiken, worden ze op een PCI Express-kaart geplaatst of in een speciale processorsocket geklemd.

Voor een videospel kan een graphics processing unit (GPU) bijvoorbeeld affiene transformaties en vectorafbeeldingen van OpenGL- of WebGL-objecten verwerken en een 3D-computergraphics omgeving renderen. Many Planets Deep - 3D-WebGL-animatie van khronos.org. Gearchiveerd op 19 juni 2022. De parallellisatie die door GPU's toegepast wordt vertoont veel overeenkomsten met de parallelle verwerking van gegevens door de vectorprocessoren en transputers, die halverwege de jaren tachtig van de vorige eeuw, voor wetenschappelijke doeleinden ontwikkeld werden. Een bekend voorbeeld van parallellisatie is raytracing met een programma als POV-Ray. Een aantal animaties voor de film Jurassic Park van Steven Spielberg, zijn door Industrial Light & Magic met behulp van een raytracer gemaakt.

Coprocessors voor het uitvoeren van speciale taken, zoals encryptie of biometrische patroonherkenning, kunnen eventueel met een ASIC ontworpen worden.

Multikernprocessoren Anno 2017 gebruiken CPUs in servers, desktops en laptops vrijwel uitsluitend de x86-instructieset. Mobiele apparatuur maakt vooral gebruik van de ARM-instructieset omdat RISC-processoren energiezuiniger zijn. In de nabije toekomst zou er verandering in deze situatie kunnen komen omdat AMD hard werkt aan een nieuwe generatie, energiezuinige Opteron A processoren op basis van ARM Cortex A57 kernen. ARM Cortex-A57 Processor. Gearchiveerd op 17 maart 2017. AMD brengt zijn eerste ARM-socs voor datacenters uit - Nieuwsbericht van 14 januari 2016 op Tweakers. Gearchiveerd op 21 maart 2022. AMD Opteron A series system-on-a-chip family op cpu-world.com