SSE2
Wikipedia
SSE2 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ä.
Sisällysluettelo |
[muokkaa] Muutokset
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 8087-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.
[muokkaa] Erot x87-kaksoistarkkuuden ja SSE2:n välillä
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.
[muokkaa] Kääntäjät
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ä.
[muokkaa] SSE2-käskykantaa tukevat suorittimet
- AMD Athlon 64
- AMD Athlon 64 X2
- AMD Opteron
- AMD Sempron (vain Socket 754/939/AM2 -versiot)
- AMD Mobile Sempron
- AMD Turion 64
- Intel Pentium 4
- Intel Pentium D
- Intel Pentium Extreme Edition
- Intel Pentium M
- Intel Celeron (vain Socket 478 -versiot)
- Intel Celeron D
- Intel Celeron M
- Intel Core Solo/Duo
- Intel Core 2 Solo/Duo/Extreme
- Transmeta Efficeon
- Intel Xeon
- Via C7
[muokkaa] Merkittävät suorittimet ilman SSE2-tukea
Tässä luettelossa ei ole ollenkaan Motorola-, Via- tai muita suoritinvalmistajia.
Seuraavat suorittimet eivät tue SSE2-käskykantaa:
- AMD Athlon
- AMD Athlon XP ja MP
- AMD Duron
- AMD Sempronin Socket A -versiot
- Intel Pentium II Xeon
- Intel Pentium III Xeon
- Intel Pentium II
- Intel Pentium III
- Intel Celeron (Slot 1, Socket 370)
- Intel Itanium
- Intel Itanium 2
- IDT Centaurs-Haul Winchip
- ja muut vanhemmat suorittimet

