Un procesor multi-core este o unitate centrală de procesare care conține două sau mai multe nuclee de procesare pe un cip de procesor sau într-un pachet .
În engleză, există doi termeni folosiți în mod obișnuit pentru procesoarele cu mai multe nuclee: multi-core și many-core .
Termenul multi -core ( în engleză multi-core [1] ) se aplică de obicei procesoarelor centrale care conțin două sau mai multe nuclee de uz general , dar uneori este folosit și pentru procesoarele de semnal digital (DSP) și sistemele cu un singur cip (SoC, SoC). ). Sub procesorul cu mai multe nuclee înțelegeți că mai multe nuclee sunt integrate într-un circuit integrat (realizat pe același cip de siliciu). Dacă mai multe cristale semiconductoare au fost combinate într-un singur pachet , atunci designul se numește modul cu mai multe cipuri ( modul multi-cip în engleză , MCM).
Termenul multiprocesor se referă la computere care au mai multe procesoare separate fizic (de exemplu, plăcile de bază de server au adesea 2 sau 4 socluri pentru conectarea mai multor cipuri), dar sunt controlate de o singură instanță de sistem de operare (OS).
Conceptul de multi-core [1] ( engleză many-core [2] sau engleză massively multi-core ) poate fi folosit pentru a descrie sisteme multi-core care au un număr mare de nuclee, de la zeci la sute sau mai mult. De exemplu, numele „multi-core” („multi-core”) a fost folosit de Intel pentru calculatoarele Intel MIC [3] .
Multiprocesor pe cip (multiprocesor cu un singur cip, multiprocesor pe cip, cip multiprocesare, CMP) - așa și-au numit primii cercetători proiectele de plasare a mai multor procesoare pe un singur substrat [4] [5] [6] .
Arhitectura procesoarelor multi-core repetă în mare măsură arhitectura multiprocesoarelor simetrice ( mașini SMP ), doar la o scară mai mică și cu propriile caracteristici.
Primele procesoare multi-core ( prima generație CMP ) au fost cele mai simple scheme: două nuclee de procesor plasate pe același cip fără a partaja alte resurse decât magistrala de memorie (de exemplu, Sun UltraSPARC IV și Intel Pentium D ). Un procesor „adevărat multi-core” ( a doua generație CMP ) este atunci când nucleele sale de procesare au un cache de nivel al treilea sau al doilea: de exemplu, Sun UltraSPARC IV+, Intel Core Duo și toate procesoarele moderne multi-core.
În procesoarele cu mai multe nuclee, frecvența de ceas este de obicei redusă în mod deliberat. Acest lucru vă permite să reduceți consumul de energie al procesorului fără a pierde performanța: consumul de energie crește ca un cub din creșterea frecvenței procesorului. Dubland numărul de nuclee de procesor și înjumătățind viteza de ceas, puteți obține aproape aceeași performanță, în timp ce consumul de energie al unui astfel de procesor va scădea de 4 ori.
La unele procesoare, viteza de ceas a fiecărui nucleu poate varia în funcție de volumul de lucru individual. Nucleul este un microprocesor cu drepturi depline care folosește toate realizările tehnologiei microprocesorului: conducte , execuție de cod în afara ordinului , cache pe mai multe niveluri , suport pentru instrucțiuni vectoriale .
Superscalaritatea nu este întotdeauna prezentă în nucleu, dacă, de exemplu, producătorul procesorului încearcă să simplifice nucleul cât mai mult posibil.
Fiecare nucleu poate folosi tehnologia multithreading tranzitorie sau, dacă este superscalar, tehnologia SMT pentru a executa mai multe fire simultan , creând iluzia de „procesoare logice” multiple bazate pe fiecare nucleu. Pe procesoarele Intel, această tehnologie se numește Hyper-threading și dublează numărul de procesoare logice față de cele fizice. Pe procesoarele Sun UltraSPARC T2 (2007), această creștere poate fi de până la 8 fire de execuție per nucleu.
Procesoarele cu mai multe nuclee pot fi clasificate în funcție de suportul lor pentru coerența cache (partajată) între nuclee. Există procesoare cu și fără astfel de suport. Metoda de comunicare între nuclee:
Cache: În toate procesoarele multi-core care există astăzi , fiecare nucleu are un cache de nivel 1 individual și există mai multe opțiuni pentru cache de nivel 2:
Procesoarele multi-core au, de asemenea, o arhitectură omogenă sau eterogenă:
Aplicațiile care sunt optimizate pentru creșterea performanței experienței multithreading pe un procesor cu mai multe nuclee. Cu toate acestea, dacă aplicația nu este optimizată, atunci nu va beneficia prea mult de nucleele suplimentare și poate chiar să ruleze mai lent decât pe un procesor cu mai puține nuclee, dar cu o viteză de ceas mai mare . Acestea sunt în mare parte aplicații dezvoltate înainte de apariția procesoarelor multi-core sau aplicații care, în principiu, nu folosesc multithreading.
Majoritatea sistemelor de operare vă permit să rulați mai multe aplicații în același timp . Acest lucru realizează un beneficiu de performanță, chiar dacă aplicațiile sunt cu un singur thread.
Astăzi , mulți producători de procesoare , în special Intel , AMD , IBM , ARM , creșterea în continuare a numărului de nuclee de procesor este recunoscută ca una dintre domeniile prioritare pentru creșterea performanței.
Primul procesor destinat utilizării principale, mai degrabă decât sistemelor încorporate , a fost POWER4 , cu două nuclee PowerPC pe un singur cip, lansat de IBM în 2001.
IBM PowerPC-970MP ( G5 ) cu 2 nuclee a fost introdus în 2005. Cele mai recente Power Mac G5 au fost echipate cu acest procesor .
SPARCÎn martie 2004, Sun Microsystems a introdus primul procesor cu 2 nuclee al arhitecturii SPARC: UltraSPARC IV , prima generație CMP. Procesorul CMP de a doua generație a fost UltraSPARC IV+ (mijlocul anului 2005), unde cele două nuclee de procesor împărtășeau un cache off-chip de nivel 3 și un cache de nivel 2 on-chip.
Fujitsu a introdus procesorul SPARC64 VI cu 2 nuclee în linia sa SPARC64 abia în 2007.
x86În aprilie 2005, AMD a lansat procesorul Opteron cu 2 nuclee cu arhitectură AMD64 pentru servere .
În mai 2005, Intel a lansat procesorul Pentium D cu arhitectură x86-64 , primul procesor cu 2 nuclee conceput pentru computere personale. Acesta a fost răspunsul „rapid” al Intel la provocarea AMD. În esență, Pentium D, bazat pe arhitectura NetBurst lider de la Intel , a constat din două procesoare separate plasate pe același substrat, fără elemente comune. De când Intel a abandonat arhitectura NetBurst la sfârșitul anului 2005, Pentium D nu a fost dezvoltat. Un adevărat procesor Core Duo multi-core bazat pe o arhitectură Core mai economică a fost lansat de Intel în ianuarie 2006.
În martie 2010, au apărut primele procesoare seriale cu 12 nuclee, care au devenit procesoarele de server AMD Opteron 6100 ( arhitectura x86 / x86-64 ). [7]
În 2011, AMD a stăpânit producția de procesoare cu 8 nuclee pentru computerele de acasă [8] și procesoare cu 16 nuclee pentru sistemele server [9] .
În august 2011, AMD a lansat primele procesoare de server seriale Opteron 6200 cu 16 nuclee (denumite de cod Interlagos ). Procesorul Interlagos combină două cipuri cu 8 nuclee (4 module) într-un singur pachet și este pe deplin compatibil cu platforma existentă din seria AMD Opteron 6100 ( Socket G34 ). [zece]
Începând cu 2016, Intel lansează procesoare pentru serverele Xeon E7 - cu un număr de nuclee de la 4 la 24. [11] [12] (E5 - până la 22 de nuclee).
În februarie 2020, AMD a lansat primul procesor cu 64 de nuclee pentru computerele de acasă AMD Ryzen Threadripper 3990X [13] .
Un rezumat al istoriei microprocesoarelor și al parametrilor acestora este prezentat în articolul actualizat în limba engleză: Timeline of microprocessors , 2010s . Pentru a obține numărul de nuclee de procesor, înmulțiți câmpurile „Core per die” și „Dies per module”; pentru a obține numărul de fire hardware, înmulțiți numărul de nuclee cu numărul „threads per core”. De exemplu, pentru Xeon E7, Intel: „4, 6, 8, 10” nuclee per 1 matriță la 1-2 fire hardware = maxim 10 nuclee și 20 fire hardware, AMD FX „Bulldozer” Interlagos „4-8” per 2 per 1 = maxim 16 miezuri și 16 fire.
Pe 27 septembrie 2006, la forumul pentru dezvoltatori „IDF Fall”, Intel a demonstrat un cip experimental cu 80 de nuclee cu o performanță de până la 1 TFLOPS. Fiecare nucleu a funcționat la o frecvență de ceas de 3,16 GHz, consumul de energie al cipului a ajuns la aproximativ 100 W [14] .
Pe 20 august 2007, Tilera a anunțat cipul TILE64cu 64 de nuclee de procesor și o rețea încorporată de înaltă performanță prin care schimbul de date între diferite nuclee poate avea loc la viteze de până la 32 Tbps. [15] [16]
Pe 26 octombrie 2009, Tilera a anunțat [ 17] un procesor de uz general din seria TILE-Gx cu 100 de nuclee . Fiecare nucleu de procesor este un procesor separat cu cache de nivel 1 și de nivel 2 . Miezurile, memoria și magistrala de sistem sunt conectate printr-o topologie de rețea mesh . Procesoarele sunt fabricate folosind o tehnologie de proces de 40 nm și funcționează la o frecvență de ceas de 1,5 GHz. Lansarea procesoarelor cu 100 de nuclee este programată pentru începutul anului 2011.
Pe 2 decembrie 2009, Intel a introdus un computer cu un singur cip „ cloud ” cu un singur cip Cloud Computer (SCC), care este un cip cu 48 de nuclee. „ Nebulozitatea ” procesorului este că toate cele 48 de nuclee comunică între ele ca noduri de rețea. SCC face parte dintr-un proiect al cărui scop este crearea unui procesor cu 100 de nuclee [18] .
În iunie 2011, Intel a dezvăluit detaliile arhitecturii Many Integrated Core (MIC) în curs de dezvoltare - această tehnologie a apărut din proiectul Larrabee . Microprocesoarele bazate pe această arhitectură vor primi mai mult de 50 de microcore x86 și vor fi produse în 2012 folosind tehnologia de proces de 22 nm. Aceste microprocesoare nu pot fi folosite ca unitate centrală de procesare , dar acceleratoarele de calcul vor fi construite din mai multe cipuri ale acestei arhitecturi sub forma unei plăci de expansiune separate și vor concura pe piețele GPGPU și de calcul de înaltă performanță cu soluții precum Nvidia Tesla și AMD FireStream . . [19] Conform descrierii arhitecturii publicate în 2012, sunt posibile cipuri cu până la 60 de nuclee.
În octombrie 2011 , Adaptevaa introdus microprocesoare Epiphany IV cu 64 de nuclee, care arată performanțe de până la 70 gigaflops (SP), consumând în același timp mai puțin de 1 watt de energie electrică. Microprocesoarele sunt proiectate folosind o arhitectură RISC , iar probele de probă au fost planificate să fie produse în 2012, folosind tehnologia de proces de 28 nm a GlobalFoundries. Aceste procesoare nu pot fi folosite ca unitate centrală de procesare , ci Adaptevapropune să le folosească ca coprocesor pentru sarcini complexe precum recunoașterea feței sau gesturile utilizatorului. Adapteva susține că numărul de nuclee ale acestui microprocesor poate fi crescut în viitor la 4096. Este planificat ca procesorul cu 4096 nuclee din versiunea principală (700 MHz) să atingă 5,6 TFLOPS, consumând doar 80 de wați.
În ianuarie 2012 , ZiiLabs(o subsidiară a Creative Technology ) a anunțat un sistem cu 100 de nuclee bazat pe cipul ZMS-40 . Acest sistem combină un procesor ARM Cortex-A9 de 1,5 GHz cu 4 nuclee (cu blocuri multimedia Neon) și o serie de 96 de nuclee de calcul StemCell mai simple și mai puțin versatile . Miezurile StemCell sunt o arhitectură SIMD eficientă din punct de vedere energetic, cu 50 gigaflopi de performanță maximă în virgulă mobilă (32 de biți) , nuclee care funcționează mai mult ca un GPU în alte sisteme pe un cip și pot fi utilizate pentru procesarea video, imagini și audio, pentru accelerarea 3D - și grafică 2D și alte sarcini multimedia (suportate de OpenGL ES 2.0 și OpenCL 1.1) [22] .
În august 2019, Cerebras Systems a introdus cel mai mare superprocesor multi-core din lume , Cerebras Wafer Scale Engine ; are peste 1,2 trilioane de tranzistori pe 400.000 de nuclee și ocupă aproape toată suprafața unei plăci semiconductoare cu diametrul de 300 mm. [23] . În 2020, au creat și cel mai mare procesor din istoria computerelor; în teste, a depășit un supercomputer din primele 100 de clasamente globale [24] .
Există, de asemenea, o tendință de a introduce microcontrolere multi-core în dispozitivele mobile .
De exemplu:
Tehnologii de procesoare digitale | |||||||||
---|---|---|---|---|---|---|---|---|---|
Arhitectură | |||||||||
Arhitectura set de instrucțiuni | |||||||||
cuvânt mașină | |||||||||
Paralelism |
| ||||||||
Implementări | |||||||||
Componente | |||||||||
Gestionare a energiei |