'''SSE''' (<i>'''''S'''treaming '''S'''IMD '''E'''xtensions</i>'') è un [[instruction set]] [[SIMD]] progettato dalla [[Intel]] ed utilizzato nel suo processore [[Pentium III]] come risposta al [[3DNow!]] prodotto da [[AMD]], che era presente sul mercato da circa un anno. Era originariamente conosciuto con la sigla '''KNI''', da '''K'''atamai '''N'''ew '''I'''nstructions (''Katamai'' era il nome in codice per il Pentium III). Durante il progetto Katamai Intel cercava di distinguerlo dalla sua precedente linea di prodotti, in particolare il [[Pentium II]]. AMD aggiunse successivamente il supporto per le istruzioni SSE nel suo processore [[Athlon XP]].
Il primo tentativo di SIMD da parte della Intel, la tecnologia [[MMX]], fu una delusione. MMX ha principalmente due problemi: riutilizza i registri a [[virgola mobile]] rendendo impossibile per la [[CPU]] lavorare contemporaneamente sui dati in [[virgola mobile]] e i dati SIMD contemporaneamente, ma può operare solo sugli interi.
SSE aggiunge otto nuovi registri a 128 [[bit]] con nomi che vanno da XMM0 a XMM7. Ogni registro raggruppa quattro numeri a virgola mobile a 32 bit (precisione singola).
PoichèPoiché questi registri a 128 bit rappresentano stati aggiuntivi che il [[sistema operativo]] deve preservare durante il cambio di contesto dei [[task]], essi sono disabilitati finchèfinché il sistema operativo non li abilita esplicitamente. Questo significa che il [[sistema operativo|SO]] deve essere programmato per utilizzare le istruzioni FXSAVE e FXRSTR, che sono la coppia di istruzioni introdotte da SSE per salvare in un'unica operazione i registri [[x86]], MMX, 3DNow! e SSE. Il supporto per queste istruzioni fu velocemente aggiunto velocemente a tutti i principali sistemi operativi a 32 bit.
Poiché SSE aggiunge il supporto per la virgola mobile, fu molto più utilizzato di MMX dato che tutte le schede video gestiscono internamente i calcoli sui numeri interi. Con l'introduzione di [[SSE2]] anche gli interi possono essere utilizzati con i nuovi registri XMM, perciò l'[[instructionistruction set]] MMX adesso è ridondante.
Sul [[Pentium III]], comunque, SSE è implementato utilizzando gli stessi circuiti della [[FPU]], il che significa che la [[CPU]] non può inviare nella [[pipeline]] contemporaneamente le istruzioni SSE e quelle riguardanti la virgola mobile. I registri separati permettono di mischiaremescolare le operazioni SIMD e a virgola mobile, ma senza le prestazioni raggiunte passando esplicitamente dalla mobdalità a virgola mobile a quella MMX.
Il [[Pentium 4]] della [[Intel]] implementa [[SSE2]], un estensione all'[[instructiondel set]] di istruzioni SSE. Le caratteristiche principali di SSE2 sono il supporto per i numeri a virgola mobile a doppia precisione (64 bit) e il supporto per gli interi nel vettore di registri a 128 bit introdotti con SSE, il che permette al programmatore di utilizzare i registri MMX. Lo stesso SSE2 è stato esteso da [[SSE3]].
[[de:Internet Streaming SIMD Extensions]]
|