Hur de kommer att förändra hårdvarans framtid –

FPGA:er är en typ av block som inte är särskilt vanliga i CPU:er och GPU:er, men de börjar redan integreras i SoCs, CPUs och GPUs. Orsak? Chipområdet blir dyrare och kräver utrymmesoptimering. Det är därför arkitekter måste tänka på hur man räknar varje transistor och hur det inte finns några oanvända döda punkter, särskilt när det kommer till I/O-gränssnitt.

Det är här eFPGA kommer till undsättning, en lösning som består av att integrera mjukvarulogik i form av en FPGA i en SoC, CPU eller GPU/GPU, med idén att när som helst öka chipytan och möjligheten att anpassa sig det till behoven för varje specifik konfiguration.

Vad är FPGA?

En FPGA är en array av programmerbara logiska grindar som kan konfigureras på vilket sätt som helst för att få en specificerad array att fungera som ett specifikt chip. De används i miljöer där specialiserad hårdvara krävs, men de är så specialiserade att massproduktion inte är lönsam, och för att prototypa nya funktioner för framtida processorer.

FPGA består av flera block av konfigurerbar logik som är sammankopplade. De skiljer sig från andra processorer genom att resten av logiken i deras kretsar inte kan ändras. Du kan inte förvandla en CPU till en GPU efter att ha tillverkat den, men det kan göras med en FPGA genom att ladda en konfigurationsfil som omprogrammerar dess logiska grindar.

Uppenbarligen har denna mjukvarukapacitet flera analoger, den första är att den inte kan nå klockfrekvenserna för mikrokretsar som är FPGA, den andra är att ett överskott av kretsar på grund av nivån på deras konfiguration leder till en ökning av det erforderliga antalet transistorer . och därmed området.

Hur implementeras eFPGA?

Detta koncept kallas eFPGA eller embedded FPGA. Det består av att integrera FPGA:er som en del av SoC, och därför inte som ett separat chip, vilket öppnar för möjligheten att adoptera denna typ av enhet på den allmänna marknaden.

Precis som med en integrerad GPU förloras den yttre ringen som ansluter den dedikerade FPGA till utsidan eftersom den är gemensam för hela SoC. Detta minskar storleken på SoC med 25 % jämfört med dess dedikerade version.

Fördelen med eFPGA är att genom att använda samma baudhastighet som resten av SoC, ökar det hastigheten på datautbytet. En EFPGA som sitter på samma processor och använder samma kommunikationskablar kommer att köras mycket snabbare än en standard FPGA frikopplad från CPU, vilket representerar en ökning av prestanda jämfört med en eFPGA snarare än en dedikerad FPGA, vilket gör att vi kan göra saker. inte möjligt med en vanlig FPGA, men samtidigt är vi begränsade i vad som kan göras i eFPGA, eftersom det inte finns lika mycket utrymme som i en FPGA.

Detta innebär att det för närvarande finns två scenarier för att implementera FPGA som en integrerad del av systemet. Den första är eFPGA, den andra är FPGA i form av en chiplet, detta är ett separat ämne som täcker väldigt olika marknader. Du kan till exempel överväga att bygga ett neuralt nätverk för AI med en icke-inbäddad FPGA, vilket inte kan göras i eFPGA.

eFPGA för I/O på PC-processorer och GPU:er.

Den mest uppenbara applikationen är I/O-gränssnitt, till exempel kan vi implementera USB-gränssnitt med FPGA och SerDES och konfigurera om dem för att fungera som SATA-gränssnitt. Vi kan också göra samma sak med FPGA och radion som är ansluten till den, till exempel för att konvertera Wi-Fi Direct till Bluetooth beroende på behovet av konfiguration. Tanken är inte att slutanvändaren gör dessa ändringar, utan att montören eller tillverkaren av hårdvarukomponenten gör ändringarna.

Det går även att implementera detta i GPU:n, till exempel kan skärmar med DP 2.0-stöd dyka upp och din GPU stöder endast DP 1.4, men på grund av att videodrivrutinen implementerades i FPGA kan denna programmeras om och få support för den nya videoutgången. Det kan också hända att du har köpt en GPU för gruvdrift och inte är intresserad av att visa grafik, i så fall kan du konfigurera om displayens FPGA i en kryptografisk processor eller till och med en liten ASIC för att påskynda gruvdriften.

Vanligtvis kan eFPGA:er användas för att ersätta externa processorgränssnitt och används ofta i periferin utan att behöva designa om chippet. Inte bara in- och utgångsgränssnitt, utan även RAM, till exempel, övergången från DDR4 till LPDDR4-gränssnitt utan att behöva tillverka två olika mikrokretsar.

eFPGA är integrerad i CPU-kärnan

Ett sätt att förbättra processorprestanda i framtiden är att fokusera på vanliga och repetitiva delar av din kod. En annan lösning är att snabba upp de tunga delarna av koden som kommer att exekveras av specialiserade moduler.

Nästan samtidigt som det köpte Xilinx publicerade AMD ett patent som talade om att använda FPGA:er för att påskynda vissa instruktioner som skulle flytta till en högre integrationsnivå. Denna FPGA finns redan inuti processorn och inte som ett extra element i SoC.

  • En CPU kan inkludera en eller flera programmerbara exekveringsenheter som kan omkonfigureras för att exekvera alla typer av instruktioner.
  • Exekveringsenheterna som nämns är eFPGA, den del av CPU:n som ansvarar för stadierna av datainsamling och avkodning är gemensam för alla CPU:er och ansvarar för distributionen av instruktioner som ska exekveras i eFPGA:n, som fungerar som en exekveringsenhet.
  • När processorn laddar en tråd, laddar den också de typer av exekveringsenheter som krävs för att exekvera den, så eFPGA:er konfigureras som sådana enheter tack vare interna konfigurationsfiler.
  • EFPGA-moduler kan programmeras om i farten och var och en har olika funktioner.

Till exempel kan ett program ofta använda heltalsblock, men inte ett SIMD-block, för om exekveringsblocken är implementerade som en eFPGA kan vi konfigurera om det som var ett SIMD-block för att fungera som ett extra heltalsblock.

Relaterade artiklar

Back to top button