Arhitectura SoC: Cum funcționează procesoarele eterogene

Arhitectura SoC

Astăzi avem cu toții un dispozitiv care are cel puțin un SoC ca procesor principal, fie că este un smartphone, o consolă de jocuri video sau chiar un PC. Știați că toate au o structură comună între ele? În acest articol vă prezentăm arhitectura pe care SoC-urile o au în comun.

Deși sunt utilizate în diferite dispozitive, pentru aplicații diferite, execută binare diferite și există puncte care le diferențiază, toate SoC-urile au o arhitectură comună, care le afectează performanța și natura lor în ansamblu.

Ce este un SoC?

SoC-uri PS5

Astăzi fiecare procesor este un SoC, dar numim SoC cei care adună un Procesor și GPU în același spațiu, pentru a le diferenția de acele SoC-uri care servesc doar ca procesoare centrale sau cipuri grafice care sunt încă numite CPU și respectiv GPU-uri.

SoC-urile se găsesc astăzi în toate tipurile de computere și au avantajul economic de a combina mai multe componente pe un singur cip. Motivul este că procesul economisește nu numai fabricarea mai multor cipuri simplificând într-unul singur, ci și testele corespunzătoare.

Deci, SoC-urile nu sunt altceva decât un produs al integrării continue a componentelor datorită legii lui Moore, în care încetul cu încetul numărul componentelor de pe plăcile de bază a fost redus pe măsură ce sunt integrate una în cealaltă. Totuși, o astfel de integrare are o serie de compromisuri care îi afectează performanța și fac ca un design bazat pe SoC să funcționeze mai puțin folosind un chip separat.

Arhitectura generală a unui SoC

SoC Arquitectura Generală

Indiferent de ce tip de SoC vorbim, toate au o serie de elemente în comun în ceea ce privește organizarea lor. Ce vrem să spunem prin asta? Organizarea sau arhitectura este modul în care componentele unui procesor sunt interconectate între ele în cadrul unui cip integrat.

În SoC-uri, toate elementele au un acces comun la aceeași memorie, ceea ce înseamnă că în toate SoC-urile accesul la memorie se face printr-o singură componentă. Care este în toate arhitecturile Northbridge sau podul nord, care comunică toate componentele procesorului între ele și cu RAM memorie.

Interconectări

Northbridge nu rulează cu adevărat niciun program, dar organizează trimiterea și primirea de date, astfel încât intern SoC procesează o cantitate mare de date în mod continuu și este cea mai importantă parte la proiectare. un SoC.

Există un mit printre utilizatori că crearea unui SoC este lipirea diferitelor piese. Realitatea este foarte diferită, deoarece interconectarea dintre componente necesită construirea unei infrastructuri de intercomunicare specifice, care este diferită pentru fiecare SoC.

Arhitectură într-un SoC și acces la memorie

ASCII

În SoC-uri, toate componentele partajează accesul la memoria RAM, ceea ce pune probleme de dispută. Ce este o problemă de izolare? Atunci când solicitările de memorie sunt atât de mari încât ajunge să adauge mai multă latență decât în ​​mod normal și astfel să facă performanța fiecărui element din SoC mai slabă decât fiecare element având propriul său tip de memorie.

Cel mai bun mod de a atenua acest lucru este de a utiliza mai multe canale de memorie în același timp, este obișnuit ca computerele să folosească două canale de memorie pe SoC, 4 stații de lucru și 8 servere. Fiecare canal de memorie poate fi utilizat de o componentă hardware în același timp, dar din cauza numărului mare de articole care accesează în același timp, acest lucru nu este suficient.

Mai mult, gestionarea unei interfețe de memorie multi-canal complică și mai mult Northbridge și, prin urmare, mărește dimensiunea SoC. De aceea, SoC-urile pentru servere au cea mai mare dimensiune, nu numai din cauza unui număr mai mare de nuclee, ci pentru că spațiul mai mare pentru Northbridge le permite să adauge o complexitate mai mare în fața interfețelor de memorie.

Memorie coerentă versus memorie necoerentă

Într-un SoC, deși accesul la memorie este unificat la nivel fizic, nu la nivel de adresare. Când vorbim că o componentă a SoC este coerentă în ceea ce privește memoria, înseamnă că toate indică aceleași adrese de memorie și când se face o modificare în fiecare parte a memoriei RAM, restul elementelor sunt conștiente.

Coerența apare cu privire la CPU, dar există componente în SoC care pot funcționa fără a avea un mecanism de consistență. Acest lucru forțează faptul că, în ceea ce privește memoria externă, există o parte care este atribuită părții coerente și altele părților necoerente. Când Northbridge-ul SoC primește o cerere de memorie într-un SoC care are ambele tipuri, ceea ce face este să împartă adresarea memoriei, în așa fel încât componentele compatibile cu CPU accesează o parte a memoriei și altele o altă parte. a memoriei.

Cel mai bun mod de a obține coerența memoriei este să adăugați un nivel de cache suplimentar, care nu se găsește în fiecare componentă, ci în Northbridge, element în care toate comunică în comun. Această metodă este obișnuită printre SoC-urile smartphone-urilor și este cea mai ușor de implementat pentru a obține consistența memoriei.

Înecarea termică în SoCs

Arquitectura SoC ahogamiento termal

O altă problemă în SoC este faptul că componentele sunt foarte apropiate unele de altele, ceea ce înseamnă că pot ajunge la o temperatură mai mică decât dacă ar fi montate ca componente separate. Aceasta înseamnă că vitezele de ceas pe care le poate atinge fiecare componentă sunt mai mici decât separat, afectând performanța.

Deci, într-un SoC, dacă doriți ca o componentă să atingă viteza maximă, o face în sperjurul celorlalte componente. Chiar și pe SoC-uri cu procesoare multicore, acest lucru se întâmplă între diferite nuclee, unde unele designuri permit unui singur nucleu să ruleze mai repede decât restul.

Acesta este și motivul pentru care multe SoC au capacitatea de a conecta și deconecta diferite părți ale GPU atunci când nu sunt utilizate, dar acest lucru trebuie implementat în arhitectura SoC în sine și, prin urmare, în proiectarea sa.