Inom datateknik är mikroarkitektur (ibland förkortat µarch eller uarch) en beskrivning av de elektriska kretsarna i en dator, central processorenhet eller digital signalprocessor som är tillräcklig för att fullständigt beskriva maskinvarans funktion.

Forskare använder termen "datororganisation" medan människor inom datorindustrin oftare använder termen "mikroarkitektur". Mikroarkitektur och instruktionsuppsättningsarkitektur (ISA) utgör tillsammans området datorarkitektur.




 

Definition och syfte

Mikroarkitektur beskriver hur en processor eller annan digital enhet är uppbyggd i termer av dess interna komponenter och kretsar — till exempel datapaths, kontrolllogik, register, buffrar, pipeline-steg och kopplingar till minne och I/O. Syftet är att beskriva den konkreta implementeringen som realiserar en given ISA eller annan funktionsspecifikation. Mikroarkitekturen svarar för att översätta instruktioner och program till elektriska signaler som styr beräkningar och dataflöde i hårdvaran.

Hur mikroarkitektur fungerar (översikt)

  • Instruktionsflöde: Instruktioner hämtas från minnet, avkodas och omvandlas till operationer som ska utföras av exekveringsenheter.
  • Datapath: Innehåller aritmetisk/logisk enhet (ALU), flyttalsenheter, registerfiler och multiplexrar som flyttar data mellan enheter.
  • Kontrollen: Styrlogik (hård-kodad eller mikroprogrammerad) koordinerar sekvenser av operationer och hanterar signalerna för varje steg.
  • Pipeline och parallellism: Många moderna mikroarkitekturer använder pipelining (delning av instruktionens steg i flera stadier) och andra former av parallellism (superskalar, SIMD, SMT) för att öka genomströmningen.
  • Minnehierarki: Cacheminnen, TLB, och minneskontrollers placering och parametrar påverkar latens och bandbredd.
  • Spekulation: Grenprediktion och out-of-order-execution används för att utnyttja lediga exekveringsenheter effektivt.

Skillnaden mellan mikroarkitektur och ISA

Det är viktigt att skilja mellan ISA (instruktionsuppsättningsarkitektur) och mikroarkitektur:

  • ISA: Är programmerarens synliga gränssnitt — instruktioner, register, adresseringslägen och undantagsbeteende. ISA specificerar vad processorn gör ur ett program-perspektiv.
  • Mikroarkitektur: Är implementeringen av ISA i hårdvara. Den beskriver hur ISA:ns beteende uppnås genom kretsar, pipeline-steg, buffertar och kontrolllogik.
  • Flera mikroarkitekturer per ISA: Samma ISA kan implementeras på många olika sätt. Exempel: olika x86‑mikroarkitekturer från Intel och AMD implementerar samma x86‑ISA men med olika pipeline-djup, cachestorlekar, och exekveringsenheter.
  • Kompatibilitet och innovation: En kompatibel mikroarkitektur måste uppfylla ISA:s semantik, men den kan vara optimerad för prestanda, energiförbrukning eller kostnad genom olika designval.

Implementationsdetaljer och varianter

  • Hård-kodad kontroll vs mikroprogram: Vissa processorer använder mikroprogram (microcode) som nivå för att tolka komplexa instruktioner; andra är helt hardwired för snabbare, enklare instruktioner.
  • RISC vs CISC: RISC‑arkitekturer tenderar mot enklare instruktioner och enklare mikroarkitektur per instruktion, medan CISC kan kräva mikroprogram eller intern översättning av komplexa instruktioner till enklare mikro-operationer.
  • Out-of-order execution: Tillåter instruktioner att exekveras i annan ordning än den programmerbara ordningen för att öka utnyttjande av exekveringsenheter.
  • Superskalaritet och fler kärnor: Superskalar mikroarkitektur kan utföra flera instruktioner per klockcykel; moderna system kombinerar detta med flera kärnor för parallellism på programnivå.

Prestanda, kraft och designval

Design av mikroarkitektur handlar om kompromisser mellan prestanda, energikonsumtion, kostnad och komplexitet. Exempel på påverkan:

  • Djupare pipelines och aggressiv spekulation kan ge hög klockfrekvens men ökar straffet vid felprediktioner.
  • Större och flerskiktade cacheminnen förbättrar prestanda men ökar area och effektförbrukning.
  • Out-of-order-mekanismer ökar IPC (instructions per cycle) men kräver komplex register- och beroendehantering.

Utveckling, verifiering och verktyg

Mikroarkitektur designas ofta i HDL (t.ex. Verilog eller VHDL) på RTL-nivå, simuleras och verifieras formellt eller med testbänkar innan syntes till kisel. Verktyg för samband mellan ISA och mikroarkitektur inkluderar assembler, mikrocode-verktyg, simulators (t.ex. gem5) och formella verifierare.

Moderna trender

  • Ökad fokus på energibesparing och effektivitetsorienterad design (ARM, mobilprocessorer).
  • Heterogena system där CPU-kärnor kombineras med acceleratorer (GPU, NPU) för specifika uppgifter.
  • Fortlöpande förbättringar inom grenprediktion, minnessubsystem och säkerhetsmekanismer (t.ex. mitigering av spekulativa attacker).

Sammanfattning

Mikroarkitektur är den konkreta hårdvaruimplementeringen som får en processor att bete sig enligt en given ISA. Den omfattar allt från datapaths, kontroll, pipeline-stadier och cache till strategier för parallellism och spekulation. Medan ISA definierar vad en processor gör, beskriver mikroarkitekturen hur det görs — och det finns många möjliga mikroarkitekturer som kan implementera samma ISA beroende på mål för prestanda, kostnad och energieffektivitet.