Кілька кешей для ресурсу, пам'яті
Когерентність кеш (англ. Cache coherence) - властивість кешей. що означає цілісність даних, що зберігаються в локальних кешах для ресурсу, що. Когерентність кешей - окремий випадок когерентності пам'яті (en: memory coherence).
Коли клієнти в системі використовують кешування загальних ресурсів, наприклад, пам'яті, можуть виникнути проблеми з суперечливістю даних. Це особливо справедливо по відношенню до процесорів в багатопроцесорної системі. На малюнку «Кілька кешей для ресурсу, пам'яті», якщо клієнт у верхній частині має копію блоку пам'яті з попереднього читання, а нижній клієнт змінює блок пам'яті, копія даних в кеші верхнього клієнта стає застарілою, якщо не використовуються будь-які повідомлення про зміну або перевірки змін. Когерентність кеш призначена для управління такими конфліктами і підтримки відповідності між різними кешами.
визначення
Когерентність визначає поведінку читань і записів в один і той же місце пам'яті. Кеш називається когерентним, якщо виконуються наступні умови:
- Якщо процесор Р записує значення в змінну Х, то при наступному зчитуванні Х він повинен отримати раніше записане значення, якщо між записом і читанням Х інший процесор не виробляв запис в Х. Це умова пов'язана зі збереженням порядку виконання програми. це повинно виконуватися і для однопоточному архітектури.
- Операція читання Х процесором, наступна після того, як інший процесор здійснив запис в Х, повинна повернути записане значення, якщо інші процесори не змінювали Х між двома операціями. Ця умова визначає поняття когерентної видимості пам'яті.
- Записи в одну і ту ж комірку пам'яті повинні бути послідовними. Іншими словами, якщо два процесори записують у змінну Х два значення: А, потім В - не повинно трапитися так, щоб при зчитуванні процесор спочатку отримував значення В, а потім А.
У цих умовах передбачається, що операції читання і запису відбуваються миттєво. Однак цього не відбувається на практиці через затримки пам'яті та інших особливостей архітектури. Зміни, зроблені процесором, можуть бути не видно процесору, якщо читання відбулося через дуже маленький проміжок часу після запису. Модель консистентності пам'яті визначає, коли записане значення буде видно при читанні з іншого потоку.
Механізми когерентності кешей
- Когерентність з використанням довідника (directory). Інформація про стан блоку фізичної пам'яті міститься тільки в одному місці, званому довідником (фізично довідник може бути розподілений по вузлах системи).
- Когерентність з використанням відстеження (snooping). Кожен кеш, який містить копію даних деякого блоку фізичної пам'яті, має також відповідну копію службової інформації про його стан. Централізована система записів відсутня. Зазвичай кеші розташовані на загальною (що розділяється) шині і контролери всіх кешей спостерігають за шиною (переглядають її) для визначення того, чи не містять вони копію відповідного блоку.
- Перехоплення (snarfing). Коли з якого-небудь одного кешу дані переписуються в оперативну пам'ять, контролери інших отримують сигнал про цю зміну ( "перехоплюють" інформацію про зміну даних) і, якщо необхідно, змінюють відповідні дані в своїх кешах.
Системи розподіленої пам'яті, що en: Distributed shared memory використовують схожі механізми для підтримки коректності між блоками пам'яті в слабосвязанних системах.
Протоколи підтримки когерентності
Протоколи підтримки когерентності відповідають за підтримання коректності даних між усіма кешами в системі з en: distributed shared memory. Протокол підтримує когерентність пам'яті відповідно до обраної моделі (en: consistency model). Більшість апаратних протоколів в мікропроцесорах відповідають моделі en: sequential consistency. а програмні протоколи в системах software distributed shared memory частіше відповідають моделям en: release consistency або en: weak consistency.
Моделі і протоколи підтримки когерентності кешей:
література
Примітки
Дивитися що таке "Когерентність кеш" в інших словниках:
Когерентність пам'яті - (англ. Memory coherence) властивість комп'ютерних систем, в яких два або більше процесора або ядра мають доступ до загальної області пам'яті. У однопроцесорних системах (строгіше в одноядерних) лише один процесорний вузол ... ... Вікіпедія
Кеш процесора - Кеш мікропроцесора кеш (сверхоперативная пам'ять), який використовується мікропроцесором комп'ютера для зменшення середнього часу доступу до комп'ютерної пам'яті. Є одним з верхніх рівнів ієрархії пам'яті [1] ... Вікіпедія
Розподілені обчислення - Не слід плутати з Добровільні обчислення. Див. Також: Паралельні обчислення Розподілені обчислення спосіб вирішення трудомістких обчислювальних завдань з використанням декількох комп'ютерів, найчастіше об'єднаних в паралельну ... ... Вікіпедія
Паралельні обчислювальні системи - Не слід плутати з Розподілені обчислення. Паралельні обчислювальні системи це фізичні комп'ютерні, а також програмні системи, що реалізують той чи інший спосіб паралельну обробку даних на багатьох обчислювальних вузлах. [1] ... ... Вікіпедія
MPICH - MPICH2 Тип Програмне забезпечення для обміну повідомленнями між обчислювальними процесами Написана на C, C ++, Fortran, FreePascal Операційна система Universal Mac OS X, Linux, Unix, Windows Мови інтерфейсу ... Вікіпедія
Zabbix - 1.1 alpha 6 running under GNU / Linux ... Вікіпедія
OpenMP - (Open Multi Processing) відкритий стандарт для розпаралелювання програм на мовах Сі, Сі ++ і Фортран. Описує сукупність директив компілятора, бібліотечних процедур і змінних оточення, які призначені для програмування ... ... Вікіпедія
Intelligent Platform Management Interface - IPMI (від англ. Intelligent Platform Management Interface) інтелектуальний інтерфейс управління платформою, призначений для автономного моніторингу та управління функціями, вбудованими безпосередньо в апаратне і вбудоване програмне ... Вікіпедія
- Когерентність кеш. Джессі Рассел. Ця книга буде виготовлена в відповідності з Вашим замовленням за технологією Print-on-Demand. High Quality Content by WIKIPEDIA articles! Когерентність кеш (англ. Cache coherence) - властивість ... Детальніше Купити за 998 руб