Vés al contingut

Streaming SIMD Extensions

De la Viquipèdia, l'enciclopèdia lliure
Aquesta és una versió anterior d'aquesta pàgina, de data 08:24, 30 ago 2017 amb l'última edició de 94.254.243.34 (discussió). Pot tenir inexactituds o contingut no apropiat no present en la versió actual.

Exemple

El següent exemple demostra els avantatges de la utilització de SSE. Considera una operació com la suma de vectors, que és molt utilitzada en aplicacions gràfiques d'ordinadors. Per sumar dos nombres de precisió simple, unir vectors de 4 components utilitzant x87 necessita quatre operacions de suma en punt flotant

vec_res.x = v1.x + v2.x;
vec_res.y = v1.y + v2.y;
vec_res.z = v1.z + v2.z;
vec_res.w = v1.w + v2.w;

Aquest podria correspondre a quatre instruccions FADD de x87 FADD en codi objecte. Per un altre costat, com en el següent preudocodi mostra, una sola instrucció de 128 bits 'packed-add' que pot reemplaçar les quatre operacions de suma.

movaps xmm0,address-of-v1 ;xmm0=v1.w | v1.z | v1.y | v1.x 
addps xmm0,address-of-v2 ;xmm0=v1.w+v2.w | v1.z+v2.z | v1.y+v2.y | v1.x+v2.x movaps address-of-vec_res,xmm0

Versions posteriors

  • SSE2, va ser introdduït amb el Pentium 4, és una millora important de SSE (que alguns programadors el van rebatejar a "SSE1"). SSE2 afegeix noves instruccions matemàtiques per a precisió doble (64 bits) en punt flotant i a més expandeix les instruccions MMX per a poder operar amb registres XMM de 128 bits. Fins SSE4 [vegeu a continuació], Les instruccions SSE d'enters introduïdes amb les posteriors extensions SSE, extensions que encara operen amb registres MMX de 64 bits, ja que els nous registres XMM necessiten el suport del sistema operatiu. SSE2 permet al programador realitzar matemàtica SIMD de pràcticament qualsevol tipus (d'enters de 8 bits a fotants de 64 bits) amb el nou fitxer vector-registre XMM, sense la necessitat de tocar els registres MMX/FPU. Molts programadors consideren SSE2 a ser "tot el que hauria d'haver estat la SSE", com SSE2 ofereix un repertori d'instruccions ortogonal per al tractamenent comú de tipus de dades.
  • SSE3, també anomenades instruccions noves Prescott, és una actualització incremental per SSE2, afegint un grapat d'instruccions orientades a matemàtiques DSP i algunes instruccions de gestió de processos (fils).
  • SSSE3 és una actualització incremental a SSE3, afegint 16 nous codis d'operació que inclouen la permutació de bytes a words, multiplicació nombres amb punt flotant de 16 bits amb redondeig corecte, i instruccions d'acumulador dins de word. SSSE3 sovint es confon amb SSE4, ja que aquest terme es va utilitzar durant el desenvolupament del nucli microarquitectura.
  • SSE4 és una altra millora important, afegint una instrucció de punt a la multiplicació, conjunts d'instruccions d'addició d'enters, una instrucció popcnt, i més. SSE4 finalitza el suport pel registre MMX.[1]
  • SSE5 és una nova versió de l'anunci fet per AMD l'agost de 2007.[2][3]
  • AVX (Extensions vectorials avançades) és una versió avançada de SSE anunciada per Intel que amplia la ruta de dades de 128 a 256 bits i instruccions de 3 operands (incrementat de 2). L'amplicació de productes AVX estan previstes pel 2010. [1]

Vegeu també

Referències