COMA (абревіатура від англ. Cache-only memory architecture) — організація комп'ютерної пам'яті у багатопроцесорних системах, в яких локальна оперативна пам'ять вузла (зазвичай DRAM) використовується виключно як кеш-пам'ять. Така архітектура є відмінною від NUMA (абревіатура від англ. Non-uniform memory access), де оперативна пам'ять вузлів є основною пам'яттю.
У NUMA кожній адресі в глобальному адресному просторі, як правило, призначається фіксований домашній вузол. Коли процесори отримують доступ до деяких даних, копія створюється в їх локальному кеші, але простір залишається виділеним в домашньому вузлі. На противагу цьому, у COMA немає домашнього вузла. Доступ з віддаленого вузла може привести до того, що дані мігрують. У порівнянні з NUMA це зменшує кількість надлишкових копій та може дозволити більш ефективно використовувати ресурси пам'яті. З іншого боку, це створює проблеми при знаходженні конкретної інформації (більше немає домашнього вузла) і що робити, якщо локальна пам'ять заповнюється (при міграції деяких даних в локальній пам'яті, потрібно буде виселити деякі інші дані, які не мають домашнього вузла, куди могли б піти[що?]). Як правило, для реалізації міграції використовуються апаратні механізми когерентності пам'яті.
Величезний обсяг досліджень був виконаний над цим питанням. Були розроблені різні форми каталогів, лінія поведінки для підтримки вільного простору в локальній пам'яті, міграційна лінії поведінки, а також лінії поведінки щодо копій тільки для читання . Були також запропоновані гібридні NUMA-COMA організації, такі як Reactive NUMA, які дозволяють сторінками запуститися в режимі NUMA і переключитися в режим COMA в разі потреби, це реалізовано в WildFire компанії Sun Microsystems.[1][2] Програмне забезпечення на основі гібридної реалізації NUMA-COMA було запропоноване і реалізоване ScaleMP[3] , що дозволяє створення багатопроцесорної системи з спільною пам'яттю в кластері товарних[що?] вузлів.
Див. також
Примітки
Джерела