Chefeat.ru

Здоровое питание

Когерентность памяти

31-05-2023

Когерентность памяти (англ. memory coherence) — свойство компьютерных систем, в которых два или более процессора или ядра имеют доступ к общей области памяти.

В однопроцессорных системах (более строго — в одноядерных) лишь один процессорный узел выполняет всю работу, следовательно, только он один может выполнять чтение и запись определённой области памяти. В результате, когда содержимое ячейки меняется, все последующие операции чтения по данному адресу получат обновлённое значение даже при наличии кэширования.

С другой стороны, в многопроцессорных (многоядерных) системах несколько процессорных узлов работают одновременно, поэтому возможна ситуация параллельного доступа к одной ячейке памяти. При условии, что ни один из них не меняет значение данной ячейки, они могут сводобно пользоваться ей совместно, кэшируя по своему усмотрению. Но как только один из них обновляет значение ячейки, данные в локальных кэшах других узлов могут оказаться устаревшими. Следовательно, необходим механизм уведомления всех узлов об изменении значения в общей памяти; такой механизм называется протоколом когерентности (англ. memory coherence protocol). Если подобный протокол применён, то говорят, что система имеет «когерентную память» (англ. coherent memory).

Точная природа и смысл механизма когерентности определяется моделью консистентности, реализованной в протоколе. Чтобы писать правильные параллельные программы, программисты должны быть в курсе того, какая именно модель консистентности применена в их системах.

При аппаратной реализации протокола когерентности можно использовать сниффинг (снупинг) шины (англ.), применять специальные таблицы-справочники (англ. directory-based). В качестве примера конкретного протокола можно привести MSI (англ. Modified/Shared/Invalid) и его разновидности MESI, MOSI и MOESI.

См. также

Литература

  • (December 1978) «A New Solution to Coherence Problems in Multicache Systems» (pdf). IEEE Transactions on Computers (10.1109/TC.1978.1675013. Проверено 2011-07-22.
  • (September 1982) «Cache Memories» (pdf). ACM Computing Surveys (10.1145/356887.356892. Проверено 2011-07-22.
  • (November 1989) «Memory coherence in shared virtual memory systems» (pdf). Transactions on Computer Systems (10.1145/75104.75105. Проверено 2011-07-22.
  • (June 1990) «A survey of cache coherence schemes for multiprocessors» (pdf). IEEE Computer (10.1109/2.55497. Проверено 2011-07-22.

Ссылки

  • Применение справочника для поддержки когерентности памяти в системе «Эльбрус-2S»


Когерентность памяти.

© 2014–2023 chefeat.ru, Россия, Челябинск, ул. Речная 27, +7 (351) 365-27-13