Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы Архитектура ВС.docx
Скачиваний:
59
Добавлен:
31.08.2019
Размер:
2.86 Mб
Скачать
  1. Системы с общей и распределенной памятью. Многоуровневая организация общей памяти

Системы с общей и распределенной памятью

 

Особенность ВС – множество параллельно работающих процессоров. Важная задача – задача организации памяти.

Две проблемы: 1) Различие между быстродействием процессора и памяти (как и в однопроцессорных системах); 2) Одновременный доступ к памяти нескольких процессоров.

В зависимости от организации памяти различают:

  • ВС с общей па­мятью (shared memory, мультипроцессоры, сильно связанные, closely coupled systems);

  • ВС с распределенной памятью (distributed memory, слабо связанные, loosely coupled systems, мультикомпьютеры).

Различие между общей и распределенной памятью - это разница в структуре виртуальной памяти, то есть в том, как память выгладит со стороны процессора. Физически почти каждая система памяти разделена на автономные компоненты, доступ к которым может производиться независимо. Общую память от распреде­ленной отличает то, каким образом подсистема памяти интерпретирует поступив­ший от процессора адрес ячейки. Для примера положим, что процессор выполняет команду LoadR0,i, означающую «Загрузить регистр R0 содержимым ячейки i». В слу­чае общей памяти i - это глобальный адрес, и для любого процессора указывает на одну и ту же ячейку. В распределенной системе памяти i - это локальный адрес. Если два процессора выполняют команду LoadR0,i, то каждый из них обращается к i-й ячейке в своей локальной памяти, то есть к разным ячейкам, и в регистры R0 могут быть загружены неодинаковые значения.

Различие между двумя системами памяти должно учитываться программис­том, поскольку оно определяет способ взаимодействия частей распараллеленной программы.

Мультипроцессоры сложно строить, но легко программировать. Мультикомпьютеры легко строить, но сложно программировать.

Поэтому стали предприниматься попытки создания гибридных систем, которые относительно легко конструировать и относительно легко программировать. Это привело к осознанию того, что совместную память можно реализовывать по-разному, и в каждом случае будут какие-то преимущества и недостатки.

Практически все исследования в области архитектур с параллельной обработкой направлены на создание гибридных форм, которые сочетают в себе преимущества обеих архитектур. Здесь важно получить такую систему, которая расширяема, то есть которая будет продолжать исправно работать при добавлении все новых и новых процессоров. Рассмотрим многоуровневую организацию общей памяти.

  1. Память с чередованием адресов

Память с чередованием адресов

 

Физически память вычислительной системы состоит из нескольких модулей (бан­ков), при этом существенным вопросом является то, как в этом случае распределе­но адресное пространство (набор всех адресов, которые может сформировать про­цессор). Один из способов распределения виртуальных адресов по модулям памяти состоит в разбиении адресного пространства на последовательные блоки. Если память состоит изn банков, то ячейка с адресом i при поблочном разбиении будет находиться в банке с номером i/n. В системе памяти с чередованием адресов (inter­leaved memory) последовательные адреса располагаются в различных банках: ячей­ка с адресом i находится в банке с номером i mod n. Пусть, например, память состо­ит из четырех банков, по 256 байт в каждом. В схеме, ориентированной на блочную адресацию, первому банку будут выделены виртуальные адреса 0-255, второму - 256-511 и т. д. В схеме с чередованием адресов последовательные ячейки в первом банке будут иметь виртуальные адреса 0, 4, 8, … во втором банке — 1, 5, 9 и т. д.

 

Распределение адресного пространства по модулям дает возможность одновре­менной обработки запросов на доступ к памяти, если соответствующие адреса от­носятся к разным банкам. Процессор может в одном из циклов затребовать доступ к ячейкеi, а в следующем цикле - к ячейке j. Еслиi и j находятся в разных банках, информация будет передана в последовательных циклах. Здесь под циклом пони­мается цикл процессора, в то время как полный цикл памяти занимает несколько циклов процессора. Таким образом, в данном случае процессор не должен ждать, пока будет завершен полный цикл обращения к ячейкеi.Рассмотренный прием позволяет повысить пропускную способность: если система памяти состоит из достаточного числа банков, имеется возможность обмена информацией между про­цессором и памятью со скоростью одно слово за цикл процессора, независимо от длительности цикла памяти.

 

Решение о том, какой вариант распределения адресов выбрать (поблочный или с расслоением), зависит от ожидаемого порядка доступа к информации. Програм­мы компилируются так, что последовательные команды располагаются в ячейках с последовательными адресами, поэтому высока вероятность, что после команды, извлеченной из ячейки с адресом i, будет выполняться команда из ячейки i +1. Элементы векторов компилятор также помещает в последовательные ячейки, по­этому в операциях с векторами можно использовать преимущества метода чередо­вания. По этой причине в векторных процессорах обычно применяется какой-либо вариант чередования адресов. В мультипроцессорах с совместно используемой памятью, тем не менее, используется поблочная адресация, поскольку схемы обра­щения к памяти в MIMD-системах могут сильно различаться. В таких системах целью является соединить процессор с блоком памяти и задействовать максимум находящейся в нем информации, прежде чем переключиться на другой блок памяти.