Return to search

Offloading Workloads from CPU of Multiplayer Game Server to FPGA : SmartNIC implementation with UDP Communication / Avlastning av arbetsbelastningar från CPU till FPGA för multiplayer Game Server : SmartNIC-implementering med UDP Kommunikation

For multiplayer games, the performance of the server’s Central Processing Unit (CPU) is the main factor that limits the number of players on the server at the same time. Compared with the CPU, the Field-Programmable Gate Array (FPGA) architecture has no instructions set and no shared memory. Offloading some tasks from the CPU to the FPGA may help the CPU improve processing efficiency. This thesis explores which tasks on a CPU can be offloaded to a FPGA and how to design such a circuit system. The performance of the developed system also needs to be measured. We decided to offload communication tasks and data processing tasks to an FPGA. The result is that the FPGA server is available for work, the maximum number of users is 80, and the maximum network latency is 30-40 ms. The most important result is that a FPGA can be used as a multi-player server. One of the severe limitations of this design is the number of hardware resources. A 7-series FPGA is divided into several similar clock regions, which means the number of Flip Flop (FF)s near the same clock edge is fixed. If adding more FFs in the same component, the routing delay can not meet the set-up time requirements. Previously, people used the FPGA as the support accelerator to the server CPU. The CPU still works as a paramount communication link with one or several multi-connection parts and connects to the FPGA via the Peripheral Component Interconnect Express (PCIe) to use the FPGA to process data or pack/unpack Ethernet frames. We have designed and implemented a whole multi-connection server in a Hardware Description Language (HDL) and downloaded the resulting hardware in an FPGA. / I spel med flera spelare är serverns CPU-prestanda (Central Processing Unit) den viktigaste faktorn som begränsar antalet spelare som servern samtidigt kan hantera. Jämfört med CPU:n har en FPGA (Field-Programmable Gate Array) inga instruktioner och inget delat minne. Avlastning av vissa uppgifter från den CPU till FPGA:n kan hjälpa CPU:n att förbättra bearbetningseffektiviteten. I denna avhandling undersöks vilka uppgifter på en CPU som kan överföras till en FPGA och hur man utformar ett sådant kretsystem. Prestandan hos det utvecklade systemet måste också mätas. Vi har beslutat att avlasta kommunikationsuppgifter och databehandlingsuppgifter. till en FPGA. Resultatet är att FPGA-servern är tillgänglig för arbete, det maximala antalet användare är 80, och den maximala nätverksfördröjningen är 30-40 ms. Det viktigaste resultatet är att en FPGA kan användas som en server för flera spelare. En av de allvarliga begränsningarna med denna konstruktion är antalet hårdvaruresurser. En FPGA i 7-serien är uppdelad i flera liknande klockregioner, vilket innebär att antalet Flip Flop (FF)s nära en klocka är fast. Om man lägger till fler FF:er i samma komponent, kommer fördröjningen inte att uppfylla tidskraven för setup. Tidigare har folk använt sig av FPGA:n som en stödaccelerator till serverprocessorn. CPU:n fungerar fortfarande som en viktig kommunikationslänk med en eller flera anslutningar och ansluter till FPGA:n via Peripheral Component Interconnect Express (PCIe) för att använda FPGA:n till att bearbeta data och paketera/packa upp Ethernet-ramar. Vi har implementerat en hel server med flera anslutningar med hjälp av hårdvaruvarubeskrivande språk (HDL) och laddat ner den resulterande designen i en FPGA.

Identiferoai:union.ndltd.org:UPSALLA1/oai:DiVA.org:kth-313094
Date January 2022
CreatorsBao, Junwen
PublisherKTH, Skolan för elektroteknik och datavetenskap (EECS)
Source SetsDiVA Archive at Upsalla University
LanguageEnglish
Detected LanguageEnglish
TypeStudent thesis, info:eu-repo/semantics/bachelorThesis, text
Formatapplication/pdf
Rightsinfo:eu-repo/semantics/openAccess
RelationTRITA-EECS-EX ; 2022:102

Page generated in 0.0025 seconds