SSE: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
DodekBot (overleg | bijdragen)
k robot Erbij: id:SSE
kGeen bewerkingssamenvatting
Regel 1:
[[Afbeelding:SSE_registers.PNG|400px|thumb|Voorstelling van de toegevoegde SSE registers, naast de bestaande MMX registers in de oude [[Floating Point Unit|FPU]] registers. De tekens rechts naast de registers zijn hun namen, deze nummeren door van 0 tot 7. De getallen in de vakjes geven de grenzen in bits aan wat het bereik van de specifieke registers voorstelt, en dus hun grootte.]]
'''SSE''' is een uitbreiding op de [[IA-32]] instructieset die [[SIMD]] functionaliteit geeft aan de ''floating point operaties'' binnen een [[processor]]. Deze uitbreiding was een logische stap omdat de eerder toegevoegde [[MMX]] instructies alleen [[integer data]] konden verwerken terwijl dit soort databewerkingen bij 3d applicaties3D-ptrogramma's minder belangrijk zijn en vaak ook door de grafische kaart afgehandeld konden worden. De 70 instructies tellende set uitbreidingen is door [[Intel]] ontwikkeld en voor het eerst gelanceerd met hun Pentium [[Pentium_III_(processor)|3]]. Doordat de Pentium processoren destijds een veel groter marktaandeel hadden dan die van [[Advanced Micro Devices|AMD]] is de Intel oplossing veel beter aangeslagen dan de tegenhanger [[3D NOW!]] die door AMD ontwikkeld was.
 
De 70 instructies tellende set uitbreidingen is door [[Intel]] ontwikkeld en voor het eerst gelanceerd met hun Pentium [[Pentium_III_(processor)|3]]. Doordat de Pentium processoren destijds een veel groter marktaandeel hadden dan die van [[Advanced Micro Devices|AMD]] is de Intel oplossing veel beter aangeslagen dan de tegenhanger [[3D NOW!]] die door AMD ontwikkeld was.
 
 
{| align="right" border="1"
|-----
|
[[Afbeelding:SSE_registers.PNG]]
|-----
|
voostelling van de toegevoegde SSE registers, naast de bestaande MMX registers<br />
in de oude [[Floating Point Unit|FPU]] registers. De tekens rechts naast de registers zijn hun namen, deze<br />
nummeren door van 0 tot 7. De getallen in de vakjes geven de grenzen in bits aan<br />
wat het bereik van de specifieke registers voorstelt, en dus hun grootte.
|}
De grootste vooruitgang bij SSE was dat er niet langer gebruik werd gemaakt van één set registers voor alle data, er was een set van 8 128 bit grote registers toegevoegd die speciaal gereserveerd waren voor ''single precision floating point'' data. Omdat deze data een vast formaat heeft van 32 bits passen er dankzij SIMD 4 van deze dataeenheden in één register, en kunnen deze tegelijk bewerkt worden. Bijkomend voordeel is dat er altijd een set registers gevuld kon worden met [[MMX]] integer data en de andere met SSE floating point data, de processor had dus altijd data voor allebei de soorten bewerkingen beschikbaar. Dus kan hier meteen mee gewerkt worden in plaats van net als bij MMX een aantal CPU cycles bezig te zijn met het register leeggooien, wachten op gegevens uit de [[cache]] en het opnieuw vullen van de registers bij het wisselen van de soort bewerking. Overigens moeten bij het werken met floating point getallen die groter zijn dan 32 bits (bijvoorbeeld bij double precision, met 64 bits) nog steeds de MMX registers geleegd worden en de getallen in de oude FPU registers geladen worden.