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

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

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

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

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

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

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

См. также

Литература

Ссылки



Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Полезное


Смотреть что такое "Когерентность памяти" в других словарях:

  • Когерентность кэша — Несколько кэшей для разделяемого ресурса памяти Когерентность кэша (англ. cache coherence) свойство кэшей, означающее целостность данных, хранящихся в локальных …   Википедия

  • Когерентность — В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена. Вы можете …   Википедия

  • КОГЕРЕНТНОСТЬ — (от лат. cohaerere быть связанным) – взаимосвязь. Принцип когерентности заключается в утверждении, что все существующее находится во взаимосвязи; когерентные законы онтологии выражают связь в том плане, в каком она существует между категориями… …   Философская энциклопедия

  • Message Passing Interface — Сюда перенаправляется запрос «OpenMPI». На эту тему нужна отдельная статья. Message Passing Interface (MPI, интерфейс передачи сообщений) программный интерфейс (API) для передачи информации, который позволяет обмениваться сообщениями между… …   Википедия

  • Параллельные вычислительные системы — Не следует путать с Распределённые вычисления. Параллельные вычислительные системы  это физические компьютерные, а также программные системы, реализующие тем или иным способом параллельную обработку данных на многих вычислительных узлах.[1]… …   Википедия

  • Unified Parallel C — (UPC) Класс языка: параллельный, императивный (процедурный), структурный Автор(ы): UPC Consortium Релиз: 2.12.2/2011 5 18 Типизация данных: статическая Основные реализации …   Википедия

  • Поток выполнения — Для термина «Поток» см. другие значения. Процесс с двумя потоками выполнения на одном процессоре Поток выполнения (анг …   Википедия

  • Non-Uniform Memory Access — NUMA (Non Uniform Memory Access  «неравномерный доступ к памяти» или Non Uniform Memory Architecture  «Архитектура с неравномерной памятью»)  схема реализации компьютерной памяти, используемая в мультипроцессорных системах, когда …   Википедия

  • OpenMP — (Open Multi Processing)  открытый стандарт для распараллеливания программ на языках Си, Си++ и Фортран. Описывает совокупность директив компилятора, библиотечных процедур и переменных окружения, которые предназначены для программирования… …   Википедия

  • Intelligent Platform Management Interface — IPMI (от англ. Intelligent Platform Management Interface)  интеллектуальный интерфейс управления платформой, предназначенный для автономного мониторинга и управления функциями, встроенными непосредственно в аппаратное и микропрограммное …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»