Modul 4 — ARHITECTURĂ HARDWARE

Lecția 4.4 — Bus și interconectări

PCIe, memory bus, I/O

Începe Lecția

Introducere

CPU-ul, GPU-ul, memoria și stocarea unui PlayStation 5 sunt componente separate care trebuie să comunice între ele la viteze enorme. Canalele care fac posibilă această comunicare se numesc bus-uri — magistrale de date care transportă informație între componentele sistemului. PCIe conectează SSD-ul la procesor, memory bus-ul leagă RAM-ul de controller, iar bus-urile I/O gestionează controllerele, rețeaua și perifericele.

Această lecție acoperă principalele tipuri de interconectări din consolele moderne: PCIe (interfața de mare viteză pentru SSD și periferice), memory bus (legătura directă cu RAM-ul) și I/O (canalele pentru USB, Ethernet, Bluetooth, HDMI).

Scopul nu este memorarea specificațiilor PCIe, ci înțelegerea de ce SSD-ul din PS5 comunică la 5.5 GB/s prin PCIe 4.0, de ce memory bus-ul de 256-bit furnizează 448 GB/s de bandwidth și cum fiecare bus din sistem influențează direct performanța pe care o simți în joc.

Teorie Structurată

4.4.1 — Definiție și arhitectură PCIe

  • PCI Express (PCIe) = standard de viteză mare pentru conectarea componentelor hardware în interiorul calculatoarelor
  • Înlocuiește standardele mai vechi: PCI, PCI-X, AGP
  • Dezvoltat de PCI-SIG (PCI Special Interest Group), creat 2003 de Intel, Dell, HP, IBM
  • Topologie punct-la-punct (point-to-point) spre deosebire de PCI care folosea bus partajat paralel
  • PCI: bus partajat = un singur master la un moment dat, direcție unică, ceas limitat de cel mai lent dispozitiv
  • PCIe: link-uri dedicate full-duplex între fiecare dispozitiv și root complex (host)
  • Comunicarea PCIe este încapsulată în pachete (protocol de tip rețea)
  • Compatibilitate software cu PCI vechi (software legacy poate detecta dispozitive PCIe)
  • Este un bus serial, nu paralel

4.4.2 — Lane-uri și link-uri

  • Un link PCIe = un canal de comunicare punct-la-punct între două porturi PCIe
  • Link-ul este compus din una sau mai multe lane-uri
  • O lane = 2 perechi diferențiale (differential signaling):
  • O pereche pentru recepție, una pentru transmisie
  • Deci 4 fire per lane
  • Full-duplex: date simultane în ambele direcții
  • Lățimi standard de link: ×1, ×2, ×4, ×8, ×16
  • ×1 = dispozitive lente (Wi-Fi, etc.)
  • ×16 = plăci grafice
  • Datele pe link-uri multi-lane sunt intercalate (striped): fiecare byte succesiv pe lane-ul următor
  • Negociere automată a lățimii la inițializare
  • Un card ×1 funcționează în slot ×16 (negociază ×1)

4.4.3 — Serial vs paralel – de ce serial

  • Bus paralel limitat de timing skew: semnale separate au durate diferite de propagare
  • Timing skew = câțiva nanosecunde → limita de bandwidth la sute de MHz
  • Bus serial nu are timing skew (un singur semnal diferențial per direcție per lane)
  • Clock-ul este înglobat (embedded) în semnalul serial → nu necesită ceas extern
  • Bandwidth-ul serial ajunge la multi-gigahertz
  • Alte exemple de tranziție paralel→serial: SATA, USB, SAS, FireWire, DVI, HDMI, DisplayPort
  • Tranziția paralel→serial permisă de legea lui Moore (integrarea SerDes în IC-uri)

4.4.4 — Generații PCIe – tabel comparativ

| Versiune | An | Codare | Transfer rate/lane | Throughput ×1 | Throughput ×16 |

|----------|------|-------------|--------------------|-----------|----|

| 1.0 | 2003 | 8b/10b | 2.5 GT/s | 0.25 GB/s | 4 GB/s |

| 2.0 | 2007 | 8b/10b | 5.0 GT/s | 0.5 GB/s | 8 GB/s |

| 3.0 | 2010 | 128b/130b | 8.0 GT/s | 0.985 GB/s| 15.754 GB/s |

| 4.0 | 2017 | 128b/130b | 16.0 GT/s | 1.969 GB/s| 31.508 GB/s |

| 5.0 | 2019 | 128b/130b | 32.0 GT/s | 3.938 GB/s| 63.015 GB/s |

| 6.0 | 2022 | PAM-4 FEC | 64.0 GT/s | 7.563 GB/s| 121 GB/s |

| 7.0 | 2025 | PAM-4 FEC | 128.0 GT/s | 15.125 GB/s| 242 GB/s |

  • 8b/10b encoding = 20% overhead (PCIe 1.x și 2.x)
  • 128b/130b encoding = ~1.54% overhead (PCIe 3.0-5.0)
  • PAM-4 (Pulse Amplitude Modulation, 4 nivele) + FEC de la PCIe 6.0
  • PAM-4 transmite 2 biți per simbol → dublu fără a crește frecvența
  • BER crește la 10⁻⁶ (vs 10⁻¹² anterior) → necesită FEC (Forward Error Correction)
  • FLIT de 256 bytes: 242 bytes date + 8 bytes CRC + 6 bytes FEC
  • Backward compatible între generații

4.4.5 — Aplicații PCIe

  • Plăci grafice (GPU): interfață primară de la 2013 (a înlocuit AGP)
  • Stocare: SSD-uri NVMe prin M.2 sau U.2 (până la 4 lane-uri PCIe)
  • NVMe oferă mult mai rapid I/O decât AHCI/SATA
  • Rețea: Ethernet 10 Gigabit, multiport Gigabit
  • Enterprise storage: SAS, Fibre Channel
  • GPU extern prin Thunderbolt (Thunderbolt 3 bazat pe PCIe, USB-C fizic)
  • PCIe slot power: ×1 = max 25W, ×16 = max 75W
  • Conector suplimentar 6-pin = +75W, 8-pin = +150W
  • 12VHPWR (16-pin, Nvidia 2022) = până la 600W

4.4.6 — Protocol hardware pe straturi

  • Protocol pe straturi (layered protocol):

1. Physical Layer (PHY): semnale electrice, lane-uri, SerDes, clock recovery

2. Data Link Layer: secvențierea TLP-urilor, ACK/NAK, flow control credits

3. Transaction Layer: split transactions (request și response separate), credit-based flow control

  • Eficiența: 86% pentru payload 128 bytes, 98% pentru 1024 bytes, doar 16% pentru 4 bytes
  • MSI (Message Signaled Interrupts) înlocuiesc întreruperile pe linii dedicate → latență mai mică

═══════════════════════════════════════════════════════════

4.4.7 — Definiție și concepte fundamentale

  • Bus = sistem de comunicare care transferă date între componente într-un calculator
  • Include hardware (fire, fibră optică, trace-uri PCB) + software (protocoale de comunicare)
  • La bază: cale fizică partajată care permite mai multor dispozitive să comunice
  • Protocol de comunicare gestionează care dispozitiv transmite și când
  • Categorii:
  • System bus (bus intern, bus de memorie): conectează CPU și memoria
  • Expansion bus (bus periferic): extinde sistemul la dispozitive adiționale
  • Exemple: PCIe (intern, viteză mare), USB (extern)
  • Bus-ul de adrese: specifică adresa fizică din memorie (lățimea determină cantitatea de memorie adresabilă)
  • Ex: bus de adrese 32-bit → 2³² = 4 GB adresabil
  • Address multiplexing: adresa trimisă în două jumătăți pe cicluri alternate (RAS/CAS pentru DRAM)

4.4.8 — Memory bus

  • Memory bus = conectează memoria principală (DRAM) la memory controller
  • Inițial se foloseau busuri generale (VMEbus, S-100)
  • Modern: busuri dedicate, definite de JEDEC (standardizare)
  • Exemple: generații SDRAM, RDRAM, SLDRAM
  • Busuri seriale punct-la-punct pentru memorie modernă

4.4.9 — Paralel vs serial și evoluție

  • Bus paralel: transportă date pe mai multe fire simultan
  • Bus serial: transportă date bit cu bit pe un fir (sau pereche diferențială)
  • Problemele bus-ului paralel la viteze mari: timing skew, consum de putere, EMI, crosstalk
  • Soluție parțială: double pumping (DDR)
  • Bus serial poate funcționa la rate de date mai mari per conexiune
  • Exemple de serial: USB, FireWire, SATA
  • Multidrop nu funcționează bine la viteze mari → design daisy-chain sau hub
  • Frecvența bus-ului (Hz/MHz): determină cicluri de ceas pe secundă
  • SDR = 1 transfer/ciclu, DDR = 2 transferuri/ciclu
  • Data rate (bps) = biți per ciclu × frecvență × transferuri per ciclu

4.4.10 — Istoria busurilor – trei generații

  • Generația 1: busuri simple, fire conectate direct la pinii CPU
  • Memorie și periferice pe același bus
  • Toate dispozitivele la aceeași viteză
  • Exemplu: S-100 bus (Altair 8800)
  • Adăugarea întreruperilor pentru a evita busy-waiting
  • Channel controllers (IBM 709, 1958): mini-calculatoare dedicate I/O
  • Generația 2: separarea CPU/memorie de periferice
  • Bus controller intermediar
  • NuBus, PCI, AGP
  • Busuri mai late: 8-bit → 16/32-bit
  • Plug-n-play în loc de jumperi manuali
  • Problema: toate dispozitivele tot la aceeași viteză → bottleneck
  • AGP creat special pentru video, apoi depășit și el → PCIe (2004)
  • Generația 3: HyperTransport, InfiniBand (din ~2001)
  • Flexibile: funcționează intern și între mașini
  • Mai mult rețea decât bus tradițional
  • Compute Express Link (CXL): standard deschis CPU-to-device/CPU-to-memory, bazat pe PCIe 5.0

═══════════════════════════════════════════════════════════

4.4.11 — Definiție și arhitectură FSB

  • Front-side bus (FSB) = interfață de comunicare folosită pe computere Intel (anii 1990-2000)
  • EV6 = echivalentul AMD
  • Transportă date între CPU și memory controller hub (northbridge)
  • „Front side" = interfața externă a procesorului (vs back-side bus = cache)
  • Arhitectura chipset cu northbridge + southbridge:
  • FSB conectează CPU ↔ northbridge
  • Northbridge conectează la: RAM (memory bus), AGP/PCIe (grafică)
  • Southbridge conectează la: PCI, USB, SATA, audio, periferice lente
  • Busurile secundare derivă frecvența din FSB dar nu sunt neapărat sincronizate

4.4.12 — Relația FSB cu viteza componentelor

  • Frecvența CPU = FSB × multiplicator
  • Ex: CPU 3200 MHz = FSB 400 MHz × multiplicator 8
  • Memory bus legat direct de FSB (aceeași frecvență sau raport asincron 4:5)
  • Bandwidth FSB = lățime (bytes) × frecvență × transferuri/ciclu
  • Ex: 8 bytes × 100 MHz × 4 transferuri = 3200 MB/s
  • Quad pumping (Intel): 4 transferuri/ciclu → FSB 200 MHz real = 800 MT/s marketing
  • FSB-ul lent = bottleneck → CPU idle așteptând date din memorie

4.4.13 — Evoluția de la FSB la interconexiuni moderne

  • FSB eliminat de Intel în 2009
  • Criticat de AMD ca tehnologie veche și lentă
  • Înlocuit cu:
  • AMD HyperTransport (apoi Infinity Fabric)
  • Intel QPI (QuickPath Interconnect), apoi DMI 2.0, apoi UPI (Ultra Path Interconnect)
  • Schimbarea fundamentală: memory controller integrat în CPU (nu mai în northbridge)
  • Elimină bottleneck-ul FSB pentru accesul la memorie
  • Bandwidth-ul link-ului CPU↔chipset rămâne pentru alte dispozitive
  • Northbridge dispare; rămâne Platform Controller Hub (PCH) = fostul southbridge
  • Transfer rates istorice:
  • Pentium: 528 MB/s (FSB 66 MHz, 1 transfer/ciclu, 64-bit)
  • Pentium 4 HT: 6400 MB/s (FSB 200 MHz, quad-pumped)
  • Core 2 Extreme: 12800 MB/s (FSB 400 MHz, quad-pumped)
  • AMD Athlon XP: 3200 MB/s (FSB 200 MHz, double-pumped, DDR)

═══════════════════════════════════════════════════════════

4.4.14 — Definiție I/O

  • Input/output (I/O) = comunicarea între un sistem de procesare a informațiilor și lumea exterioară
  • Inputs = semnale/date primite; Outputs = semnale/date trimise
  • Dispozitive I/O: hardware folosit pentru comunicare
  • Input: tastatură, mouse
  • Output: monitor, imprimantă
  • Bidirecțional: modem, placă de rețea
  • Din perspectiva arhitecturii: CPU + memoria principală = „creierul"; orice transfer de/la CPU/memorie = I/O

4.4.15 — Interfață și metode I/O

  • Interfața I/O necesită logică pentru interpretarea adresei dispozitivului
  • Handshaking: comenzi BUSY, READY, WAIT
  • Două metode principale de acces:

1. Memory-mapped I/O: dispozitivele apar ca locații de memorie, aceleași instrucțiuni ca pentru memorie

2. Port-mapped I/O (instruction-based): instrucțiuni CPU speciale pentru I/O (in/out pe x86)

  • Channel I/O: instrucțiuni specifice I/O care adresează un canal; canalul accesează asincron (similar DMA dar mai flexibil)
  • DMA (Direct Memory Access): dispozitivele transferă blocuri mari de date direct la/din memorie, independent de CPU
  • Elimină overhead-ul CPU pentru transferuri mari de date

═══════════════════════════════════════════════════════════

Legătura Fizică — Informatică

Aplicații PCIe

  • Plăci grafice (GPU): interfață primară de la 2013 (a înlocuit AGP)
  • GPU extern prin Thunderbolt (Thunderbolt 3 bazat pe PCIe, USB-C fizic)

Definiție și concepte fundamentale

  • System bus (bus intern, bus de memorie): conectează CPU și memoria
  • Ex: bus de adrese 32-bit → 2³² = 4 GB adresabil

Paralel vs serial și evoluție

  • Bus serial: transportă date bit cu bit pe un fir (sau pereche diferențială)

Istoria busurilor – trei generații

  • Generația 1: busuri simple, fire conectate direct la pinii CPU
  • Generația 2: separarea CPU/memorie de periferice
  • Busuri mai late: 8-bit → 16/32-bit
  • Compute Express Link (CXL): standard deschis CPU-to-device/CPU-to-memory, bazat pe PCIe 5.0

Definiție și arhitectură FSB

  • Transportă date între CPU și memory controller hub (northbridge)
  • „Front side" = interfața externă a procesorului (vs back-side bus = cache)
  • FSB conectează CPU ↔ northbridge

Relația FSB cu viteza componentelor

  • Frecvența CPU = FSB × multiplicator
  • Ex: CPU 3200 MHz = FSB 400 MHz × multiplicator 8
  • FSB-ul lent = bottleneck → CPU idle așteptând date din memorie

Evoluția de la FSB la interconexiuni moderne

  • Schimbarea fundamentală: memory controller integrat în CPU (nu mai în northbridge)
  • Bandwidth-ul link-ului CPU↔chipset rămâne pentru alte dispozitive
  • Pentium: 528 MB/s (FSB 66 MHz, 1 transfer/ciclu, 64-bit)

Definiție I/O

  • Din perspectiva arhitecturii: CPU + memoria principală = „creierul"; orice transfer de/la CPU/memorie = I/O

Interfață și metode I/O

2. Port-mapped I/O (instruction-based): instrucțiuni CPU speciale pentru I/O (in/out pe x86)

  • DMA (Direct Memory Access): dispozitivele transferă blocuri mari de date direct la/din memorie, independent de CPU
  • Elimină overhead-ul CPU pentru transferuri mari de date

Aplicare Directă în Console

Definiție și concepte fundamentale

  • Include hardware (fire, fibră optică, trace-uri PCB) + software (protocoale de comunicare)

Exemplu Real de Hardware

Generații PCIe – tabel comparativ

| Versiune | An | Codare | Transfer rate/lane | Throughput ×1 | Throughput ×16 |

|----------|------|-------------|--------------------|-----------|----|

| 1.0 | 2003 | 8b/10b | 2.5 GT/s | 0.25 GB/s | 4 GB/s |

| 2.0 | 2007 | 8b/10b | 5.0 GT/s | 0.5 GB/s | 8 GB/s |

| 3.0 | 2010 | 128b/130b | 8.0 GT/s | 0.985 GB/s| 15.754 GB/s |

| 4.0 | 2017 | 128b/130b | 16.0 GT/s | 1.969 GB/s| 31.508 GB/s |

| 5.0 | 2019 | 128b/130b | 32.0 GT/s | 3.938 GB/s| 63.015 GB/s |

| 6.0 | 2022 | PAM-4 FEC | 64.0 GT/s | 7.563 GB/s| 121 GB/s |

| 7.0 | 2025 | PAM-4 FEC | 128.0 GT/s | 15.125 GB/s| 242 GB/s |

  • 8b/10b encoding = 20% overhead (PCIe 1.x și 2.x)
  • 128b/130b encoding = ~1.54% overhead (PCIe 3.0-5.0)
  • PAM-4 (Pulse Amplitude Modulation, 4 nivele) + FEC de la PCIe 6.0
  • PAM-4 transmite 2 biți per simbol → dublu fără a crește frecvența
  • BER crește la 10⁻⁶ (vs 10⁻¹² anterior) → necesită FEC (Forward Error Correction)
  • FLIT de 256 bytes: 242 bytes date + 8 bytes CRC + 6 bytes FEC
  • Backward compatible între generații

Aplicații PCIe

  • 12VHPWR (16-pin, Nvidia 2022) = până la 600W

Definiție și arhitectură FSB

  • Front-side bus (FSB) = interfață de comunicare folosită pe computere Intel (anii 1990-2000)

Evoluția de la FSB la interconexiuni moderne

  • FSB eliminat de Intel în 2009
  • Criticat de AMD ca tehnologie veche și lentă
  • AMD HyperTransport (apoi Infinity Fabric)
  • Intel QPI (QuickPath Interconnect), apoi DMI 2.0, apoi UPI (Ultra Path Interconnect)
  • AMD Athlon XP: 3200 MB/s (FSB 200 MHz, double-pumped, DDR)

Probleme Frecvente Asociate

⚠️ Istoria busurilor – trei generații

Problema: toate dispozitivele tot la aceeași viteză → bottleneck

Recapitulare

  • Definiție și arhitectură PCIe: PCI Express (PCIe) = standard de viteză mare pentru conectarea componentelor hardware în interiorul calculatoarelor
  • Lane-uri și link-uri: Un link PCIe = un canal de comunicare punct-la-punct între două porturi PCIe
  • Serial vs paralel – de ce serial: Bus paralel limitat de timing skew: semnale separate au durate diferite de propagare
  • Generații PCIe – tabel comparativ: | Versiune | An | Codare | Transfer rate/lane | Throughput ×1 | Throughput ×16 |
  • Aplicații PCIe: Plăci grafice (GPU): interfață primară de la 2013 (a înlocuit AGP)
  • Protocol hardware pe straturi: Protocol pe straturi (layered protocol):
  • Definiție și concepte fundamentale: Bus = sistem de comunicare care transferă date între componente într-un calculator
  • Memory bus: Memory bus = conectează memoria principală (DRAM) la memory controller
  • Paralel vs serial și evoluție: Bus paralel: transportă date pe mai multe fire simultan
  • Istoria busurilor – trei generații: Generația 1: busuri simple, fire conectate direct la pinii CPU
  • Definiție și arhitectură FSB: Front-side bus (FSB) = interfață de comunicare folosită pe computere Intel (anii 1990-2000)
  • Relația FSB cu viteza componentelor: Frecvența CPU = FSB × multiplicator
  • Evoluția de la FSB la interconexiuni moderne: FSB eliminat de Intel în 2009
  • Definiție I/O: Input/output (I/O) = comunicarea între un sistem de procesare a informațiilor și lumea exterioară
  • Interfață și metode I/O: Interfața I/O necesită logică pentru interpretarea adresei dispozitivului

Quiz — 5 Întrebări

Întrebarea 1

Care afirmație este corectă despre: Înlocuiește standardele mai vechi?

  • a) PCI, PCI-X, AGP
  • b) bus partajat = un singur master la un moment dat, direcție unică, ceas limitat de cel mai lent dispozitiv
  • c) Un link PCIe = un canal de comunicare punct-la-punct între două porturi PCIe
  • d) link-uri dedicate full-duplex între fiecare dispozitiv și root complex (host)
Arată răspunsul

a) — PCI, PCI-X, AGP

Întrebarea 2

Care afirmație este corectă despre: Lane-uri și link-uri?

  • a) link-uri dedicate full-duplex între fiecare dispozitiv și root complex (host)
  • b) PCI, PCI-X, AGP
  • c) bus partajat = un singur master la un moment dat, direcție unică, ceas limitat de cel mai lent dispozitiv
  • d) Un link PCIe = un canal de comunicare punct-la-punct între două porturi PCIe
Arată răspunsul

d) — Un link PCIe = un canal de comunicare punct-la-punct între două porturi PCIe

Întrebarea 3

Care afirmație este corectă despre: Bus paralel limitat de timing skew?

  • a) semnale separate au durate diferite de propagare
  • b) bus partajat = un singur master la un moment dat, direcție unică, ceas limitat de cel mai lent dispozitiv
  • c) link-uri dedicate full-duplex între fiecare dispozitiv și root complex (host)
  • d) PCI, PCI-X, AGP
Arată răspunsul

a) — semnale separate au durate diferite de propagare

Întrebarea 4

Care afirmație este corectă despre: Generații PCIe – tabel comparativ?

  • a) link-uri dedicate full-duplex între fiecare dispozitiv și root complex (host)
  • b) 8b/10b encoding = 20% overhead (PCIe 1.x și 2.x)
  • c) PCI, PCI-X, AGP
  • d) bus partajat = un singur master la un moment dat, direcție unică, ceas limitat de cel mai lent dispozitiv
Arată răspunsul

b) — 8b/10b encoding = 20% overhead (PCIe 1.x și 2.x)

Întrebarea 5

Care afirmație este corectă despre: Plăci grafice (GPU)?

  • a) bus partajat = un singur master la un moment dat, direcție unică, ceas limitat de cel mai lent dispozitiv
  • b) interfață primară de la 2013 (a înlocuit AGP)
  • c) PCI, PCI-X, AGP
  • d) link-uri dedicate full-duplex între fiecare dispozitiv și root complex (host)
Arată răspunsul

b) — interfață primară de la 2013 (a înlocuit AGP)

Exercițiu Aplicat de Gândire

🧠 Exercițiu: Bus și interconectări

Scenariu: Analizezi un sistem hardware care utilizează conceptul de PCIe. Pe baza cunoștințelor din această lecție, răspunde la următoarele întrebări:

  • 1. Defineste pe scurt: PCIe.
  • 2. Ce rol are memory bus în contextul hardware-ului?
  • 3. Explică relația dintre PCIe și I/O.
Arată rezolvarea

1. PCI Express (PCIe) = standard de viteză mare pentru conectarea componentelor hardware în interiorul calculatoarelor

2. Un link PCIe = un canal de comunicare punct-la-punct între două porturi PCIe

3. Bus paralel limitat de timing skew: semnale separate au durate diferite de propagare

Video Recomandat

0:00 / 0:00

Magistralele computerului: magistrala de adrese, de date și de control — cum comunică componentele între ele.