Cikel ukaza: Fetch → Decode → Execute

Dekodiranje ukazov v CPE

Spoznaj, kako centralna procesna enota razume strojni ukaz: od bitnega vzorca do kontrolnih signalov in mikrooperacij.

Cikel ukaza

Tri faze izvajanja programa

⬇️Fetch

Pridobivanje ukaza

CPE iz pomnilnika prebere naslednji ukaz in ga shrani v Instruction Register (IR).

🔍Decode

Dekodiranje ukaza

Krmilna enota razčleni bitni vzorec ukaza: prebere opcode, operande in način naslavljanja.

⚙️Execute

Izvedba ukaza

ALU ali druga funkcionalna enota izvede operacijo in rezultat shrani v register ali pomnilnik.

Poglobljeno

Kaj se dogaja v fazi Decode?

Opcode & Operandi

Vsak strojni ukaz vsebuje operacijsko kodo (opcode), ki določi operacijo, ter operande: registre ali pomnilniške naslove, na katerih se operacija izvede.

Krmilna enota

Krmilna enota (Control Unit) je "dirigent" procesorja. Iz dekodiranega ukaza ustvari kontrolne signale za registrsko datoteko, ALU, enoto za pomnilnik in cevovod.

Mikrooperacije (μops)

Moderni x86 procesorji kompleksne ukaze prevedejo v enostavnejše interne mikrooperacije. To omogoča zgodovinsko združljivost ob hkratnem učinkovitem internem izvajanju.

Cevovod (Pipeline)

V cevovodnem procesorju se fetch, decode in execute izvajajo hkrati za različne ukaze. Dekodiranje mora biti hitro in usklajeno z odvisnostmi podatkov.

Slovar

Ključni pojmi

Klikni na pojem za razlago.

Primer

Ukaz ADD v praksi

RISC
ADD R3, R1, R2

Procesor dekodira opcode ADD, prebere registra R1 in R2 ter pripravi ALU na seštevanje. Rezultat bo shranjen v R3.

x86
ADD EAX, [RBX+4]

Kompleksnejši ukaz z naslavljanjem pomnilnika. Procesor ga prevede v več μops: izračun naslova RBX+4, branje iz pomnilnika in seštevanje z EAX.