Wiele instrukcji, pojedyncze dane

Wiele instrukcji, pojedyncze dane
W obszarze obliczeń MISD oznacza wiele instrukcji, pojedyncze dane. MISD jest jedną z czterech równoległych architektur obliczeniowych, które podlegają taksonomii Flynna. Pozostałe trzy to SISD (pojedyncza instrukcja, pojedyncze dane), SIMD (pojedyncza instrukcja, wiele danych) i MIMD (wiele instrukcji, wiele danych). MISD jest rodzajem architektury obliczeniowej równoległej, w której wiele jednostek przetwarzania przetwarza tylko jeden strumień danych, ale każda jednostka przetwarzania działa niezależnie na różnych zestawach strumieni instrukcji należących do tego jednego strumienia danych.

W 1966 roku m.J. Flynn sklasyfikował formy równoległej architektury komputerowej na cztery grupy, które są oparte na liczbie instrukcji i elementów danych oraz współbieżności sekwencji przetwarzania (lub strumieni), danych i instrukcji. Rdzeń systemów wdrażających obliczenia równoległe są: jednostka sterująca; element przetwarzania lub procesor; i pamięć. W zależności od rodzaju architektury system może korzystać z pojedynczych lub wielu procesorów oraz pamięci udostępnionej lub rozproszonej.

Równolegle zadanie jest podzielone na części, a części są podzielone na szereg instrukcji. Instrukcje z każdej części są wykonywane jednocześnie na różnych procesorach, a części są wykonywane jednocześnie.[1]

Jak działa MISD

W MISD istnieje wiele elementów przetwarzania, które mają własną jednostkę sterującą i pamięć lokalną, która umożliwia każdemu procesorowi niezależne obsługa instrukcji. Aby przyspieszyć proces rozwiązywania problemów, problem jest podzielony na podbrypy, a każda subproblema ma swój własny zestaw programów lub strumieni instrukcji. Różne strumienie instrukcji są podawane do jednostki sterującej każdego procesora, a z kolei jednostki sterujące wysyłają strumienie instrukcji do procesorów. Każdy procesor działa zatem na danych niezależnie i przetwarza strumienie instrukcji asynchronicznie. W większości przypadków wyjście jednego procesora staje się wejściem następnego procesora, co oznacza, że ​​procesory wykonują różne programy lub rozwiążą różne podproblemy głównego problemu.

Źródło obrazu: Java T Point

W jaki sposób MIM różni się od innych klas

Każdy system komputerowy, który podlega klasyfikacji Flynna, obsługuje instrukcje i strumienie danych inaczej. Oto przegląd pozostałych trzech klas systemu komputerowego w taksonomii Flynna. Na podstawie ich opisów zobaczysz, jak każdy różni się od MISD.

SISD (pojedyncza instrukcja, pojedyncze dane)

Jak sama nazwa wskazuje, istnieje tylko jedna instrukcja i jeden strumień danych dla systemu komputerowego SSID. Jest to komputer uniprocesor, który jest również znany jako komputer sekwencyjny, ponieważ instrukcje są przetwarzane w sposób sekwencyjny. Pamięć pierwotna przechowuje dane i instrukcje, podczas gdy jednostka sterująca dekoduje instrukcje, a następnie wysyła instrukcje do procesora. Ten rodzaj architektury występuje głównie w konwencjonalnych komputerach, miniokomputerach i stacjach roboczych.

Źródło obrazu: Java T Point

SIMD (pojedyncza instrukcja, wiele danych)

W przeciwieństwie do SISD ten system komputerowy ma wiele procesorów. Procesory wykonują pojedynczą instrukcję dotyczącą różnych strumieni danych. Istnieje jedna pamięć i jedna jednostka sterująca, która pobiera dane z pamięci i wysyła te same instrukcje do wszystkich elementów przetwarzania. Chociaż procesory otrzymują te same instrukcje z jednostki sterującej, działają na różnych elementach danych. Ten rodzaj architektury jest zwykle wdrażany na komputerach lub aplikacjach stosowanych w obliczeniach naukowych, takich jak maszyna do przetwarzania wektorów Craya, w której zaangażowanych jest wiele wektorów i macierzy.

Źródło obrazu: Java T Point

MIMD (wiele instrukcji, wiele danych)

W tym równoległym modelu obliczeniowym wiele procesorów, które mają własną jednostkę sterującą, ale niekoniecznie może mieć własny moduł pamięci. Każdy procesor wykonuje osobny zestaw instrukcji i strumieni danych, które sprawiają, że maszyny MIMD są w stanie obsłużyć dowolny rodzaj aplikacji. Istnieją dwie kategorie w MIMD w oparciu o rodzaj używanej pamięci-MIMD z pamięcią współdzieloną i MIMD z pamięcią rozproszoną.

MIMD z pamięcią współdzieloną - procesory są podłączone do jednej pamięci. Komunikacja między procesorami dotyczy pamięci globalnej, dlatego wszystkie procesory mają do niej dostęp. Wszystkie transakcje i modyfikacje danych przechowywanych w pamięci globalnej są widoczne dla wszystkich procesorów.

MIMD z pamięci rozproszonej - każdy procesor ma własną pamięć, która przechowuje dane. Dane przechowywane w pamięci lokalnej procesora nie są widoczne dla wszystkich procesorów. Ponieważ pamięć nie jest udostępniana, komunikacja między procesorami przechodzi przez kanał Inter Process Communication (IPC).

Źródło obrazu: Java T Point

Gdzie jest używane?

Podczas gdy inne klasy są używane w ogólnych systemach komputerowych, MISD jest bardziej teoretyczne i nie jest praktycznie używane w wielu aplikacjach. Został zaimplementowany w tablicach skurczowych, który jest idealnym systemem do zastosowań takich jak sztuczna inteligencja, przetwarzanie obrazu, rozpoznawanie wzorów i inne zadania naśladujące przetwarzanie mózgów zwierząt. W tablicach skurczowych procesor odczytuje dane z innego procesora, wykonuje operację i wysyła wyjście, które będzie używane przez innego procesora. Ogólna struktura tablic skurczowych odzwierciedla strukturę MIBD Architektura. Istnieje jednak argument, czy MIVD jest rzeczywiście architekturą stojącą za tablicami skurczowymi, ponieważ dane wejściowe są zazwyczaj wektorem, a nie jedną wartością danych. Jednak inni twierdziliby, że wektor wejściowy jest uważany za pojedynczy zestaw danych, który kwalifikuje tablice skurczowe jako maszyny MISD. W każdym razie tablice skurczowe pozostają klasycznym przykładem MISD Architecture.

MISD jest również znane jako architektura za systemami kontroli lotu promu kosmicznego ze względu na lepsze skalowanie i efektywne wykorzystanie zasobów obliczeniowych.

Zasadniczo architektura MISD jest rzadko używana i tylko kilka maszyn buduje się przy użyciu tej architektury. Większość tych systemów nie jest dostępna komercyjnie.

Wniosek

MISD jest jedną z czterech równoległych architektur obliczeniowych sklasyfikowanych przez M.J. Flynn, gdzie wiele elementów przetwarzania przetwarza różne zestawy strumieni instrukcji z jednego strumienia danych. Każdy procesor ma własną jednostkę sterującą i pamięć, a elementy przetwarzania są przetwarzającymi strumienie instrukcji niezależnie. Wśród czterech klas MISD jest najmniej używanym rodzajem architektury z tylko dwoma znaczącymi przykładami zastosowań, w których jest używana - tablicy skurczowe i systemy kontroli lotu promu kosmicznego. Nawet do dziś nie wiele aplikacji używa MISD, ale jest to szczególnie przydatne w wysoce wyspecjalizowanych aplikacjach.

Źródła:

[1] maniacy dla maniaków. Architektura komputera | Taksonomia Flynna. 6 stycznia 2020. https: // www.geeksforgeeks.org/architektura komputerowa-flynns-taxonomia/. Dostęp 22 marca 2022