Реферат: Поняття мультімікропроцесорних систем
Для мультіпроцесорних систем запис зі зворотним копіюванням більш краща, тому що операції запису виконуються зі швидкістю К-П і кілька записів в один блок вимагає тільки одного запису в пам'ять більш низького рівня і тим самим звільняється системна шина. Наскрізний запис має перевагу в тім, що основна пам'ять завжди має найбільш свіжу копію даних. Це дуже важливо і для ММПС і для організації вводу/виводу.
Недоліки методу зворотного запису:
- Усі змінені блоки повинні бути переписані в основну пам'ять перед тим, як інший пристрій зможе одержати до них доступ;
-У випадку відключення напруги, коли вміст К-П губиться, а вміст основної пам'яті зберігається, не можна визначити які місця в основній пам'яті містять застарілі дані.
Існує категорія застарілих даних, що з'являються в тому випадку, коли К-П використовується в системі з основною пам'яттю і двома-трьома задатчиками. Два пристрої копіюють розділ пам'яті і перший пристрій обновляє його першим, а коли другий пристрій робить запис своєї копії розділу, то руйнує всі зміни, зроблені першим пристроєм, тим самим порушується погодженість К-П.
Основними методами забезпечення погодженості (когерентності К-П є наступні методи.:
- очищення К-П. При цьому змінені дані записуються в основну пам'ять, а К-П очищається. Якщо всі К-П у системі очищаються перед операцією запису пристроями в пам'ять спільного користування, то можливість появи застарілих даних у будь-який К-П виключається. Головний недолік цього методу – наступні за очищенням звертання до К-П будуть кєш-промахами доти, поки К-П заповниться новими даними;
- апаратна прозорість. Усі записи проходять через єдину К-П;
- кожен запис обновляє основну пам'ять і всі К-П, що розділяють цю пам'ять;
- некэшуєма пам'ять – використання основної пам'яті для декількох пристроїв як некэшуємої, тобто всі звертання до основної пам'яті є кэш-промахами.
Продуктивність К-П визначається через середній час доступу до К-П рівного часу звертання при влученні + частка промахів х утрати.
У процесорах, використовуваних у мультіпроцесорних конфігураціях, застосовується більш складний протокол MESI (Modified, Exclusive, Shared, Invalid) організації К-П зі зворотним записом, що запобігає зайвим передачам даних між К-П і основною пам'яттю. Для ММПС, у яких пам'ять фізично розподілена між процесорними модулями, ідентичність даних у К-П (погодженість, когерентність) різних модулів підтримується за допомогою меж модульних пересилань. Порядок роботи абонентів на системній шині при використанні протоколу MESI полягає в наступному. Усі дії з використанням транзакцій шини мікропроцесора і зовнішніх пристроїв з копіями рядків як у К-П так і в основній пам'яті доступні для відстеження всіма мікропроцесорами. Це є наслідком того, що в кожен момент часу передає тільки один, а сприймають усі підключені до шини абоненти. Однак, якщо для об'єднання мікропроцесорів використовується не шина, а інший елемент комутаційного середовища, то для працездатності протоколу MESI необхідно дотримувати порядок виконання транзакций, щоб вони були доступні іншим мікропроцесорам.
Визначення протоколу – кожен рядок К-П мікропроцесора може знаходитися в одному з наступних станів:
М – рядок модифікований, тобто доступний по читанню/запису тільки в цьому мікропроцесорі, тому що змінений операцією запису в порівнянні з рядком в оперативній пам'яті;
Е – рядок монопольно - копійований (тобто доступний по читанню/запису як у цьому мікропроцесорі так і в основній пам'яті);
S – рядок множинно - копійований чи поділюваний ( доступний операціям читання/запису як у цьому мікропроцесорі, в оперативній пам'яті й у К-П інших мікропроцесорів, у яких міститься його копія);
I – рядок неможливий до використання (недоступний операціям читання/запису).
Прямолінійний підхід до забезпечення когерентності К-П у ММПС полягає в тому, що при кожнім невлученні в К-П у будь-якому процесорі ініціюється запит необхідного рядка з того блоку пам'яті, у якому цей рядок розміщений. Надалі цей блок стосовно рядка буде називатися резидентним. Запит передається через комутатор у модуль з резидентним для рядка блоком пам'яті, з якого необхідний рядок пересилається в модуль, у якому відбулося невлучення. При цьому, у кожнім модулі для кожного резидентного рядка ведеться список модулів, у К-П яких цей рядок розміщається. Рядок, розміщений у К-П більш ніж одного модуля, називається поділюваним. .
Алгоритм забезпечення когерентності.
При записі даних у К-П процесор припиняється доти, поки змінений рядок К-П пересилається в резидентну пам'ять модуля. Якщо цей рядок був поділюваним, він пересилається з резидентної пам'яті в усі, зазначені в списку модулів, модулі. Після одержання підтверджень про зміну всіх необхідних рядків мікропроцесор продовжує роботу. Даний алгоритм дає великі простої при операції запису в К-П.
Алгоритм DASH.
Кожен модуль має для кожного рядка, резидентного у модулі, список модулів, у К-П якого розміщені копії рядків.
Кожен рядок (у резидентном для нього модулі) має три можливих глобальних стани:
- « некєшуємий», якщо копія рядка не знаходиться в К-П якогось іншого модуля , крім резидентного для цього рядка;
- «віддалена-роздільна», якщо копії рядка розміщені в К-П в інших модулів;
- «віддалена -змінена», якщо рядок змінений операцією запису в якомусь модулі.
Існують три локальних стани рядка:
- неможлива до використання;
- поділювана – якщо є незмінена копія в інший К-П;