b'\n_START_ARTICLE_\nSIMD\n_START_SECTION_\nHist\xc3\xb2ria\n_START_PARAGRAPH_\nLa primera era de les m\xc3\xa0quines SIMD es caracteritza pels supercomputadors com el Cray X-MP. Aquestes m\xc3\xa0quines tamb\xc3\xa9 s\'anomenen "processors vectorials". Aquestes m\xc3\xa0quines funcionen amb vectors llargs, per exemple la suma de dos vectors amb 100 nombres casdascun. La supercomputaci\xc3\xb3 s\'allunya de l\'enfocament SIMD quan l\'enfocament de MIMD es va convertir en m\xc3\xa9s poder\xc3\xb3s, i l\'inter\xc3\xa8s per SIMD disminueix. Despr\xc3\xa9s, es converteixen en m\xc3\xa9s freq\xc3\xbcents els ordinadors personals, i van tenir prouta pot\xc3\xa8ncia per a poder recolzar els videojocs de temps real. Aix\xc3\xb2 va crear una gran demanda d\'un tipus particular de pot\xc3\xa8ncia als ordinadors, i els fabricants de microprocessadors es van dirigir cap a SIMD per a poder satisfer la demanda. El primer desplegament ampli de SIMD per als videojocs s\xc3\xb3n les extensions MMX a l\'arquitectura x86 per part d\'Intel. Despr\xc3\xa9s IBM i Motorola afegeixen AltiVec a l\'arquitectura POWER, hi ha hagut diverses extensions als conjunts d\'instruccions SIMD per ambdues arquitectures. Tots aquests desenvolupaments s\'han orientat cap al suport a gr\xc3\xa0fics de temps real, i per tant, orientat cap a vectors de dos, tres, o quatre dimensions. Quan s\'han de distingir les noves arquitectures SIMD de les antigues, llavors les noves arquitectures es consideren arquitectures de vectors curts. Actualment un supercomputador \xc3\xa9s gaireb\xc3\xa9 sempre un grup de m\xc3\xa0quines MIMD, cadascuna d\'elles aplica intruccions SIMD amb vectors curts. Actualment un equip d\'escriptori \xc3\xa9s sovint una m\xc3\xa0quina multiprocessador MIMD on cada processador pot executar instruccions vectorials SIMD curtes.\n_START_SECTION_\nDSPs\n_START_PARAGRAPH_\nExisteix una classe separada de processadors destinats per a aquest tipus de tasca, es coneixen comunament com processadors digitals del senyal, o DSPs. La principal difer\xc3\xa8ncia entre els DSP i altres CPUs SIMD, \xc3\xa9s que els DSPs s\xc3\xb3n processadors autocontinguts amb les seus propis repertoris d\'instruccions, mentre que les extensions SIMD es basen en l\'\xc3\xbas de porcions de la CPU per a gestionar els detalls del programa, i les intruccions SIMD gestionen solament la manipulaci\xc3\xb3 de dades. DSPs tamb\xc3\xa9 tendeixen a incloure instruccions espec\xc3\xadfiques per a gestionar el tipus de dades, inst\xc3\xa0cies per a so o v\xc3\xaddeo, mentre els sistemes SIMD s\xc3\xb3n considerablement m\xc3\xa9s gen\xc3\xa8rics. Les DSPs generalment operen en Scratchpad RAM condu\xc3\xafda per transfer\xc3\xa8ncies DMA iniciades des del sistema amfitri\xc3\xb3 i no poden accedir a memoria externa. _NEWLINE_Algunes DSP inclouen repertoris d\'instruccions SIMD. La inclusi\xc3\xb3 d\'unitats SIMD en procesador de prp\xc3\xb2sit general ha suplantat l\'\xc3\xbas dels xips DSP en els sistemes inform\xc3\xa0tics, tot i que continuen sent utilitzats en aplicacions empotrades. A escala m\xc3\xb2bil existeix - the Cell\'s SPUs i l\'Ageia Physics Processing Unit poden ser considerades a mig cam\xc3\xad entre les CPUs i les DSPs, en la mesura que estan optimitzats per a tasques num\xc3\xa8riques i trebar en el emmagatzegament local, per\xc3\xb2 poden controlar de forma aut\xc3\xb2noma les seves pr\xc3\xb2pies transfer\xc3\xa8ncies, per tant, s\xc3\xb3n en efecte CPUs.\n_START_SECTION_\nAvantatges\n_START_PARAGRAPH_\nUna aplicaci\xc3\xb3 que pot prendre avantatges de SIMD \xc3\xa9s un on el mateix valor s\'afegeix (o se sostrau) a un gran nombre de punts de dades, una operaci\xc3\xb3 com\xc3\xba en moltes aplicacions multimedia. Un exemple seria canviar el contrast d\'una imatge. Cada pixel d\'una imatge consta de tres valors per cada un dels nivells de color de vermell, verd i blau. Per canviar el contrast, els valors R G i B es llegeixen de memoria, se li suma un valor (o resta), i els resultats es tornen a escriure a memoria._NEWLINE_Amb un processador SIMD hi ha dues millores a aquest proc\xc3\xa9s. Les dades s\'entenen amb blocs, i un nombre de valors es poden carregar tots a la vegada. En lloc d\'una s\xc3\xa8rie d\'instruccions dient "obt\xc3\xa9 aquest pixel, ara obt\xc3\xa9 el seg\xc3\xbcent pixel", un processador SIMD tindr\xc3\xa0 una sola instrucci\xc3\xb3 que efectivament diu "obt\xc3\xa9 un conjunt de pixels" ("conjunt" \xc3\xa9s un nombre que varia depenent del disseny). Per una varietat de raons, aix\xc3\xb2 pot trigrar molt menys temps que "obtindre" cada pixel individualment, com per exemple els tradicionals dissenys amb CPU._NEWLINE_Un altre avantatge \xc3\xa9s que els sistemes SIMD t\xc3\xadpicament nom\xc3\xa9s inclouen aquelles instruccions que es poden aplicar a totes les dades en una sola operaci\xc3\xb3. \xc3\x89s a dir, si el sistema SIMD funciona per la c\xc3\xa0rrega de dades de fins a vuit punts diferents alhora, l\'operaci\xc3\xb3 add s\'aplica a les dades que es passen amb els vuit valors al mateix temps. Tot i que el mateix \xc3\xa9s cert per qualsevol disseny de processador superescalar, el nivell de paral\xc2\xb7lelisme en un sistema SIMD sol ser molt m\xc3\xa9s gran.\n_START_SECTION_\nMaquinari\n_START_PARAGRAPH_\nEls SIMD de petita escala (64 o 128 bits) s\'han convertit en populars en les CPUs de pr\xc3\xb2sit general, a partir de 1989 amb la introducci\xc3\xb3 del Digital Equipment Corporation VAX amb instruccions vectorals al sistema Rigel, i continuant a trav\xc3\xa9s de 1997 i m\xc3\xa9s tard amb Motion Video Instructions (MVI) per a Alpha. Les instruccions SIMD poden trobar-se, en un grau o en un altre, en gaireb\xc3\xa9 totes les CPUs, incloent AltiVec d\'IBM i SPE per PowerPC, HP PA-RISC Multimedia Acceleration eXtensions (MAX), MMX and iwMMXt d\'Intel, SSE, SSE2, SSE3 i SSSE3, 3DNow! d\'AMD, Subsistema de video d\'ARC, VIS de SPARC, MAJC de Sun, tecnologia NEON d\'ARM, MDMX (MaDMaX) i MIPS-3D de MIPS. IBM, Sony i Toshiba van codesenvolupar el repertori d\'instruccions SPU de Cell Processor, que est\xc3\xa0 fortament basada en SIMD._NEWLINE_El repertori d\'instruccions generalment inclou un conjunt complet d\'instruccions vectorials, incloient multiplicaci\xc3\xb3, inversi\xc3\xb3 i tra\xc3\xa7a. Aquestes s\xc3\xb3n particularment \xc3\xbatils per al processament de gr\xc3\xa0fics 3D, encara que les targetes graphics card modernes incorporades amb SIMD han assumit aquesta tasca de la CPU. Alguns sistemes tamb\xc3\xa9 inclouen funcions de permutaci\xc3\xb3 que tornar a recompondre els elements dins els vectors, fent-los particularment \xc3\xbatils per al processament i la compressi\xc3\xb3 de les dades._NEWLINE_Les unitats de processament gr\xc3\xa0fic modernes s\xc3\xb3n sovint implementacions molt \xc3\xa0mplies de SIMD, capaces de ramificacions, c\xc3\xa0rregues, i emmgatzegament de 128 o 256 bits al mateix moment.\n_START_SECTION_\nProgramari\n_START_PARAGRAPH_\nL\'adopci\xc3\xb3 de sistemes de programari SIMD a l\'ordinador personal ha set lenta, a causa d\'una s\xc3\xa8rie de problemes. Un d\'ells era que molts dels principis dels repertoris d\'instruccions de SIMD tendeixen a frenar el rendiment general del sistema, degut a la re-utilitzaci\xc3\xb3 dels registres de punt flotant. Altres sistemes, com MMX i 3DNow!, ofereixen suport a tipus de dades que no eren interessants per a un p\xc3\xbablic m\xc3\xa9s ampli i amb un cost\xc3\xb3s canvi de context de les instruccions per canviar entre utilitzar el FPU i els registres MMX. Els compiladors sovint tamb\xc3\xa9 no tenen el suport que requereixen i els programadors han de rec\xc3\xb3rrer a la programaci\xc3\xb3 en llenguatge ensamblador._NEWLINE_SIMD en x86 ha tingut un comen\xc3\xa7ament lent. La introducci\xc3\xb3 de 3DNow! per part d\'AMD i SSE per part d\'Intel, sovint confoses, per\xc3\xb2 en l\'actualitat el sistema sembla haver-se estabilitzat (despr\xc3\xa9s que AMD adopt\xc3\xa9s SSE) i nous compiladors haurien de traduir-se en m\xc3\xa9s habilitats de programari per a SIMD. Intel i AMD ara ambd\xc3\xb3s proporcionen tant les biblioteques matem\xc3\xa0tiques optimitzades que utilitzen instruccions SIMD, i tamb\xc3\xa9 han comen\xc3\xa7at a apar\xc3\xa8ixer alternatives de codi obert com libSIMD i SIMDx86._NEWLINE_Apple Computer ha tingut una mica m\xc3\xa9s d\'\xc3\xa8xit, tot i que va entrar al mercat SIMD m\xc3\xa9s tard que la resta. AltiVec ofereix un sistema ric i pot ser programat utilitzant cada vegada m\xc3\xa9s compiladors m\xc3\xa9s sofisticats de Motorola, d\'IBM i GNU, per tant, la programaci\xc3\xb3 en assemblador poques vegades \xc3\xa9s necess\xc3\xa0ria. A m\xc3\xa9s, molts dels sistemes que es beneficiarien de SIMD van ser subministrats pel mateix Apple, per exemple iTunes i QuickTime. No obstant, el 2006, Apple computers es mou cap a processadors x86 d\'Intel. Les APIs d\'Apple i les eines de desenvolupament (XCode) van ser rescrites per utilitzar SSE2 i SSE3 en substituci\xc3\xb3 de AltiVec. Apple va ser el comprador dominant dels xips PowerPC d\'IBM i Freescale Semiconductor i tot i que va abandonar la plataforma, un gran desenvolupament de Altivec es continua realitzant en diversos dissenys Power Architecture de Freescale, IBM i P.A. Semi._NEWLINE_SIMD sense registres, o SWAR, \xc3\xa9s un conjunt de t\xc3\xa8cniques i trucs utilitzats per optimitzar SIMD en registres de prop\xc3\xb2sit general a maquinari que no suporta directament instruccions SIMD. Aquests poden ser utilitzats per explotar el paral\xc2\xb7lelisme en certs algorismes, fins i tot en maquinari que no accepta directament.\n_START_SECTION_\nAplicacions Comercials\n_START_PARAGRAPH_\nEncara que en general ha resultat dif\xc3\xadcil trobar sostenibilitat per a aplicacions comercials de processadors SIMD, una que ha tingut un cert grau d\'\xc3\xa8xit \xc3\xa9s el GAPP, que va ser desenvolupat per Lockheed Martin i portat al sector comercial pel seu spin-off Teranex. Les recents inclusions de GAPP s\'han convertit en una poderosa eina en temps real en les aplicacions de processament de video com la conversi\xc3\xb3 entre diversos formats est\xc3\xa0ndards i les velocitats de fotograma (NTSC a/des de PAL, NTSC a/des de formats HDTV, etz.), deinterlacing, image noise reduction, adaptiu video compression, i millora d\'imatges._NEWLINE_Una aplicaci\xc3\xb3 mes obia per a SIMD s\xc3\xb3n els videojocs: gaireb\xc3\xa9 totes les videoconsoles modernes des de 1998 han incorporat un processador SIMD en alguna part de la seva arquitectura. La Sony PlayStation 2 va ser inusual que la seva unitat de punt flotant pogu\xc3\xa9s fer funcionar de forma independent a la seva DSP executant els seus propis fluxes d\'instruccions, o com els coprocesadores condu\xc3\xafts per instruccions d\'una CPU ordin\xc3\xa0ria. Aplicacions 3D gr\xc3\xa0fiques tendeixen a presentar-se b\xc3\xa9 processant SIMD, ja que depenen en gran manera d\'operacions amb vectors de 4 dimensions. El Direct3D 9.0 de Microsoft\'s ara tria la CPU espec\xc3\xadfica en temps d\'execuci\xc3\xb3, implementant les seves pr\xc3\xb2pies operacions matem\xc3\xa0tiques, incloient la utilitzaci\xc3\xb3 d\'instruccions SIMD._NEWLINE_Un dels processadors m\xc3\xa9s recents que utilitza processament vectorial \xc3\xa9s el micropocessador Cell Processor desenvolupat per IBM amb cooperaci\xc3\xb3 amb Toshiba i Sony. Aquest utilitza un nombre de processadors SIMD (cadascun amb la seva mem\xc3\xb2ria RAM independent i controlada per una CPU de prop\xc3\xb2sit general) i est\xc3\xa0 destinat al gran volum de dades requerits per a 3D, i aplicacions de processament de v\xc3\xaddeo._NEWLINE_Els processadors comercials de major escala SIMD estan disponibles a ClearSpeed Technology, Ltd. i Stream Processors, Inc. ClearSpeed\'s CSX600 (2004) t\xc3\xa9 96 nuclis cadaun amb 2 unitats de punt flotant de doble precisi\xc3\xb3 mentre que el CSX700 (2008) t\xc3\xa9 192. Els processadors de fluxes estan liderats per l\'arquitecte d\'ordinadors Bill Dally. El seu processador Storm-1 (2007) cont\xc3\xa9 80 nuclis SIMD controlats per una CPU MIPS.'