Интернет магазин китайских планшетных компьютеров



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

23 января 2011





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

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

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

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

При аппаратной реализации протокола когерентности можно использовать сниффинг шины , применять специальные таблицы-справочники. В качестве примера конкретного протокола можно привести MSI и его разновидности MESI, MOSI и MOESI.



Просмотров: 679


<<< Высокопродуктивные компьютерные системы (программа)
Массово-параллельная архитектура >>>