Editoriale si articole
Architectura AMD Ryzen (Zen)

În prima parte a review-ului AMD Ryzen dedicat procesorului 1800x am discutat sumar despre arhitectura AMD Ryzen (Zen), dar totuși nu am reușit să acopăr suficient de mult din acest punct de vedere. Astfel încât consider că un articol separat care să concentreze detaliile despre arhitectura în sine Ryzen este bine venit.

Astfel că începem cu un prim element care diferențiază cele două arhitecturi AMD, Bulldozer și Ryzen și anume utilizarea SMT pe Ryzen.

Introducerea SMT (multithreading simultan) în detrimentul CMT (clustered multithreading) folosit pe arhitecturile Bulldozer este una din diferențe majore. SMT reprezintă o tehnică care îmbunătățșste eficiența unui procesor superscalar. Ok, definiția probabil nu ajută foarte mult în înțelegerea procesoului, astfel încât voi încerca să iau fiecare termen în parte pentru a-l explica.

AMD SMT

Un procesor superscalar reprezintă un procesor care poate îndeplini mai mult de o instrucțiune per ciclu de clock. În funcție de eficiența unui procesor, acesta poate îndeplini chiar mai mult de trei instrucțiuni per clock. Explicația frecvenței o găsiți într-un editorial precedent, dar ideea de bază este că o frecvență de clock reprezintă timpul necesar de care un procesor are nevoie pentru a îndeplini cea mai simplă operație (mai exact de adiție, adica adunarea). Astfel că prin operații de paralelism, procesorul poate fi mai rapid având aceeși frecvență, același număr de nuclee și același consum.

Totuși de ce este mai eficient SMT în detrimentul CMT (clustered multithreading)? Pentru a clarifica câteva elemente de la început, CMT a fost introdus ca răspunsul AMD la tehnologia Intel de hyper-threading și, implicit, la SMT. CMT a fost implementat pentru prima dată pe arhitectura Bulldozer și reprezenta doar deblocarea unor noi fire de execuție pentru un procesor.

De exemplu, dacă luam un procesor AMD Opteron cu:

  • 8 module,
  • 16 fire de execuție,
  • 4 unități aritmetice per modul,
  • 2 per nucleu și
  • 32 în total

Dacă blocăm CMT obținem:

  • 8 fire de execuție
  • 4 unități aritmetice per modul,
  • 2 unități aritmetice per fir de execuție
  • 16 în total.

Dacă am fi dezactivat tehnologia SMT de la Intel pe un procesor Xeon numărul de unități aritmetice alocat fiecărui nucleu/fir de execuție rămânea același, singurul lucru pierdut fiind numărul de fire de execuție final.

Concluzia este că trecerea de la CMT la SMT a fost o alegerea înțeleaptă din partea celor de la AMD. CMT nu a reprezentat o tehnologie suficient de eficientă pentru a putea fi implementată cu succes, drept dovadă, arhitectura Bulldozer nu a reușit să ofere performanțe competitive nici măcar cu seria precedentă (Phenom). Împărțirea în module a nucleelor și alocarea unui număr insuficient de unități aritmetice fiecărui nucleu nu a reprezentat un progres din punct de vedere tehnologic.

AMD The Zen Core

Am clarificat până acum:

  • Ce reprezintă SMT și CMT și de ce AMD a ales sa opteze pentru SMT.
  • Cum funcționează foarte succint frecvența unui procesor
  • Ce este un procesor superscalar

Nu am răspuns încă la intrebarea de la început, ce reprezintă SMT până la urmă?

Pentru a putea raspunde la această întrebare trebuie să înțelegem conceptul de thread. Un thread reprezintă cea mai mică secvență de program (instrucțiune) care poate fi manipulată de către unitatea de control (sau așa numitul scheduler). Procesoarele moderne sunt implementate să îndeplineasca calitatea de multithreading prin metoda “time slicing” (“tăierea timpului” de execuție). Această metodă reprezintă perioada de timp pe care sistemul de operare o alocă pentru fiecare instrucțiune de ciclu, astfel încât chiar dacă un anumit proces nu este finalizat, sistemul de operare va începe o altă instrucțiune care are un timp de executare mai scurt. Această metodă este implementată la nivel software ca un pseudo proces de multitasking pentru că fără un procesor care poate îndeplini această funcție la nivel hardware, sistemul de operare, mai exact kernel-ul va putea doar executa mici întârzieri ale instrucțiunilor pentru a eficientiza procesul.

AMD Timing Methodology

În ceea ce privește alte tehnologii, AMD Ryzen vine cu o tehnologie numită CPU-Complex sau pe scurt CCX. CCX reprezintă o evoluție de la arhitectura Bulldozer unde cele 8 nuclee erau împărțite în module. Cele patru module împărțeau nivelul L2 Cache, FPUs, pipeline stages. Ce reprezintă FPUs? Floating-point unit, mai exact reprezintă componenta care lucrează cu numere cu virgulă în calcule. „Stagiile” pipeline reprezintă un set de elemente conectate în serie, astfel încât rezultatul transmis de un element este informația transmisă către următorul element. Aceste elemente de procesare de date au ca scop paralelizarea informației.

AMD CPU Complex CCX

Am deviat puțin de la întrebarea inițiala, ce scop are de fapt CCX? Fiecare modul de CCX reprezintă o combinație de 4 nuclee de tip Ryzen. Fiecare nucleu vine cu propriul nivel de L2 Cache de 512 KB, iar fiecare 4 nuclee va împărți 8 MB L3 Cache. Cele două unități CCX prezente în procesoarele cu 8 nuclee vor fi controlate de un controller independent. Fiecare nucleu poate astfel să acceseze nivelul de Cache nu aceeași latență, fără să existe întârzieri ca în cazul arhitecturii precedente.

AMD L2 Cache

Destul de multă teorie până acum, astfel încât aș dori să aduc în discuție și un aspect puțin mai practic și un bug care să sperăm că va fi reparat în curând în ceea ce privește aceste procesoare care, deși puternice în acest moment, nu sunt încă perfect optimizate.

Sistemul de operare cel mai utilizat în continuare, Windows nu folosește în mod corect numărul de thread-uri și nivelurile de Cache. Windows procesează cele 8 nuclee și 16 fire de execuție ca fiind 16 nuclee, 16 fire de execuție cu 136 MB Cache L3 Cache, deși AMD Ryzen 1800x vine cu doar 16 MB L3 Cache. De ce? Pentru că acest transfer de date pe nivelul L3 Cache nu a fost încă implementat în sistemul de operare. Astfel că sistemul de operare la nivel de Kernel nu poate oferi o soluție eficientă din acest punct de vedere deoarece nu utilizează memoria corespunzător. Cel mai probabil update-ul va veni cât se poate de repede din acest punct de vedere, dar merită să fie menționat deoarece unele aplicații vor oferi rezultate inferioare (eronate) în momentul în care procesorul nu va utiliza cum trebuie memoria și va muta de pe cele două unitati CCX date stocate temporar pe L3 Cache.

AMD L3 Cache

Alte update-uri în ceea ce privește arhitectura AMD Ryzen, nivelul L1 Cache a primit un update, și anume a fost schimbat modul de scriere al memoriei de la write-through la write-back. Există două tipuri de modalități prin care memoria de tip Cache este accesată și scrisă, write through și write-back. Write-through înseamnă că datele sunt scrise în același timp, atât la nivelul memoriei Cache, cât și în memoria principală (MMR). Write-back reprezintă o metodă în care informația primește update doar la memoria Cache, iar informația va fi transmisă și scrisă către MMR doar când este nevoie sau când acea informație este necesară altor nivele de Cache. În acest mod (write-back), este redus traficul de memorie și crește viteza de operare a procesorului.

Un feature interesant prezent și pe procesoarele Intel începând cu generația Ivy Bridge este suportul RSEED. Ok, ce este RSEED în primul rând? Este un generator de numere random implementat în arhitectura procesorului. Totuși nu aveam până acum un generator de numere random? Ba da, procesoarele aveau un astfel de generator și era dat de instrucțiunea RDRAND care era mai mult un pseudogenerator de numere random. RDRAND funcționa pe baza algoritmului CTR-CRDBG folosit des în criptografie. Ok, de unde vine această denumire care nu este tocmai intuitivă? CTR-DRBG se traduce prin Counter mode Deterministic Random Byte Generator, adică o metodă deterministă de generare aleatorie de byte. Probabil nu (vă) ajută nici această definiție foarte mult, dar să dezvoltăm puțin această idee, de ce este un pseudogenerator de numere aleatorii? Pentru că un astfel de algoritm va produce după un anumit număr de biți un rezultat care poate fi prevăzut. Iar un generator de numere aleatorii are fix scopul de a genera numere care nu pot fi prevăzute.

Algoritmul CTR-DRBG folosește block-uri cipher (sau cifru de blocuri) și le transformă în stream cipher, astfel încât generează următorul set de blocuri encriptate succesiv cu valori de la un contor (sau ceva care poate genera numere). Acest contor reprezintă orice funcție care poate genera o secvență care garantează că nu se repetă pe o perioadă lungă de timp. RDRAND a fost implementat în procesoarele AMD și Intel și se folosește de instructiunile AES-NI pentru a produce diferite date aleatorii cu o entropie ridicată (care nu pot fi prevăzute).

Mergând pe șirul ideii inițiale, ce reprezintă RDSEED și ce folos are? RDSEED folosește instrucțiunile AES-CBC și are ca scop îmbunătățirea entropiei, adică reprezintă numere generate aleator care nu pot fi prevăzute decât cu o putere computațională nelimitată. Adică numerele generate fără cheia de decodare nu pot fi decriptate.

Sper că am reușit să lămuresc măcar o parte din dotările cu care noua generație de procesoare AMD vine, avantajele dar și dezavantajele cu care se confrută această arhitectură.

Pe lângă elementele de mai sus, AMD Ryzen vine cu dotări cum ar fi Precision Boost (echivalentul Turbo Boost de la Intel) cu scopul de a îmbunătăți frecvența procesorului continuu și eficient din punct de vedere energetic. De asemenea, EFR (sau Extended Frequency Range) oferă posibilitatea de a mări frecvența procesorului automat dacă există o temperatură suficient de mică.

AMD Precision Boost

În ceea ce privește consumul, Ryzen a reușit să ofere o performanță remarcabilă în ceea ce privește consumul, dar și cantitatea de căldură degajată (adică TDP-ul). Acest lucru din păcate nu înseamnă că procesorul este capabil să ajungă la frecvențe foarte mari în daily-use, dar un TDP de 95 W pentru un procesor atât de puternic reprezintă un avans tehnologic extraordinar comparat cu alternativa Intel de peste 140W.

Închei acest articol cu același gând asupra acestei noi arhitecturi și anume că în sfârșit nu mai există un monopol pe această piață.

Mai multe despre: AMD   AMD Zen   Ryzen  

Dacă ţi-a plăcut acest articol, recomandă-l şi prietenilor tăi. Mulţumim!

SPRIJINĂ GRATUIT ACEST SITE
Cumpără orice de pe eMAG folosind acest link iar noi vom folosi fondurile din comisioane pentru dezvoltarea acestuia.


comments powered by Disqus