Modul 3 — LOGICĂ DIGITALĂ
ALU, registre, pipeline
Începe LecțiaCum ajunge un procesor de la porți logice individuale la execuția unor instrucțiuni complexe precum adunarea a două numere sau scrierea unui pixel în framebuffer? Răspunsul stă în arhitectura internă: o combinație de unități aritmetico-logice (ALU), registre, unități de control și un pipeline care permite execuția înlănțuită a instrucțiunilor. Fiecare procesor din istoria consolelor — de la MOS 6502 din Atari la AMD Zen 2 din PS5 — urmează aceleași principii fundamentale.
Această lecție acoperă construcția logică a unui procesor: ALU (unitatea care execută operații aritmetice și logice), registrele (memoria ultra-rapidă din interiorul CPU-ului) și pipeline-ul (tehnica de suprapunere a etapelor de execuție pentru a maximiza throughput-ul).
Scopul nu este memorarea numărului de etape dintr-un pipeline, ci înțelegerea de ce procesorul Zen 2 din PS5 poate procesa multiple instrucțiuni simultan, cum ALU-ul transformă porți logice în operații utile și de ce performanța depinde de lățimea pipeline-ului și predicția ramificărilor, nu doar de frecvență.
1. Instruction Fetch (IF): citirea instrucțiunii din memorie
2. Instruction Decode + Register Fetch (ID): decodare + citire registre
3. Execute (EX): execuția operației (ALU)
4. Memory Access (MEM): acces la memorie (load/store)
5. Register Write Back (WB): scrierea rezultatului în registru
1. Pipeline stall (bubble): oprirea programării de instrucțiuni noi → cicluri goale
2. Operand forwarding: rutarea directă a valorii calculate spre instrucțiuni viitoare (fără a aștepta write-back complet)
3. Out-of-order execution: procesorul găsește instrucțiuni independente care pot fi executate imediat
În contextul consolelor de jocuri, construcția logică a unui procesor joacă un rol esențial în funcționarea hardware-ului.
Classic RISC pipeline (5 etape):
Hazard: situație în care presupunerea de execuție secvențială este încălcată
Exemplu: instrucțiunea 2 citește registrul R5 înainte ca instrucțiunea 1 să-l fi scris
Data hazard: dependență de date între instrucțiuni care se suprapun în pipeline
Soluții:
1. Pipeline stall (bubble): oprirea programării de instrucțiuni noi → cicluri goale
Bubble: slot gol unde nu se face muncă utilă
4 instrucțiuni: 8 cicluri cu bubble vs. 7 fără
2. Operand forwarding: rutarea directă a valorii calculate spre instrucțiuni viitoare (fără a aștepta write-back complet)
3. Out-of-order execution: procesorul găsește instrucțiuni independente care pot fi executate imediat
Care afirmație este corectă despre: Intrări?
c) — operanzi (date de procesat) + opcode (cod operație)
Care afirmație este corectă despre: Bus-uri de date?
a) — A (operand 1), B (operand 2), Y (rezultat) – paralele
Care afirmație este corectă despre: Add?
a) — A+B → Y + carry-out
Care afirmație este corectă despre: ALU = circuit combinațional?
a) — ieșirile se schimbă asincron la schimbarea intrărilor
Care afirmație este corectă despre: 1945?
a) — John von Neumann propune conceptul ALU pentru EDVAC
Scenariu: Analizezi un sistem hardware care utilizează conceptul de ALU. Pe baza cunoștințelor din această lecție, răspunde la următoarele întrebări:
1. ALU (Arithmetic Logic Unit) = circuit digital combinațional care efectuează operații aritmetice și pe biți asupra numerelor binare întregi
2. Bus-uri de date: A (operand 1), B (operand 2), Y (rezultat) – paralele
3. Add: A+B → Y + carry-out
Cum funcționează un procesor (CPU) — explicat pas cu pas, de la tranzistoare la instrucțiuni.