Главная страница

С. Н. Ан


Скачать 217.92 Kb.
НазваниеС. Н. Ан
Дата28.08.2021
Размер217.92 Kb.
Формат файлаdocx
Имя файлаquestion39.docx
ТипДокументы
#228178
страница9 из 13
1   ...   5   6   7   8   9   10   11   12   13
2.5.1 Чередуемая память
Чередуемая память разделяется на банки памяти. Принято соглашение о том, что ячейка памяти с номером i находится в банке памяти с номером i mod n, где n - количество банков памяти. Таким образом, если имеется 8 банков памяти, то первому банку памяти будут принадлежать ячейки памяти с номерами 0, 8, 16, :, второму - 1, 9, 17, ... и т.д. Запросы к различным банкам памяти могут обрабатываться одновременно. При достаточном количестве банков памяти скорость обмена данными между памятью и процессором может быть близка к идеальному значению - одно машинное слово за один такт работы процессора.

Ячейки памяти могут быть перенумерованы и непрерывным образом, то есть, скажем, в первом банке находятся ячейки с номерами от 0 до 255, во втором от 256 до 511 и т.д. В векторных компьютерах обычно используется первый способ адресации, а в многопроцессорных комплексах с разделяемой памятью - второй.
2.5.2 Разделяемая память
Простейший способ создать многопроцессорный вычислительный комплекс с разделяемой памятью - взять несколько процессоров, соединить их с общей шиной и соединить эту шину с оперативной памятью. Этот простой способ является не очень удачным, поскольку между процессорами возникает борьба за доступ к шине и если один процессор принимает команду или передает данные, все остальные процессоры вынуждены будут перейти в режим ожидания. Это приводит к тому, что, начиная с некоторого числа процессоров, быстродействие такой системы перестанет увеличиваться при добавлении нового процессора.

Несколько улучшить картину может применение кэш-памяти для хранения команд. При наличии локальной, то есть принадлежащей данному процессору кэш-памяти, следующая необходимая ему команда с большой вероятностью будет находиться в кэш-памяти. В результате этого уменьшается количество обращений к шине и быстродействие системы возрастает. Вместе с тем возникает новая проблема - проблема кэш-когерентности. Эта проблема заключается в том, что если, скажем, двум процессорам для выполнения различных операций понадобилось значение V, это значение будет храниться в виде двух копий в кэшпамяти обоих процессоров. Один из процессоров может изменить это значение в результате выполнения своей команды, и оно будет передано в оперативную память компьютера. Но в кэшпамяти второго процессора все еще хранится старое значение! Следовательно, необходимо обеспечить своевременное обновление данных в кэш-памяти всех процессоров компьютера.

Имеются и другие реализации разделяемой памяти. Это, например, разделяемая память с

дискретными модулями памяти. Физическая память состоит из нескольких модулей, хотя виртуальное адресное пространство остается общим. Вместо общей шины в этом случае используется переключатель, направляющий запросы от процессора к памяти. Такой переключатель может одновременно обрабатывать несколько запросов к памяти, поэтому если все процессоры обращаются к разным модулям памяти, быстродействие возрастает.

1   ...   5   6   7   8   9   10   11   12   13


написать администратору сайта