Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Модели связи и архитектуры памяти




Лекция 25

ПЕРСПЕКТИВЫ РАЗВИТИЯ И ВНЕДРЕНИЯ ДИСКРЕТНЫХ СУ

Лекция 24

 

Необходимость строго последовательного выполнения операций записи является более тонким, но также очень важным свойством. Представим себе, что строго последовательное выполнение операций записи не соблюдается. Тогда процессор P1 может записать данные в ячейку, а затем в эту ячейку выполнит запись процессор P2. Строго последовательное выполнение операций записи гарантирует два важных следствия для этой последовательности операций записи. Во-первых, оно гарантирует, что каждый процессор в машине в некоторый момент времени будет наблюдать запись, выполняемую процессором P2. Если последовательность операций записи не соблюдается, то может возникнуть ситуация, когда какой-нибудь процессор будет наблюдать сначала операцию записи процессора P2, а затем операцию записи процессора P1, и будет хранить это записанное P1 значение неограниченно долго. Более тонкая проблема возникает с поддержанием разумной модели порядка выполнения программ и когерентности памяти для пользователя: представьте, что третий процессор постоянно читает ту же самую ячейку памяти, в которую записывают процессоры P1 и P2; он должен наблюдать сначала значение, записанное P1, а затем значение, записанное P2. Возможно он никогда не сможет увидеть значения, записанного P1, поскольку запись от P2 возникла раньше чтения. Если он даже видит значение, записанное P1, он должен видеть значение, записанное P2, при последующем чтении. Подобным образом любой другой процессор, который может наблюдать за значениями, записываемыми как P1, так и P2, должен наблюдать идентичное поведение. Простейший способ добиться таких свойств заключается в строгом соблюдении порядка операций записи, чтобы все записи в одну и ту же ячейку могли наблюдаться в том же самом порядке. Это свойство называется последовательным выполнением (сериализацией) операций записи (write serialization). Вопрос о том, когда процессор должен увидеть значение, записанное другим процессором достаточно сложен и имеет заметное воздействие на производительность, особенно в больших машинах.

 

 

Как уже было отмечено, любая крупномасштабная многопроцессорная система должна использовать множество устройств памяти, которые физически распределяются вместе с процессорами. Имеется два альтернативных способа адресации этих устройств памяти и связанных с этим два альтернативных метода для передачи данных между процессорами. Физически отдельные уст­ройства памяти могут адресоваться как логически единое адресное пространст­во, что означает, что любой процессор может выполнять обращения к любым ячейкам памяти, предполагая, что он имеет соответствующие права доступа. Такие машины называются машинами с распределенной разделяемой (общей) памятью (DSM - distributed shared memory), масштабируемые архитектуры с разделяемой памятью, а иногда NUMA's - Non-Uniform Memory Access, по­скольку время доступа зависит от расположения ячейки в памяти.

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

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

Каждый из этих механизмов обмена имеет свои преимущества. Для об­мена в общей памяти это включает:

1. Совместимость с хорошо понятными, используемыми как в однопроцессорных, так и маломасштабных многопроцессорных системах, механиз­мами, которые используют для обмена общую память.

2.Простота программирования в то время, когда модели обмена между процессора­ми сложные или динамически меняются во время выполнения. Подобные пре­имущества упрощают конструирование компилятора.

3. Более низкая задержка обмена и лучшее использование полосы про­пускания при обмене малыми порциями данных.

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

Основными преимущества обмена с помощью передачи сообщений являются:

1. Аппаратура может быть более простой, особенно по сравнению с моделью разделяемой памяти, которая поддерживает масштабируемую когерентность кэш-памяти.

2. Модели обмена понятны, принуждают программистов (или компиляторы) уделять внимание обмену, который обычно имеет высокую, связанную с ним стоимость.

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

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

При оценке любого механизма обмена критичными являются три харак­теристики производительности:

1. Полоса пропускания: в идеале полоса пропускания механизма обмена будет ограничена полосами пропускания процессора, памяти и системы межсо­единений, а не какими-либо аспектами механизма обмена. Связанные с меха­низмом обмена накладные расходы (например, длина межпроцессорной связи) прямо воздействуют на полосу пропускания.

2. Задержка: в идеале задержка должна быть настолько мала, насколько это возможно. Для ее определения критичны накладные расходы аппаратуры и программного обеспечения, связанные с инициированием и завершением обмена.

3. Упрятывание задержки: насколько хорошо механизм скрывает задерж­ку путем перекрытия обмена с вычислениями или с другими обменами.

Каждый из этих параметров производительности воздействует на харак­теристики обмена. В частности, задержка и полоса пропускания могут меняться в зависимости от размера массива данных. В общем случае, механизм, кото­рый одинаково хорошо работает как с небольшими, так и с большими объемами данных, является более гибким и эффективным.

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

 

 




Поделиться с друзьями:


Дата добавления: 2015-04-29; Просмотров: 376; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.