En fysisk processor ( eng. Physics Processing Unit - eng. PPU , "fysisk accelerator", "fysikaccelerator") är en specialiserad mikroprocessor utformad för att beräkna den fysiska interaktionen mellan objekt, huvudsakligen i videospelsfysikmotorer .
Exempel på fysiska beräkningar med en fysisk processor kan vara: stel kroppsdynamik , mjuk kroppsdynamik , kollisionsdetektering , vätskedynamik , rörelsesimulering av hår , päls och tyger , finita elementanalys , objektfel .
Tanken (huvudfunktionen, essensen) med en fysisk processor är att avlasta den centrala bearbetningsenheten ( eng. CPU - eng. Central Processing Unit ) från tidskrävande bearbetningsfysiska uppgifter. En mycket liknande idé används av moderna grafikkort , vars huvuddel är grafikprocessorer ( engelsk GPU - English Graphics Processing Unit ).
De första fysiska processorerna som utvecklades är SPARTA och HELLAS .
Termen "PPU" myntades av Ageias marknadsavdelning för att beskriva deras PhysX -chip för konsumenter. Ageias PhysX Physical Processor är den enda kompletta, konstruerade, konstruerade, massproducerade, marknadsförda och stödda instansen som var designad enbart som en PPU . Utöver PhysX finns det andra lösningar och teknologier inom detta område.
Den första processorn som annonserades som en "PPU" var ett PhysX -chip , tillverkat av Ageia . Spel som ville använda PhysX var tvungna att använda speciell underprogramvara - Ageias PhysX SDK (tidigare känd som NovodeX SDK ) fysikmotor .
PhysX - processorn består av en generell RISC - kärna som styr en uppsättning anpassade VLIW-processorer som arbetar med SIMD- instruktioner och flyttal [1] . Processorn arbetar med lokala minnesbanker med en inbyggd switch för att styra flöden mellan dem. PhysX har inte samma cachehierarki som CPU eller GPU .
Det finns för närvarande inga kort med en PhysX- processor tillgängliga för försäljning. På senare tid producerades brädor av tre företag. ASUS och BFG Technologies var de första företagen som började sälja brädor. Kompletta datorsatser med PhysX-kort installerade finns tillgängliga från datorbyggare som Alienware , Dell och Falcon Northwest.
I februari 2008 , efter att Nvidia köpte Ageia Technologies , verkade det som att all utveckling av det senare var helt överförd till Nvidia. Men i mars 2008 meddelade Nvidia att de skulle göra PhysX SDK till en öppen plattform tillgänglig för alla. [2] PhysX SDK- stöd kommer att vara tillgängligt för alla Nvidia-grafikkort från och med 8xxx-serien. För tillfället förbereder Nvidia för att släppa en ny version av drivrutinerna, som inkluderar stöd för PhysX SDK i dessa grafikkort. Den 24 juli 2008 avslöjades det att Nvidia skulle släppa en WHQL-certifierad ForceWare - drivrutin med stöd för fysikacceleration den 5 augusti 2008 . [3]
Den 28 juni 2008 lanserade Eran Badit från NGOHQ.com PhysX SDK - hårdvarustöd på Radeon HD 3870 -grafikkortet . [4] NVIDIA reagerade negativt på Eran Badits initiativ, men den 9 juli 2008 fick Badit tillgång till dokumentationen, SDK, hårdvaran och ingenjörernas kontakter. Således öppnar NVIDIA upp PhysX SDK för tredjepartsutvecklare. [5]
Den 15 augusti 2008 släppte NVIDIA drivrutinen ForceWare 177.83, som möjliggör PhysX-stöd i grafikkorten i serierna 8, 9 och 200. Detta utökade omedelbart användarbasen till över 70 miljoner människor världen över. [6] [7]
SektionslänkarDen sjätte generationens Sony PlayStation 2 -spelkonsol använder en 128-bitars " Emotion Engine ", som är en kombination av en central processorenhet (CPU) och en digital signalprocessor (DSP). Emotion Engine består av en central 64-bitars del baserad på MIPS R5900 och två 128-bitars vektorsamprocessorer VU0 och VU1 ( Vektorenhet ) . VU0 används ofta för polygontransformationer, fysik och andra spelrelaterade saker . VU1 används vanligtvis för polygontransformation, belysning och andra renderingsrelaterade beräkningar.
Trots betydande skillnader från PhysX kan VP0 betraktas som en tidig begränsad fysisk processorimplementering. Dess funktionsuppsättning och placering på mikroprocessorsystemet syftar till att påskynda uppdateringsuppgifter för speltillstånd, inklusive fysik och artificiell intelligens ; VU0 kan avlasta den centrala delen av "Emotion Engine". Eftersom VU0 är en digital signalprocessor, är dock VU0 mycket mer beroende av huvudprocessorn och kan inte implementera hela det fysiska API :et . Det är därför VU0 inte kan klassificeras som en PPU.
Dess användning liknar att använda Havok FX-motorn eller en GPU-fysikaccelerator genom att resurserna för en extern flyttalsenhet för allmänna ändamål som fungerar som en grafik eller fysisk accelerator kompletterar processorns resurser.
STI Cell- processorn , som används i den sjunde generationens Sony PlayStation 3 -spelkonsol , har en liknande struktur som Ageia PhysX-processorn. Designen av processorn skapades med hänsyn till överväganden som liknar Ageia PhysX. Till skillnad från ATI/NVidia GPGPU, och som PhysX, är celldesignen designad med fokus på att förse varje parallell tråd med en större arbetsuppsättning , mer kommunikation mellan trådar och kontroll än en konventionell CPU . Denna design är mycket lämplig för fysisk datoranvändning.
Termen "PPU" används inte för att beskriva cellen, men den kommer tillsammans med en marknadsföringsskillnad: STI Design Center -alliansen säljer processorn för ett brett utbud av inbäddade applikationer utan spel; och även som en del av PlayStation 3 kan den använda DSP -liknande SPE:er ( Synergistic Processing Elements - Synergistic Processing Element) för vertexbehandling ( eng . vertex processing ), ljud, dekompression och andra uppgifter.
Havok SDK -fysikmotorn är huvudkonkurrenten till PhysX SDK-motorn. Det används i över 150 spel, inklusive spel som Half-Life 2 , The Elder Scrolls IV: Oblivion och Dead Rising . [åtta]
För att konkurrera med den fysiska PhysX-processorn utvecklades Havok FX- konceptet , vars huvudsakliga essens var att använda kraften hos grafikkort för att påskynda vissa fysiska beräkningar. Havok FX skulle endast användas på datorer utrustade med minst två grafikkort anslutna med NVIDIA SLI eller ATI Crossfire . Samtidigt måste ett grafikkort från detta paket allokeras helt för fysiska beräkningar. [9]
Havoks lösning delar in alla fysiksimuleringar i fysikeffekter och "gameplay"-fysik. Fysiska effekter (damm, små fragment och skräp från explosioner, brand) bearbetas med hjälp av grafikkortet på grafikkortet som Shader Model 3.0-instruktioner (Shader Model version 3.0). "Gameplay"-fysiken hanteras av processorn på vanligt sätt. En viktig skillnad mellan de två är att fysiska effekter inte påverkar spelet i spelet; den stora majoriteten av fysiska operationer utförs fortfarande i standardprogramvara av processorn. Detta tillvägagångssätt skiljer sig väsentligt från PhysX SDK-motorn, som omdirigerar alla aktuella fysikberäkningar till PhysX-kortet.
Sedan Intel köpte ut Havok den 15 september 2007 har Havok FX ställts in. Det antogs att Intel skulle frysa projektet med hårdvarustöd för motorn på grafikkorten hos sin konkurrent, AMD, och fokusera på att optimera motorn för sina flerkärniga processorer. [10] [11] [12]
Den 20 mars 2009 kom nyheten att vid den årliga Game Developers Conference 2009-evenemanget skulle AMD och Havok demonstrera fysikacceleration av Radeon -grafikkort . Terry Makedon , produktchef för ATI Catalyst , sa att på GDC kommer AMD att visa upp sin "ATI GPU Physics"-strategi och genomföra en relaterad demonstration. AMD kommer att använda OpenCL- programmeringsspråket för att accelerera Havok , vars kompilator är en del av ATI Stream SDK-programvarupaketet. [13] [14] [15] [16]
Som utlovat höll AMD och Havok en fysikdemo på GDC 09. För första gången demonstrerades möjligheten att köra "Havok Cloth" på en OpenCL-tillägg. Det angavs att för beräkningarna av detta delsystem krävs en AMD-grafikprocessor med stöd för OpenCL och AMD Stream. Havoks fokus på AMD:s senaste Phenom-processorer med flera kärnor uttalades också . [17] [18] [19]
SektionslänkarUtvecklingen av GPGPU- konceptet gör GPU:er mer och mer lämpade för uppgifter som är avsedda för fysiska processorer. DirectX 10 lägger till heltalsdatatyper , en enhetlig shader - arkitektur och geometriskuggningar till GPU:n, vilket gör att GPU:n kan hantera ett bredare utbud av algoritmer . NVidia CUDA tillhandahåller kommunikation mellan trådar och en arbetsyta i scratchpad - stil associerad med trådar .
GPU:er är dock designade för att fungera med 3D-datorgrafik. De har längre latens, långsammare strömmar, arbetar med texturer och framebuffer . Detta skiljer dem från Ageia PPU och Cell som mindre lämpliga för fysisk modellering.
Sieve C++ Parallel Programming System stöder PPU, vilket visar att Ageia PhysX-chippet skulle vara lämpligt för uppgifter av GPGPU-typ.
SektionslänkarIntels Larrabee , en bandbreddsoptimerad flerkärnig implementering av x86-arkitekturen, förväntas passa bra för den fysiska processorrollen . Liksom Cell-processorn hamnar Larrabee mellan CPU och GPU när det gäller dess parametrar. Larrabee är designad för multi-tasking multi-trådad bearbetning för allmänt ändamål i motsats till specialiserad högpresterande intern bearbetning. Intel har bekräftat att Larrabees minnesarkitektur inte kommer att använda temporära buffertar som Cell eller Ageia PhysX; istället kommer minnesarkitekturen att ligga närmare den normala CPU-cachehierarkin. Larrabee kommer dock att ha tillägg för att aktivera HPC (mest troligt en komplett ersättning av cachehanteringsinstruktionerna).
2008 tillkännagav AMD sitt AMD Fusion- projekt . AMD Fusion kommer att vara en processor som kombinerar en x86-64 centralprocessor och en grafikprocessor baserad på de senaste modellerna i Radeon -serien på ett enda chip . Olika AMD Fusion- processorresurser , såsom den hierarkiska cachen, kommer att delas. Denna framtida konfiguration kommer sannolikt också att vara lämplig för PPU-rollen.
Processor Technologies | Digital|||||||||
---|---|---|---|---|---|---|---|---|---|
Arkitektur | |||||||||
Instruktionsuppsättning arkitektur | |||||||||
maskinord | |||||||||
Parallellism |
| ||||||||
Genomföranden | |||||||||
Komponenter | |||||||||
Energihantering |