logo
AOM / Мельник А

12.9.4. Шинні динамічні комунікаційні мережі багатопроцесорних систем


В табл. 12.1 наведено характеристики деяких комерційних одношинних багатопро­цесорних комп'ютерних систем.



Як ми вже вказували, динамічні комунікаційні мережі багатопроцесорних систем можуть бути одно- та багатошинними. На рис. 12.29 наведено приклад використання од­нотипної комунікаційної мережі, яка є найпростішим варіантом з можливих з'єднань. В загальному вигляді така система включає N процесорів Р, кожен з яких має свою локаль­ну пам'ять, які з'єднані спільною шиною. Всі процесори через шину взаємодіють з спіль­ною пам'яттю. Типовий розмір таких систем - від одного до 50 процесорів. Він визнача­ється потрібною пропускною здатністю шини, яка приходиться на один процесор. Тому описана архітектура, при простоті розширення, обмежена пропускною здатністю шини, по якій одночасно може проводити обмін інформацією лише один процесор. Складність цієї мережі може бути оцінена наступним чином: апаратна асимптотична складність, ви­ражена кількістю магістралей, є 0(1), часова асимптотична складність, яка вимірюється кількістю затримок, є O(N), де N - кількість процесорів.

Використання багатьох шин для з'єднання процесорів та блоків пам'яті є природнім розширенням одношинних систем. В цьому випадку можливі кілька варіантів схем з'єд­нань. Серед них можна відзначити наступні:

• багатошинна комунікаційна мережа з базованим на класах з'єднанням блоків пам'яті (multiple bus with class-based memory connection).

454

В першому варіанті з'єднання, наведеному на рис. 12.30, всі блоки пам'яті під'єднані до всіх шин. Тут, як і на наступних рисунках, прийнято, що кількість процесорів N = 6, кількість модулів пам'яті М = 4, кількість шин В = 4.

Цей варіант з'єднання є досить складним та дорогим, оскільки вимагає великої кіль­кості шин, реалізація яких вимагає значних апаратних ресурсів.

В другому варіанті (рис. 12.31) кожний модуль пам'яті під'єднаний до деякої однієї шини.

Тут структура комунікаційної мережі спрощується, однак можливі конфлікти досту­пу до блоків пам'яті.


Це дозволяє зменшити кількість можливих конфліктів доступу до блоків пам'яті.


В третьому варіанті (рис. 12.32) кожен модуль пам'яті під'єднаний не до всіх, як в першому варіанті, а до деякої групи шин (в даному випадку до двох шин).

455

В четвертому варіанті (рис. 12.33) модулі пам'яті згруповані в класи, які під'єднані до свого набору шин.

Тут клас - це довільно вибрана множина модулів пам'яті. Такий підхід також до­зволяє зменшити кількість конфліктів шляхом врахування особливостей виконуваних задач (інтенсивності обміну процесорів з пам'яттю). Можна характеризувати цей тип мережі використовуючи кількість необхідних зв'язків і навантаження на кожну шину, як показано в табл. 12.2, де наведені характеристики розглянутих багатошинних з'єднань. У цій таблиці kпредставляє число класів; gпредставляє число шин на групу, і Mjпред­ставляє число модулів пам'яті в класіj.

В цілому багатошинна багатопроцесорна організація має кілька бажаних особливос­тей, таких як висока надійність і легкість нарощування. Коли кількість шин є меншою за кількість модулів пам'яті (або кількості процесорів), змагання за володіння шиною посилюється.

Важливим питанням в багатошинній багатопроцесорній організації є шинна синх­ронізація. Інформація може бути передана по шині синхронно або асинхронно. Час для будь-якої передачі по синхронній шині відомий наперед. При прийманні та відправленні інформації через шину потрібно брати до уваги час передачі. Організація асинхронної шини, з другого боку, залежить від наявності даних і готовності пристрою ініціювати шинні операції.

В одношинній багатопроцесорній системі потрібен шинний арбітраж для вирішення шинного конфлікту, який має місце, коли більш ніж один процесор конкурує за оволо­діння шиною. В даному випадку процесори, які хочуть використовувати шину, подають запити до шинної арбітражної логіки. Арбітр вирішує, використовуючи схему пріорите­ту, якому процесору буде надано доступ до шини протягом певного часового інтервалу.

456

Процес асинхронної взаємодії одного процесора з іншим називають квітуванням. Він вимагає використання трьох керуючих сигналів: запит шини, надання шини та інформу­вання про її зайнятість. Перший вказує, що процесор подав запит про надання шини, тоді як другий вказує, що шина надана. Третій сигнал зазвичай використовується, щоб вказа­ти, чи зайнятою є шина в даний час. Рис. 12.34 ілюструє механізм квітування шини.

Для прийняття рішення якому процесору надати контроль над шиною, шинна ар­бітражна логіка використовує вбудовану схему пріоритету. Використовують різні типи схем пріоритету, наприклад випадковий пріоритет, однаковий пріоритет, пріоритет най­довше не використовуваного LRU.

У однаковому пріоритеті, коли два або більше запитів зроблено, є рівний шанс у будь-якого з них. При використанні правила LRUнайвищий пріоритет надано процесо­ру, який не використав шину протягом найдовшого часу.