Tipuri de topologie pentru comunicarea internă pe CPU și GPU

Tipuri de topologie pentru comunicarea internă pe CPU și GPU

Orice arhitectură multicore necesită o comunicare internă pentru a comunica diferitele sale componente între ele, totuși există diferite tipuri de topologii de interconectare cu rezultate diferite pentru comunicarea internă a unei Procesor, A GPU sau orice alt tip de procesor compus din mai multe elemente care trebuie să comunice între ele. Care este tipul cel mai frecvent utilizat de topologie?

Majoritatea procesoarelor de astăzi sunt piese extrem de complexe formate din altele, dar, în general, toate au tendința de a avea o comunicare centrală care este responsabilă pentru comunicarea diferitelor elemente care fac parte din procesor. Cu toate acestea, există topologii diferite în ceea ce cunoaștem ca Northbridge și de aceea le vom lista și explica cele mai utilizate în diferitele procesoare ale sistemului nostru, indiferent dacă acestea sunt CPU-uri, APU-uri și chiar GPU-uri.

Infrastructură de autobuz partajată

Țesătură de autobuz partajată

Primul tip de topologie pe care trebuie să îl luăm în considerare este așa-numita infrastructură de autobuz partajată sau Fabric de autobuz partajat. Aceste tipuri de interfețe au o viteză mare și sunt utilizate pentru a comunica diferitele nuclee între ele și cache-urile lor. Dar este, de asemenea, responsabil pentru acordarea accesului către exterior la nucleele procesorului și, prin urmare, permite accesul la memorie și periferice într-un mod consecvent.

Aceasta înseamnă că infrastructura de autobuz partajată trebuie să aibă o serie de mecanisme integrate pentru a asigura coerența cu memoria componentelor din procesor. Aici trebuie să clarificăm faptul că putem constata că un procesor și un GPU nu au aceeași adresare, deci nu vor fi coerente între ele, dar intern al aceluiași procesor este normal ca toate componentele să fie coerente sau maxime coerență posibilă. Deși în APU, acest lucru nu se realizează de obicei.

ascunzătoare

Prin urmare, infrastructura comună de autobuz este ceea ce noi cunoaștem sub numele de Northbridge sau podul nordic, care au diferite tipuri de topologii. Acest lucru trebuie înțeles ca modul în care diferitele componente sunt intercomunicate între ele, ceea ce va afecta latența, costul implementării, consumul de energie și alți factori.

De multe ori există proiecte care nu au cel mai bun tip de infrastructură pentru a beneficia la maximum de procesoarele lor, dar a fost aleasă din motive de cost asociate, fie din cauza numărului de tranzistoare necesare pentru implementarea acestuia, cât și din cauza costuri precum energia transmisă pentru a comunica sau emisă sub formă de temperatură.

Comutatorul Crossbar

Comutator transversal

Un comutator Crossbar este cel mai ușor tip de topologie de vizualizat. Este un tip de interfață mesh în care fiecare dintre componente are o legătură directă cu restul componentelor sistemului. De exemplu, dacă avem un procesor cu 4 componente înăuntru, atunci vom avea un comutator transversal de 4 x 4 unități.

Este cel mai utilizat tip de topologie și cel mai mare avantaj este că permite efectuarea mai multor comunicații în paralel. Cel mai mare dezavantaj al acestuia? Pe măsură ce avem din ce în ce mai multe componente conectate la comutatorul Crossbar, dimensiunea este din ce în ce mai mare în interiorul cipului, ceea ce face ca infrastructura centrală de comunicații să crească din ce în ce mai mult și se ajunge la momentul când mișcarea datelor ajunge să ocupe mai mult spațiu decât procesarea datelor.

De aceea, comutatoarele Crossbar, în ciuda faptului că sunt cele mai utilizate, nu sunt singurul tip de topologie pe care îl putem găsi în cadrul unui procesor, complexitatea lor enormă îi face pe designeri să ia alte tipuri de topologii.

Topologia inelului

Topologia Anillo

Al doilea tip de topologie este inelele, pentru a înțelege cum funcționează trebuie să facem o comparație cu realitatea, cum ar fi autostrăzile radiale din unele orașe. Fiecare ieșire către un cartier sau district de pe autostrada radială din procesorul nostru este o intrare și ieșire de date către o componentă din procesor, iar vehiculele care circulă sunt solicitări de date de la și către aceleași componente.

În infrastructura inelului, datele circulă în jurul inelului central. Prin urmare, comunicarea nu este directă, iar datele părăsesc inelul doar când trece în fața componentei determinate. Un sistem automat din inel extrage datele și pachetele de instrucțiuni către componenta menționată și circulă restul. Problema cu acest tip de topologie este viteza cu care se deplasează datele. De obicei, pentru fiecare ciclu al infrastructurii de autobuz partajate este avansată o subsecțiune a inelului, astfel încât numărul de subsecțiuni ale unui inel va corespunde numărului de componente, ceea ce face dificilă scalarea pentru a crea modele cu mai multe sau mai multe. mai puține componente.

Inelele sunt cel mai simplu tip de infrastructură de implementat pe un procesor și, de asemenea, cel mai ieftin de implementat la nivel de cost. Dar într-o infrastructură de acest tip, fiecare nod este conectat doar la cei mai apropiați 2 vecini ai săi, unul pe adresă. Aceasta înseamnă că comunicarea cu componente mai îndepărtate va avea o latență mai mare.

Topologie toroidală

Topología Toroidă

Infrastructurile toroidale sunt utilizate pe scară largă în lumea supercomputerii pentru a conecta în cel mai rapid și mai eficient mod diferitele procesoare distribuite în diferite lame în jurul infrastructurii în cel mai eficient mod posibil. Deși acolo unde și-au atins cea mai mare popularitate în ultimii ani a fost în fața procesoarelor concepute pentru a accelera algoritmii de inteligență artificială. Fie la nivelul comunicării mai multor ALU-uri între ele, fie cu procesoare diferite.

La prima vedere poate aminti de un comutator cu bară transversală, dar în cazul unui tor 2-dimensional o componentă poate comunica cu alte 4 componente în același timp în loc de 2 în comparație cu un inel și dacă vorbim de un 3-dimensional torus, atunci avem fiecare componentă care va avea o comunicare cu alte 6 componente. Pentru a-l vizualiza, trebuie să avem în vedere că fiecare dimensiune a unei topologii toroidale permite comunicarea cu o componentă diferită, una pentru fiecare dimensiune. Deci, într-un mod simplificat, un inel este o infrastructură toroidală unidimensională.

Topologia arborelui

Topologia Arbol

Topologia arborelui comunică componentele într-o infrastructură ierarhică organizată, în așa fel încât pentru a accesa o componentă este necesar să comunicați cu cea care este mai devreme în ierarhie. Este un concept foarte similar cu cel al topologiei toroidale și ca acesta are o latență foarte mică atunci când componentele sunt apropiate. Prin urmare, latența va depinde de numărul de niveluri pe care le are o componentă față de alta în cadrul ierarhiei.

Organizarea unei topologii arborescente nu trebuie să aibă un număr fix de noduri în fiecare dintre nivelurile sale și poate fi total neregulată în acest aspect de la un nivel al ierarhiei la altul. Deci, în acest aspect, are o versatilitate mai mare decât topologia toroidală despre care am discutat în secțiunea anterioară.