КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Неоднорідний доступ до пам'яті
Однорідний доступ до пам'яті Архітектура UMA-систем передбачає, що доступ будь-якого процесора до будь-якого модуля пам'яті відбувається однаково. Найпоширенішим підходом до реалізації такої системи є архітектура зі спільною шиною, коли всі процесори і модулі пам'яті з'єднані між собою спільною шиною пам'яті. У разі необхідності отримати доступ до пам'яті процесор перевіряє, чи не зайнята шина, і, якщо вона вільна, виконує фізичний доступ за заданою адресою. Якщо шина зайнята, процесор чекає, поки вона не звільниться. Необхідність такого очікування є головним недоліком базової архітектури зі спільною шиною. Кількість процесорів, які можна використати в цій архітектурі, невелика (від 2 до 4). Найпоширенішим способом зменшення часу очікування на спільній шині є оснащення кожного процесора власним апаратним кешем досить великого обсягу. При цьому, якщо відбувається вдале звертання до кеша, доступ до шини не потрібен. Навантаження на шину знижується, отже, у системі може підтримуватися більша кількість процесорів. У цьому разі, однак, виникає інша проблема, пов'язана із необхідністю підтримки когерентності кеша (cache coherence) - погодженості даних, які перебувають у кешах різних процесорів. Роз'яснимо це поняття. Є ймовірність, що одна й та саме ділянка пам'яті (наприклад, яка відповідає деякій структурі даних) буде одночасно збережена в кешах кількох процесорів. Розглянемо ситуацію, коли код одного з потоків змінює цю структуру даних. У результаті зміниться вміст основної пам'яті та кеш процесора, на якому виконувався цей потік. Вміст кешів інших процесорів при цьому залишиться незмінним і перестане відповідати даним, які перебувають в основній пам'яті, кеш втратить когерентність. Забезпечення когерентності кеша спричиняє зниження продуктивності. Необхідно, аби процесор, що змінює дані в пам'яті, передавав шиною спеціальний сигнал, який сповіщає інші процесори про цю зміну. У разі отримання сигналу кожен процесор, який визначив, що він кешував ті ж самі дані, має вилучити їх із кеша (зробити перехресне очищення кеша, cross invalidation). Періодичні звертання процесорів до шини для виявлення сигналу і перехресне очищення кеша займають багато часу. Крім того, підвищується ймовірність промаху під час доступу до кеша. Незважаючи на ці проблеми, UMA-архітектуру із когерентним кешем широко використовують на практиці.
3. Реалізація когерентного кеша не вирішує всіх проблеми, пов'язаних із наявністю спільної шини в UMA-архітектурі. Для створення багатопроцесорних систем, які розраховані на значну кількість процесорів (більше ніж 100) і матимуть можливість подальшого масштабування, потрібно використати неоднорідний доступ до пам'яті (NUMA-архітектуру). В NUMA-архітектурі із кожним процесором пов'язують його власну локальну пам'ять. Єдиний для всіх процесорів адресний простір при цьому збережено -кожен процесор у системі може одержати доступ до локальної пам'яті будь-якого іншого процесора, але доступ до такої віддаленої пам'яті відбувається повільніше, ніж до локальної. Фактично NUMA-система складається з набору вузлів (nodes), кожен із яких містить один або кілька процесорів та мікросхеми їхньої локальної пам'яті (а також, можливо, засоби введення-виведення). Вузли з'єднані між собою спільною шиною. Очевидно, що доступ до локальної пам'яті не вимагає звертання до шини, внаслідок чого навантаження на неї значно знижується. Крім того, звичайно організовують когерентний кеш для операцій доступу до цієї шини (системи із таким кешем називають CC-NUMA - Cache-Coherent NUMA). Лекція №2.
Тема: Підтримка багатопроцесорності в ОС та їх продуктивність.
План: 1. Підтримка багатопроцесорності в операційних системах (Л1 ст.520-521). 2. Продуктивність багатопроцесорних систем (Л1 ст.521-522).
1.
Дата добавления: 2014-10-23; Просмотров: 500; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |