SSE3
Această intrare sau secțiune despre componentele computerului nu menționează sursele necesare sau sunt insuficiente . |
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 .