SSE4: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Addbot (discussione | contributi)
m migrazione di 8 interwiki links su Wikidata - d:q761898
FrescoBot (discussione | contributi)
m Bot: overlinking giorni e mesi dell'anno e modifiche minori
Riga 1:
{{F|informatica|aprile 2010}}
'''SSE4''' è il nome di un set d'istruzioni [[Streaming SIMD Extensions]] annunciato da [[Intel]] a [[settembre]] [[2006]] e arrivato poi sul mercato a fine [[2007]] con i primi processori a [[45 nm]] presentati dalla stessa Intel.
 
Come i set predecessori, anche con SSE4 è possibile ripetere la stessa operazione con più di un elemento di dati, al posto di richiedere che ogni istruzione sia direttamente legata ad un elemento dati, permettendo di ottenere un generale incremento della velocità di elaborazione con applicazioni di tipo multimediale.
Riga 16:
È da evidenziare inoltre la funzionalità "Super Shuffle Engine" che riduce le latenze processando operazioni a [[128 bit]] in un solo ciclo di clock velocizzando alcune tipiche operazioni legate all'utilizzo delle istruzioni SSE.
 
Le restanti istruzioni che vanno a comporre il set completo, indicato da Intel come SSE4.2, sono le seguenti: CRC32, PCMPESTRI, PCMPESTRM, PCMPISTRI, PCMPISTRM, PCMPGTQ, e POPCNT
 
==Nuove istruzioni==
Riga 22:
 
===SSE4.1===
Queste istruzioni sono state introdotte con la microarchitettura Penryn, la riduzione a 45nm della [[Core (microarchitettura)|microarchitettura Core]] di Intel.
 
{| class="wikitable"
Riga 34:
| PHMINPOSUW
| Setta la word bassa a 16 bit della destinazione alla più piccola word unsigned a 16 bit nella sorgente, e la successiva word destinazione all'indice di quella word nella sorgente.
|-
| PMULDQ
| Moltiplicazione packed con segno su due insiemi di due su quattro interi packed, il 1° e il 3° per i 4 packed, dando 2 interi packed a 64 bit come risultato.
Riga 46:
| BLENDPS, BLENDPD, BLENDVPS, BLENDVPD, PBLENDVB, PBLENDW
| Copia condizionale di elementi in una locazione con un'altra, basata (per la forma non-V) sui bit in un operando immediato e (per la forma V) sui bit nel registro XMM0.
|-
| PMINSB, PMAXSB, PMINUW, PMAXUW, PMINUD, PMAXUD, PMINSD, PMAXSD
| Minimo/massimo packed per diversi tipi di operandi interi.
Riga 52:
| ROUNDPS, ROUNDSS, ROUNDPD, ROUNDSD
| Arrotondamento dei valori di un registro da virgola mobile a interi,usando uno di quattro modi diversi di arrotondamento specificati da un operando immediato.
|-
| INSERTPS, PINSRB, PINSRD/PINSRQ, EXTRACTPS, PEXTRB, PEXTRW, PEXTRD/PEXTRQ
| Le istruzioni INSERTPS e PINSR leggono 8, 16 o 32 bit da una locazione in memoria o da un registro x86 e li inseriscono in un campo del registro destinazione puntato da un operando immediato; EXTRACTPS e PEXTR leggono un campo dal registro sorgente e lo scrivono in un registro x86 o in una locazione di memoria. Per esempio, PEXTRD eax, [xmm0], 1; EXTRACTPS [addr+4*eax], xmm1, 1 scrive il primo campo di xmm1 all'indirizzo dato dal primo campo di xmm0.
|-
|PMOVSXBW, PMOVZXBW, PMOVSXBD, PMOVZXBD, PMOVSXBQ, PMOVZXBQ, PMOVSXWD, PMOVZXWD, PMOVSXWQ, PMOVZXWQ, PMOVSXDQ, PMOVZXDQ
Riga 74:
===SSE4.2===
 
Queste istruzioni sono state implementate per la prima volta nella linea di prodotti [[Core i7]] Intel basata su [[Nehalem]], e completano il set di istruzioni SSE.
 
{| class="wikitable"
Riga 81:
! Descrizione
|-
| CRC32
| Accumula il valore [[Cyclic redundancy check|CRC32]]C usando il polinomio 0x11EDC6F41 (oppure, senza il bit di ordine alto, 0x1EDC6F41)<ref>[http://softwarecommunity.intel.com/isn/Downloads/Intel%20SSE4%20Programming%20Reference.pdf Intel SSE4 Programming Reference] p. 61. See also [http://www.rfc-editor.org/rfc/rfc3385.txt RFC 3385] for discussion of the CRC32C polynomial.</ref>.
|-
| PCMPESTRI
| Confronto su stringhe packed di lunghezza esplicita; ritorna un indice
|-
| PCMPESTRM
| Confronto su stringhe packed di lunghezza esplicita; ritorna una maschera
|-
| PCMPISTRI
| Confronto su stringhe packed di lunghezza implicita; ritorna un indice
|-
| PCMPISTRM
| Confronto su stringhe packed di lunghezza implicita; ritorna una maschera
|-
| PCMPGTQ
| Maggiore o uguale su dati packed a 64 bit con segno
|-
Riga 105:
===SSE4a===
 
Il gruppo di istruzioni SSE4a fu implementato nella microarchitettura [[AMD K10|Barcelona]] di AMD. Con l'eccezione di POPCNT, queste istruzioni non sono disponibili sui processori Intel.
 
{| class="wikitable"