Связность памяти

редактировать

Согласованность памяти - это проблема, которая влияет на дизайн компьютерных систем, в которых два или более процессора или ядра совместно используют общую область памяти.

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

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

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

При аппаратной реализации протокол согласованности может, например, быть основан на каталоге или отслеживании (также называемом сниффингом ). Конкретные протоколы включают протокол MSI и его производные MESI, MOSI и MOESI.

Смотрите также
использованная литература
Последняя правка сделана 2024-01-02 06:54:57
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте