Page 164 - 6111
P. 164
Рисунок 15.3 – Оптимізована багатопроцесорна архітектура UMA
Щоб оптимально використовувати конфігурацію вказану на
рис.15.3, компілятор повинен помістити в локальні модулі пам’яті
весь текст програми, ланцюжки, константи, інші дані, призначені
тільки для читання, стеки і локальні змінні. Загальна розділена
пам’ять використовується тільки для загальних змінних. В
більшості випадків таке розумне розміщення сильно скорочує
кількість даних, що передаються по шині, і не вимагає активного
втручання з боку компілятора.
Навіть при всіх можливих оптимізаціях використання тільки
однієї шини обмежує розмір мультипроцесора UMA до 16 або 32
процесорів. Щоб отримати більший розмір, потрібний інший тип
комунікаційної мережі. Найпростіша схема з’єднання n процесорів
з k блоками пам’яті через координатний комутатор (рис.15.4).
Координатні комутатори використовуються впродовж багатьох
163