Gradivo · 3. poglavje

Izvršitev in zapis ukazov

Tretji in četrti korak cikla ukaza: execute (izvedba) in write-back (zapis rezultata). To poglavje razloži, kako CPE dejansko izvede ukaz in shrani rezultat.

1. Uvod

Po tem, ko je ukaz pridobljen (fetch) in dekodiran (decode), nastopi faza izvajanja (execute). V tej fazi se dejansko izvede operacija, ki jo ukaz zahteva: seštevanje, primerjava, branje iz pomnilnika ipd.

Temu sledi faza zapisa rezultata (write-back), kjer se rezultat operacije shrani v ciljni register ali pomnilnik.

Brez execute in write-back faze bi procesor ukaze samo razumel, a ne bi naredil ničesar oprijemljivega. Ti dve fazi sta tisti, ki dejansko spremenita stanje računalnika.

2. Arhitektura procesorja in ukazi

Procesorji so zasnovani na različnih arhitekturah, ki določajo, kako so ukazi zapisani in kako se obdelujejo. Najpogostejši sta:

RISC

Reduced Instruction Set Computing

Preprostejši ukazi, vsak se izvede v enem ciklu. Zahteva več korakov za kompleksne naloge, a je notranji cevovod hitrejši in bolj predvidljiv.

CISC

Complex Instruction Set Computing (npr. x86)

Kompleksni ukazi, ki lahko izvedejo več operacij hkrati. Zahteva večstopenjsko dekodiranje in pretvorbo v μops, a zagotavlja zgodovinsko združljivost.

Vsak ukaz je sestavljen iz treh komponent: operacije (kaj se izvede), operandov (podatki, s katerimi se operira) in občasno naslova pomnilnika (kje so shranjeni podatki).

3. Cikel izvajanja ukazov

Polni cikel ukaza vključuje pet faz:

  1. 1

    Pridobivanje ukaza (Fetch)

    CPE prebere ukaz iz pomnilnika na naslovu, ki ga kaže programski števec (PC), in ga shrani v Instruction Register (IR).

  2. 2

    Dekodiranje ukaza (Decode)

    Krmilna enota iz IR prebere opcode, operande in način naslavljanja. Pripravi kontrolne signale za funkcionalne enote.

  3. 3

    Izvajanje ukaza (Execute)

    ALU ali druga funkcionalna enota izvede operacijo: aritmetiko, logiko, primerjavo ali izračun pomnilniškega naslova.

  4. 4

    Shranjevanje rezultata (Write-back)

    Rezultat operacije se shrani v ciljni register (register file) ali v pomnilnik, odvisno od tega, kaj ukaz zahteva.

  5. 5

    Povečanje števca ukazov (Increment PC)

    PC se poveča na naslov naslednjega ukaza. Pri skokih se PC nastavi na ciljni naslov skoka.

4. Vrste ukazov

Sodobni procesorji podpirajo različne kategorije ukazov:

Aritmetični ukazi
Izvajajo matematične operacije: seštevanje (ADD), odštevanje (SUB), množenje (MUL), deljenje (DIV).
Logični ukazi
Izvajajo Boolove operacije na bitnem nivoju: AND, OR, NOT, XOR. Ključni za primerjave in maskiranje.
Premiki podatkov
Premikajo podatke med registri, pomnilnikom in V/I napravami: MOV, LOAD, STORE, PUSH, POP.
Pogoji in skoki
Spremenijo zaporedje izvajanja glede na pogoje: JMP (brezpogojni skok), JE, JNE (pogojni skoki), CALL, RET.
Dostop do pomnilnika
Nalagajo ali shranjujejo podatke med registri in RAM-om: LOAD (beri iz pomnilnika), STORE (piši v pomnilnik).

5. Zapis ukazov in optimizacija

Ukazi so v pomnilniku zapisani v strojni kodi, tj. v bitnih vzorcih, ki jih procesor neposredno razume. Za visoko zmogljivost so ključne naslednje tehnike:

Registri

Najhitrejši pomnilnik v procesorju. Operacije nad registri so drastično hitrejše od dostopa do RAM-a.

Predpomnilnik (Cache)

L1/L2/L3 predpomnilniki shranjujejo pogosto uporabljene podatke bližje CPE, kar zmanjša latenco dostopa do pomnilnika.

Pipelining & paralelizacija

Cevovod omogoča, da se več ukazov obdeluje hkrati, vsak v svoji fazi. Napredni procesorji izvajajo ukaze tudi v drugačnem vrstnem redu (out-of-order).

RISC arhitekture (ARM, RISC-V) pogosto dosežejo višjo zmogljivost na enoto porabe, ker so ukazi enostavnejši in cevovod bolj predvidljiv, kar je idealno za mobilne naprave.

6. Zaključek

Izvršitev in zapis ukazov sta tisti fazi, kjer se vse prejšnje delo (fetch, decode) dejansko obrestuje. Procesor izvede operacijo in shrani rezultat; to je bistvo vsega računanja.

Ključne točke tega poglavja:

  • Execute faza izvede dejansko operacijo v ALU ali drugi funkcionalni enoti.
  • Write-back faza shrani rezultat v ciljni register ali pomnilnik.
  • Registri in predpomnilniki bistveno pospešijo dostop do podatkov.
  • Pipelining omogoča sočasno obdelavo več ukazov v različnih fazah.
  • RISC in CISC arhitekturi imata vsaka svoje prednosti pri izvajanju ukazov.

Video razlaga

Vir: Crash Course Computer Science #5 – „How Computers Calculate – the ALU“ (YouTube)

Nadaljuj na naslednje poglavje

Zdaj ko razumeš izvajanje ukazov, poglej še Moorov zakon in razvoj procesorjev.

Moorov zakon