Dzisiaj jest 24 czerwca 2025 r.
Chcę dodać własny artykuł
Reklama

Streaming SIMD Extensions

Chcę dodać własny artykuł

Wprowadzenie do SSE

SSE (Streaming SIMD Extensions) to zestaw instrukcji wprowadzony w 1999 roku przez firmę Intel, przeznaczony do procesorów Pentium III. SSE umożliwia wykonywanie operacji na wektorach liczb zmiennoprzecinkowych pojedynczej precyzji oraz wprowadza nowe rozkazy i zmiany w architekturze procesora.

Architektura i typy danych

SSE wprowadza 8 rejestrów XMM (128 bitów) oraz 32-bitowy rejestr kontrolny MXCSR. Działa na 4-elementowych wektorach liczb zmiennoprzecinkowych (32 bity każdy). SSE obsługuje dwa rodzaje operacji arytmetycznych:

  • Packed – równoległe operacje na wszystkich elementach wektora.
  • Scalar – operacje na pojedynczym elemencie wektora.

Mnemoniki instrukcji

Mnemoniki rozkazów SSE dla wektorów liczb całkowitych zaczynają się od litery P. Dla liczb zmiennoprzecinkowych używane są sufiksy:

  • PS – operacje na wektorach.
  • SS – operacje skalarne.

Działania arytmetyczne i logiczne

Instrukcje SSE obejmują operacje arytmetyczne, takie jak dodawanie, odejmowanie, mnożenie i dzielenie, a także operacje logiczne na poziomie bitów, jak suma, iloczyn i różnica symetryczna.

Porównania i konwersje

SSE pozwala na porównania, które mogą modyfikować rejestry SSE lub rejestr flag. Dodatkowo, SSE obsługuje konwersje między liczbami całkowitymi a zmiennoprzecinkowymi, z różnymi metodami zaokrąglania.

Rozmieszczenie elementów w wektorze

Rozkazy takie jak SHUFPS i UNPCK umożliwiają elastyczne rozmieszczanie elementów w wektorach.

Rejestr kontrolny MXCSR

Rejestr MXCSR przechowuje ustawienia operacji zmiennoprzecinkowych oraz maski wyjątków. Umożliwia kontrolę nad zaokrąglaniem, flagami błędów i innymi parametrami operacji matematycznych.

Przesyłanie danych

Rozkazy jak MOVAPS i MOVUPS umożliwiają przesyłanie danych między rejestrami a pamięcią, z różnymi wymaganiami dotyczącymi wyrównania.

Pamięć podręczna i trwały zapis

SSE wprowadza rozkazy PREFETCH do optymalizacji dostępu do pamięci oraz instrukcje do trwałego zapisu, które pomijają pamięć podręczną.

Rozszerzenia SSE

W kolejnych latach wprowadzono rozszerzenia SSE, m.in. SSE2, SSE3, SSE4 oraz SSE5, które wprowadziły dodatkowe rozkazy i zwiększyły możliwości operacji na danych.

W skrócie, SSE to zaawansowany zestaw instrukcji, który znacząco zwiększa wydajność obliczeń zmiennoprzecinkowych i całkowitych w nowoczesnych architekturach procesorów.