Anslut till Senaste Tekniska Nyheter, Bloggar, Recensioner

Arkitektur och organisation av en NVIDIA och AMD Gaming GPU

I den här artikeln kommer vi inte att ta itu med en specifik GPU-arkitektur, utan den för dem alla i allmänhet och därför kan du förstå det utan problem när du ser diagrammet som tillverkarna brukar lansera om organisationen av deras nästa GPU. Oavsett om detta är en integrerad eller dedikerad GPU och graden av kraft de har.

Organisation av en samtida GPU

Muñeca Rusa

För att förstå hur en GPU är organiserad måste vi tänka på en rysk docka eller matrioshka, som består av flera dockor inuti. Vilket vi också skulle kunna tala om en uppsättning som lagrar en serie delmängder progressivt. Med andra ord är GPU:er organiserade på ett sådant sätt att de olika uppsättningarna som sammanställer dem i många fall är en i varandra.

Tack vare denna uppdelning kommer vi att förstå något så komplext som en GPU mycket bättre, eftersom vi från det enkla kan bygga komplexet. Med det sagt, låt oss börja med den första komponenten.

Sätt A i organisationen av en GPU: shader-enheterna

Anatomía GPU Organisation

Den första av uppsättningarna är shader-enheterna. I sig är de processorer, men till skillnad från CPU:er är de inte designade för parallellism från instruktioner, ILP, utan från exekveringstrådar, TLP. Oavsett om vi pratar om GPU:er från AMD, NVIDIA, Intel eller något annat märke, så består alla samtida GPU:er av:

  • SIMD-enheter och deras register
  • Skalära enheter och deras register.
  • Planerare
  • Delat lokalt minne
  • Texturfiltreringsenhet
  • Top-notch data och/eller texturcache
  • Ladda / Lagra enheter för att flytta data till och från cache och delat minne.
  • Lightning Intersection Unit.
  • Systoliska matriser eller tensorenheter
  • Exportbuss som exporterar data från set A och till de olika komponenterna i set B.

Set B i organisationen av en GPU : Shader Array / Shader Engine / GPC

Anatomía GPU Organisation

Uppsättning B inkluderar uppsättning A i dess inre, men lägger initialt till instruktionen och konstanta cacher. I GPU:er, såväl som processorer, är cachen på första nivån uppdelad i två delar, en för data och den andra för instruktioner. Skillnaden är att i fallet med GPU:er är instruktionscachen utanför shader-enheterna och därför finns de i set B.

Uppsättning B i organisationen av en GPU inkluderar därför en serie shader-enheter, som kommunicerar med varandra genom det gemensamma kommunikationsgränssnittet mellan dem, vilket gör att de kan kommunicera med varandra. Å andra sidan är de olika shader-enheterna inte ensamma i Set B, eftersom det är där det finns flera fasta funktionsenheter för att rendera grafik, som nu.

  • Primitiv enhet: Detta åberopas under World Space Pipeline eller Geometric Pipeline, det är ansvarig för tessellation av scenens geometri.
  • Rasteriseringsenhet: It utför rastreringen av primitiva, omvandlar trianglarna till pixelfragment och dess stadium är det som börjar den så kallade Screen Space Pipeline eller Rasterization Phase.
  • ROPS: Enheter som skriver bildbuffertarna verkar under två steg. I rasterfasen före textureringsfasen genererar de djupbufferten (Z-buffert) medan de i fasen efter textureringsfasen får resultatet av detta steg för att generera färgbufferten eller de olika renderingsmålen (fördröjd rendering) .

Set C i arkitekturen för en GPU :

NVIDIA-Ampere-GA102

Vi har redan nästan hela GPU:n eller GPU:n utan acceleratorerna, den består av följande komponenter:

  • Flera B-set inuti.
  • Delat globalt minne : En Scratchpad och därför utanför cachehierarkin för att kommunicera B-Sets med varandra.
  • Geometrisk enhet: Den har förmågan att läsa pekarna till RAM-minnet som pekar på scenens geometri, med detta är det möjligt att eliminera icke-synlig eller överflödig geometri så att den inte renderas värdelöst i ramen.
  • Kommandoprocessorer (grafik och datorer)
  • Senaste nivåns cache: Alla element i GPU:n är klienter till denna cache så den måste ha en enorm kommunikationsring, alla komponenter i Set B har direkt kontakt med L2-cachen såväl som alla komponenter i Set C själv.

Last Level Cache (LLC) är viktig eftersom det är cachen som ger oss koherens mellan alla element i Set C med varandra, uppenbarligen inklusive set B i den. Inte bara det, men det tillåter inte att övermätta den externa minneskontrollern eftersom det med detta är LLC själv, tillsammans med MMU-enheterna i GPU:n, som är ansvariga för att fånga instruktioner och data från RAM. Tänk på Last Level Cache som ett slags logistiklager där alla element i Set C skickar och/eller tar emot sina paket och deras logistik styrs av MMU, som är den enhet som ansvarar för att göra det.

Slutsats, full GPU

NVIDIA GPU

Med allt detta har vi redan den fullständiga GPU:n, set D innehåller huvudenheten som är GPU:n som ansvarar för att återge grafiken i våra favoritspel, men det är inte den högsta nivån av en GPU, eftersom vi saknar en serie medprocessorer Stöd. Dessa fungerar inte för att rendera grafik direkt, men utan dem skulle GPU:n inte kunna fungera. Dessa element är i allmänhet:

  • GFX-enheten inklusive dess toppnivåcache
  • North Bridge eller Northbridge av GPU:n, om detta är i en heterogen SoC (med en CPU) men med en delad minnesbrunn kommer de att använda en gemensam Northbridge. Alla delar av set D är anslutna till Northbridge
  • Acceleratorer: Videokodare, bildskärmsadaptrar, är anslutna till Northbridge. När det gäller Display Adapter är det den som skickar videosignalen till DisplayPort- eller HDMI-porten
  • DMA-enheter: Om det finns två RAM-adresseringsutrymmen (även med samma fysiska brunn) tillåter DMA-enheten att data överförs från ett RAM-utrymme till ett annat. I fallet med en separat GPU fungerar DMA-enheterna som kommunikation med CPU eller andra GPU:er.
  • Styrenhet och minnesgränssnitt: It gör det möjligt att kommunicera elementen i set D med det externa RAM-minnet. De är anslutna till Northbridge och det är den enda vägen till det yttre RAM-minnet.

Med allt detta har du redan den fullständiga organisationen av en GPU, med vilken du kan läsa diagrammet över en GPU mycket bättre och förstå hur den är organiserad internt.