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

МУЛЬТІПРОЦЕСОРИ CC-NUMA

Розглянемо широко поширений спосіб побудови великих мультипроцессоров CC-NUMA (Cache Coherent NUMA - NUMA з узгодженою кеш-пам'яттю) на основі каталогу. Каталог являє собою базу даних, яка містить інформацію про те, де саме знаходиться кожний рядок кеш-пам'яті і яке її стан (див. Рис. 18.9). При кожному зверненні до кеш-пам'яті всі необхідні дані про яку він вимагає рядку виводяться з бази даних. Для взаємодії з базою даних використовуються високошвидкісні апаратні засоби, здатні видавати відповідь на запит за частку циклу шини.

Склад. Для розуміння суті і особливостей мультипроцессоров на основі каталогу розглянемо систему (рис. 18.9) з 256 процесорних блоків, які пов'язані через мережу межсоединений у вигляді решітки, гиперкуба або інший топології. Кожен процесорний блок складається з процесорного елемента ПЕ, модуля пам'яті МП, пов'язаного з ПЕ через локальну шину, контролера і каталогу. Модуль пам'яті розміром 224 = 16М байт використовується в якості кеша, що містить 218 рядків по 64 байта кожна. Таким чином, загальний обсяг пам'яті ОЗУ, що становить 256 × 224 = 232 байта, розділений на 226 рядків

Мультипроцессор CC-NUMA

Мал. 18.9. Мультипроцессор CC-NUMA

кеш-пам'яті по 26 (64) байта кожна. Каталог кожного процесорного блоку містить 218 елементів довжиною в 9 біт з записами для кожного рядка кеша, тобто обсяг пам'яті каталогу дорівнює 9 × 218 біт, що становить 1,76% від обсягу пам'яті одного процесорного блоку.

Принцип роботи. Розглянемо, як працює мультипроцессор на основі каталогу, припускаючи, що:

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

В цьому випадку виконується наступна послідовність дій:

  • • процесорний блок (вихідний вузол А1) передає команду load в контролер;
  • • контролер переводить команду в фізичну адресу, розділяючи його на три частини - адресується вузол А2 (8 біт), адресується рядок S1 (18 біт) і зміщення С (6 біт);
  • • оскільки в вихідному вузлі А1 рядок відсутній, то вузлу А2 через мережу направляється запит;
  • • запит надходить в каталог, апаратні засоби якого індексують таблицю з 218 елементів;
  • • якщо рядок S1 відсутня в кеш-пам'яті, то апаратне забезпечення викликає рядок S1 з локального ОЗУ, відправляє в вихідний вузол А1 і оновлює елемент каталогу S1, щоб показати, що цей рядок знаходиться в кеш-пам'яті вузла А1.

Розглянемо іншу ситуацію, коли з вузла А1 запитується рядок S2, а в каталозі вузла А2 зазначено, що рядок S2 знаходиться в кеш-пам'яті вузла А3. В цьому випадку діє таким чином:

  • • з вузла А2 надсилається повідомлення в вузол А3, щоб рядок S2 з нього була передана в вузол А1;
  • • затребувана рядок S2 передається в А1;
  • • рядок S2 в кеш-пам'яті вузла А3 оголошується недійсною;
  • • оновлюється елемент каталогу S2 вузла А3, щоб зафіксувати, що рядок вже знаходиться у вузлі А1.

Недоліком розглянутого мультипроцессора є те, що рядок може бути кешуватися тільки в одному процесорному блоці (вузлі). Для його усунення пропонується [16]:

  • • надати кожному елементу каталогу k полів для визначення інших процесорних блоків;
  • • замінити номер процесорного блоку двійкового відображенням: один біт на процесорний блок;
  • • зберігати в кожному елементі каталогу 8-бітове поле, щоб зв'язати всі копії рядка всіх кешей.

На практиці використовуються всі три можливості, хоча кожна з них має свої переваги і недоліки.

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

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

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

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