miniatura|Animació d'SPARTA, una de les primeres PPU. Una unitat de processament de físic (PPU) és un microprocessador dissenyat específicament per realitzar càlculs físics en programari, particularment el motor físic dels jocs d'ordinador. Aquest maquinari assumeix determinades tasques que, d'altra manera, faria el processador, de manera similar a la que la targeta de vídeo realitza càlculs relacionats amb els gràfics. Aquesta forma d'acceleració de maquinari permet realitzar càlculs físics més ràpidament.
Exemples de càlculs que impliquen una PPU poden incloure la dinàmica del cos rígid, la dinàmica del cos tou, la detecció de col·lisions, la dinàmica de fluids, la simulació de cabells i roba, l'anàlisi d'elements finits i la fractura d'objectes.
La idea és tenir processadors especialitzats que descarreguen les tasques que requereixen temps de la CPU d'un ordinador, de la mateixa manera que una GPU realitza operacions gràfiques al lloc de la CPU principal. El terme va ser encunyat per Ageia per descriure el seu xip PhysX. Diverses altres tecnologies de l'espectre CPU-GPU tenen algunes característiques en comú, tot i que el producte d'Ageia va ser l'únic complet dissenyat, comercialitzat, suportat i col·locat dins d'un sistema que era exclusivament una PPU.
Història Un primer projecte d'investigació acadèmica de PPU anomenat SPARTA (Simulation of Physics on A Real-Time Architecture) es va dur a terme a Penn State i a la Universitat de Geòrgia. Es tractava d'una PPU senzilla basada en FPGA que es limitava a dues dimensions. Aquest projecte es va ampliar a un sistema basat en ASIC considerablement més avançat anomenat HELLAS.
El febrer de 2006 es va llançar la primera PPU PhysX dedicada d'Ageia (després es va fusionar amb Nvidia). La unitat és més eficaç per accelerar sistemes de partícules, amb només una petita millora de rendiment mesurada per a la física del cos rígid. L'Ageia PPU està documentat en profunditat a la seva sol·licitud de patent dels EUA #20050075849. Nvidia/Ageia ja no produeix PPU ni acceleració de maquinari per al processament físic, tot i que ara és compatible amb algunes de les seves unitats de processament gràfic.
AGEIA PhysX El primer processador que es va anunciar com un PPU va ser anomenat xip PhysX, introduït per una empresa de semiconductors sense fables anomenada AGEIA. Els jocs que vulguin aprofitar el PhysX PPU han d'utilitzar el PhysX SDK d'AGEIA (abans conegut com a NovodeX SDK).
Consisteix en un nucli RISC de propòsit general que controla una sèrie de processadors VLIW de coma flotant SIMD personalitzats que treballen en memòries bancàries locals, amb un teixit de commutació per gestionar les transferències entre ells. No hi ha jerarquia de memòria cau com en una CPU o GPU.
El PhysX estava disponible a tres empreses semblants a la manera com es fabriquen les targetes de vídeo. ASUS, BFG Technologies, i ELSA Technologies van ser els principals fabricants. Els ordinadors amb les targetes ja instal·lades estaven disponibles de creadors de sistemes com Alienware, Dell i Falcon Northwest.
El febrer de 2008, després que Nvidia comprés Ageia Technologies i finalment va tallar la capacitat de processar PhysX a la PPU AGEIA i les GPU NVIDIA en sistemes amb GPU ATi/AMD actives, semblava que PhysX anava al 100% a Nvidia. Però el març de 2008, Nvidia va anunciar que convertirà PhysX en un estàndard obert per a tothom, de manera que els principals fabricants de processadors gràfics tindran suport PhysX a les targetes gràfiques de propera generació. Nvidia va anunciar que PhysX també estarà disponible per a algunes de les seves targetes gràfiques llançades només baixant alguns controladors nous.
Vegeu el motor de física per a una discussió sobre projectes de recerca acadèmica PPU.
Especificacions del maquinari PhysX P1 (PPU) ASUS i BFG Technologies van comprar llicències per fabricar versions alternatives de la PPU d'AGEIA, el PhysX P1 amb 128 MB GDDR3:
Dispositiu multinucli basat en l'arquitectura MIPS amb maquinari d'acceleració física integrat i subsistema de memòria amb "tones de nuclis" 125 milions de transistors Dau (circuit integrat) amb mida de 182 mm2 Procés de fabricació: 130 nm Consum màxim d'energia: 30 W Memòria: 128 MB de RAM GDDR3 amb interfície de 128 bits PCI 3.0 de 32 bits (ASUS també va fer una targeta de versió PCI Express) Proves de col·lisió d'esfera: 530 milions per segon (capacitat màxima) Proves de col·lisió convexes: 530.000 per segon (capacitat màxima) Ample de banda màxim d'instruccions: 20.000 milions per segon
Havok FX Havok SDK és un gran competidor del PhysX SDK, utilitzat en més de 150 jocs, inclosos títols importants com Half-Life 2, Halo 3 i Dead Rising.
Per competir amb la PhysX PPU, una edició coneguda com Havok FX havia d'aprofitar la tecnologia multi-GPU d'ATI (AMD CrossFire) i NVIDIA (SLI) utilitzant targetes existents per accelerar determinats càlculs físics.
Havok divideix la simulació física en efectes i física de joc, amb la física dels efectes que es descarrega (si és possible) a la GPU com a instruccions Shader Model 3.0 i la física de joc es processa a la CPU amb normalitat. La distinció important entre tots dos és que la física dels efectes no afecta el joc (pols o petits residus d'una explosió, per exemple); la gran majoria de les operacions físiques encara es fan en programari. Aquest enfocament difereix significativament del PhysX SDK, que trasllada tots els càlculs a la targeta PhysX si està present.
Des de l'adquisició d'Havok per part d'Intel, sembla que Havok FX ha estat abandonat o cancel·lat.
PPU vs. GPU L'impuls cap a la GPGPU ha fet que les GPU siguin més adequades per al treball d'una PPU; El DX10 va afegir tipus de dades enters, una arquitectura d'ombrejat unificada i una etapa d'ombrejat de geometria que permet implementar una gamma més àmplia d'algorismes; Les GPU modernes admeten ombrejats de càlcul, que s'executen en un espai indexat i no requereixen cap recurs gràfic, només memòria intermèdia de dades d'ús general. NVidia CUDA ofereix una mica més de comunicació entre fils i espai de treball d'estil bloc de notes associat amb els fils.
No obstant això, les GPU es construeixen al voltant d'un nombre més gran de latència més llarga, fils més lents i es dissenyen al voltant de rutes de dades de textura i framebuffer i un rendiment de ramificació deficient; això els distingeix de les PPU i Cell perquè estan menys optimitzats per fer-se càrrec de les tasques de simulació del món del joc.
El compilador Codeplay Sieve admet la PPU, cosa que indica que el xip Ageia physX seria adequat per a tasques de tipus GPGPU. No obstant això, sembla poc probable que Ageia perseguirà aquest mercat
PS2 – VU0 Tot i que molt diferent del PhysX, es podria argumentar que el VU0 de la PlayStation 2 és una implementació primerenca i limitada d'una PPU. Per contra, es podria descriure una PPU a un programador de PS2 com un reemplaçament evolucionat de VU0. El seu conjunt de funcions i la seva ubicació dins del sistema estan orientats a accelerar les tasques d'actualització del joc, incloses la física i la IA; pot descarregar aquests càlculs treballant amb el seu propi flux d'instruccions mentre la CPU està operant en una altra cosa. En ser un DSP, però, depèn molt més de la CPU per fer un treball útil en un motor de joc i no seria capaç d'implementar una API de física completa, de manera que no es pot classificar com a PPU. També VU0 és capaç de proporcionar una potència de processament de vèrtex addicional, encara que això és més una propietat de les vies del sistema que de la unitat en si.
Aquest ús és similar a la física de Havok FX o GPU, ja que la potència de punt flotant d'un propòsit general d'una unitat auxiliar s'utilitza per complementar la CPU tant en rols gràfics com físics.
Referències
Categoria:Microprocessadors