SSE3

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

SSE3 (cunoscut și ca Prescott New Instructions sau PNI ) este un set de instrucțiuni SIMD al arhitecturii IA-32 , dezvoltat de Intel , care extinde versiunea anterioară (SSE2).

Primele seturi SIMD de pe platformele x86 au fost MMX și 3DNow! (folosit doar de AMD ), și mai târziu SSE și SSE2 .

Intel a introdus instrucțiunile SSE3 la începutul anului 2004 cu Pentium 4 bazat pe nucleul Prescott , în timp ce AMD a implementat suport în Athlon 64 doar prin „revizuirea E” în ​​aprilie 2005 .

Setul original SSE3 adaugă 13 instrucțiuni noi față de predecesorul SSE2 ; cea mai revoluționară dintre aceste instrucțiuni vă permite să lucrați orizontal într-un registru spre deosebire de ceea ce s-a întâmplat anterior, unde era posibil doar pe verticală. Mai precis, au fost adăugate instrucțiuni pentru a adăuga și scădea valorile multiple stocate într-un singur registru. Aceste instrucțiuni simplifică implementarea unui număr mare de operațiiDSP și 3D . Există, de asemenea, o nouă instrucțiune pentru a converti numerele în virgulă mobilă la numere întregi fără a interfera cu fluxul normal de procesare a procesorului , prin urmare fără a crea tarabe în conductă .

În 2006 , odată cu lansarea arhitecturii Intel Core Microarchitecture , a fost lansată pe piață o evoluție a setului SSE3, numită SSSE3 , care adaugă încă 32 de instrucțiuni și optimizează o serie de aspecte ale setului original.

Instrucțiuni noi

Aritmetic

  • ADDSUBPD - ( Add-Subtract-Packed-Double )
    • Introducere - {A0, A1}, {B0, B1}
    • Ieșire - {A0 - B0, A1 + B1}
  • ADDSUBPS - ( Add-Subtract-Packed-Single )
    • Intrare: {A0, A1, A2, A3}, {B0, B1, B2, B3}
    • Ieșire: {A0 - B0, A1 + B1, A2 - B2, A3 + B3}

AOS (Array of Structures) v

  • HADDPD - ( Orizontală- Adăugată -Ambalată-Dublă )
    • Intrare: {A0, A1}, {B0, B1}
    • Ieșire: {A0 + A1, B0 + B1}
  • HADDPS ( Horizontal-Add-Packed-Single )
    • Intrare: {A0, A1, A2, A3}, {B0, B1, B2, B3}
    • Ieșire: {A0 + A1, A2 + A3, B0 + B1, B2 + B3}
  • HSUBPD - ( Orizontal-Subtract-Packed-Double )
    • Intrare: {A0, A1}, {B0, B1}
    • Ieșire: {A0 - A1, B0 - B1}
  • HSUBPS - ( Orizontal-Subtract-Packed-Single )
    • Intrare: {A0, A1, A2, A3}, {B0, B1, B2, B3}
    • Ieșire: {A0 - A1, A2 - A3, B0 - B1, B2 - B3}
  • LDDQU - o modalitate alternativă de încărcare a unui vector care nu este aliniat corect în memorie. Poate fi folosit pentru operații de compresie video.
  • MOVDDUP, MOVSHDUP, MOVSLDUP - aceste operații sunt foarte potrivite pentru calculele numerice complexe și sunt utilizate foarte mult în calculele sinusoidale și sonore.
  • FISTTP - analog vechii instrucțiuni FISTP x87, dar ignoră metoda de rotunjire setată în registrul de audit SSE și folosește trunchierea în schimb; vă permite să evitați salvarea și încărcarea registrului de control în limbi precum C, unde conversiile de la float la int asigură trunchierea ca comportament standard.

Instrucțiuni specifice Intel

  • MONITOR, MWAIT - Concepute pentru a optimiza aplicațiile multi-thread, îmbunătățesc performanța procesorului cu Hyper-Threading .

Elemente conexe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT