Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

МУЛЬТИПРОЦЕССОРЫ (Общая характеристика процессоров)

Содержание:

ВВЕДЕНИЕ

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

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

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

Мультипроцессоры в настоящее время в основном применяются для обработки транзакций в режиме реального времени, а также для создания и сопровождения хранилищ данных. Цели, назначение и функционал мультипроцессорных систем могут варьироваться в зависимости от различных параметров. В связи с этим определяется цель исследования – рассмотреть мультипроцессоры. Для достижения цели необходимо выполнить следующие задачи:

  • охарактеризовать понятие процессора;
  • рассмотреть классификацию процессоров;
  • проанализировать понятие мультипроцессора;
  • охарактеризовать мультипроцессорные системы;
  • подвести итоги исследования.

Объект работы – процессоры. Предметом исследования являются мультипроцессоры.

Методологической и теоретической базой исследования выступают работы известных исследователей устройства персонального компьютера, его архитектуры, и в частности – процессоров. Это работы таких авторов как Гук М., Киселев А. В., Столлингс В. и мн. др.

Структура работы включает две главы и четыре параграфа, а также введение, заключение и список использованных источников и 5 иллюстраций. Общий объем работы составляет 28 страниц.

1. Общая характеристика процессоров

1.1. Понятие и сущность процессора

Процессор, чип (центральное процессорное устройство – Central Processing Unit, CPU) – главная часть любого компьютера, его сердце и мозг. Именно это устройство отвечает за вычисления и обработку информации, выполняет команды пользователя и руководит другими устройствами [11].

Представляет собой небольшой кусок полупроводникового материала (обычно кремния), в который вмонтирована интегральная (микро) схема. Обычный чип может содержать миллионы электронных компонентов (транзисторов).

Чипсет (Сhipset) – набор микросхем, спроектированных для совместной работы с целью выполнения каких–либо функций.

Принципы построения и характеристики процессора постоянно меняются. Чипы, в которых используются те же основные принципы строения, называют процессорами одной архитектуры, а эти принципы – архитектурой процессора. В рамках одной архитектуры процессоры также могут отличаться: о таких процессорах говорят, что они имеют разные ядра.

Ядро, используемое в том или ином чипе, определяет его производительность, энергопотребление и тактовую частоту. Процессоры, содержащие на одном кристалле или в одном корпусе несколько ядер, называются многоядерными. Увеличение числа вычислительных ядер повышает мощность процессора [5].

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

Современные процессоры могут обрабатывать от 32 до 64 бит. Производительность процессора тем выше, чем больше его разрядность.

В свою очередь скорость работы процессора определяется тактовой частотой. Чем выше тактовая частота, тем меньше длительность выполнения одной операции и тем быстрее работа компьютера.

В настоящее время микропроцессоры и процессоры вмещают в себя миллионы транзисторов и других элементов электронной логики и представляют собой сложнейшие высокотехнологичные электронные устройства [5].

Персональный компьютер содержит в своем составе довольно много различных процессоров. Каждое устройство, будь то видеокарта, системная шина или еще что–либо, обслуживается своим собственным процессором или процессорами. Однако архитектуру и конструктивное исполнение персонального компьютера определяет процессор или процессоры, контролирующие и обслуживающие системную шину и оперативную намять, и, что более важно, выполняющие объектный код программ. Такие процессоры принято называть центральными или главными процессорами (Central Point. Unit — CPU). На основе архитектуры центральных процессоров строится архитектура материнских плат и проектируется архитектура и конструкция компьютера.

Компьютеры с процессорами, поддерживающими систему команд Intel х86 (фирм Intel, AMD, Cyrix, Transmeta), на которых может исполнять операционная система Microsoft Windows, называются Wintel–компьютерами (от Windows и Intel).

Тактовая частота процессора определяет минимальный квант времени, за который процессор выполняет некоторую условную элементарную операцию. Тактовые частоты измеряются в мегагерцах и определяют количественные характеристики производительности компьютерных систем в целом. Чем больше (выше) тактовая частота, тем быстрее работает центральный процессор [10].

Каждый микропроцессор имеет определенное число элементов памяти, называемых регистрами, арифметико–логическое устройство (АЛУ) и устройство управления. Регистры используются для временного хранения выполняемой команды, адресов памяти, обрабатываемых данных и другой внутренней информации микропроцессора. В АЛУ производится арифметическая и логическая обработка данных.

Устройство управления вырабатывает необходимые управляющие сигналы для внутренней работы микропроцессора и связи его с другой аппаратурой через внешние шины микропроцессора [9].

1.2. Классификация процессоров

Сегодня процессоры классифицируются по множеству признаков. Рассмотрим наиболее распространенные классификации.

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

Однокристальные микропроцессоры получаются при реализации всех аппаратных средств процессора в виде одной БИС или СБИС (сверхбольшой интегральной схемы). По мере увеличения степени интеграции элементов в кристалле и числа выводов корпуса параметры однокристальных микропроцессоров улучшаются. Однако возможности однокристальных микропроцессоров ограничены аппаратными ресурсами кристалла и корпуса. Для получения многокристального микропроцессора необходимо провести разбиение его логической структуры на функционально законченные части и реализовать их в виде БИС (СБИС). Функциональная законченность БИС многокристального микропроцессора означает, что его части выполняют заранее определенные функции и могут работать автономно [16].

Многокристальные секционные микропроцессоры получаются в том случае, когда в виде БИС реализуются части (секции) логической структуры процессора при функциональном разбиении ее вертикальными плоскостями. Для построения многоразрядных микропроцессоров при параллельном включении секций БИС в них добавляются средства «стыковки» [16].

1.2.1. Классификация по назначению

Универсальные микропроцессоры могут быть применены для решения широкого круга разнообразных задач. При этом их эффективная производительность слабо зависит от проблемной специфики решаемых задач. Специализация МП, т.е. его проблемная ориентация на ускоренное выполнение определенных функций позволяет резко увеличить эффективную производительность при решении только определенных задач.

Среди специализированных микропроцессоров можно выделить различные микроконтроллеры, ориентированные на выполнение сложных последовательностей логических операций, математические МП, предназначенные для повышения производительности при выполнении арифметических операций за счет, например, матричных методов их выполнения, МП для обработки данных в различных областях применений и т. д. С помощью специализированных МП можно эффективно решать новые сложные задачи параллельной обработки данных. Например, конволюция позволяет осуществить более сложную математическую обработку сигналов, чем широко используемые методы корреляции. Последние в основном сводятся к сравнению всего двух серий данных: входных, передаваемых формой сигнала, и фиксированных опорных и к определению их подобия. Конволюция дает возможность в реальном масштабе времени находить соответствие для сигналов изменяющейся формы путем сравнения их с различными эталонными сигналами, что, например, может позволить эффективно выделить полезный сигнал на фоне шума [3].

1.2.2. Классификация по характеру временной организации работы

Синхронные микропроцессоры – микропроцессоры, в которых начало и конец выполнения операций задаются устройством управления (время выполнения операций в этом случае не зависит от вида выполняемых команд и величин операндов).

Асинхронные микропроцессоры позволяют начало выполнения каждой следующей операции определить по сигналу фактического окончания выполнения предыдущей операции. Для более эффективного использования каждого устройства микропроцессорной системы в состав асинхронно работающих устройств вводят электронные цепи, обеспечивающие автономное функционирование устройств. Закончив работу над какой–либо операцией, устройство вырабатывает сигнал запроса, означающий его готовность к выполнению следующей операции. При этом роль естественного распределителя работ принимает на себя память, которая в соответствии с заранее установленным приоритетом выполняет запросы остальных устройств по обеспечению их командной информацией и данными [12].

1.2.3. Классификация по количеству выполняемых программ

В однопрограммных микропроцессорах выполняется только одна программа. Переход к выполнению другой программы происходит после завершения текущей программы.

В много– или мультипрограммных микропроцессорах одновременно выполняется несколько (обычно несколько десятков) программ. Организация мультипрограммной работы микропроцессорных управляющих систем позволяет осуществить контроль за состоянием и управлением большим числом источников или приемников информации [2].

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

2. Особенности мультипроцессоров

2.1. Понятие и сущность мультипроцессора

В любой параллельной компьютерной системе процессоры, выполняющие разные части единого задания, должны как–то взаимодействовать друг с другом, чтобы обмениваться информацией. Для реализации подобного обмена в свое время были изобретены две технологии – мультипроцессоры и мультикомпьютеры. Основным отличием таких технологий считается наличие либо соответственно отсутствие общей памяти. И в зависимости от наличия либо отсутствия общей памяти различаются конструкции, устройство и программирование различных систем, а также их окончательная функциональность и стоимость.

Так, под мультипроцессором принято понимать компьютер, в котором общая физическая память используется всеми процессорами совместно ( рис. 1, а) [8]. Все процессы, работающие в мультипроцессоре совместно, могут иметь единое виртуальное адресное пространство, отображенное на общую память. Любой процесс с помощью команд LOAD и STORE может считать слово из памяти или записать слово в память. Больше ничего не требуется. Два процесса имеют возможность легко обмениваться информацией – для этого один из них просто записывает данные в общую память, а другой их считывает.

Мультипроцессоры и мультикомпьютеры

Рисунок 1. Мультипроцессор из 16 процессоров, имеющих общую память (а); изображение, разделенное на 16 секций, каждую из которых анализирует отдельный процессор (б)

Благодаря возможности взаимодействия двух и более процессов мультипроцессоры весьма популярны. Данная модель понятна программистам и позволяет решать широкий круг задач. Для примера рассмотрим программу, которая анализирует битовое отображение и составляет список всех его объектов. Одна копия изображения хранится в памяти, как показано на рис. 1, б. Каждый из 16 процессоров запускает один процесс, призванный анализировать одну из 16 секций. Если процесс обнаруживает, что один из его объектов переходит через границу секции, этот процесс просто переходит вслед за объектом в следующую секцию, считывая слова этой секции. В нашем примере некоторые объекты обрабатываются несколькими процессами, поэтому в конце потребуется некоторая координация, чтобы определить количество домов, деревьев и самолетов.

Поскольку все процессоры в мультипроцессоре используют единое адресное пространство, функционирует только одна копия операционной системы. Соответственно, имеется только одна карта страниц памяти и одна таблица процессов. Когда процесс блокируется, его процессор сохраняет свое состояние в таблицах операционной системы, а затем просматривает эти таблицы в поисках другого процесса, который нужно запустить. Именно такая организация, в основе которой лежит единая система, и отличает мультипроцессор от мультикомпьютера [3].

Мультипроцессор, как и все компьютеры, должен содержать устройства ввода–вывода (диски, сетевые адаптеры и т. п.). В одних мультипроцессорных системах только определенные процессоры получают доступ к устройствам ввода–вывода и, следовательно, обладают специальными средствами ввода–вывода. В других мультипроцессорных системах каждый процессор может получить доступ к любому устройству ввода–вывода. Если все процессоры имеют равный доступ ко всем модулям памяти и всем устройствам ввода–вывода, и между процессорами возможна полная взаимозаменяемость, такой мультипроцессор называется симметричным (Symmetrie Multiprocessor, SMP).

Во втором варианте параллельной архитектуры каждый процессор имеет собственную память, доступную только этому процессору. Такая схема называется мультикомпьютером, или системой с распределенной памятью (рис. 2, а) [14]. Ключевое отличие мультикомпьютера от мультипроцессора состоит в том, что каждый процессор в мультикомпьютере имеет собственную локальную память, к которой этот процессор может обращаться, выполняя команды LOAD и STORE, но никакой другой процессор с помощью этих команд не может получить доступ к локальной памяти данного процессора. Таким образом, мультипроцессоры имеют одно физическое адресное пространство, разделяемое всеми процессорами, а мультикомпьютеры содержат отдельные физические адресные пространства для каждого процессора.

Поскольку процессоры в мультикомпьютере не могут взаимодействовать друг с другом простыми обращениями к общей памяти, процессоры обмениваются сообщениями через связывающую их коммуникационную сеть. В качестве примеров мультикомпьютеров можно назвать IBM BlueGene/L, Red Storm и кластер Google.

При отсутствии общей памяти, реализованной аппаратно, предполагается определенная программная структура. В мультикомпьютере невозможно иметь единое для всех процессоров виртуальное адресное пространство, позволяющее считывать и записывать информацию командами LOAD и STORE. Например, если процессор в верхнем левом углу рис. 1, б (присвоим этому процессору номер 0) обнаружит, что часть его объекта попадает в другую секцию, относящуюся к следующему процессору (пусть это будет процессор 1), он может просто продолжать считывать информацию из памяти, чтобы получить изображение хвоста самолета. Однако если то же самое обнаружит процессор 0 на рис. 2, б, он не сможет просто считать информацию из памяти процессора 1. В данном случае алгоритм получения данных должен быть другим [14].

Мультипроцессоры и мультикомпьютеры

Рисунок 2. Мультикомпьютер из 16 процессоров, каждый из которых имеет собственную память (а); битовая карта изображения с рис. 8.15, разделенная между 16 модулями памяти (б)

Сначала процессору 0 нужно каким либо образоам выяснить, какой процессор содержит необходимые ему данные, и послать этому процессору сообщение с запросом копии данных. Затем процессор 0 блокируется до получения ответа. Когда процессор 1 получает сообщение, оно программно анализируется, после чего затребованные данные передаются обратно. Когда процессор 0 получает ответное сообщение, блокировка программно снимается, и процессор продолжает работу.

В мультикомпьютере для взаимодействия между процессорами часто используются примитивы send и receive. Поэтому программное обеспечение мультикомпьютера имеет более сложную структуру, чем программное обеспечение мультипроцессора. При этом основной проблемой становится правильное распределение данных и разумное их размещение. Это еще одно отличие мультикомпьютера от мультипроцессора, где размещение данных не влияет на правильность решения задачи, хотя может повлиять на производительность. Короче говоря, мультикомпьютер программировать гораздо сложнее, чем мультипроцессор [15].

Нередко возникает вопрос: зачем вообще создавать мультикомпьютеры, если мультипроцессоры гораздо проще программировать? Ответ прост: создать большой мультикомпьютер проще и дешевле, чем мультипроцессор с таким же количеством процессоров. Реализация общей памяти, совместно используемой несколькими сотнями процессоров, – это весьма сложная задача, а разработать мультикомпьютер, содержащий 10000 процессоров и более, довольно легко.

Таким образом, формируется дилемма: мультипроцессоры сложно разрабатывать, но легко программировать, а мультикомпьютеры легко строить, но трудно программировать. В результате постоянно предпринимаются попытки создания гибридных систем. Эти попытки привели к осознанию того факта, что совместную память можно реализовывать по–разному, причем каждый вариант будет иметь достоинства и недостатки. Практически все исследования в области параллельных компьютерных архитектур направлены на создание гибридных форм, которые сочетают в себе достоинства обеих систем. Здесь важно добиться масштабируемости, то есть разработать такую систему, которая будет продолжать исправно работать при добавлении все новых и новых процессоров [2].

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

Второй подход – использовать аппаратное обеспечение мультикомпыотера и операционную систему, которая будет моделировать общую память, предоставляя единое виртуальное адресное пространство, разбитое на страницы. При таком подходе получается распределенная общая память ( DSM), в которой каждая страница расположена в одном из модулей памяти (см. рис. 8.16, я), а каждая машина содержит собственную виртуальную память и собственные таблицы страниц [12]. Если процессор выполняет команду LOAD или STORE, обращаясь к странице, которой у него нет, происходит системное исключение. После этого операционная система находит нужную страницу и обращается к соответствующему процессору, чтобы тот выгрузил страницу из памяти и послал ее через внутреннюю коммуникационную сеть, по которой процессоры обмениваются сообщениями. Когда страница попадает процессу–получателю, она отображается на память, и выполнение прерванной команды возобновляется. По существу, операционная система просто получает недостающие страницы не с диска, а из памяти. При этом у пользователя создается впечатление, что машина имеет единую общую память.

Третий подход – реализовать общую память программно пользовательской системой реального времени. При таком подходе абстракцию общей памяти создает язык программирования, и эта абстракция реализуется компилятором (то есть модель общей памяти может зависеть от используемого языка программирования). Например, модель Linda основана на абстракции общего пространства кортежей (записей данных, содержащих наборы полей). Процессы любой машины могут взять кортеж из общего пространства или отправить его в общее пространство. Поскольку доступ к этому пространству полностью контролируется программно (системой реального времени Linda), никакой специальной аппаратной поддержки или особой операционной системы не требуется.

Мультипроцессоры и мультикомпьютеры

Рисунок 3. Уровни, на которых можно реализовать общую память: аппаратная реализация (а); операционная система (б); программная реализация (в)

Другой пример общей памяти, реализованной пользовательской системой реального времени, – модель общих объектов данных в системе Огса. В модели Огса процессы совместно используют не кортежи, как в Linda, а базовые объекты, вызывая для них те или иные методы. Если метод изменяет внутреннее состояние объекта, система реального времени должна проследить, чтобы одновременно были изменены все копии этого объекта на всех машинах. И опять, поскольку объекты – чисто программная концепция, их можно реализовать с помощью системы реального времени без вмешательства операционной системы или аппаратного обеспечения [12].

2.2. Мультипроцессорные системы

Мультипроцессорная система (далее – МПС) это такая система, которая содержит два или более процессоров. При этом важно, что каждый из входящих в систему процессоров, как правило, может функционировать в режиме относительной независимости от других таких процессоров. Мультипроцессорные системы взаимодействуют с единой для всех входящих процессоров операционной системой, которая, в свою очередь, осуществляет оперативное распределение вычислительной системы между процессорами.

Одним из наиболее значительных свойств мультипроцессорных систем является отказоустойчивость, иначе говоря – способность продолжения оперативной работы даже в случае отказов некоторых из элементов системы. Здесь важно отметить, что производительность процессоров снижается, но не фатально.

Системы, работающие по мультипроцессорному принципу, чаще всего классифицируются по признакам, выделенным Флинном. Подобная классификация делит мультипроцессорные системы на SIMD и MIMD.

При этом также можно выделить четыре основных типа архитектуры систем параллельной обработки:

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

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

Машины типа MIMD. Термин «мультипроцессор» покрывает большинство машин типа MIMD и (подобно тому, как термин «матричный процессор» применяется к машинам типа SIMD) часто используется в качестве синонима для машин типа MIMD. В МПС каждый процессорный элемент выполняет свою программу независимо от других ПЭ. Процессорные элементы, конечно, должны как–то связываться друг с другом, и в МПС с общей памятью (сильносвязанных) имеется память данных и команд, доступная всем ПЭ. С общей памятью ПЭ связываются с помощью общей шины или сети обмена. В противоположность этому варианту в слабосвязанных МПС (машинах с локальной памятью) вся память делится между ПЭ и каждый блок памяти доступен только связанному с ним процессору. Сеть обмена связывает процессорные элементы друг с другом.

МПС с SIMD–процессорами. Многие современные ВС представляют собой многопроцессорные системы, в которых в качестве процессоров используются векторные процессоры или процессоры типа SIMD. Такие машины относятся к машинам класса MSIMD.

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

Основной характеристикой параллельных МПС является ускорение R, определяемое выражением

R = T1 / Tn ,

где T1 – время выполнения задачи на однопроцессорной ВМ; Tn – время выполнения той же задачи на n–процессорной ВМ.

Многопроцессорные системы за годы развития вычислительной техники претерпели ряд этапов своего развития. Исторически первой стала осваиваться технология SIMD. Однако в настоящее время наметился устойчивый интерес к архитектурам MIMD. Этот интерес главным образом определяется двумя факторами:

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

2. Архитектура MIMD может использовать все преимущества современной МПС технологии на основе учета соотношения стоимость/производительность. В действительности практически все современные МПС строятся на тех же микропроцессорах, которые можно найти в персональных компьютерах, рабочих станциях и небольших однопроцессорных серверах.

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

В МПС с общей памятью один процессор осуществляет запись в конкретную ячейку, а другой процессор производит считывание из этой ячейки памяти. Чтобы обеспечить согласованность данных и синхронизацию процессов, обмен часто реализуется по принципу взаимно исключающего доступа к общей памяти методом «почтового ящика». Модель системы с общей памятью очень удобна для программирования и иногда рассматривается как высокоуровневое средство оценки влияния обмена на работу системы, даже если основная система в действительности реализована с применением локальной памяти и принципа передачи сообщений.

В МПС с локальной памятью непосредственное разделение памяти невозможно. Вместо этого процессоры получают доступ к совместно используемым данным посредством передачи сообщений по сети обмена. Эффективность схемы коммуникаций зависит от протоколов обмена, основных сетей обмена и пропускной способности памяти и каналов обмена. В сетях с коммутацией каналов по мере возрастания требований к обмену следует учитывать возможность перегрузки сети. Здесь межпроцессорный обмен связывает сетевые ресурсы: каналы, процессоры, буферы сообщений. Объем передаваемой информации может быть сокращен за счет тщательной функциональной декомпозиции задачи и тщательного диспетчирования выполняемых функций.

Таким образом, существующие МПС распадаются на две основные группы.

К первой группе относятся МПС с общей (разделяемой) основной памятью, объединяющие до нескольких десятков (обычно менее 32) процессоров. Сравнительно небольшое количество процессоров в таких машинах позволяет иметь одну централизованную общую память и объединить процессоры и память с помощью одной шины. При наличии у процессоров кэш–памяти достаточного объема высокопроизводительная шина и общая память могут удовлетворить обращения к памяти, поступающие от нескольких процессоров. Поскольку имеется единственная память с одним и тем же временем доступа, эти МПС иногда называют UMA. Такой способ организации со сравнительно небольшой разделяемой памятью в настоящее время является наиболее популярным.

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

С ростом числа процессоров просто невозможно обойти необходимость реализации модели распределенной памяти с высокоскоростной сетью для связи процессоров.

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

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

Существующие ВС класса MIMD образуют три технических подкласса:

  • симметричные мультипроцессоры;
  • системы с массовым параллелизмом;
  • кластеры.

Симметричные мультипроцессоры (SMP) используют принцип разделяемой памяти. В этом случае система состоит из нескольких однородных процессоров и массива общей памяти (обычно из нескольких независимых блоков) (рисунок 5).

https://studizba.com/uploads/lectures/informatika-i-programmirovanie/konspekt-vmsis/files/0-24-klassifikaciya-multiprocessornyh-sistem.png

Рисунок 4. Архитектура симметричных мультипроцессорных систем.

Все процессоры имеют доступ к любой ячейке памяти с одинаковой скоростью. Процессоры подключены к памяти с помощью общей шины или коммутатора. Аппаратно поддерживается когерентность кэшей. Вся система работает под управлением единой ОС. В чистом виде SMP системы состоят, как правило, не более чем из 32 процессоров, а для дальнейшего наращивания используется NUMA–технология, которая в настоящее время позволяет создавать системы, включающие до 256 процессоров с общей производительностью порядка 150 млрд. операций в секунду. Системы этого типа производятся многими компьютерными фирмами как многопроцессорные серверы с числом процессоров от 2 до 64 и прочно удерживают лидерство в классе малых суперкомпьютеров с производительностью до 60 млрд. операций в секунду.

Системы с массовым параллелизмом (MPP) содержат множество процессоров c индивидуальной памятью, которые связаны через некоторую коммуникационную среду (рисунок 6).

https://studizba.com/uploads/lectures/informatika-i-programmirovanie/konspekt-vmsis/files/1-24-klassifikaciya-multiprocessornyh-sistem.png

Рисунок 5. Архитектура систем с распределенной памятью.

Как правило, системы MPP благодаря специализированной высокоскоростной системе обмена обеспечивают наивысшее быстродействие.

Кластерные системы− более дешевый вариант MPP–систем, поскольку они также используют принцип передачи сообщений, но строятся из готовых компонентов. Базовым элементом кластера является локальная сеть. Оказалось, что на многих классах задач и при достаточном числе узлов такие системы дают производительность, сравнимую с суперкомпьютерной.

Кластер – параллельный компьютер, все процессоры которого действуют как единое целое для решения одной задачи. Первым кластером на рабочих станциях был Beowulf. Проект Beowulf начался в 1994 г. сборкой в научно–космическом центре NASA 16–процессорного кластера на Ethernet–кабеле. С тех пор кластеры на рабочих станциях обычно называют Beowulf–кластерами. Любой Beowulf–кластер состоит из машин (узлов) и объединяющей их сети (коммутатора). Кроме ОС, необходимо установить и настроить сетевые драйверы, компиляторы, ПО поддержки параллельного программирования и распределения вычислительной нагрузки. В качестве узлов обычно используются однопроцессорные ВМ с быстродействием 1 ГГц и выше или SMP–серверы с небольшим числом процессоров (обычно 2–4).

Для получения хорошей производительности межпроцессорных обменов используют полнодуплексную сеть Fast Ethernetс пропускной способностью 100 Mбит/с. При этом для уменьшения числа коллизий устанавливают несколько «параллельных» сегментов Ethernet или соединяют узлы кластера через коммутатор (switch). В качестве операционных систем обычно используют Linux или Windows NT и ее варианты, а в качестве языка программирования – С++.

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

ЗАКЛЮЧЕНИЕ

В ходе выполнения работы была достигнута поставленная цель, а именно – рассмотрены мультипроцессоры.

Для достижения данной цели были выполнены следующие задачи:

  • охарактеризовано понятие процессора;
  • рассмотрена классификация процессоров;
  • проанализировано понятие мультипроцессора;
  • охарактеризованы мультипроцессорные системы.

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

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

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

СПИСОК ЛИТЕРАТУРЫ

  1. Грушин В. В. Выполнение математических операций в ЭВМ. Погрешности компьютерной арифметики: Учебное пособие / В. В. Грушин. СПбГЭТУ «ЛЭТИ». СПб., 1999. 56 с.
  2. Гук М. Процессоры Intel: от 8086 до Pentium II / М. Гук. – М.: СПб: Питер, 2016. – 224 c.
  3. Гук М. Процессоры Pentium II, Pentium Pro и просто Pentium / М. Гук. – М.: СПб: Питер, 2017. – 288 c.
  4. Касперски К. Техника оптимизации программ. Эффективное использование памяти / К. Касперски. – СПб.: БХВ–Петербург, 2016. – 464 с.
  5. Киселев А. В. Современные микропроцессоры / А. В. Киселев, В. В. Корнеев. 3–е изд., перераб. и доп. – СПб.: БХВ–Петербург, 2018. – 440 с.
  6. Корнеев В. В. Параллельные вычислительные системы / В. В. Корнеев. – М.: Нолидж, 2017. – 311 c.
  7. Наумов К. П. Акустооптические сигнальные процессоры / К. П. Наумов, В. Н. Ушаков. – М.: Science Press, 2016. – 587 c.
  8. Новиков Г. А. Работа с текстовым процессором MS Word. Учебное пособие / Г. А. Новиков и др. – Москва: ИЛ, 2017. – 200 c.
  9. Папков В. И. Система памяти ЭВМ (Функциональный подход). Учеб. пособие / В. И. Папков. СПб.: Изд.центр СПбГМТУ. 2016. 238 с.
  10. Рассел Дж. Маркировка процессоров фирмы Intel / Дж. Рассел. – М.: VSD, 2015. – 341 c.
  11. Смит Б. Э. Архитектура и программирование микропроцессора INTEL 80386 / Б. Э. Смит, М. Т. Джонсон. – М.: Конкорд, 2016. – 342 c.
  12. Солонина А. Алгоритмы и процессоры цифровой обработки сигналов / А. Солонина, Д. Улахович, Л. Яковлев. – М.: БХВ–Петербург, 2017. – 464 c.
  13. Столлингс В. Структурная организация и архитектура компьютерных систем / В. Столлингс. – М.: Издательский дом «Вильямс», 2017. – 896 с.
  14. Таненбаум Э. Архитектура компьютеров / Э. Таненбаум. СПб.: Питер, 2017. – 848 с.
  15. Ушаков В. Н. Акустооптические процессоры корреляционного типа / В. Н. Ушаков. – М.: Радиотехника, 2017. – 184 c.
  16. Фет Я. И. Массовая обработка информации в специализированных однородных процессорах / Я. И. Фет. – М.: Новосибирск: СО АН СССР, 2018. – 199 c.