Попов И.И., Матвеев А.А., Максимов Н.В. Архитектура электронно-вычислительных машин и систем (2004) (1186255), страница 22
Текст из файла (страница 22)
Прежде всегоэто необычные архитектурные решения, направленные на повышениепроизводительности (работа с векторными операциями, организациябыстрого обмена сообщениями между процессорами или организацияглобальной памяти в многопроцессорных системах и др.).Классификация архитектур по параллельной обработке данных(Флинн)В 1966 году М.Флинном (Flynn) был предложен чрезвычайноудобный подход к классификации архитектур вычислительных систем.В основу было положено понятие потока, под которым понимаетсяпоследовательность элементов, команд или данных, обрабатываемаяпроцессором.
Соответствующая система классификации основана нарассмотрении числа потоков инструкций и потоков данных и описываетчетыре архитектурных класса:SISD - Single Instruction stream / Single Data stream (одиночныйпоток команд и одиночный поток данных - ОКОД);MISD - Multiple Instruction stream / Single Data stream(множественный поток команд и одиночный поток данных –МКОД);SIMD - Single Instruction stream / Multiple Data stream (одиночныйпоток команд и множественный поток данных – ОКМД);MIMD - Multiple Instruction stream / Multiple Data stream(множественный поток команд и множественный поток данных МКМД)129SISD - К этому классу относятся последовательные компьютерныесистемы, которые имеют один центральный процессор, способныйобрабатывать только один поток последовательно исполняемыхинструкций.Внастоящеевремяпрактическивсевысокопроизводительные системы имеют более одного центральногопроцессора, однако, каждый из них выполняют несвязанные потокиинструкций, что делает такие системы комплексами SIMD-систем,действующих на разных пространствах данных.
Для увеличенияскорости обработки команд и скорости выполнения арифметическихопераций может применяться конвейерная обработка. В случаевекторных систем векторный поток данных следует рассматривать какпоток из одиночных неделимых векторов. Примерами компьютеров сархитектурой SISD являются большинство рабочих станций Compaq,Hewlett-Packard и Sun Microsystems.MISD - Теоретически в этом типе машин множество инструкцийдолжно выполнятся над единственным потоком данных. До сих пор ниодной реальной машины, попадающей в данный класс, не было создано.В качестве аналога работы такой системы, по-видимому, можнорассматривать работу банка.
С любого терминала можно податькоманду и что-то сделать с имеющимся банком данных. Поскольку базаданных одна, а команд много, то мы имеем дело с множественнымпотоком команд и одиночным потоком данных.SIMD- Эти системы обычно имеют большое количествопроцессоров, в пределах от 1024 до 16384, которые могут выполнятьодну и ту же инструкцию относительно разных данных в жесткойконфигурации. Единственная инструкция параллельно выполняется надмногими элементами данных. Примерами SIMD машин являютсясистемы CPP DAP, Gamma II и Quadrics Apemille.ДругимподклассомSIMD-системявляютсявекторныекомпьютеры. Векторные компьютеры манипулируют массивами130сходных данных подобно тому, как скалярные машины обрабатываютотдельные элементы таких массивов.
Это делается за счетиспользования специально сконструированных векторных центральныхпроцессоров. Когда данные обрабатываются посредством векторныхмодулей, результаты могут быть выданы на один, два или три тактачастотогенератора (такт частотогенератора является основнымвременным параметром системы). При работе в векторном режимевекторные процессоры обрабатывают данные практически параллельно,что делает их в несколько раз более быстрыми, чем при работе вскалярном режиме. Примерами систем подобного типа является,например, компьютеры Hitachi S3600.MIMD. Эти машины параллельно выполняют несколько потоковинструкций над различными потоками данных. В отличие отмногопроцессорных SISD-машин, упомянутых выше, команды и данныесвязаны, потому что они представляют различные части одной и той жевыполняемой задачи.
Например, MIMD-системы могут параллельновыполнять множество подзадач, с целью сокращения временивыполнения основной задачи.Наличие большого разнообразия попадающих в данный класссистем, делает классификацию Флинна не полностью адекватной.Действительно и четырех-процессорный SX-5 компании NEC и тысячепроцессорный Cray T3E оба попадают в этот класс. Это заставляетискать другие подходы к классификации.Другие подходы к классификации ВСКлассификация ДжонсонаЕ.Джонсон предложил проводить классификацию MIMDархитектур на основе структуры памяти и реализации механизмавзаимодействия и синхронизации между процессорами.Поструктуреоперативнойпамятисуществующиевычислительные системы делятся на две большие группы: либо этосистемы с общей памятью, прямо адресуемой всеми процессорами, либоэто системы с распределенной памятью, каждая часть которой доступнатолько одному процессору.
Одновременно с этим, и длямежпроцессорного взаимодействия существуют две альтернативы: черезразделяемые переменные или с помощью механизма передачисообщений. Исходя из таких предположений, можно получить четырекласса MIMD архитектур, уточняющих систематику Флинна:— общая память - разделяемые переменные (GMSV);— распределенная память - разделяемые переменные (DMSV);— распределенная память - передача сообщений (DMMP);— общая память - передача сообщений (GMMP).131Опираясь на такое деление, Джонсон вводит названия длянекоторых классов. Так вычислительные системы, использующиеобщую разделяемую память для межпроцессорного взаимодействия исинхронизации, он называет системами с разделяемой памятью,например, CRAY Y-MP (по его классификации это класс 1). Системы, вкоторых память распределена по процессорам, а для взаимодействия исинхронизации используется механизм передачи сообщений он называетархитектурами с передачей сообщений, например NCube, (класс 3).Системы с распределенной памятью и синхронизацией черезразделяемые переменные, как в BBN Butterfly, называются гибриднымиархитектурами (класс 2).В качестве уточнения классификации автор отмечает возможностьучитывать вид связи между процессорами: общая шина, переключатели,разнообразные сети и т.п.Классификация БазуПомнениюА.Базу(A.Basu),любуюпараллельнуювычислительнуюсистемуможнооднозначноописатьпоследовательностью решений, принятых на этапе ее проектирования, асам процесс проектирования представить в виде дерева.
В самом деле,корень дерева - это вычислительная система (см. рисунок), апоследующие ярусы дерева, фиксируя уровень параллелизма, методреализации алгоритма, параллелизм инструкций и способ управления,последовательно дополняют друг друга, формируя описание системы.132На первом этапе мы определяем, какой уровень параллелизмаиспользуется в вычислительной системе. Одна и та же операция можетодновременно выполняться над целым набором данных, определяяпараллелизм на уровне данных (обозначается буквой D на рисунке).Способность выполнять более одной операции одновременно говорит опараллелизме на уровне команд (буква O на рисунке).
Если жекомпьютер спроектирован так, что целые последовательности командмогут быть выполнены одновременно, то будем говорить опараллелизме на уровне задач (буква T).Второй уровень в классификационном дереве фиксирует методреализации алгоритма. С появлением сверхбольших интегральных схем(СБИС) стало возможным реализовывать аппаратно не только простыеарифметические операции, но и алгоритмы целиком.
Например, быстроепреобразование Фурье, произведение матриц и LU-разложениеотносятся к классу тех алгоритмов, которые могут быть эффективнореализованы в СБИС'ах. Данный уровень классификации разделяетсистемы с аппаратной реализацией алгоритмов (буква C на схеме) исистемы, использующие традиционный способ программной реализации(буква P).Третий уровень конкретизирует тип параллелизма, используемогодля обработки инструкций машины: конвейеризация инструкций (Pi)или их независимое (параллельное) выполнение (Pa).
В большейстепени этот выбор относится к компьютерам с программнойреализацией алгоритмов, так как аппаратная реализация всегдапредполагает параллельное исполнение команд. Отметим, что в случае133конвейерного исполнения имеется в виду лишь конвейеризация самихкоманд, разбивающая весь цикл обработки на выборку команды,дешифрацию, вычисление адресов и т.д., - возможная конвейеризациявычислений на данном уровне не принимается во внимание.Последний уровень данной классификации определяет способуправления, принятый в вычислительной системе: синхронный (S) илиасинхронный (A). Если выполнение команд происходит в строгомпорядке, определяемом только сигналами таймера и счетчиком команд,то будем говорить о синхронном способе управления.