Acasă buldozer

Care este performanța procesorului? Anterior, a existat o formulă care descrie performanța ca produs al numărului de instrucțiuni executate pe ciclu de ceas și a frecvenței la care funcționează acest procesor. Acum a apărut al treilea factor în această formulă - numărul de nuclee de calcul. Prin urmare, dezvoltatorul de procesoare, care dorește să elibereze un produs rapid, are mai multe moduri de a face acest lucru.







Cu toate acestea, nu totul este atât de simplu. O creștere a numărului de instrucțiuni executate de nucleul computațional pentru tact este o sarcină destul de dificilă. cod x86 Classic necesită executarea constantă a comenzilor și, prin urmare, pentru a realiza procesare paralelă, procesorul trebuie să lay mari blocuri de predicție ramură și instrucțiuni de reordonare, a căror punere în aplicare necesită un efort considerabil de inginerie. În același timp, complexitatea microarhitecturii afectează dimensiunile fizice ale cristalului și conduce la limitări la creșterea numărului de nuclee. Deci, dacă producătorul va face un procesor cu un număr mare de nuclee, microarhitectura ar trebui, dimpotrivă, să încerce să simplifice. Nu este ușor cu viteza ceasului. Rata de creștere va necesita din nou modificări în blocurile interne ale procesorului și extinderea transportorului său executiv. Ca rezultat, se obtine urmatoarele: ca procesorul poate castiga o medalie pentru performanta, dezvoltatorii sai ar trebui sa transpire destul de bine pe optimizarea simultana a unui numar de parametri.

Problema este, de asemenea, că oricare dintre modalitățile selectate de a îmbunătăți viteza procesorului poate fi de succes numai pentru anumite cazuri. Nu toate programele pot funcționa eficient cu un număr mare de nuclee. Unele algoritmi nu vă permit să prezicați corect tranzițiile și reordonați instrucțiunile. În unele cazuri, performanța nu crește cu viteza ceasului, deoarece există și alte blocaje în sistem.

Găsirea unui echilibru optim nu este ușor și care este criteriul optimalității? Putem compara performanța procesoarelor într-un număr finit de programe și alegem dintre ele cele mai rapide pentru acest caz particular. Cu toate acestea, acest lucru nu garantează faptul că, prin aplicarea unui alt set de instrumente de testare, nu avem estimări total opuse. O astfel de introducere îndelungată este dată aici pentru că astăzi trebuie să ne cunoaștem noua serie de procesoare AMD FX - produsul emblematic al AMD, cunoscut sub numele de cod Zambezi. În centrul acestui procesor se află o foarte ambiguă microstructură Bulldozer, care a reușit deja să colecteze o mulțime considerabilă de recenzii neflaturate. Dar nu este că această microarhitectură este complet rea. Alegerea cel mai bun echilibru de caracteristici, dezvoltatorii au evaluat incorect nevoile celor mai mulți utilizatori și au făcut în "formula de bază" accentul principal nu este pe acest factor. Ca rezultat, ideea originala de a produce o solutie de inalta performanta a noii generatii a mers incet, iar adeptii AMD au fost intrigati de promisiunile unei pauze ca nu au primit ceea ce se asteptau. Dar acesta este un motiv serios și obiectiv pentru dezamăgire? Despre asta și vorbiți în acest material.

# 8673; # Numărați kernelurile: opt sau patru?

Lucrând pe un nou design pentru procesoarele productive, AMD a decis să se concentreze asupra numărului de nuclee de procesare. Aceasta este o alegere logică bazată pe faptul că de-a lungul anilor, un software multi-threaded devine din ce în ce mai mult de micro-arhitectura si design, proiectat pentru mulți ani de dezvoltare, ar trebui să fie luate în considerare în primul rând, nu este starea actuală a pieței, și tendințe observate. Opt nuclee prevăzute în versiunea de bază a noului procesor - aceasta este ceea ce se întâmplă AMD și pentru a cuceri piata, care au fost până în prezent doar chips-uri, numărul maxim de nuclee, care este limitată la șase. (Aici vorbim doar despre computerele desktop.) - Ed.)

În același timp, dezvoltatorii nu au vrut să ia nucleele vechii microarhitecturi K10. Nu numai că au o mărime fizică prea mare, dar, judecând după Llano, nu sunt înclinați să opereze la viteze mari de ceas chiar și după transferul la tehnologia modernă de 32 de nanometri. În plus, ele nu acceptă multe caracteristici moderne, cum ar fi, de exemplu, instrucțiunile AVX. Prin urmare, pentru a construi AMD opt-core a făcut o nouă microarhitectură - Buldozer. Oficialii companiei preferă să spună că dezvoltarea sa a fost realizată cu un ardezie curat, dar, de fapt, în miezurile Bulldozer pot găsi o mulțime de referințe la celălalt prezentat în microarhitectura din acest an - Bobcat, orientate pentru utilizarea în dispozitive compacte și eficiente energetic. Cu toate acestea, relația dintre Buldozer și Bobcat este destul de îndepărtată și o menționăm doar pentru a înțelege ideea generală - Buldozerul combină multe kernel-uri relativ simple.

În acest caz, nu este deloc o combinație primitivă de opt nuclee simple pe un singur cristal semiconductor. În acest scenariu, procesorul rezultat ar avea performanță singur fir foarte scăzută, și ar fi destul de o problemă serioasă, deoarece programul nu este de strivire sarcină pe mai multe fire de calcul, nu prea puțin. Prin urmare, în primul rând, miezurile au fost optimizate pentru a lucra la viteze mari ale ceasului. În al doilea rând, au fost asociate în module dual-core, capabile să-și împărtășească resursele în beneficiul unui singur fir. Ca rezultat, un aspect destul de curios sa dovedit: partea de intrare a conductei de execuție pentru un astfel de modul dual-core este obișnuită, iar prelucrarea ulterioară a instrucțiunilor este împărțită între două seturi de actuatoare.







Acasă buldozer

Baza designului buldozerului este un modul dual-core cunoscut în mod condiționat

Reamintim că procesarea datelor într-un procesor modern include mai mulți pași: prelevarea de instrucțiuni x86 din memoria cache, decodarea acestora - traducerea în macrooperațiile interne, executarea, înregistrarea rezultatelor. Primele două etape ale modulului buldozer făcut pentru o pereche de miezuri împreună și în continuare pentru instrucțiuni întregi efectua distribuite în două operații de clustere, nuclee, sau, în cazul aritmetică reală, este în general efectuată pentru două nuclee cu o unitate de virgulă mobilă.

Modulele de buldozere sunt proiectate să proceseze patru instrucțiuni pe ceas și, datorită tehnologiei de macrocomenzi, unele perechi de instrucțiuni x86 pot fi considerate procesoare ca o singură operațiune. Acest lucru înseamnă că, în general, modulul dual-core al Bulldozer-ului este similar cu puterea sa la un nucleu de procesoare Intel moderne, care poate procesa, de asemenea, patru instrucțiuni pe ceas și, de asemenea, suportă macroslaying.

Acasă buldozer

Acesta este modul în care arată dispozitivul funcțional al modulului construit pe microarhitectura Buldozerului. Din două nuclee există numai două seturi de actuatoare întregi

Relativ scăzută complexitate are o comunitate pe unitatea de procesare a unității de operațiuni cu un punct de plutire. Acesta include doi actuatori FMAC de 128 biți care pot fi combinați într-o singură unitate pentru a procesa instrucțiuni de 256 biți. Se pare că nu există atât de multe dispozitive executive, mai ales având în vedere faptul că ele sunt împărțite într-o pereche de nuclee. Dar ele sunt mai universale decât în ​​microarhitecturile anterioare și concurente, în care se folosesc multiplicatori și aditivi individuali. Din acest motiv, în anumite cazuri când lucrăm cu numere reale, modulul dual-core Bulldozer poate oferi performanțe comparabile și chiar mai ridicate decât, de exemplu, un nucleu Sandy Bridge.

Acasă buldozer

O idee similară de combinare a dispozitivelor pe 128 biți pentru a lucra cu instrucțiuni de 256 de biți este folosită în Sandy Bridge

Cu toate acestea, modulul buldozer ar trebui să demonstreze cele mai puternice forțe cu o sarcină cu două filete. Un nucleu Sandy Bridge este, de asemenea, capabil să proceseze două fluxuri de calcul, pentru aceasta are tehnologia Hyper-Threading. Cu toate acestea, toate instrucțiunile sunt direcționate către un set de actuatoare, care, în practică, cauzează numeroase coliziuni. În modulul Bulldozer sunt stocate două clustere independente, care pot executa fire în paralel, iar numărul total de dispozitive de execuție din ele depășește cu un an și jumătate numărul de astfel de dispozitive din kernelul Sandy Bridge.

Acasă buldozer

În partea stângă este modulul Bulldozer, în partea dreaptă este un kernel concurente cu suport Hyper-Threading. De fapt, pe Sandy Bridge nu este foarte asemănător, dar esența problemei este ilustrația

Ca rezultat, modulul Bulldozer are o performanță de vârf mai mare decât nucleul Sandy Bridge, dar este oarecum mai dificil să dezvăluiți această performanță. Miezul lui Sandy Bridge își încarcă inteligent resursele proprii grație logicii avansate în procesor, analizând în mod independent un cod cu un singur fir și executându-l în paralel pe un set complet de dispozitive executive. Cu toate acestea, în Bulldozer, sarcina utilizării eficiente a dispozitivelor executive este parțial schimbată către un programator care trebuie să-și descompună codul în două fluxuri - o încărcare completă a tuturor capacităților modulului va deveni posibilă abia atunci.

Și asta este tipic. Având în vedere modulul de procesare dual-core Bulldozer, l-am comparat mereu cu un singur pod de bază Sandy și, în același timp, am reușit să desenăm paralele destul de corecte. Acest lucru face o minune - nu ar trebui să considerăm "opt-core" al noii microarhitecturi drept un produs al fanteziei marketing-ului? AMD spune că numărarea kernel-ului urmează numărul de clustere întregi, argumentând că modulul este capabil să furnizeze până la 80% din performanța a două nuclee independente. Cu toate acestea, nu trebuie să uităm că nucleele care stau la baza Buldozerului sunt mult mai simple decât nucleele altor procesoare. Prin urmare, numărul de module dual-core este o caracteristică care reflectă performanța buldozerului mult mai adecvat.

Acasă buldozer

Găsiți numărul maxim de nuclee de procesoare și obțineți un loc de muncă în departamentul de marketing al AMD

# 8673; # Memorie cache

Organizarea memoriei cache-ului în procesoarele Bulldozer este, de asemenea, "legată" nu atât la nucleul individual, cât și la modulele dual-core. De fapt, fiecărui nucleu îi este alocată doar cache-ul propriu de date de primul nivel, toate celelalte niveluri ale cache-ului sunt fie la modul ca întreg, fie la procesor:

  • Fiecare nucleu are memoria cache propriu a primului nivel pentru date. Volumul său este de 16 KB, iar arhitectura presupune existența a patru canale de asociativitate. Această memorie cache funcționează pe un algoritm cu scriere, ceea ce înseamnă includerea acesteia.
  • Cache-ul de primul nivel pentru instrucțiuni este prezentat într-o singură copie pentru fiecare modul dual-procesor. Volumul său este de 64 KB, iar numărul de canale de asociere este de două.
  • Cache-ul de nivel 2 este, de asemenea, implementat într-o instanță unitate după modul. Dimensiunea sa este impresionantă de 2 MB, asociativitatea este de 16 canale, iar algoritmul de lucru este exclusiv.
  • În plus, procesorul de opt nuclee ca întreg are o memorie cache de 8 megabyte L3 cu asociativitate pe 64 de canale. Particularitatea acestui cache constă în munca sa asupra frecvenței, care este mult mai puțin comparată cu procesorul în sine, care este de aproximativ 2 GHz.

Acasă buldozer

Următorul tabel descrie raportul dintre dimensiunile cache-uri ale procesoarelor Bulldozer cu opt miezuri, celor patru nuclee Sandy Bridge și Thuban (șase nuclee Phenom II X6, construite pe microarhitectura K10).

Consimțământul la prelucrarea datelor cu caracter personal







Articole similare

Trimiteți-le prietenilor: