Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архитектура компьютеров / 10_Большие системы.doc
Скачиваний:
57
Добавлен:
20.03.2015
Размер:
389.63 Кб
Скачать

10.5. Организация памяти в мультипроцессорных системах

В разделе 6 было показано, какое большое влияние на производительность оказывает организация памяти в однопроцессорной системе. Сказанное верно и для мульти­процессорных систем. Для того чтобы использовать свойство локализации ссы­лок, в каждый процессор обычно включают первичный и вторичный кэши. Если система построена так, как на рис. 10.2, каждый процессорный модуль может быть соединен с коммуникационной сетью способом, показанным на рис. 10.11. На этом рисунке изображен только вторичный кэш, поскольку мы считаем, что первичный кэш интегрирован в микросхему процессора. При обращении к моду­лям памяти используется глобальное адресное пространство, в котором каждому модулю назначен свой диапазон физических адресов. В такой системе с общей па­мятью процессоры имеют равный доступ ко всем модулям памяти. С точки зре­ния программного обеспечения это простейший способ использования адресного пространства.

Рис. 10.11. Процессорный узел в мультипроцессорной системе, показанной на рис. 10.2

В мультипроцессорных системах типа NUMA (рис. 10.3) каждый узел содер­жит процессор и модуль памяти. Наиболее естественный способ реализации та­кого узла показан на рис. 10.12. Для подобных систем удобно использовать гло­бальное адресное пространство. И снова каждый процессор может обратиться к любому модулю памяти, хотя на доступ к локальным модулям памяти глобаль­ного адресного пространства уходит меньше времени, чем на доступ к удаленным модулям.

В системе с распределенной памятью (рис. 10.4) процессоры могут обращать­ся напрямую только к своей локальной памяти. Поэтому каждый модуль памяти составляет локальное адресное пространство одного процессора; глобального ад­ресного пространства нет вообще. Любое взаимодействие между программами или процессами, выполняющимися на разных процессорах, осуществляется при помощи сообщений, передаваемых между процессорами. При таком виде взаимо­действия каждый процессор рассматривает коммуникационную сеть как устрой­ство ввода-вывода. В таком случае каждый узел системы можно рассматривать как отдельный компьютер. Поэтому системы подобного типа также называются мультикомпьютерными. Данная архитектура представляет собой простейший способ соединения множества компьютеров в большую систему. Взаимодействие между задачами, выполняющимися на разных компьютерах, осуществляется довольно медленно, поскольку для обмена сообщениями требуется программное обеспече­ние. Этот тип систем рассматривается в разделе 10.7.

Рис. 10.12. Структура узла мультипроцессора, изображенного на рис. 10.3

Когда одни и те же данные используются множеством процессоров, необходи­мо гарантировать, что все процессоры будут работать с одними и теми же значе­ниями элементов данных. В связи с этим наличие множества кэшей в системе с общей памятью составляет серьезную проблему. В разных кэшах могут нахо­диться разные копии одних и тех же данных. Когда процессор изменяет элемент данных в собственной кэш-памяти, это изменение должно быть внесено во все ос­тальные кэши, в которых имеются копии этих данных. Или же все остальные ко­пии должны быть помечены как недостоверные. Иными словами, необходимо, чтобы общие данные были согласованы (когерентны) во всех кэшах системы. Са­мое распространенное решение этой проблемы мы рассмотрим в разделе 10.6.2.

Соседние файлы в папке Архитектура компьютеров