Персональные компьютеры относятся к типу архитектуры по классификации флинна
Вычислительная техника - одна из наиболее быстро и динамично развивающихся областей науки и техники. Ее динамика, с одной стороны, связана с широким проникновением вычислительной техники во все сферы человеческой деятельности, с другой стороны - с бурным ростом технических характеристик вычислительных машин и систем. С начала шестидесятых годов прошлого века период удвоения основных характеристик компьютеров не превышает двух лет. Такой стремительный рост приводит к неоднозначности используемой терминологии, к субъективной оценке сфер применения конкретных ЭВМ.
Современная вычислительная машина представляет собой сложную аппаратно-программную систему, состоящую из большого числа взаимосвязанных элементов. Каждый из этих элементов имеет свои характеристики, совокупность которых определяет технико-эксплуатационные характеристики всей вычислительной машины.
К технико-эксплуатационным характеристикам ЭВМ, определяющим их функциональные возможности, относят:
- быстродействие;
- разрядность;
- формы представления чисел;
- номенклатура и характеристики запоминающих устройств;
- номенклатура и характеристики устройств ввода-вывода информации;
- типы и характеристики внутренних и внешних интерфейсов;
- наличие многопользовательских режимов и поддержка многопро-граммности;
- типы и характеристики, используемых ОС;
- система команд и их структура;
- функциональные возможности программного обеспечения и его наличие;
- программная совместимость с другими типами ЭВМ;
- срок эксплуатации;
- условия эксплуатации;
- характеристики надежности;
- состав и объем профилактических работ;
- стоимостные характеристики;
- совокупная стоимость владения.
Несмотря на сравнительно короткую историю современной вычислительной техники, до настоящего времени было предложено достаточно много подходов к систематизации всего многообразия средств вычислительной техники [40]. Работы в этом направлении продолжаются.
Любая классификация относительна и отражает только ограниченное многообразие свойств классифицируемых объектов или процессов. Но, как показал опыт , нахождение удачной классификации может предопределить успех развития целых научных и технических направлений. Характерный пример - периодическая таблица элементов Менделеева.
При разработке любой классификации важно понимать, для кого она создается и на решение каких задач направлена.
Используемый классификационный признак должен быть измеряемым и позволять относить классифицируемого объекта к единственному классу.
На практике эти требования часто удовлетворяются с допущениями. Примером служат большинство применяемых классификаций ЭВМ и вычислительных систем.
Для классификации компьютеров использовались следующие классификационные признаки:
- принцип действия;
- используемая элементная база;
- назначение;
- размеры и вычислительная мощность;
- особенности архитектуры.
- По принципу действия вычислительные машины делятся на цифровые, аналоговые и гибридные.
В основу классификации по этому признаку положена форма представления информации, с которой работают вычислительные машины.
По этому признаку вычислительные машины можно разделить на три группы: специализированные, универсальные и проблемно-ориентированные.
Универсальные ЭВМ позволяют решать задачи различных классов: математических, инженерно-технических, экономических, информационных и др.
Проблемно-ориентированные ЭВМ предназначены для решения круга задач более узкого: управление технологическими процессами; выполнение расчетов по сравнительно несложным алгоритмам; регистрация, накопление и обработка не очень больших объемов небольших данных. Они имеют более скромные по сравнению с универсальными ЭВМ программные и аппаратные ресурсы. Примером проблемно-ориентированным вычислительных систем могут служить и различные управляющие вычислительные комплексы. Специализированные вычислительные машины предназначены для решения узкого круга задач.
Характеристики и архитектура машин этого класса определяются спецификой тех задач, для решения которых они используются. Это обеспечивает их более высокую эффективность в соответствующем применении по сравнению с универсальными ЭВМ. К специализированным ЭВМ относятся контроллеры, управляющие несложными техническими устройствами и процессами и микропроцессоры специального назначения.
В соответствии с этой классификации вычислительные машины делятся на суперЭВМ, большие, малые, сверхмалые. Эта классификация потеряла свою актуальность. Можно говорить только о существовании класса суперЭВМ (суперкомпьютеров).
В качестве классификационных признаков используются: характеристики системы команд компьютера (количество команд, структура адресной части команд), разрядность машинных слов, организация обработки данных и команд процессором.
Классификация Флинна
Классификация М. Флинна [38, 303] является одной из самых ранних и наиболее известных классификацией архитектур вычислительных систем. В основу классификации положено понятие потока. Поток - это последовательность, под которой понимается последовательность данных или команд, обрабатываемых процессором. Рассматривая число потоков данных и потоков команд, М. Флинн предложил рассматривать следующие классы архитектур: MIMD, SIMD, SISD , MISD .
Single Instruction Single Data [stream] - "один поток команд, один поток данных", архитектура SISD ( ОКОД ). Описание архитектуры компьютерной системы, подразумевающее исполнение одним процессором одного потока команд, который обрабатывает данные, хранящиеся в одной памяти (рис. 2.1а.).
Multiple Data stream processing - "один поток команд, много потоков данных", архитектура SIMD ( ОКМД ). Описание архитектуры параллельной компьютерной системы, подразумевающее исполнение одной текущей команды несколькими процессорами. Эта команда выбирается из памяти центральным контроллером SIMD-системы, но работает она над разными элементами данных (чаще всего - элементами массива). Для этого каждый процессор имеет ассоциированную с ним память, где хранятся массивы однородных данных. В эту категорию попадают, в частности, векторные процессоры . (рис. 2.1б.).
Multiple Instruction Single Data [stream] - "много потоков команд, один поток данных", архитектура MISD (МКОД). Одна из четырёх возможных архитектур параллельного компьютера в классификации М. Флинна. В этой архитектуре данные подаются на набор процессоров, каждый из которых исполняет свою программу их обработки. Подобная архитектура ещё никогда не была реализована (рис. 2.1в.).
Multiple Instructions - Multiple Data [stream] - "много потоков команд, много потоков данных", архитектура MIMD (МКМД). Одна из четырёх возможных архитектур параллельного компьютера. В этой архитектуре набор процессоров независимо выполняет различные наборы команд, обрабатывающих различные наборы данных. Системы в архитектуре MIMD делятся на системы с распределённой памятью (слабо связанные системы), к которым относятся кластеры, и системы с совместно используемой памятью ( shared-memory multiprocessors ). К последним относятся симметричные мультипроцессорные системы.
В класс SISD входят однопроцессорные последовательные компьютеры. Векторно-конвейерные компьютеры также могут быть отнесены к этому классу, если рассматривать вектор как одно неделимое данное для машинной команды. Это отмечают критики этой классификации.
К классу SIMD относятся классические процессорные матрицы. В них множество процессорных элементов контролируется общим управляющим устройством. Все процессорные элементы одновременно получают от устройства одинаковые команды и обрабатывают свои локальные данные. Если рассматривать каждый элемент вектора как отдельный элемент потока данных, то к этому классу можно отнести и векторно-конвейерные компьютеры .
Класс MIMD включает в себя все многообразие многопроцессорных систем. Если рассматривать конвейерную обработку как выполнение множества команд не над одиночным векторным потоком данных, а над
множественным скалярным потоком, то в этот класс могут быть включены векторно-конвейерные компьютеры .
Классификация Флинна широко используется и сегодня для начального описания вычислительных систем.
У этой классификации есть очевидные недостатки:
- в нее четко не вписываются отдельные нашедшие применение архитектуры. Например, векторно-конвейерные компьютеры и компьютеры, управляемые потоками данных;
- класс MIMD очень перегружен: в него вошли все многопроцессорные системы. При этом они существенно отличаются по ряду признаков (числом процессоров, природе и топологией и видами связей между ними, способами организации памяти и технологиями программирования).
Несколько классификаций, предложенных позже, расширяют классификацию М. Флинна. Примером такой классификации может служить классификация Ванга и Бригса.
Классификация Ванга и Бриггса
Эта классификация по сути, является дополнением к классификации Флинна. В ней сохранены четыре базовых класса ( SISD , SIMD, MISD , MIMD), К. Ванг и Ф. Бриггс [42, 303] внесли следующие изменения.
В классе MIMD выделяются:
- вычислительные системы со слабо связанными процессорами,
- вычислительные системы с сильной связанными процессорами.
К первой группе относятся системы с распределенной памятью , ко второй - системы с общей памятью.
Класс SISD делится на два подкласса:
- архитектуры, имеющие одно функциональное устройство;
- архитектуры, в состав которых входит несколько функциональных устройств.
Класс SIMD с учетом способа обработки данных делится на два подкласса:
- архитектуры с разрядно-последовательной обработкой данных;
- архитектуры с пословно-последовательной обработкой данных.
Классификация Фенга
Т. Фенг предложил в основу классификации вычислительных систем положить две простые характеристики [42, 303]:
- число бит в машинном слове, которые обрабатываются параллель но при выполнении машинных команд;
- числу слов , одновременно обрабатываемых вычислительной системой. Используя эту терминологию работу любого компьютера можно интерпретировать как параллельную обработку n битовых слоев. В каждом слое независимо преобразуются бит. При такой интерпретации, вторую характеристику называют шириной битового слоя.
Иcпользуя предельные верхние значения числа бит n и числа слов m, вычислительную систему можно охарактеризовать двумя числами ( ). Величина определяет интегральную характеристику потенциала параллельности P архитектуры. Эта характеристика называется максимальной степенью параллелизма вычислительной системы: . По сути, это значение характеризует пиковую производительность. Рассматривая в качестве классификационного признака вычислительных систем способ обработки информации, заложенный в их архитектуру, введенные понятия позволяют разделить все вычислительные системы на следующие классы.
- Разрядно-последовательные, пословно-последовательные ( ).
- Разрядно-параллельные, пословно-последовательные ( 1 , m = 1" />
). К этому классу можно отнести большинство классических последовательных компьютеров. - Разрядно-последовательные, пословно-параллельные ( 1" />
). - Разрядно-параллельные, пословно-параллельные ( 1, m >1" />
). К этому классу относится большинство современных параллельных вычислительных систем.
Эта классификация имеет ограничения. Они связаны со способом вычисления ширины битового слоя .
В соответствии с этой классификацией отсутствуют различия между многопроцессорными системами, векторно-конвейерными компьютерами и процессорными матрицами.
Данная классификация не позволяет понять специфику той или иной высокопроизводительной вычислительной системы.
Достоинством классификации Фенга является введение единой числовой характеристики для всех типов вычислительных систем, которая позволяет сравнивать их между собой.
Из интересных видов классификации можно отметить подход Базу, который строит классификацию по последовательности решений, принимаемых на этапе проектирования архитектуры. Согласно А. Базу (A. Basu), любую параллельную вычислительную систему можно однозначно описать последовательностью решений, принятых на этапе ее проектирования, а сам процесс проектирования представить в виде дерева [42].
В корне "дерева Базу" размещается вычислительная система, последующие ярусы дерева служат для описания иерархии принятия решений
при проектировании вычислительной системы. В итоге формируется описание проектируемой системы, представляемое значениями классификационных признаков в системе Базу.
Понятие архитектуры высокопроизводительной системы является достаточно широким, поскольку под архитектурой можно понимать и способ параллельной обработки данных, используемый в системе, и организацию памяти, и топологию связи между процессорами, и способ исполнения системой арифметических операций. Попытки систематизировать все множество архитектур впервые были предприняты в конце 60-х годов и продолжаются по сей день.
В 1966 г. М.Флинном (Flynn) был предложен чрезвычайно удобный подход к классификации архитектур вычислительных систем. В его основу было положено понятие потока, под которым понимается последовательность элементов, команд или данных, обрабатываемая процессором. Соответствующая система классификации основана на рассмотрении числа потоков инструкций и потоков данных и описывает четыре архитектурных класса:
SISD = Single Instruction Single Data
MISD = Multiple Instruction Single Data
SIMD = Single Instruction Multiple Data
MIMD = Multiple Instruction Multiple Data
SISD (single instruction stream / single data stream) – одиночный поток команд и одиночный поток данных. К этому классу относятся последовательные компьютерные системы, которые имеют один центральный процессор, способный обрабатывать только один поток последовательно исполняемых инструкций. В настоящее время практически все высокопроизводительные системы имеют более одного центрального процессора, однако каждый из них выполняет несвязанные потоки инструкций, что делает такие системы комплексами SISD-систем, действующих на разных пространствах данных. Для увеличения скорости обработки команд и скорости выполнения арифметических операций может применяться конвейерная обработка. В случае векторных систем векторный поток данных следует рассматривать как поток из одиночных неделимых векторов.
MISD (multiple instruction stream / single data stream) – множественный поток команд и одиночный поток данных. Теоретически в этом типе машин множество инструкций должно выполняться над единственным потоком данных. До сих пор ни одной реальной машины, попадающей в данный класс, создано не было.
SIMD (single instruction stream / multiple data stream) – одиночный поток команд и множественный поток данных. Эти системы обычно имеют большое количество процессоров, от 1024 до 16384, которые могут выполнять одну и ту же инструкцию относительно разных данных в жесткой конфигурации. Единственная инструкция параллельно выполняется над многими элементами данных.
MIMD (multiple instruction stream / multiple data stream) – множественный поток команд и множественный поток данных. Эти машины параллельно выполняют несколько потоков инструкций над различными потоками данных. В отличие от упомянутых выше многопроцессорных SISD-машин, команды и данные связаны, потому что они представляют различные части одной и той же задачи. Например, MIMD-системы могут параллельно выполнять множество подзадач с целью сокращения времени выполнения основной задачи. Большое разнообразие попадающих в данный класс систем делает классификацию Флинна не полностью адекватной. Действительно, и четырехпроцессорный SX-5 компании NEC, и тысячепроцессорный Cray T3E попадают в этот класс.
Итак, что же собой представляет каждый класс? В SISD, как уже говорилось, входят однопроцессорные последовательные компьютеры типа VAX 11/780. Однако, многими критиками подмечено, что в этот класс можно включить и векторно-конвейерные машины, если рассматривать вектор как одно неделимое данное для соответствующей команды. В таком случае в этот класс попадут и такие системы, как CRAY-1, CYBER 205, машины семейства FACOM VP и многие другие.
Бесспорными представителями класса SIMD считаются матрицы процессоров: ILLIAC IV, ICL DAP, Goodyear Aerospace MPP, Connection Machine 1 и т.п. В таких системах единое управляющее устройство контролирует множество процессорных элементов. Каждый процессорный элемент получает от устройства управления в каждый фиксированный момент времени одинаковую команду и выполняет ее над своими локальными данными. Для классических процессорных матриц никаких вопросов не возникает, однако в этот же класс можно включить и векторно-конвейерные машины, например, CRAY-1. В этом случае каждый элемент вектора надо рассматривать как отдельный элемент потока данных.
Класс MIMD чрезвычайно широк, поскольку включает в себя всевозможные мультипроцессорные системы: Cm*, C.mmp, CRAY Y-MP, Denelcor HEP,BBN Butterfly, Intel Paragon, CRAY T3D и многие другие. Интересно то, что если конвейерную обработку рассматривать как выполнение множества команд (операций ступеней конвейера) не над одиночным векторным потоком данных, а над множественным скалярным потоком, то все рассмотренные выше векторно-конвейерные компьютеры можно расположить и в данном классе.
Предложенная схема классификации вплоть до настоящего времени является самой применяемой при начальной характеристике того или иного компьютера. Если говорится, что компьютер принадлежит классу SIMD или MIMD, то сразу становится понятным базовый принцип его работы, и в некоторых случаях этого бывает достаточно. Однако видны и явные недостатки. В частности, некоторые заслуживающие внимания архитектуры, например dataflow и векторно--конвейерные машины, четко не вписываются в данную классификацию. Другой недостаток - это чрезмерная заполненность класса MIMD. Необходимо средство, более избирательно систематизирующее архитектуры, которые по Флинну попадают в один класс, но совершенно различны по числу процессоров, природе и топологии связи между ними, по способу организации памяти и, конечно же, по технологии программирования.
Наличие пустого класса (MISD) не стоит считать недостатком схемы. Такие классы, по мнению некоторых исследователей в области классификации архитектур, могут стать чрезвычайно полезными для разработки принципиально новых концепций в теории и практике построения вычислительных систем.
Существует множество различных видов вычислительных систем и за более 50-летний период предложено множество их классификацией, но:
Наиболее известной классификацией архитектур ВС является предложенная в 1966 году М.Флинном и базирующейся на понятии потока, под которым понимается последовательность элементов, команд или данных, обрабатываемая процессором.
Под потоком команд понимается последовательность команд выполняемых вычислительным средством, а под потоком данных – последовательность данных (включающая исходные данные, промежуточные и окончательные результаты), порождаемая, управляемая и обрабатываемая потоком команд.
Выделают четыре типа архитектур ВС: SISD, MISD, SIMD, MIMD:
SISD (single instruction, single data) – системы с одиночным потоком команд и одиночным потоком данных. К этому классу относятся, прежде всего, классические последовательные машины (однопроцессорные ЭВМ), или иначе, машины фон-неймановского типа, например, PDP-11 или VAX 11/780. В такой ВС единственный процессор выполняет единственный поток команд и обрабатывает единственный поток данных, хранящихся в единственном блоке памяти.
SIMD (single instruction, multiple data) – системы с одиночным потоком команд и множественным потоком данных. В такой ВС имеется несколько одинаковых процессоров, которые выполняют команды из единственного потока команд. Каждый процессор связан со своим блоком памяти данных, и все процессоры параллельно обрабатывают свои данные по одному и тому же алгоритму. Особенностью этого класса являются векторные команды.
MISD (multiple instruction, single data) – системы с множественным потоком команд и одиночным потоком данных. В такой системе единственный поток данных проходит через несколько процессоров, каждый из которых выполняет свою последовательность команд. Такая структура до сих пор не реализована на практике, хотя принципиально напоминает систему с конвейерной обработкой, но в таков ВС на каждой рабочей позиции должна решается своя задача, а не этап обработки машинной команды.
MIMD (multiple instruction, multiple data) - системы с множественным потоком команд и множественным потоком данных. Этот класс предполагает, что в вычислительной системе есть несколько устройств обработки команд, объединенных в единый комплекс, каждое из которых работает со своим потоком команд и данных. Основное отличие этих систем от многопроцессорных SIMD-машин состоит в том, что инструкции и данные связаны, потому что они относятся к одной и той же исполняемой задаче.
Существует очень много различных машин, относящихся к классу систем со множественным потоком команд и данных и их особенности в классификации Флинна это никак не отражено. На протяжении всей истории развития вычислительной техники делались попытки найти какую-то общую классификацию, под которую подпадали бы все возможные направления развития компьютерных архитектур. Ни одна из таких классификаций не могла охватить все разнообразие разрабатываемых архитектурных решений и не выдерживала испытания временем. Тем не менее в научный оборот попали и широко используются именно эта классификация.
Вычислительная техника - одна из наиболее быстро и динамично развивающихся областей науки и техники. Ее динамика, с одной стороны, связана с широким проникновением вычислительной техники во все сферы человеческой деятельности, с другой стороны - с бурным ростом технических характеристик вычислительных машин и систем. С начала шестидесятых годов прошлого века период удвоения основных характеристик компьютеров не превышает двух лет. Такой стремительный рост приводит к неоднозначности используемой терминологии, к субъективной оценке сфер применения конкретных ЭВМ.
Современная вычислительная машина представляет собой сложную аппаратно-программную систему, состоящую из большого числа взаимосвязанных элементов. Каждый из этих элементов имеет свои характеристики, совокупность которых определяет технико-эксплуатационные характеристики всей вычислительной машины.
К технико-эксплуатационным характеристикам ЭВМ, определяющим их функциональные возможности, относят:
- быстродействие;
- разрядность;
- формы представления чисел;
- номенклатура и характеристики запоминающих устройств;
- номенклатура и характеристики устройств ввода-вывода информации;
- типы и характеристики внутренних и внешних интерфейсов;
- наличие многопользовательских режимов и поддержка многопро-граммности;
- типы и характеристики, используемых ОС;
- система команд и их структура;
- функциональные возможности программного обеспечения и его наличие;
- программная совместимость с другими типами ЭВМ;
- срок эксплуатации;
- условия эксплуатации;
- характеристики надежности;
- состав и объем профилактических работ;
- стоимостные характеристики;
- совокупная стоимость владения.
Несмотря на сравнительно короткую историю современной вычислительной техники, до настоящего времени было предложено достаточно много подходов к систематизации всего многообразия средств вычислительной техники [40]. Работы в этом направлении продолжаются.
Любая классификация относительна и отражает только ограниченное многообразие свойств классифицируемых объектов или процессов. Но, как показал опыт , нахождение удачной классификации может предопределить успех развития целых научных и технических направлений. Характерный пример - периодическая таблица элементов Менделеева.
При разработке любой классификации важно понимать, для кого она создается и на решение каких задач направлена.
Используемый классификационный признак должен быть измеряемым и позволять относить классифицируемого объекта к единственному классу.
На практике эти требования часто удовлетворяются с допущениями. Примером служат большинство применяемых классификаций ЭВМ и вычислительных систем.
Для классификации компьютеров использовались следующие классификационные признаки:
- принцип действия;
- используемая элементная база;
- назначение;
- размеры и вычислительная мощность;
- особенности архитектуры.
- По принципу действия вычислительные машины делятся на цифровые, аналоговые и гибридные.
В основу классификации по этому признаку положена форма представления информации, с которой работают вычислительные машины.
По этому признаку вычислительные машины можно разделить на три группы: специализированные, универсальные и проблемно-ориентированные.
Универсальные ЭВМ позволяют решать задачи различных классов: математических, инженерно-технических, экономических, информационных и др.
Проблемно-ориентированные ЭВМ предназначены для решения круга задач более узкого: управление технологическими процессами; выполнение расчетов по сравнительно несложным алгоритмам; регистрация, накопление и обработка не очень больших объемов небольших данных. Они имеют более скромные по сравнению с универсальными ЭВМ программные и аппаратные ресурсы. Примером проблемно-ориентированным вычислительных систем могут служить и различные управляющие вычислительные комплексы. Специализированные вычислительные машины предназначены для решения узкого круга задач.
Характеристики и архитектура машин этого класса определяются спецификой тех задач, для решения которых они используются. Это обеспечивает их более высокую эффективность в соответствующем применении по сравнению с универсальными ЭВМ. К специализированным ЭВМ относятся контроллеры, управляющие несложными техническими устройствами и процессами и микропроцессоры специального назначения.
В соответствии с этой классификации вычислительные машины делятся на суперЭВМ, большие, малые, сверхмалые. Эта классификация потеряла свою актуальность. Можно говорить только о существовании класса суперЭВМ (суперкомпьютеров).
В качестве классификационных признаков используются: характеристики системы команд компьютера (количество команд, структура адресной части команд), разрядность машинных слов, организация обработки данных и команд процессором.
Классификация Флинна
Классификация М. Флинна [38, 303] является одной из самых ранних и наиболее известных классификацией архитектур вычислительных систем. В основу классификации положено понятие потока. Поток - это последовательность, под которой понимается последовательность данных или команд, обрабатываемых процессором. Рассматривая число потоков данных и потоков команд, М. Флинн предложил рассматривать следующие классы архитектур: MIMD, SIMD, SISD , MISD .
Single Instruction Single Data [stream] - "один поток команд, один поток данных", архитектура SISD ( ОКОД ). Описание архитектуры компьютерной системы, подразумевающее исполнение одним процессором одного потока команд, который обрабатывает данные, хранящиеся в одной памяти (рис. 2.1а.).
Multiple Data stream processing - "один поток команд, много потоков данных", архитектура SIMD ( ОКМД ). Описание архитектуры параллельной компьютерной системы, подразумевающее исполнение одной текущей команды несколькими процессорами. Эта команда выбирается из памяти центральным контроллером SIMD-системы, но работает она над разными элементами данных (чаще всего - элементами массива). Для этого каждый процессор имеет ассоциированную с ним память, где хранятся массивы однородных данных. В эту категорию попадают, в частности, векторные процессоры . (рис. 2.1б.).
Multiple Instruction Single Data [stream] - "много потоков команд, один поток данных", архитектура MISD (МКОД). Одна из четырёх возможных архитектур параллельного компьютера в классификации М. Флинна. В этой архитектуре данные подаются на набор процессоров, каждый из которых исполняет свою программу их обработки. Подобная архитектура ещё никогда не была реализована (рис. 2.1в.).
Multiple Instructions - Multiple Data [stream] - "много потоков команд, много потоков данных", архитектура MIMD (МКМД). Одна из четырёх возможных архитектур параллельного компьютера. В этой архитектуре набор процессоров независимо выполняет различные наборы команд, обрабатывающих различные наборы данных. Системы в архитектуре MIMD делятся на системы с распределённой памятью (слабо связанные системы), к которым относятся кластеры, и системы с совместно используемой памятью ( shared-memory multiprocessors ). К последним относятся симметричные мультипроцессорные системы.
В класс SISD входят однопроцессорные последовательные компьютеры. Векторно-конвейерные компьютеры также могут быть отнесены к этому классу, если рассматривать вектор как одно неделимое данное для машинной команды. Это отмечают критики этой классификации.
К классу SIMD относятся классические процессорные матрицы. В них множество процессорных элементов контролируется общим управляющим устройством. Все процессорные элементы одновременно получают от устройства одинаковые команды и обрабатывают свои локальные данные. Если рассматривать каждый элемент вектора как отдельный элемент потока данных, то к этому классу можно отнести и векторно-конвейерные компьютеры .
Класс MIMD включает в себя все многообразие многопроцессорных систем. Если рассматривать конвейерную обработку как выполнение множества команд не над одиночным векторным потоком данных, а над
множественным скалярным потоком, то в этот класс могут быть включены векторно-конвейерные компьютеры .
Классификация Флинна широко используется и сегодня для начального описания вычислительных систем.
У этой классификации есть очевидные недостатки:
- в нее четко не вписываются отдельные нашедшие применение архитектуры. Например, векторно-конвейерные компьютеры и компьютеры, управляемые потоками данных;
- класс MIMD очень перегружен: в него вошли все многопроцессорные системы. При этом они существенно отличаются по ряду признаков (числом процессоров, природе и топологией и видами связей между ними, способами организации памяти и технологиями программирования).
Несколько классификаций, предложенных позже, расширяют классификацию М. Флинна. Примером такой классификации может служить классификация Ванга и Бригса.
Классификация Ванга и Бриггса
Эта классификация по сути, является дополнением к классификации Флинна. В ней сохранены четыре базовых класса ( SISD , SIMD, MISD , MIMD), К. Ванг и Ф. Бриггс [42, 303] внесли следующие изменения.
В классе MIMD выделяются:
- вычислительные системы со слабо связанными процессорами,
- вычислительные системы с сильной связанными процессорами.
К первой группе относятся системы с распределенной памятью , ко второй - системы с общей памятью.
Класс SISD делится на два подкласса:
- архитектуры, имеющие одно функциональное устройство;
- архитектуры, в состав которых входит несколько функциональных устройств.
Класс SIMD с учетом способа обработки данных делится на два подкласса:
- архитектуры с разрядно-последовательной обработкой данных;
- архитектуры с пословно-последовательной обработкой данных.
Классификация Фенга
Т. Фенг предложил в основу классификации вычислительных систем положить две простые характеристики [42, 303]:
- число бит в машинном слове, которые обрабатываются параллель но при выполнении машинных команд;
- числу слов , одновременно обрабатываемых вычислительной системой. Используя эту терминологию работу любого компьютера можно интерпретировать как параллельную обработку n битовых слоев. В каждом слое независимо преобразуются бит. При такой интерпретации, вторую характеристику называют шириной битового слоя.
Иcпользуя предельные верхние значения числа бит n и числа слов m, вычислительную систему можно охарактеризовать двумя числами ( ). Величина определяет интегральную характеристику потенциала параллельности P архитектуры. Эта характеристика называется максимальной степенью параллелизма вычислительной системы: . По сути, это значение характеризует пиковую производительность. Рассматривая в качестве классификационного признака вычислительных систем способ обработки информации, заложенный в их архитектуру, введенные понятия позволяют разделить все вычислительные системы на следующие классы.
- Разрядно-последовательные, пословно-последовательные ( ).
- Разрядно-параллельные, пословно-последовательные ( 1 , m = 1" />
). К этому классу можно отнести большинство классических последовательных компьютеров. - Разрядно-последовательные, пословно-параллельные ( 1" />
). - Разрядно-параллельные, пословно-параллельные ( 1, m >1" />
). К этому классу относится большинство современных параллельных вычислительных систем.
Эта классификация имеет ограничения. Они связаны со способом вычисления ширины битового слоя .
В соответствии с этой классификацией отсутствуют различия между многопроцессорными системами, векторно-конвейерными компьютерами и процессорными матрицами.
Данная классификация не позволяет понять специфику той или иной высокопроизводительной вычислительной системы.
Достоинством классификации Фенга является введение единой числовой характеристики для всех типов вычислительных систем, которая позволяет сравнивать их между собой.
Из интересных видов классификации можно отметить подход Базу, который строит классификацию по последовательности решений, принимаемых на этапе проектирования архитектуры. Согласно А. Базу (A. Basu), любую параллельную вычислительную систему можно однозначно описать последовательностью решений, принятых на этапе ее проектирования, а сам процесс проектирования представить в виде дерева [42].
В корне "дерева Базу" размещается вычислительная система, последующие ярусы дерева служат для описания иерархии принятия решений
при проектировании вычислительной системы. В итоге формируется описание проектируемой системы, представляемое значениями классификационных признаков в системе Базу.
Приведем вначале систематику Флинна. В соответствии с ней все компьютеры делятся на четыре класса в зависимости от числа потоков команд и данных.
1. SISD (Single Instruction Single Data) – одиночный поток команд, одиночный поток данных (последовательные компьютеры фон Неймана). К этому классу относятся последовательные компьютерные системы, которые имеют один центральный процессор, способный обрабатывать только один поток последовательно исполняемых инструкций. Примерами компьютеров с архитектурой SISD являются большинство рабочих станций Compaq, Hewlett-Packard и Sun Microsystems. Это обычные скалерные, однопроцессорные системы.
Помимо RISC и CISC компьютеров, архитектура SISD породила еще и машины с суперскалярной обработкой. Смысл которой – наличие в аппаратуре средств, позволяющих одновременно выполнять две и более скалярные операции, т.е. команд обработки пары чисел (например, процессоры DEC серии Alpha).
2. SIMD ((Single Instruction Multiple Data) – характеризуются наличием одиночного потока команд, но множественного потока данных. К этому классу относятся однопроцессорные, векторно-конвейерные суперкомпьютеры, например Cray – 1и более современный Cray Y-MP. В этом случае мы имеем дело с одним потоком (векторных) команд, а потоков данных много; каждый элемент вектора входит в отдельный поток данных.
Эти системы обычно имеют большое количество процессоров, в пределах от 1024 до 16384, которые могут выполнять одну и ту же инструкцию относительно разных данных в жесткой конфигурации. Единственная инструкция параллельно выполняется над многими элементами данных. Примерами SIMD машин являются системы CPP DAP, Gamma II и Quadrics Apemille. Другим подклассом SIMD-систем являются векторные компьютеры. Векторные компьютеры манипулируют массивами сходных данных подобно тому, как скалярные машины обрабатывают отдельные элементы таких массивов. Это делается за счет использования специально сконструированных векторных центральных процессоров. Когда данные обрабатываются посредством векторных модулей, результаты могут быть выданы на один, два или три такта частотогенератора (такт частотогенератора является основным временным параметром системы). При работе в векторном режиме векторные процессоры обрабатывают данные практически параллельно, что делает их в несколько раз более быстрыми, чем при работе в скалярном режиме. Примерами систем подобного типа является, например, компьютеры Hitachi S3600.
Основу конвейерной обработки составляет – одновременное выполнение нескольких различных этапов одной операции на различных ступенях конвейера.
При выполнении векторной обработки – одна и та же операция применяется ко всем элементам вектора.
Пример: проект SOLOMON.
К этому же классу ВС относятся матричные процессоры, например знаменитый ILIAC – IV. Они также имеют векторные команды и реализуют векторную обработку, но не посредством конвейеров, как в векторных суперкомпьютерах, а с помощью матриц процессоров.
Машины типа SIMD состоят из большого числа идентичных процессорных элементов, имеющих собственную память. Все процессорные элементы в такой машине выполняют одну и ту же программу. Очевидно, что такая машина, составленная из большого числа процессоров, может обеспечить очень высокую производительность только на тех задачах, при решении которых все процессоры могут делать одну и ту же работу. Модель вычислений для машины SIMD очень похожа на модель вычислений для векторного процессора: одиночная операция выполняется над большим блоком данных.
В отличие от ограниченного конвейерного функционирования векторного процессора, матричный процессор (синоним для большинства SIMD-машин) может быть значительно более гибким. Обрабатывающие элементы таких процессоров - это универсальные программируемые ЭВМ, так что задача, решаемая параллельно, может быть достаточно сложной и содержать ветвления. Обычное проявление этой вычислительной модели в исходной программе примерно такое же, как и в случае векторных операций: циклы на элементах массива, в которых значения, вырабатываемые на одной итерации цикла, не используются на другой итерации цикла.
Модели вычислений на векторных и матричных ЭВМ настолько схожи, что эти ЭВМ часто обсуждаются как эквивалентные.
3. MIMD (Multiple Instruction Multiple Data) – множественный поток команд и множественный поток данных.
К этому классу принадлежат не векторные суперЭВМ, но и все многопроцессорные ВС. Эта архитектура включает все уровни параллелизма, от конвейера операций до независимых операций и команд. Употребляя термин MIMD надо иметь ввиду не только много процессоров, но и множество вычислительных процессов, одновременно выполняемых в ВС.
Машины типа MIMD. Термин "мультипроцессор" покрывает большинство машин типа MIMD и (подобно тому, как термин "матричный процессор" применяется к машинам типа SIMD) часто используется в качестве синонима для машин типа MIMD. В мультипроцессорной системе каждый процессорный элемент (ПЭ) выполняет свою программу достаточно независимо от других процессорных элементов. Процессорные элементы, конечно, должны как-то связываться друг с другом, что делает необходимым более подробную классификацию машин типа MIMD. В мультипроцессорах с общей памятью (сильносвязанных мультипроцессорах) имеется память данных и команд, доступная всем ПЭ. С общей памятью ПЭ связываются с помощью общей шины или сети обмена. В противоположность этому варианту в слабосвязанных многопроцессорных системах (машинах с локальной памятью) вся память делится между процессорными элементами и каждый блок памяти доступен только связанному с ним процессору. Сеть обмена связывает процессорные элементы друг с другом. Системы со слабой связью, это многомашинные комплексы, в которых отдельные компьютеры объединяются с помощью либо сетевых средств, либо с помощью общей внещней памяти.
Базовой моделью вычислений на MIMD-мультипроцессоре является совокупность независимых процессов, эпизодически обращающихся к разделяемым данным. Существует большое количество вариантов этой модели. На одном конце спектра - модель распределенных вычислений, в которой программа делится на довольно большое число параллельных задач, состоящих из множества подпрограмм. На другом конце спектра - модель потоковых вычислений, в которых каждая операция в программе может рассматриваться как отдельный процесс. Такая операция ждет своих входных данных (операндов), которые должны быть переданы ей другими процессами. По их получении операция выполняется, и полученное значение передается тем процессам, которые в нем нуждаются. В потоковых моделях вычислений с большим и средним уровнем гранулярности, процессы содержат большое число операций и выполняются в потоковой манере.
4. MISD(Multiple Instruction Single Data) – этот класс долгое время пустовал, более того, в литературе вы встретите утверждение, что этот класс не представляет практического интереса. Это объясняется тем, что не существовало примеров практической реализации систем, в которых одни и те же данные обрабатывались бы большим числом процессоров. Теперь ситуация изменилась, для MISD найдена адекватная организация ВС – распределенная мультипроцессорная система с общими данными.Наиболее простой пример такой ВС – обычная локальная сеть ПК, работающая с единой базой данных, когда много процессоров обрабатывают один поток данных.
Однако надо иметь ввиду, что как только все пользователи переключаются на обработку собственных данных, недоступных для других абонентов сетиMISD система превращается в систему с множеством потоков команд и множеством потоком данных, т.е. MIMD архитектуру.
Системы с масссовым параллелизмом
Многие современные супер-ЭВМ представляют собой многопроцессорные системы, в которых в качестве процессоров используются векторные процессоры или процессоры типа SIMD. Такие машины относятся к машинам класса MSIMD.
О MSIMDсистемах говорят иногда, как о сильносвязанных комплексах класса MIMD, представляющих собой симметричные многопроцессорные серверы с общим полем ОП. Например, DEC Alpha Server 8200/8400 или SGI Power Chellenge.
Языки программирования и соответствующие компиляторы для машин типа MSIMD обычно обеспечивают языковые конструкции, которые позволяют программисту описывать "крупнозернистый" параллелизм. В пределах каждой задачи компилятор автоматически векторизует подходящие циклы. Машины типа MSIMD, как можно себе представить, дают возможность использовать лучший из этих двух принципов декомпозиции: векторные операции ("мелкозернистый" параллелизм) для тех частей программы, которые подходят для этого, и гибкие возможности MIMD-архитектуры для других частей программы.
Многопроцессорные системы за годы развития вычислительной техники претерпели ряд этапов своего развития. Исторически первой стала осваиваться технология SIMD. Однако в настоящее время наметился устойчивый интерес к архитектурам MIMD. Этот интерес главным образом определяется двумя факторами:
1. Архитектура MIMD дает большую гибкость: при наличии адекватной поддержки со стороны аппаратных средств и программного обеспечения MIMD может работать как однопользовательская система, обеспечивая высокопроизводительную обработку данных для одной прикладной задачи, как многопрограммная машина, выполняющая множество задач параллельно, и как некоторая комбинация этих возможностей.
Архитектура MIMD может использовать все преимущества современной микропроцессорной технологии на основе строгого учета соотношения стоимость/производительность. В действительности практически все современные многопроцессорные системы строятся на тех же микропроцессорах, которые можно найти в персональных компьютерах, рабочих станциях и небольших однопроцессорных серверах.
Эти машины параллельно выполняют несколько потоков инструкций над различными потоками данных. В отличие от многопроцессорных SISD-машин, упомянутых выше, команды и данные связаны, потому что они представляют различные части одной и той же выполняемой задачи. Например, MIMD-системы могут параллельно выполнять множество подзадач, с целью сокращения времени выполнения основной задачи. Наличие большого разнообразия попадающих в данный класс систем, делает классификацию Флинна не полностью адекватной. Действительно и четырех-процессорный SX-5 компании NEC и тысяче-процессорный Cray T3E оба попадают в этот класс. Это заставляет искать другой подход к классификации, иначе описывающий классы компьютерных систем.
Таким образом, существующие MIMD-машины распадаются на два основных класса в зависимости от количества объединяемых процессоров, которое определяет и способ организации памяти и методику их межсоединений.
![]() |
К первой группе относятся машины с общей (разделяемой) основной памятью, объединяющие до нескольких десятков (обычно менее 32) процессоров. Сравнительно небольшое количество процессоров в таких машинах позволяет иметь одну централизованную общую память и объединить процессоры и память с помощью одной шины. Такой способ организации со сравнительно небольшой разделяемой памятью в настоящее время является наиболее популярным. Структура подобной системы представлена на рис. 2.14.
Рис. 2.14 Мультипроцессорная система с общей памятью.
Вторую группу машин составляют крупномасштабные системы с распределенной памятью. Для того чтобы поддерживать большое количество процессоров приходится распределять основную память между ними, в противном случае полосы пропускания памяти просто может не хватить для удовлетворения запросов, поступающих от очень большого числа процессоров. Естественно при таком подходе также требуется реализовать связь процессоров между собой. На рис. 2.15 показана структура такой системы.
![]() |
Рис. 2.15 Мультипроцессорная система с распределенной памятью
С ростом числа процессоров просто невозможно обойти необходимость реализации модели распределенной памяти с высокоскоростной сетью для связи процессоров. С быстрым ростом производительности процессоров и связанным с этим ужесточением требования увеличения полосы пропускания памяти, масштаб систем (т.е. число процессоров в системе, для которых требуется организация распределенной памяти), уменьшается, также как и уменьшается число процессоров, которые удается поддерживать на одной разделяемой шине и общей памяти.
Распределение памяти между отдельными узлами системы имеет два главных преимущества. Во-первых, это эффективный с точки зрения стоимости способ увеличения полосы пропускания памяти, поскольку большинство обращений могут выполняться параллельно к локальной памяти в каждом узле. Во-вторых, это уменьшает задержку обращения (время доступа) к локальной памяти. Наиболее известными системами с общей памятью (SMP-системами) являются SMP-cервера и рабочие станции на базе процессоров Intel (IBM, HP, Compaq, Dell, ALR, Unisys, DG, Fujitsu и др.) Вся система работает под управлением единой ОС (обычно UNIX-подобной, но для Intel-платформ поддерживается Windows NT). ОС автоматически (в процессе работы) распределяет процессы по процессорам, но иногда возможна и явная привязка.
Системами с раздельной памятью являются суперкомпьютеры МВС-1000, IBM RS/6000 SP, SGI/CRAY T3E, системы ASCI, Hitachi SR8000, системы Parsytec. Машины последней серии CRAY T3E от SGI, основанные на базе процессоров Dec Alpha 21164 с пиковой производительностью 1200 Мфлопс/с (CRAY T3E-1200), способны масштабироваться до 2048 процессоров.
2.7 Концепция кластерных систем
Рисунок 2.16 Кластерная система
· LAN – Local Area Network, локальная сеть
· SAN – Storage Area Network, сеть хранения данных
Впервые в классификации вычислительных систем термин "кластер" определила компания Digital Equipment Corporation (DEC).
Читайте также: