Najlepsze pytania
Chronologia
Czat
Perspektywa

Niejednolity dostęp do pamięci

Z Wikipedii, wolnej encyklopedii

Remove ads

Niejednolity dostęp do pamięci, NUMA (ang. Non-Uniform Memory Access) – sposób organizacji pamięci w architekturze komputerowej wykorzystywanej do przetwarzania współbieżnego[1], w której czas dostępu do pamięci zależny jest od położenia względem procesora. Każdy procesor dysponuje własną, lokalną pulą pamięci, do której dostęp jest szybszy niż do pamięci bardziej oddalonej. Celem NUMA jest zwiększenie wydajności operacji na pamięci poprzez przypisanie lokalnych zasobów pamięciowych do poszczególnych procesorów[2].

Remove ads

Non-Uniform Memory Access – architektura z niejednolitym dostępem do pamięci

Non-Uniform Memory Access lub Non-Uniform Memory Architecture (NUMA) jest sposobem organizacji dostępu do pamięci komputera stosowanym w maszynach wieloprocesorowych, gdzie czas dostępu do pamięci zależy od miejsca pamięci względem procesora. Pod NUMA procesor może uzyskać dostęp do własnej pamięci lokalnej szybciej niż do pamięci obsługiwanej przez inne procesory lub pamięci współdzielonej pomiędzy procesorami.

Logicznie, architektury NUMA wywodzą się od symetrycznych architektur wieloprocesorowych (SMP). Ich komercyjny rozwój nastąpił dzięki przedsiębiorstwom Burroughs (później Unisys), Convex Computer (później Hewlett-Packard), Silicon Graphics, Sequent Computer Systems(inne języki), Data General(inne języki) i Digital w latach 90. Techniki opracowane przez te przedsiębiorstwa były później wykorzystywane w różnych systemach operacyjnych typu Unix, a także, w pewnym stopniu, w systemach Windows NT.

Remove ads

Koncepcja

Architektura ta zakłada, że każdy procesor ma przydzieloną oddzielną pamięć operacyjną; fizycznie pamięć jest podzielona. Komputery oparte na tej architekturze zwykle posiadają co najmniej dwa procesory, z których każdy kontroluje określoną pulę pamięci operacyjnej. Niejednolity czas dostępu oznacza, że procesor szybciej uzyskuje dostęp do pamięci, którą kontroluje, niż do pamięci obsługiwanej przez inne procesory. W efekcie czas dostępu do pamięci zależy od jej położenia względem procesora.

Remove ads

Cache coherent NUMA (ccNUMA) – architektura NUMA ze spójną pamięcią podręczną

Podsumowanie
Perspektywa
Osobny artykuł: CCNUMA.

Prawie wszystkie architektury procesorów używają małych, bardzo szybkich, niewspółdzielonych pamięci podręcznych zwanych cache, do których rdzenie procesorów mają wielokrotnie krótszy czas dostępu. W architekturze NUMA utrzymanie spójności pamięci podręcznej wiąże się z dużym obciążeniem

Nawet prostsze do zaprojektowania i budowy systemy non-cache-coherent NUMA okazały się wyjątkowo trudne do zaprogramowania w standardowym modelu programowania architektury von Neumanna. W rezultacie wszystkie komputery NUMA sprzedawane na rynku używają specjalnego sprzętu, aby utrzymać spójność pamięci cache i nazywa się je cache-coherent NUMA – w skrócie ccNUMA.

W przypadku, gdy więcej niż jedna pamięć podręczna odwzorowuje ten sam obszar pamięci wspólnej, zazwyczaj spójność pamięci podręcznej realizowana jest za pomocą wewnątrz procesorowej komunikacji pomiędzy kontrolerami pamięci podręcznej. Z tego powodu ccNUMA wypada słabo, gdy wiele procesorów próbuje uzyskać dostęp do tego samego obszaru pamięci w krótkim odstępie czasu. Systemy operacyjne wspierające NUMA starają się minimalizować częstotliwość dostępu do odległej pamięci poprzez przydzielanie procesorów i pamięci w sposób uwzględniający architekturę NUMA. Oznacza to unikanie sytuacji, w których wątki są przydzielane do procesorów znajdujących się w innym węźle NUMA niż ich pamięć, a także stosowanie mechanizmów szeregowania i blokowania zapobiegających nieefektywnym dostępom do zdalnych zasobów.

Alternatywnie, protokoły spójności cache, takie jak protokół MESIF, próbują ograniczyć komunikację do minimum niezbędnego do zachowania spójności cache. Scalable Coherent Interface (SCI) to standard opracowany przez IEEE, który definiuje sposób zarządzania spójnością pamięci podręcznej w systemach wieloprocesorowych. W przeciwieństwie do wcześniejszych rozwiązań, które miały ograniczoną skalowalność, SCI wykorzystuje mechanizm katalogowy do śledzenia stanu pamięci podręcznej, co pozwala na efektywniejszą komunikację między procesorami. Technologia ta została zastosowana m.in. w rozwiązaniu NumaConnect, usprawniającym działanie systemów NUMA.

Obecne systemy ccNUMA mogą być realizowane bez zewnętrznej logiki, za pomocą odpowiedniego chipsetu dla wsparcia NUMA. Przykładami aktywnych chipsetów ccNUMA są SGI Shub (Super hub), Intel E8870, HP sx2000 (stosowane w serwerach Integrity i Superdome), ostatnie w systemach NEC oparte na procesorach Itanium. Wcześniejsze systemy ccNUMA, takie jak te z Silicon Graphics, były oparte na procesorach MIPS i DEC Alpha 21364 (EV7).

Intel zapowiedział wprowadzenie NUMA do swoich serwerów x86 i Itanium pod koniec 2007 roku, wraz z procesorami Nehalem i Tukwila. Obie rodziny procesorów dzielą wspólne chipsety; komunikacja między procesorami realizowana jest poprzez połączenia QuickPath Interconnect (QPI).

Remove ads

NUMA czy przetwarzanie klastrowe

NUMA bywa porównywana do ściśle powiązanej formy klastrów komputerowych. Wdrożenie NUMA jest możliwe także w środowiskach bez dedykowanego wsparcia sprzętowego, poprzez zastosowanie stronicowanej pamięci wirtualnej w architekturze klastra. Jednakże w NUMA realizowanej programowo (np. vSMP) opóźnienia transmisji danych między węzłami są znacznie większe niż w rozwiązaniach sprzętowych. jeśli to czytasz to cześć i widzisz że wikipedie da się zmienić i nie każda wiadomość może być prawdziwa.

Remove ads

Zobacz też

Przypisy

Bibliografia

Linki zewnętrzne

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads