SSE

Voor de gelijknamige voetbalclub, zie SSE (voetbalclub)
Voorstelling van de toegevoegde SSE-registers, naast de bestaande MMX-registers in de oude FPU-registers. De tekens rechts naast de registers zijn hun namen: ze nummeren door van 0 t.e.m. 7. De getallen in de vakjes geven in bits de grenzen aan die het bereik van de specifieke registers voorstellen, en dus hun grootte.

SSE of Streaming SIMD Extensions is een instructieset ontwikkeld door Intel ter uitbreiding op de MMX-instructieset IA-32. Ze geeft SIMD-functionaliteit aan de floating point-operaties binnen een processor, en was een logische opvolger van de eerder toegevoegde MMX-instructies die enkel gehele getallen konden verwerken; berekeningen met dergelijke getallen zijn minder belangrijk in 3D-toepassingen en kunnen vaak ook door de grafische kaart afgehandeld worden.

De uitbreiding van 70 instructies is door Intel in 1999 geïntroduceerd op de Pentium III. Doordat de Pentium-processoren destijds een veel groter marktaandeel hadden dan die van AMD, is de implementatie van Intel veel sterker aangeslagen dan 3D NOW!, de door AMD ontwikkelde tegenhanger. Na de introductie van SSE in 1999 zouden een aantal uitbreidingen van deze instructieset voor 32- en 64-bit CPUs volgen onder de namen SSE2, SSE3, SSSE3, SSE4, SSE4.1 en SSE4.2.[1][2][3][4]

De grootste vooruitgang die SSE met zich meebracht, was dat er niet langer gebruik werd gemaakt van één set registers voor alle data. SSE voegde een set van acht 128-bit registers toe die speciaal gereserveerd waren voor single-precision floating-point-data. Dergelijke data hebben een vast formaat van 32 bits, waardoor er zo vier in één 128-bit register passen en via SIMD in parallel bewerkt kunnen worden.

Bijkomend voordeel is dat er zo enerzijds een stel registers gevuld kon worden met gehele MMX-data en een ander stel met floating-point SSE-data; zo had de processor data voor beide soorten bewerkingen beschikbaar. Op die manier kon men vermijden dat meerdere CPU-cycli ingenomen werden om een register met gehele data te legen vooraleer het te kunnen vullen met floating point-data uit de cache, zoals wel het geval was voor MMX indien men van datatype wou wisselen. De MMX-registers moesten bij het werken met floating point-getallen groter dan 32 bits (bijvoorbeeld volgens de double-precision-standaard, met getallen van 64 bits) overigens nog steeds geleegd worden en de getallen in de oude FPU-registers geladen worden.

Referenties

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.