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