Поняття мультімікропроцесорних систем

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

?винні бути переписані в основну память перед тим, як інший пристрій зможе одержати до них доступ;

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

Існує категорія застарілих даних, що зявляються в тому випадку, коли К-П використовується в системі з основною памяттю і двома-трьома задатчиками. Два пристрої копіюють розділ памяті і перший пристрій обновляє його першим, а коли другий пристрій робить запис своєї копії розділу, то руйнує всі зміни, зроблені першим пристроєм, тим самим порушується погодженість К-П.

Основними методами забезпечення погодженості (когерентності К-П є наступні методи.:

- очищення К-П. При цьому змінені дані записуються в основну память, а К-П очищається. Якщо всі К-П у системі очищаються перед операцією запису пристроями в память спільного користування, то можливість появи застарілих даних у будь-який К-П виключається. Головний недолік цього методу наступні за очищенням звертання до К-П будуть кєш-промахами доти, поки К-П заповниться новими даними;

- апаратна прозорість. Усі записи проходять через єдину К-П;

- кожен запис обновляє основну память і всі К-П, що розділяють цю память;

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

Продуктивність К-П визначається через середній час доступу до К-П рівного часу звертання при влученні + частка промахів х утрати.

У процесорах, використовуваних у мультіпроцесорних конфігураціях, застосовується більш складний протокол MESI (Modified, Exclusive, Shared, Invalid) організації К-П зі зворотним записом, що запобігає зайвим передачам даних між К-П і основною памяттю. Для ММПС, у яких память фізично розподілена між процесорними модулями, ідентичність даних у К-П (погодженість, когерентність) різних модулів підтримується за допомогою меж модульних пересилань. Порядок роботи абонентів на системній шині при використанні протоколу MESI полягає в наступному. Усі дії з використанням транзакцій шини мікропроцесора і зовнішніх пристроїв з копіями рядків як у К-П так і в основній памяті доступні для відстеження всіма мікропроцесорами. Це є наслідком того, що в кожен момент часу передає тільки один, а сприймають усі підключені до шини абоненти. Однак, якщо для обєднання мікропроцесорів використовується не шина, а інший елемент комутаційного середовища, то для працездатності протоколу MESI необхідно дотримувати порядок виконання транзакций, щоб вони були доступні іншим мікропроцесорам.

Визначення протоколу кожен рядок К-П мікропроцесора може знаходитися в одному з наступних станів:

М рядок модифікований, тобто доступний по читанню/запису тільки в цьому мікропроцесорі, тому що змінений операцією запису в порівнянні з рядком в оперативній памяті;

Е рядок монопольно - копійований (тобто доступний по читанню/запису як у цьому мікропроцесорі так і в основній памяті);

S рядок множинно - копійований чи поділюваний ( доступний операціям читання/запису як у цьому мікропроцесорі, в оперативній памяті й у К-П інших мікропроцесорів, у яких міститься його копія);

I рядок неможливий до використання (недоступний операціям читання/запису).

Прямолінійний підхід до забезпечення когерентності К-П у ММПС полягає в тому, що при кожнім невлученні в К-П у будь-якому процесорі ініціюється запит необхідного рядка з того блоку памяті, у якому цей рядок розміщений. Надалі цей блок стосовно рядка буде називатися резидентним. Запит передається через комутатор у модуль з резидентним для рядка блоком памяті, з якого необхідний рядок пересилається в модуль, у якому відбулося невлучення. При цьому, у кожнім модулі для кожного резидентного рядка ведеться список модулів, у К-П яких цей рядок розміщається. Рядок, розміщений у К-П більш ніж одного модуля, називається поділюваним. .

Алгоритм забезпечення когерентності.

При записі даних у К-П процесор припиняється доти, поки змінений рядок К-П пересилається в резидентну память модуля. Якщо цей рядок був поділюваним, він пересилається з резидентної памяті в усі, зазначені в списку модулів, модулі. Після одержання підтверджень про зміну всіх необхідних рядків мікропроцесор продовжує роботу. Даний алгоритм дає великі простої при операції запису в К-П.

Алгоритм DASH.

Кожен модуль має для кожного рядка, резидентного у модулі, список модулів, у К-П якого розміщені копії рядків.

Кожен рядок (у резидентном для нього модулі) має три можливих глобальних стани:

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

- віддалена-роздільна, якщо копії рядка розміщені в К-П в інших модулів;

- віддалена -змінена, якщо рядок змінений операцією запису в якомусь модулі.

Існують три локальних стани рядка:

- неможлива до використання;

- поділювана якщо є незмінена копія в інший К-П;

- змінена, якщо копія змінена операцією запису.

При читанні процесором зі своєї К-П рядка (поділюваного чи зміненого) у випадку його відсутності або неможливості використання здійснюється запит промах читання у резидентний для цього рядка модуль. Для глобального стану рядка:

- некэшуємий чи віддалено-роздільний копія рядка посилається в модуль, що запросив, а сам модуль міститься в список модулів;

- “ від?/p>