Symetria procesoraEdit

W systemie wieloprocesorowym wszystkie procesory mogą być równe lub niektóre mogą być zarezerwowane do specjalnych celów. Połączenie sprzętu i oprogramowania systemu operacyjnego określa symetrię (lub jej brak) w danym systemie. Na przykład, względy sprzętowe lub programowe mogą wymagać, aby tylko jeden konkretny CPU odpowiadał na wszystkie przerwania sprzętowe, podczas gdy wszystkie inne prace w systemie mogą być równo rozdzielone między CPU; lub wykonywanie kodu w trybie jądra może być ograniczone tylko do jednego konkretnego CPU, podczas gdy kod w trybie użytkownika może być wykonywany w dowolnej kombinacji procesorów. Systemy wieloprocesorowe są często łatwiejsze do zaprojektowania, jeśli takie ograniczenia są nałożone, ale mają tendencję do bycia mniej wydajnymi niż systemy, w których wszystkie procesory są wykorzystywane.

Systemy, które traktują wszystkie procesory jednakowo są nazywane symetrycznymi systemami wieloprocesorowymi (SMP). W systemach, w których wszystkie procesory nie są równe, zasoby systemowe mogą być dzielone na wiele sposobów, w tym wieloprocesorowość asymetryczna (ASMP), wieloprocesorowość z niejednolitym dostępem do pamięci (NUMA) i wieloprocesorowość klastrowa.

System wieloprocesorowy master/slaveEdit

W systemie wieloprocesorowym master/slave procesor główny kontroluje komputer, a procesory podrzędne wykonują przypisane im zadania. Procesory mogą być całkowicie różne pod względem szybkości i architektury. Niektóre (lub wszystkie) CPU mogą mieć wspólną magistralę, każdy z nich może mieć również prywatną magistralę (dla prywatnych zasobów), lub mogą być odizolowane z wyjątkiem wspólnej ścieżki komunikacyjnej. Podobnie, procesory mogą współdzielić wspólną pamięć RAM i/lub posiadać prywatną pamięć RAM, do której inne procesory nie mają dostępu. Role master i slave mogą się zmieniać z jednego procesora na drugi.

Wczesnym przykładem systemu wieloprocesorowego master/slave jest komputer stacjonarny Tandy/Radio Shack TRS-80 Model 16, który pojawił się w lutym 1982 roku i działał w systemie operacyjnym Xenix z wieloma użytkownikami/wielozadaniowością, wersji UNIX Microsoftu (zwanej TRS-XENIX). Model 16 posiadał 3 mikroprocesory, 8-bitowy procesor Zilog Z80 pracujący z częstotliwością 4MHz, 16-bitowy procesor Motorola 68000 pracujący z częstotliwością 6MHz oraz Intel 8021 w klawiaturze. Kiedy system był uruchamiany, Z-80 był procesorem nadrzędnym, a proces uruchamiania Xenix inicjalizował procesor 68000, a następnie przekazywał kontrolę do 68000, po czym procesory zamieniały się rolami i Z-80 stawał się procesorem podrzędnym, który był odpowiedzialny za wszystkie operacje we/wy, włączając w to dysk, komunikację, drukarkę i sieć, jak również klawiaturę i zintegrowany monitor, podczas gdy system operacyjny i aplikacje działały na procesorze 68000. Z-80 mógł być używany do wykonywania innych zadań.

Wcześniejszy TRS-80 Model II, który został wydany w 1979 roku, może być również uważany za system wieloprocesorowy, ponieważ miał zarówno procesor Z-80, jak i mikroprocesor Intel 8021 w klawiaturze. 8021 sprawił, że Model II był pierwszym stacjonarnym systemem komputerowym z oddzielną, odłączaną, lekką klawiaturą połączoną pojedynczym, cienkim, elastycznym przewodem, a także prawdopodobnie pierwszą klawiaturą wykorzystującą dedykowany mikroprocesor – oba te atrybuty zostały skopiowane wiele lat później przez firmy Apple i IBM.

Strumienie instrukcji i danychEdit

W przetwarzaniu wieloprocesorowym procesory mogą być używane do wykonywania pojedynczej sekwencji instrukcji w wielu kontekstach (single-instruction, multiple-data lub SIMD, często używane w przetwarzaniu wektorowym), wielu sekwencji instrukcji w jednym kontekście (multiple-instruction, single-data lub MISD, używane do redundancji w systemach fail-safe i czasami stosowane do opisania procesorów potokowych lub hyper-threading), lub wielu sekwencji instrukcji w wielu kontekstach (multiple-instruction, multiple-data lub MIMD).

Sprzężenie procesoraEdit

Ściśle sprzężony system wieloprocesorowyEdit

Ściśle sprzężone systemy wieloprocesorowe zawierają wiele procesorów, które są połączone na poziomie magistrali. Procesory te mogą mieć dostęp do centralnej pamięci współdzielonej (SMP lub UMA) lub mogą uczestniczyć w hierarchii pamięci z pamięcią lokalną i współdzieloną (SM) (NUMA). Przykładem systemu SMP klasy high-end jest IBM p690 Regatta. Procesory Intel Xeon zdominowały rynek procesorów wieloprocesorowych dla komputerów biznesowych i były jedyną główną opcją x86 do czasu pojawienia się serii procesorów Opteron firmy AMD w 2004 roku. Oba zakresy procesorów miały własną wbudowaną pamięć podręczną, ale zapewniały dostęp do pamięci współdzielonej; procesory Xeon przez wspólną rurę, a procesory Opteron przez niezależne ścieżki do systemowej pamięci RAM.

Wieloprocesorowe układy scalone, znane również jako obliczenia wielordzeniowe, obejmują więcej niż jeden procesor umieszczony na pojedynczym układzie scalonym i mogą być uważane za najbardziej ekstremalną formę ściśle sprzężonego przetwarzania wieloprocesorowego. Systemy mainframe z wieloma procesorami są często ściśle sprzężone.

Luźno sprzężony system wieloprocesorowyEdit

Główny artykuł: shared nothing architecture

Luźno sprzężone systemy wieloprocesorowe (często określane jako klastry) są oparte na wielu samodzielnych jedno- lub dwuprocesorowych komputerach typu commodity połączonych za pomocą systemu komunikacji o dużej szybkości (powszechny jest Gigabit Ethernet). Przykładem luźno sprzężonego systemu jest klaster Linux Beowulf.

Systemy ściśle sprzężone działają lepiej i są fizycznie mniejsze niż systemy luźno sprzężone, ale historycznie wymagały większych inwestycji początkowych i mogą szybko tracić na wartości; węzły w luźno sprzężonym systemie są zwykle niedrogimi komputerami klasy commodity i mogą być poddane recyklingowi jako niezależne maszyny po wycofaniu z klastra.

Zużycie energii jest również brane pod uwagę. Systemy ściśle sprzężone są zwykle znacznie bardziej wydajne energetycznie niż klastry. Dzieje się tak dlatego, że znaczna oszczędność może być realizowana poprzez projektowanie komponentów do pracy razem od początku w systemach ściśle sprzężonych, podczas gdy systemy luźno sprzężone wykorzystują komponenty, które niekoniecznie były przeznaczone specjalnie do użytku w takich systemach.

Systemy luźno sprzężone mają możliwość uruchamiania różnych systemów operacyjnych lub wersji OS na różnych systemach.

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.