En fysisk processor ( eng. Physics Processing Unit - eng. PPU , "fysisk accelerator", "fysikaccelerator") er en specialiseret mikroprocessor , der er designet til at beregne den fysiske interaktion mellem objekter, hovedsageligt i videospilfysikmotorer .
Eksempler på fysiske beregninger ved hjælp af en fysisk processor kan være: stiv kropsdynamik , blød kropsdynamik , kollisionsdetektion , væskedynamik , bevægelsessimulering af hår, pels og stoffer, finite element - analyse , objektfejl .
Ideen (hovedfunktion, essens) af en fysisk processor er at aflaste den centrale behandlingsenhed ( eng. CPU - eng. Central Processing Unit ) fra tidskrævende opgaver inden for behandlingsfysik. En meget lignende idé bruges af moderne videokort , hvoraf hoveddelen er grafikprocessorer ( engelsk GPU - English Graphics Processing Unit ).
De første fysiske processorer, der blev udviklet, er SPARTA og HELLAS .
Udtrykket "PPU" blev opfundet af Ageias marketingafdeling for at beskrive deres PhysX - chip til forbrugerne. Ageias PhysX Physical Processor er den eneste komplette, konstruerede, konstruerede, masseproducerede, markedsførte og understøttede instans, der udelukkende er designet som en PPU . Udover PhysX findes der andre løsninger og teknologier på dette område.
Den første processor, der blev annonceret som en "PPU", var en PhysX- chip , lavet af Ageia . Spil, der ville bruge PhysX , skulle bruge speciel undersoftware - Ageias PhysX SDK (tidligere kendt som NovodeX SDK ) fysikmotor .
PhysX - processoren består af en generel RISC -kerne, der styrer en række tilpassede VLIW-processorer, der arbejder med SIMD- instruktioner og flydende komma [1] . Processoren arbejder med lokale hukommelsesbanker med en indbygget switch til at styre flows mellem dem. PhysX har ikke det samme cachehierarki som CPU'en eller GPU'en .
Der er i øjeblikket ingen boards med en PhysX- processor tilgængelige til salg. I den seneste tid blev tavler produceret af tre virksomheder. ASUS og BFG Technologies var de første virksomheder, der begyndte at sælge boards. Komplette computersæt med PhysX-kort installeret er tilgængelige fra computerbyggere som Alienware , Dell og Falcon Northwest.
I februar 2008 , efter at Nvidia købte Ageia Technologies , så det ud til, at alle udviklinger af sidstnævnte blev fuldstændig overført til Nvidia. I marts 2008 annoncerede Nvidia dog, at det ville gøre PhysX SDK til en åben platform tilgængelig for alle. [2] PhysX SDK - understøttelse vil være tilgængelig for alle Nvidia-videokort, der starter med 8xxx-serien. I øjeblikket forbereder Nvidia sig på at frigive en ny version af driverne, som inkluderer understøttelse af PhysX SDK i disse videokort. Den 24. juli 2008 blev det afsløret, at Nvidia ville frigive en WHQL-certificeret ForceWare - driver med understøttelse af fysikacceleration den 5. august 2008 . [3]
Den 28. juni 2008 lancerede Eran Badit fra NGOHQ.com PhysX SDK - hardwareunderstøttelse på Radeon HD 3870 -grafikkortet . [4] NVIDIA reagerede negativt på Eran Badits initiativ, men den 9. juli 2008 fik Badit adgang til dokumentation, SDK, hardware og ingeniørers kontakter. Således åbner NVIDIA PhysX SDK for tredjepartsudviklere. [5]
Den 15. august 2008 udgav NVIDIA ForceWare 177.83-driveren, som muliggør PhysX-understøttelse i grafikkortene i serien 8, 9 og 200. Dette udvidede straks brugerbasen til over 70 millioner mennesker verden over. [6] [7]
SektionslinksSjette generation Sony PlayStation 2 -spilkonsol bruger en 128-bit " Emotion Engine ", som er en kombination af en central processing unit (CPU) og en digital signalprocessor (DSP). Emotion Engine består af en central 64-bit del baseret på MIPS R5900 og to 128-bit vektor coprocessorer VU0 og VU1 ( Vector Unit ) . VU0 bruges almindeligvis til polygontransformationer, fysik og andre gameplay - relaterede ting . VU1 bruges almindeligvis til polygontransformation, belysning og andre gengivelsesrelaterede beregninger.
På trods af væsentlige forskelle fra PhysX kan VP0 betragtes som en tidlig begrænset fysisk processorimplementering. Dens funktionssæt og placering på mikroprocessorsystemet har til formål at fremskynde spiltilstandsopdateringsopgaver, herunder fysik og kunstig intelligens ; VU0 kan aflaste den centrale del af "Emotion Engine". Som en digital signalprocessor er VU0 dog meget mere afhængig af hovedprocessoren og kan ikke implementere den fulde fysiske API . Dette er grunden til, at VU0 ikke kan klassificeres som en PPU.
Dens brug svarer til at bruge Havok FX-motoren eller en GPU-fysikaccelerator, idet ressourcerne i en ekstern flydende kommaenhed til generelle formål, der fungerer som en grafik- eller fysisk accelerator, supplerer CPU'ens ressourcer.
STI Cell - processoren , som bruges i den syvende generation af Sony PlayStation 3 -spilkonsollen , har en struktur, der ligner Ageia PhysX-processoren. Designet af processoren blev skabt under hensyntagen til overvejelser svarende til Ageia PhysX. I modsætning til ATI/NVidia GPGPU og ligesom PhysX er Cell-designet designet med fokus på at give hver parallel tråd et større arbejdssæt , mere inter-thread-kommunikation og kontrol end en konventionel CPU . Dette design er meget velegnet til fysisk databehandling.
Udtrykket "PPU" bruges ikke til at beskrive cellen, men det kommer sammen med en markedsføringsmæssig skelnen: STI Design Center -alliancen sælger processoren til en bred vifte af ikke-gaming-indlejrede applikationer; og selv som en del af PlayStation 3 er den i stand til at bruge DSP - lignende SPE'er ( Synergistic Processing Elements - Synergistic Processing Element) til vertexbehandling ( eng . vertex processing ), lyd, dekompression og andre opgaver.
Havok SDK -fysikmotoren er hovedkonkurrenten til PhysX SDK-motoren. Det bruges i over 150 spil, inklusive spil som Half-Life 2 , The Elder Scrolls IV: Oblivion og Dead Rising . [otte]
For at konkurrere med den fysiske PhysX-processor blev Havok FX -konceptet udviklet , hvis hovedessens var at bruge grafikkortenes kraft til at fremskynde visse fysiske beregninger. Havok FX skulle kun bruges på computere udstyret med mindst to videokort forbundet med NVIDIA SLI eller ATI Crossfire . Samtidig skulle ét skærmkort fra dette bundt være helt allokeret til fysiske beregninger. [9]
Havoks løsning opdeler alle fysiksimuleringer i fysikeffekter og "gameplay"-fysik. Fysiske effekter (støv, små fragmenter og snavs fra eksplosioner, brand) behandles ved hjælp af GPU'en på videokortet som Shader Model 3.0 instruktioner (Shader Model version 3.0). "Gameplay"-fysikken håndteres af CPU'en på den sædvanlige måde. En vigtig forskel mellem de to er, at fysiske effekter ikke påvirker spillets gameplay; langt de fleste fysiske operationer udføres stadig i standardsoftware af CPU'en. Denne tilgang adskiller sig væsentligt fra PhysX SDK-motoren, som omdirigerer alle aktuelle fysikberegninger til PhysX-kortet.
Siden Intel købte Havok ud den 15. september 2007, er Havok FX blevet annulleret. Det blev antaget, at Intel ville fastfryse projektet med hardwareunderstøttelse til motoren på grafikkortene fra konkurrenten AMD og fokusere på at optimere motoren til sine multi-core CPU'er. [10] [11] [12]
Den 20. marts 2009 kom nyheden om, at ved den årlige Game Developers Conference 2009-begivenhed ville AMD og Havok demonstrere fysikacceleration med Radeon -grafikkort . Terry Makedon , produktchef for ATI Catalyst , sagde, at på GDC vil AMD fremvise sin "ATI GPU Physics"-strategi og gennemføre en relateret demonstration. AMD vil bruge OpenCL -programmeringssproget til at accelerere Havok , hvis compiler er en del af ATI Stream SDK-softwarepakken. [13] [14] [15] [16]
Som lovet holdt AMD og Havok en fysik-demo på GDC 09. For første gang blev evnen til at køre "Havok Cloth" på en OpenCL-udvidelse demonstreret. Det blev oplyst, at til beregningerne af dette delsystem kræves en AMD-grafikprocessor med understøttelse af OpenCL og AMD Stream. Havoks fokus på AMDs seneste Phenom-processorer med flere kerner blev også oplyst . [17] [18] [19]
SektionslinksUdviklingen af GPGPU- konceptet gør GPU'er mere og mere velegnede til opgaver, der er beregnet til fysiske processorer. DirectX 10 tilføjer heltalsdatatyper , en samlet shader-arkitektur og geometrishaders til GPU'en, som gør det muligt for GPU'en at håndtere en bredere vifte af algoritmer . NVidia CUDA giver kommunikation mellem tråde og et arbejdsområde i scratchpad -stil forbundet med tråde .
GPU'er er dog designet til at fungere med 3D computergrafik. De har længere latency, langsommere streams, arbejder med teksturer og framebuffer . Dette adskiller dem fra Ageia PPU og Cell som mindre egnede til fysisk modellering.
Sieve C++ Parallel Programming System understøtter PPU'en, hvilket viser, at Ageia PhysX-chippen ville være velegnet til opgaver af typen GPGPU.
SektionslinksIntels Larrabee , en båndbreddeoptimeret multi-core implementering af x86-arkitekturen, forventes at passe godt til den fysiske processorrolle . Ligesom Cell-processoren falder Larrabee mellem CPU'en og GPU'en med hensyn til dens parametre. Larrabee er designet til multi-tasking multi-threaded behandling i modsætning til specialiseret højtydende intern behandling. Intel har bekræftet, at Larrabee-hukommelsesarkitekturen ikke vil bruge midlertidige buffere som Cell eller Ageia PhysX; i stedet vil hukommelsesarkitekturen være tættere på det normale CPU-cachehierarki. Larrabee vil dog have udvidelser for at aktivere HPC (sandsynligvis en komplet erstatning af cachehåndteringsinstruktionerne).
I 2008 annoncerede AMD sit AMD Fusion- projekt . AMD Fusion bliver en processor, der kombinerer en x86-64 central processor og en grafikprocessor baseret på de nyeste modeller af Radeon -serien på en enkelt chip . Forskellige AMD Fusion- processorressourcer , såsom den hierarkiske cache, vil blive delt. Denne fremtidige konfiguration vil sandsynligvis også være egnet til PPU-rollen.
processorteknologier | Digitale|||||||||
---|---|---|---|---|---|---|---|---|---|
Arkitektur | |||||||||
Instruktionssæt arkitektur | |||||||||
maskinord | |||||||||
Parallelisme |
| ||||||||
Implementeringer | |||||||||
Komponenter | |||||||||
Strømstyring |