Intel a depus un nou brevet care descrie ceva ce ei numesc “Software Defined Super Cores” (SDC), potrivit TomsHardware.
Urmărește cele mai noi producții video TechRider.ro
- articolul continuă mai jos -
Conceptul permite ca două sau mai multe nuclee de procesor să lucreze împreună ca și cum ar fi un singur nucleu mai mare. În loc să construiască nuclee supradimensionate cu un singur fir de execuție, care risipesc energie, Intel sugerează împărțirea unui program în blocuri de cod care pot rula în paralel pe mai multe nuclee fizice, în timp ce finalizează instrucțiunile în ordinea corectă. Pentru sistemul de operare pare că este un singur nucleu, dar în realitate este vorba de mai multe nuclee care cooperează.
Intel brevetează super-nuclee definite software pentru a maximiza performanța single-core
Tehnologia brevetată de Intel permite software-ului să combine capacitățile mai multor nuclee pentru a asambla un „supercore” virtual, capabil să îmbunătățească performanța single-thread, cu condiția să aibă suficientă muncă paralelă. Dacă tehnologia funcționează așa cum a fost proiectată, atunci viitoarele procesoare Intel ar putea oferi performanțe single-thread mai mari în anumite aplicații care pot utiliza SDC. Deocamdată, acesta este doar un brevet care poate deveni sau nu realitate.
Tehnologiile Software Defined Supercore (SDC) implică împărțirea instrucțiunilor unui singur thread în blocuri separate și executarea lor în paralel. Fiecare nucleu rulează o porțiune distinctă a programului, în timp ce instrucțiunile specializate de sincronizare și transfer de date asigură păstrarea ordinii originale a programului, maximizând instrucțiunile pe ciclu (IPC) cu un overhead minim. Această abordare este concepută pentru a îmbunătăți performanța single-thread fără a crește viteza ceasului sau a construi nuclee monolitice largi, care pot crește consumul de energie sau suprafața nucleului.

Nucleele moderne ale procesoarelor x86 pot decoda 4-6 instrucțiuni și apoi executa 8-9 micro-operații pe ciclu după ce instrucțiunile sunt decodate în micro-operații, ceea ce permite atingerea performanței IPC maxime pentru astfel de procesoare. În schimb, nucleele personalizate de înaltă performanță bazate pe Arm ale Apple (de exemplu, Firestorm, Avalanche, Everest) pot decoda până la 8 instrucțiuni pe ciclu și apoi executa peste 10 instrucțiuni pe ciclu în condiții ideale. Acesta este motivul pentru care procesoarele Apple oferă de obicei o performanță single-thread semnificativ mai mare și un consum de energie mai mic în comparație cu competitorii care folosesc Arm.
De ce nu un super nucleu hardware
Deși este posibil din punct de vedere tehnic să se construiască un nucleu CPU x86 cu 8 căi (adică un procesor x86 superscalar care poate decoda, emite și rezolva până la 8 instrucțiuni pe ciclu), în practică, acest lucru nu s-a realizat din cauza blocajelor front-end, precum și a randamentelor în scădere în ceea ce privește creșterea performanței, pe fondul costurilor semnificative de energie și spațiu. De fapt, chiar și procesoarele x86 moderne pot atinge de obicei 2-3-4 IPC susținut pentru sarcini generale, în funcție de software. Așadar, în loc să construiască un nucleu CPU x86 cu 8 căi, SDC de la Intel propune asocierea a două sau mai multe unități pentru a coopera ca un singur nucleu în cazurile în care acest lucru are sens.
Din punct de vedere hardware, fiecare nucleu dintr-un sistem compatibil cu SDC include un mic modul hardware dedicat care gestionează sincronizarea, transferurile de registre și ordonarea memoriei între nucleele pereche. Aceste module utilizează o regiune de memorie rezervată — cunoscută sub numele de spațiu de adrese wormhole — pentru a coordona datele live-in/live-out și operațiunile de sincronizare, asigurându-se că instrucțiunile de la nucleele separate se retrag în ordinea corectă a programului. Proiectarea acceptă atât nuclee în ordine, cât și în afara ordinii, necesitând modificări minime ale motorului de execuție existent, ceea ce duce la un design compact în ceea ce privește spațiul CPU-ului.
Din punct de vedere software, sistemul utilizează un compilator sau o instrumentație binară pentru a împărți un program cu un singur fir de execuție în segmente de cod pentru a atribui blocuri diferite nucleelor diferite. Acesta injectează instrucțiuni speciale pentru controlul fluxului, transferul registrelor și comportamentul de sincronizare, permițând hardware-ului să mențină integritatea execuției. Suportul din partea sistemului de operare este crucial, deoarece sistemul de operare decide în mod dinamic când să migreze un thread/fir de execuție în sau din modul super-core pe baza condițiilor de rulare, pentru a echilibra performanța și disponibilitatea nucleelor.
Brevetul Intel nu oferă estimări numerice exacte privind creșterea performanței, dar sugerează că, în anumite scenarii, este realist să ne așteptăm ca performanța a două nuclee „înguste” să se apropie de performanța unui nucleu „lat”.
Ideea pare asemănătoare cu un design AMD mai vechi, cum ar fi Clustered Multi-Threading (CMT) inclus în Bulldozer. Însă, în loc să împartă un nucleu în module, așa cum făcea Bulldozer, metoda Intel unește nuclee complete cu ajutorul software-ului și cu suport hardware.
Totodată tehnologia pare un revers al hyper-threading, prin care un nucleu putea executa două fire de execuție/thread-uri în același timp, tehnologie folosita in ultimii ani pentru a spori performanța procesoarelor.