SIMD

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania

SIMD (ang. Single Instruction, Multiple Data) – jeden z podstawowych rodzajów architektur komputerowych według taksonomii Flynna, obejmujący systemy, w których przetwarzanych jest wiele strumieni danych w oparciu o pojedynczy strumień rozkazów. Architektura SIMD jest charakterystyczna dla komputerów wektorowych.

Supplemental Streaming SIMD Extension 3 (SSSE3) - zestaw instrukcji SSE czwartej generacji, rozszerzenie SSE3. SSSE3 jest błędnie nazywane jako SSE4, Tejas New Instructions (TNI) lub Merom New Instructions (MNI).AltiVec to stało- i zmiennopozycyjny zestaw instrukcji klasy SIMD zaprojektowany przez konsorcjum AIM (Apple, IBM i Motorola), zaimplementowany w mikroprocesorach PowerPC serii G4 (Motorola) oraz G5 (IBM). AltiVec jest zarezerwowanym znakiem handlowym firmy Motorola, więc pozostali członkowie konsorcjum używają nazw Velocity Engine (Apple) oraz VMX (IBM).

Pierwsze komputery o architekturze SIMD stosowano głównie do obliczeń naukowo-technicznych (np. Geometric-Arithmetic Parallel Processor czy superkomputery CM-1 i CM-2 z serii Connection Machine). Obecnie jednostki realizujące zadania zgodnie z metodologią SIMD obecne są także w stosowanych w domowych komputerach procesorach opartych na architekturze x86 (i386) oraz x86-64 (amd64). Procesory te oferują listę rozkazów poszerzoną o zestawy rozkazów typu SIMD, takie jak: MMX, 3DNow!, SSE, SSE2, SSE3, SSSE3, SSE4, SSE5, AVX, AltiVec.

Definicja intuicyjna: SSE to dodatkowe rozkazy rozpoznawane przez mikroprocesory firmy Intel oraz kompatybilnych, które pozwalają znacznie szybciej wykonywać obliczenia matematyczne, szczególnie te wykorzystywane w dziedzinie multimediów, co przekłada się na zwiększenie efektywności działania m.in. gier komputerowych, programów graficznych, muzycznych, kodowania filmów i muzyki.MMX (MultiMedia eXtensions lub Matrix Math eXtensions) to zestaw 57 instrukcji SIMD dla procesorów Pentium i zgodnych. Rozkazy MMX mogą realizować działania logiczne i arytmetyczne na liczbach całkowitych. Pierwotnie wprowadzone w 1996 przez Intela dla procesorów Pentium MMX, aktualnie dostępne również na procesory innych producentów – wraz z rozwojem procesorów i dodawaniem nowych rozszerzeń (np. SSE) zbiór rozkazów MMX powiększał się. Instrukcje te są wykorzystywane przez procesory od Intel Pentium MMX i AMD K6 wzwyż.
x86-64 (nazywane też amd64 i x64) – opracowane przez AMD rozszerzenie architektury IA-32, którego głównym celem było ułatwienie zarządzania pamięcią operacyjną powyżej 4GiB poprzez dodanie obsługi 64-bitowych liczb stałoprzecinkowych do jednostki arytmetyczno-logicznej. Ze względu na zachowanie wysokiej zgodności wstecznej, możliwe jest jednoczesne uruchamianie aplikacji 32- i 64-bitowych. Pierwszymi procesorami implementującymi nową architekturę były zaprezentowane w roku 2003 Opteron i Athlon 64. Później swoje implementacje wprowadziły firmy Intel (Intel 64) i VIA.AVX (Advanced Vector Extensions) – rozszerzenie zestawu instrukcji SSE opublikowane w marcu 2008 przez firmę Intel. Jako pierwszy procesor zawierający ten zestaw instrukcji miał się pojawić w pierwszym kwartale 2011 roku i być oparty na układzie Sandy Bridge firmy Intel. AMD zapowiadał wprowadzenie procesora z AVX na trzeci kwartał 2011 roku - miałby być to układ BullDozer.




Warto wiedzieć że... beta

3DNow! – rozszerzenie architektury procesorów x86 stworzone przez firmę AMD w 1998 roku dla procesora AMD K6-2, znacznie zwiększające wydajność obliczeń zmiennoprzecinkowych, potrzebne do odtwarzania grafiki trójwymiarowej i multimediów. Był to pierwszy przypadek wprowadzenia takich istotnych zmian przez firmę inną niż Intel. Technologia 3DNow! uzupełnia i rozszerza możliwości akceleratorów graficznych, przyspieszając obliczenia zmiennoprzecinkowe występujące w początkowych etapach przetwarzania grafiki. Technologia ta pozwala uzyskać do 4 wyników zmiennoprzecinkowych w ciągu jednego cyklu pracy procesora.
Connection Machine - seria superkomputerów produkowanych przez Thinking Machines Corporation w latach 80. i 90. XX wieku. Oparte były o architekturę alternatywną do architektury von Neumanna, programowane w języku Lisp i w zamierzeniu miały umożliwić uzyskanie sztucznej inteligencji. W 1993 roku wersja CM-5 FROSTBURG była najszybszym superkomputerem na świecie, uzyskując wydajność 65 GFLOPS.
Streaming SIMD Extensions 5 (SSE5) - planowane rozszerzenie listy rozkazów SIMD dostępnych w procesorach x86, zdefiniowane przez firmę AMD 30 sierpnia 2007 roku; pierwszym procesorem implementującym SSE5 będzie "Bulldozer" produkowany od 2011 roku. Szczegóły na temat sposobu kodowania instrukcji zostały zrewidowane w maju 2009, ze względu na lepszą kompatybilność z zestawem instrukcji AVX autorstwa Intela.
Strumień danych definiowany jest w źródłach literaturowych w różny sposób. Poniżej przedstawiono kilka stosowanych definicji:
Streaming SIMD Extensions 3 (SSE3, oznaczany również przez firmę Intel jako Prescott New Instructions lub PNI) to kolejny zestaw instrukcji SIMD wykorzystywany w architekturze IA-32. Wcześniejsze zestawy SIMD stosowane na platformie x86, od najstarszej to: MMX, 3DNow! (używany tylko przez AMD), SSE i SSE2.
Komputer wektorowy - zgodnie z taksonomią Flynna komputery wektorowe należą do grupy SIMD. Cecha wyróżniającą je w tej grupie jest to, że zawierają procesor wektorowy wykonujący w sposób potokowy rozkazy wektorowe. Polega to na powtarzaniu ciągu elementarnych operacji arytmetycznych na strumieniach danych tworzących wektor.
Taksonomia Flynna jest klasyfikacją architektur komputerowych, zaproponowaną w latach sześćdziesiątych XX wieku przez Michaela Flynna, opierającą się na liczbie przetwarzanych strumieni danych i strumieni rozkazów.

Reklama