Datortehnikā mikroarhitektūra (dažkārt saīsināti µarch vai uarch) ir datora, centrālā procesora vai ciparu signālu procesora elektriskās shēmas apraksts, kas ir pietiekams, lai pilnībā aprakstītu aparatūras darbību.
Zinātnieki lieto terminu "datoru organizācija", bet datoru nozarē strādājošie biežāk lieto terminu "mikroarhitektūra". Mikroarhitektūra un instrukciju kopuma arhitektūra (ISA) kopā veido datoru arhitektūras jomu.
Mikroarhitektūra nosaka, kā konkrētais procesors īsteno ISA — tātad kā instrukcijas, ko nosaka ISA, faktiski tiek izpildītas aparatūras līmenī. ISA ir līgums starp programmatūru un aparatūru: tā apraksta instrukciju veidu, reģistru kopu, adrešu režīmus un citus abstraktus elementus. Mikroarhitektūra, savukārt, ir konkrētais risinājums, kas var nodrošināt šo ISA — tai var būt dažādi izpildes bloki, keši, pipelaini, izpildes kārtības u.c., kas ietekmē veiktspēju, energoefektivitāti un ražošanas izmaksas.
Galvenie mikroarhitektūras komponenti
- Reģistru faili — ātri iebūvēti atmiņas bloki, kur glabājas starprezultāti un lokālie dati.
- Aritmētikas un loģikas bloki (ALU) — veic bāzes matemātiskos un loģiskos aprēķinus.
- Pipelains — dalot instrukciju izpildi posmos (fetch, decode, execute, memory, writeback), palielina caurlaidību un procesora taktu izmantošanu.
- Keši (L1, L2, L3) — ātras starpatmiņas, kas samazina piekļuves laiku galvenajai atmiņai.
- Kontroles vienība — dekodē instrukcijas un koordinē izpildi.
- Plūsmas plānotājs un reģistru pārdalītājs — nepieciešami superskalarām un izkārtotām (out-of-order) izpildēm.
- Brances prognozēšana — paredzvada zaru izpildes rezultātus, lai samazinātu pipelaina iztukšošanos; efektīva prognozēšana būtiski paaugstina veiktspēju.
- Speciālie akseleratori un SIMD bloki — vektoru instrukciju datu bloki, kriptogrāfija, multimedia bloki u.c., kas paātrina konkrētas uzdevumu kategorijas.
- Hipersinhronā un daudzvītņu tehnoloģija (SMT/Hyper-Threading) — ļauj procesoram vienlaikus apstrādāt vairākas izpildes plūsmas, uzlabojot resursu izmantošanu.
Kā mikroarhitektūra ietekmē CPU darbību
Mikroarhitektūra nosaka, cik ātri un efektīvi CPU var izpildīt programmas instrukcijas. Divi procesori ar vienu un to pašu ISA var uzvesties ļoti atšķirīgi, ja tiem ir atšķirīga mikroarhitektūra — viens var būt paredzēts maksimālai vienas kodola veiktspējai (augsts takts ātrums, izsmalcināta branch prognoze), bet cits — energoefektivitātei un vairāku kodolu mērogojamībai. Galvenie veiktspējas faktori ir takts ātrums, cik instrukcijas tiek izpildītas katrā ciklā (IPC), pipelaina garums, cache zudumi (misses) un izpildes paralēlisms (superscalar, out-of-order, SIMD).
ISA pret mikroarhitektūru — atšķirība un saskarsme
ISA nosaka programmētāja skatu uz procesoru: kādas instrukcijas ir pieejamas, kā darbojas reģistri un atmiņas modelis. Mikroarhitektūra ir tas, kā šīs instrukcijas tiek realizētas fiziski. Piemēram, x86 (CISC) ISA piedāvā daudz sarežģītu instrukciju, bet ražotāji var iekšēji tulkot tās uz vienkāršākām mikrooperācijām un izpildīt ar RISC līdzīgu mikroarhitektūru; ARM un RISC-V ir piemēri ISA, kas veidotas ar vienkāršāku instrukciju kopumu, taču mikroarhitektūras joprojām var būt ļoti dažādas — no ļoti vienkāršām līdz ļoti sarežģītām superskalarām un izkārtotām izpildēm.
Dizaina izvēles un kompromisi
Procesoru dizaineriem jāizvēlas starp veiktspēju, enerģijas patēriņu, izmaksām un projektēšanas laiku. Daži no galvenajiem kompromisiem:
- Veiktspēja vs enerģija: augstāks takts ātrums un vairāk izpildes vienību palielina ātrumu, bet arī siltumu un patēriņu.
- Kompleksitāte vs laiks tirgū: sarežģīta mikroarhitektūra dod lielu veiktspēju, bet prasa ilgāku izstrādi un validāciju.
- Lielāks kešs vs izmaksas: lielāki keši samazina atmiņas piekļuves kavēšanos, taču palielina čipa izmēru un cenu.
Implementācija un verifikācija
Mikroarhitektūra tiek aprakstīta ar aparatūras apraksta valodām (piem., Verilog, VHDL) un pēc tam simulēta, emulēta un pārbaudīta, lai konstatētu kļūdas un optimizētu darbību. Pēc sintēzes un loģiskās optimizācijas dizains tiek pārnests uz fizisko līmeni (layout), kur notiek masku sagatavošana un ražošana. Testēšana ietver loģiskos testus, funkcionalitātes pārbaudes un dažkārt formālu verifikāciju kritiskām daļām.
Mūsdienu tendences un drošība
Jaunākās mikroarhitektūras tendences ietver energoefektīvus risinājumus mobilajām ierīcēm, heterogēnu sistēmu dizainu (CPU + GPU + speciālie akseleratori), un atvērtu ISA kā RISC-V. Pēdējos gados arī drošības jautājumi (piem., Spectre, Meltdown) ir ietekmējuši mikroarhitektūras dizainu, piespiedu uzlabojot zaru prognozēšanu, izolāciju un mikroprogrammatūras (microcode) iespējas, lai ātri izplatītu drošības labojumus.
Praktiski piemēri
- Intel un AMD x86 procesori bieži izmanto sarežģītu pipelainu, superskalaru un out-of-order izpildi ar plašiem kešiem un spēcīgu branch prognozēšanu.
- ARM procesori fokusējas uz energoefektivitāti un mērogojamību — no mobilo ierīču Cortex-A līdz serveru un RISCV alternatīvām.
- GPU mikroarhitektūras optimizē paralēlu vektoru apstrādi un plūsmas daudz lielākiem kodolu skaitiem, salīdzinot ar tradicionālajiem CPU.
Noslēgums
Mikroarhitektūra ir saikne starp ISA un fizisko aparatūru, kas nosaka, kā instrukcijas tiek pārvērstas darbībās silīcija līmenī. Sapratne par mikroarhitektūras elementiem ļauj izprast, kāpēc dažādi procesori, pat ja tiem ir vienāda ISA, izrāda atšķirīgu veiktspēju, enerģijas patēriņu un piemērotību dažādiem pielietojumiem. Dizaineru izvēles un tehnoloģiskie ierobežojumi veido kompromisus, kuri definē katra procesora stiprās un vājās puses.