Skip to main content

Co to jest spójność pamięci?

Spójność pamięci jest problemem występującym w komputerze, gdy procesor próbuje spojrzeć na sektor pamięci.Problem ten występuje tylko w systemach wielordzeniowych lub komputerach, które mają więcej niż jedną centralną jednostkę przetwarzania (CPU).Gdy wiele procesorów patrzy na ten sam sektor pamięci, a jeden aktualizuje sektor, drugi może pozostać ze starą wersją pamięci komputera.Aby rozwiązać ten problem, stosowane są reguły spójności, aby procesory albo nie mają dostępu do tej samej pamięci lub że aktualizacje są między nimi spójne.Istnieje kilka różnych modeli spójności, więc programiści i programiści komputerowi muszą znać dokładny model.

Problem koherencji pamięci jest taki, który występuje tylko na komputerach, które używają co najmniej dwóch procesorów ze względu na to, jak uzyskują dostęp do pamięci.Gdy jeden procesor uzyskuje dostęp do sektora pamięci, jest w stanie brać, używać i zmieniać pamięć bez żadnego konfliktu, ponieważ nie ma innych elementów sprzętowych konkurujących o pamięć.Jeśli używane są dwa procesory, dwa procesory mogą pobrać ten sam sektor pamięci.Chociaż nie ma problemów z dwoma procesorami dzielącymi pamięć, pojawia się problem, jeśli jeden procesor zaktualizuje pamięć.To pozostawia drugi procesor z przestarzałą pamięcią, która, jeśli pozostanie niezaznaczona, może spowodować, że cały komputer ma dwie oddzielne i sprzeczne wersje pamięci komputera.

Istnieją schematy programowania specjalnie w celu skorygowania spójności pamięci, co może być poważnym problemem.Są one znane wspólnie jako zasady spójności pamięci i istnieje wiele wersji.Ogólnie rzecz biorąc, każda wersja informuje wiele procesorów, jak prawidłowo udostępniać pamięć komputera bez powodowania problemu spójności pamięci.Można tego dokonać, aktualizując obie wersje pamięci, gdy jedna wersja jest zmieniana lub uniemożliwiając jednocześnie dostęp do tej samej pamięci.

Podczas stosowania reguł spójności pomaga uniknąć problemu spójności pamięci, powstaje inny problem.Każdy zestaw spójności ma inne programowanie i różne reguły, więc programiści, którzy tworzą programy lub piszą kod, który zajmuje się bezpośrednio procesorem, będą musieli dostosować kodowanie do dokładnych zasad spójności.Jeśli nie, może to albo zastąpić spójność, albo spowodować poważny konflikt między kodowaniem programisty a regułami spójności, a komputer może przestać działać.