Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория 2 / 5 Архитектура вычислительных систем и сетей / Архитектура вычислительных систем и сетей.docx
Скачиваний:
125
Добавлен:
11.04.2015
Размер:
644.3 Кб
Скачать

4) Мультипроцессорные вычислительные системы.

Классификация Флинна

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

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

1. SISD (Single Instruction Single Data) – одиночный поток команд, одиночный поток данных (последовательные компьютеры фон Неймана). К этому классу относятся последовательные компьютерные системы, которые имеют один центральный процессор, способный обрабатывать только один поток последовательно исполняемых инструкций. Примерами компьютеров с архитектурой SISD являются большинство рабочих станций Compaq, Hewlett-Packard и Sun Microsystems.

2. SIMD (Single Instruction Multiple Data) – характеризуются наличием одиночного потока команд, но множественного потока данных. К этому классу относятся однопроцессорные, векторно-конвейерные суперкомпьютеры. В этом случае мы имеем дело с одним потоком (векторных) команд, а потоков данных много; каждый элемент вектора входит в отдельный поток данных.

Эти системы обычно имеют большое количество процессоров, в пределах от 1024 до 16384, которые могут выполнять одну и ту же инструкцию относительно разных данных в жесткой конфигурации. Единственная инструкция параллельно выполняется над многими элементами данных. Примерами SIMD машин являются системы CPPDAP, GammaII и QuadricsApemille.

3. MIMD (Multiple Instruction Multiple Data) – множественный поток команд и множественный поток данных.

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

4. MISD (Multiple Instruction Single Data) – этот класс долгое время пустовал, более того, в литературе вы встретите утверждение, что этот класс не представляет практического интереса. Это объясняется тем, что не существовало примеров практической реализации систем, в которых одни и те же данные обрабатывались бы большим числом процессоров. Теперь ситуация изменилась, для MISD найдена адекватная организация ВС – распределенная мультипроцессорная система с общими данными. Наиболее простой пример такой ВС – обычная локальная сеть ПК, работающая с единой базой данных, когда много процессоров обрабатывают один поток данных.

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

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

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

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

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

Рис. 2.14 Мультипроцессорная система с общей памятью.

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

Рис. 2.15 Мультипроцессорная система с распределенной памятью

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