SSE2 (engl. Streaming SIMD Extensions 2) on yksi IA-32:n SIMD-käskykannoista. Intel otti sen ensimmäisenä käyttöön Pentium 4 -suorittimen ensiversion myötä vuonna 2001. SSE2 lisäsi aikaisempaan 70-käskyiseen SSE-käskykantaan 144 käskyä ja korvasi täysin MMX:n. SSE2-käskykantaa on edelleen laajennettu SSE3:lla, joka tunnetaan myös nimellä "Prescott New Instructions" (suom. Prescottin uudet käskyt). Sen Intel otti käyttöön vuoden 2004 alussa.

Kilpaileva suoritinvalmistaja AMD lisäsi tuen SSE2-käskykannalle omien 64-bittisten suorittimiensa (AMD Opteron ja AMD Athlon 64) käyttöönoton yhteydessä ja vuonna 2005 lisäsi tuen SSE3-käskykannalle päivittämällä suorittimensa "E"-merkinnällä.

Muutokset muokkaa

SSE2 lisäsi tuen kaksoistarkkuuden (64-bittisille) IEEE-liukuluvuille ja 64-, 32-, 16- ja 8-bittisille kokonaislukuoperaatioille SSE:n yhteydessä käyttöön otetuissa kahdeksassa 128-bittisessä XMM-suoritinrekisterissä. Kokonaislukuoperaatioiden lisäys mahdollistaa liukuluku- ja kokonaislukuoperaatioiden sekoittamisen ilman MMX:n vaatimaa tilanvaihtoa MMX- ja x87-liukulukuoperaatioiden välillä.

Muut SSE2:n laajennukset sisältävät suorittimen välimuistin hallinnan, joka on tarkoitettu etupäässä välimuistin hallintaan käsiteltäessä jatkuvaa datavirtaa. Lisäksi käskykannassa on lukuformaattien muunnoskäskyt.

AMD:n toteutus SSE2-kannasta AMD64-alustalla sisältää lisäksi vielä 8 rekisteriä eli se sisältää yhteensä 16 XMM-rekisteriä (XMM0–XMM15). Nämä lisärekisterit ovat näkyvissä vain mikäli suoritin on 64-bittisessä tilassa. Intel hyväksyi nämä lisärekisterit osana tukea AMD64:n arkkitehtuurille vuonna 2004.

Erot x87-kaksoistarkkuuden ja SSE2:n välillä muokkaa

x87:n FPU-käskyt tallettavat aina välitulokset 80 bitin tarkkuudella. Kun perinteiset FPU-ohjelmistoalgoritmit siirretään käyttämään SSE2:ta, tuloksissa voi olla poikkeamia. Tällä on vaikutusta etenkin tieteellisessä laskennassa.

Kääntäjät muokkaa

Kun SSE2 otettiin ensi kerran käyttöön (vuonna 2001), ohjelmistokehitystyökalut eivät vielä tukeneet sitä. Esimerkiksi mikäli ohjelmoija halusi käyttää SSE2-käskyjä omassa Microsoft Developer Studio -projektissaan hänen oli joko käsin kirjoitettava assembly-koodia tai tuotava objektikoodia ulkoisesta lähteestä (kuten Microsoftin MASM:ista).

Intelin C-kääntäjä osaa itsestään luoda SSE/SSE2-koodia ilman käsin kirjoitettua assembly-koodiakin. Näin ohjelmoivat voivat assembly-tason toteutuksen asemesta keskittyä algoritmiseen kehitystyöhön. Käyttöönottonsa myötä Intelin C-kääntäjä on suuresti lisännyt SSE2:n yleistä hyväksyntää Windows-ohjelmistokehitystyössä.

SSE2-käskykanta on nykyisin pakollinen modernien käyttöjärjestelmien ajamiseksi. Windows 7 lakkasi tukemasta prosessoreja ilman sitä maaliskuun 2018 päivityksessä. Käskykanta on aina ollut pakollinen Windows 8:n tai uudemman asentamiseksi.[1]

Merkittävin suoritin ilman SSE2-tukea on Pentium III.

SSE2-käskykantaa tukevat suorittimet muokkaa

Lähteet muokkaa

 
Käännös suomeksi
Tämä artikkeli tai sen osa on käännetty tai siihen on haettu tietoja muunkielisen Wikipedian artikkelista.