Навігація
Головна
 
Головна arrow Інформатика arrow Архітектура ЕОМ і систем
< Попередня   ЗМІСТ   Наступна >

МУЛЬТІПРОЦЕСОРИ СОМА

Основний недолік комп'ютерних систем NUMA і CC-NUMA полягає в тому, що звернення до віддаленої пам'яті (які відбуваються набагато повільніше, ніж звернення до локальної пам'яті) знижують продуктивність і перешкоджають розширенню системи.

У системах СОМА (Cache Only Memory Access - архітектура з доступом тільки до кеш-пам'яті) основна пам'ять кожного процесора використовується як кеш-пам'ять. У ній фізичне адресний простір ділиться на рядки (а не на сторінки, як в системах NUMA і CC-NUMA), які при необхідності переміщаються по системі. Пам'ять, яка привертає рядки, називається attraction memory. Використання основної пам'яті в якості кеш-пам'яті великої місткості збільшує частоту успішних до неї звернень, що супроводжує підвищення продуктивності.

Однак з розширенням кеша з'являється дві проблеми:

як розміщувати рядки кеш-пам'яті;

по-перше, якщо при трансляції ВА потрібного рядка в кеш-пам'яті не виявилося, як визначити, чи є взагалі ця рядок в основний пам'яті? Така ситуація обумовлена тим, що кожна сторінка складається з великої кількості окремих рядків кеш-пам'яті, які переміщаються в системі незалежно один від одного;

по-друге, якщо навіть відомо, що рядок відсутній в основній пам'яті, як визначити, де вона знаходиться?

як діяти при видаленні з пам'яті останньої копії рядка? Проблема полягає в тому, що рядок кеш-пам'яті може перебувати одночасно в декількох вузлах. При виклику рядки (при промаху кеша) з іншого вузла викликається рядок відкидається. Якщо обрана рядок є останньою копією, її відкидати не можна.

Можливі шляхи вирішення першої проблеми:

  • введення додаткових апаратних засобів репетуючи стеження за тегом кожного рядка кеш-пам'яті. У цьому випадку блок керування пам'яттю може порівнювати тег потрібного рядка з тегами всіх рядків кеш-пам'яті, поки не виявить збіг;
  • використання повного ( бітового ) відображення сторінки, не вимагаючи при цьому присутності всіх рядків кеш-пам'яті. У цьому випадку один біт для кожного рядка вказує на присутність або відсутність цього рядка:

■ якщо рядок присутній, то вона повинна знаходитися в правильній позиції на цій сторінці;

■ якщо рядок відсутній, то будь-яка спроба використовувати її викличе переривання, що дозволить програмному забезпеченню знайти потрібний рядок і ввести її.

Таким чином, система буде шукати тільки ті рядки, які дійсно перебувають у віддаленій пам'яті. При цьому можна організувати пам'ять у вигляді дерева і здійснювати пошук по напряму вгору, поки не буде виявлена яка потрібна рядок.

Можливі шляхи вирішення другої проблеми:

• повернення до каталогу для перевірки існування інших копій:

■ якщо копії існують, то рядок можна відкидати;

■ якщо немає жодної копії, то її потрібно перемістити в будь-яке місце пам'яті;

• розміщення однієї з копій кожного рядка кеш-пам'яті в якості головної копії, при цьому ніколи її не видаляти. Цей підхід не вимагає перевірки каталогу.

 
Якщо Ви помітили помилку в тексті позначте слово та натисніть Shift + Enter
< Попередня   ЗМІСТ   Наступна >
 
Дисципліни
Агропромисловість
Аудит та Бухоблік
Банківська справа
БЖД
Географія
Документознавство
Екологія
Економіка
Етика та Естетика
Журналістика
Інвестування
Інформатика
Історія
Культурологія
Література
Логіка
Логістика
Маркетинг
Медицина
Нерухомість
Менеджмент
Педагогіка
Політологія
Політекономія
Право
Природознавство
Психологія
Релігієзнавство
Риторика
Соціологія
Статистика
Техніка
Страхова справа
Товарознавство
Туризм
Філософія
Фінанси
Пошук