Особенности
работы многопроцессорной вычислительной системы с общей многомодульной памятью
Гилев Ю.М., Дерюгин А.А.
(Москва, Московский энергетический институт
(технический университет), Россия)
Объектом рассмотрения является
многопроцессорная вычислительная система (МВС) с общей многомодульной памятью.
МВС с общей памятью могут быть
организованы с использованием общей шины или матричного коммутатора
(многовходовой памяти) [1]. Достоинством МВС с общей шиной является простота ее
структуры, а основным недостатком – невысокое быстродействие, так как
одновременный обмен информацией возможен только между двумя устройствами. В МВС
с матричным коммутатором используются несколько шин для доступа к памяти. В
такой системе конфликт возникает только в том случае, если обращение идет
одновременно к одному модулю памяти [2]. В данной работе будут рассматриваться
МВС с матричным коммутатором. Структура такой МВС показана на рис.1. В ее
состав входят N
процессоров (Р), каждый из которых имеет кэш-память (СМ), M модулей
памяти (ММ), коммутатор (К) с арбитрами (AR), каждый из которых определяет
последовательность обслуживания процессоров при обращении к одному модулю
памяти. Число модулей памяти такой системы не превышает числа процессоров, то
есть N³M. Время от момента поступления
адреса на вход коммутатора до его появления на входе требуемого модуля памяти
мало по сравнению с временем такта процессоров.
Рис.1. Структура МВС с матричным коммутатором
AR
– арбитр; CM – кэш-память; K – коммутатор; MM – модуль памяти; P –
процессор
Одной из важных задач
при повышении быстродействия МВС является уменьшение конфликтов, связанных с
одновременным обращением двух или более процессоров к одному модулю памяти.
Рассмотрим процесс считывания информации объемом ki слов процессором Pi и kj слов
процессором Pj.
При наличии кэш-памяти считывание осуществляется блоками, состоящими из
нескольких слов. Обычно число слов q=4. Время считывания одного слова обычно составляет 2TCY, где TCY – время
одного такта процессора. Для уменьшения времени считывания блока память делают
секционированной. Число секций равняется числу слов в блоке (q). Благодаря такой
организации считывание блока осуществляется не за q·2TCY=8TCY, а за 2TCY+TCY +TCY+TCY = 5TCY (схема
2-1-1-1). То есть первое слово считывается за 2TCY, а последующие слова
считываются в каждом такте процессора. Таким образом, информация объемом ki слов будет
считана за . Значение показывает число
блоков, содержащих ki
слов. Если все эти блоки будут находиться в одном модуле памяти, то при
одновременном обращении к этому модулю памяти процессоров Pi и Pj задержка обращения процессора Pj будет равна
ТСЧ.i.
Диаграмма считывания NБЛ.i блоков
процессором Pi
и NБЛ.j блоков процессором
Pj из
одного модуля памяти показана на рис.2.
Рис. 2. Диаграмма считывания NБЛ.i блоков
процессором Pi
и NБЛ.j блоков
процессором Pj
из одного модуля памяти
Задержку процессора Pj можно
сократить, если распределить блоки, считываемые процессором Pi, по разным
модулям памяти таким образом, что каждые два соседних блока окажутся в смежных
модулях памяти. Диаграмма считывания NБЛ.i блоков процессором Pi и NБЛ.j блоков
процессором Pj
из разных модулей памяти показана на рис.3. Максимальная задержка процессора Pj будет
равной времени считывания одного блока – 5TCY. Для распределения блоков по модулям памяти
можно организовать следующий алгоритм формирования адресов: младшие разряды
выделить под номер байта в слове и номер слова в блоке, следующие адреса – под
номер модуля памяти.
Рис. 3. Диаграмма считывания NБЛ.i блоков
процессором Pi
и NБЛ.j блоков
процессором Pj
из разных модулей памяти
Таким образом, с
помощью предложенного метода можно сократить задержки при одновременном
обращении процессоров к одному модулю памяти с помощью чередования модулей
памяти адресами, следующими за разрядами, определяющими номер слова в блоке.
Такая адресация модулей позволяет рассматривать многомодульную память как
единую память одного уровня.
ЛИТЕРАТУРА
1.
Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. – СПб.:
БХВ-Петербург, 2002. – 608 с.
2.
Архитектура многопроцессорных вычислительных систем: Учебное
пособие /Под ред. В. И. Тимохина. – Л.: Изд-во Ленингр. Ун-та, 1981. – 104 с.