Какие принципы положены в основу классификации архитектур компьютерных систем
Понятие архитектуры высокопроизводительной системы является достаточно широким, поскольку под архитектурой можно понимать и способ параллельной обработки данных, используемый в системе, и организацию памяти, и топологию связи между процессорами, и способ исполнения системой арифметических операций. Попытки систематизировать все множество архитектур впервые были предприняты в конце 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) не стоит считать недостатком схемы. Такие классы, по мнению некоторых исследователей в области классификации архитектур, могут стать чрезвычайно полезными для разработки принципиально новых концепций в теории и практике построения вычислительных систем.
Вычислительная техника - одна из наиболее быстро и динамично развивающихся областей науки и техники. Ее динамика, с одной стороны, связана с широким проникновением вычислительной техники во все сферы человеческой деятельности, с другой стороны - с бурным ростом технических характеристик вычислительных машин и систем. С начала шестидесятых годов прошлого века период удвоения основных характеристик компьютеров не превышает двух лет. Такой стремительный рост приводит к неоднозначности используемой терминологии, к субъективной оценке сфер применения конкретных ЭВМ.
Современная вычислительная машина представляет собой сложную аппаратно-программную систему, состоящую из большого числа взаимосвязанных элементов. Каждый из этих элементов имеет свои характеристики, совокупность которых определяет технико-эксплуатационные характеристики всей вычислительной машины.
К технико-эксплуатационным характеристикам ЭВМ, определяющим их функциональные возможности, относят:
- быстродействие;
- разрядность;
- формы представления чисел;
- номенклатура и характеристики запоминающих устройств;
- номенклатура и характеристики устройств ввода-вывода информации;
- типы и характеристики внутренних и внешних интерфейсов;
- наличие многопользовательских режимов и поддержка многопро-граммности;
- типы и характеристики, используемых ОС;
- система команд и их структура;
- функциональные возможности программного обеспечения и его наличие;
- программная совместимость с другими типами ЭВМ;
- срок эксплуатации;
- условия эксплуатации;
- характеристики надежности;
- состав и объем профилактических работ;
- стоимостные характеристики;
- совокупная стоимость владения.
Несмотря на сравнительно короткую историю современной вычислительной техники, до настоящего времени было предложено достаточно много подходов к систематизации всего многообразия средств вычислительной техники [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-х гг. В ее основу заложено два возможных вида параллелизма: независимость потоков заданий (команд), существующих в системе, и независимость (несвязанность) данных, обрабатываемых в каждом потоке. Классификация до настоящего времени еще не потеряла своего значения. Как и любая классификация, она носит временный и условный характер. Своим долголетием она обязана тому, что оказалась справедливой для ВС, в которых ЭВМ и процессоры реализуют программные последовательные методы вычислений. С появлением систем, ориентированных на потоки данных и использование ассоциативной обработки, данная классификация может быть некорректной.
Согласно этой классификации существует четыре основных архитектуры ВС:
• одиночный поток команд - одиночный поток данных (ОКОД), в английском варианте
SISD - одиночный поток инструкций - одиночный поток данных;
• одиночный поток команд — множественный поток данных (ОКМД)
SIMD – одиночный поток инструкций – одиночный поток данных;
• множественный поток команд — одиночный поток данных (МКОД),
MISD - множественный поток инструкций - одиночный поток данных;
• множественный поток команд — множественный поток данных (МКМД),
MIMD - множественный поток инструкций - множественный поток данных.
Коротко рассмотрим отличительные особенности каждой из архитектур.
Архитектура ОКОДохватывает все однопроцессорные и одномашинные варианты систем, т.е. с одним вычислителем. Все ЭВМ классической структуры попадают в этот класс. Здесь параллелизм вычислений обеспечивается путем совмещения выполнения операций отдельными блоками АЛУ, а также параллельной работы устройств ввода-вывода информации и процессора. Закономерности организации вычислительного процесса в этих структурах достаточно хорошо изучены.
Поток данных Результаты
Архитектура ОКМДпредполагает создание структур векторной или матричной обработки. Системы этого типа обычно строятся как однородные, т.е. процессорные, элементы, входящие в систему, идентичны, и все они управляются одной и той же последовательностью команд. Но каждый процессор обрабатывает свой поток данных. Под эту схему хорошо подходят задачи обработки матриц или векторов (массивов), задачи решения систем линейных и нелинейных, алгебраических и дифференциальных уравнений, задачи теории поля и др. В структурах данной архитектуры желательно обеспечивать соединения между процессорами, соответствующие реализуемым математическим зависимостям. Эти связи напоминают матрицу, в которой каждый процессорный элемент связан с соседними.
Поток данных Результаты
Узким местом подобных систем является необходимость изменения коммутации между процессорами, когда связь между ними отличается от матричной. Кроме того, задачи, допускающие широкий матричный параллелизм, составляют достаточно узкий класс задач. Структуры ВС этого типа, по существу, являются структурами специализированных суперЭВМ.
Архитектура МКОДпредполагает построение своеобразного процессорного конвейера, в котором результаты обработки передаются от одного процессора к другому по цепочке. Выгоды такого вида обработки понятны. Прототипом таких вычислений может служить схема любого производственного конвейера. В современных ЭВМ по этому принципу реализована схема совмещения операций, в которой параллельно работают различные функциональные блоки, и каждый из них делает свою часть в общем цикле обработки команды.
Поток данных Результаты
В ВС этого типа конвейер должны образовывать группы процессоров. Однако при переходе на системный уровень очень трудно выявить подобный регулярный характер в универсальных вычислениях. Кроме того, на практике нельзя обеспечить и «большую длину» такого конвейера, при которой достигается наивысший эффект. Вместе с тем конвейерная схема нашла применение в так называемых скалярных процессорах суперЭВМ, в которых они применяются как специальные процессоры для поддержки векторной обработки.
Архитектура МКМДпредполагает, что все процессоры системы работают по своим программам с собственным потоком команд. В простейшем случае они могут быть автономны и независимы. Такая схема использования ВС часто применяется на многих крупных вычислительных центрах для увеличения пропускной способности центра. Больший интерес представляет возможность согласованной работы ЭВМ (процессоров), когда каждый элемент делает часть общей задачи. Общая теоретическая база такого вида работ практически отсутствует. Но можно привести примеры большой эффективности этой модели вычислений. Подобные системы могут быть многомашинными и многопроцессорными.
Под архитектурой ЭВМ понимается совокупность общих принципов организации аппаратно-программных средств и их характеристик, определяющая функциональные возможности ЭВМ при решении соответствующих классов задач.
Открытая архитектура - предполагает наличие единого стандарта при разработке устройств, располагающихся на материнской плате и плате расширения.
Структура компьютера — это некоторая модель, устанавливающая состав, порядок и принципы взаимодействия входящих в нее компонентов
Рисунок 3 – архитектура ЭВМ.
В настоящее время наибольшее распространение в ЭВМ получили 2 типа архитектуры: Принстонская (фон Неймана) и Гарвардская. Обе они выделяют 2 основных узла ЭВМ: центральный процессор и память компьютера. Различие заключается в структуре памяти: в принстонской архитектуре программы и данные хранятся в одном массиве памяти и передаются в процессор по одному каналу, тогда как гарвардская архитектура предусматривает отдельные хранилища и потоки передачи для команд и данных.
Согласно Джону фон Нейману, любая ЭВМ должна включать четыре основных блока - процессор, оперативную память, внешнюю память и комплекс устройств ввода-вывода
Рисунок 4 – Структурная схема ЭВМ
Эта схема, широко использовавшаяся в первых вычислительных машинах, имела один существенный недостаток: управление вводом-выводом и выполнение команд осуществлялось одним устройством управления. При такой структуре ЭВМ все виды программной обработки на время выполнения операций ввода-вывода прекращались из-за занятости процессора, что существенно снижало быстродействие машины.
Для устранения этого недостатка в схему был включен дополнительный компонент - канал ввода-вывода (устройство, обеспечивающее прямое взаимодействие процессора и периферийных устройств).
Гарвардская архитектура — архитектура ЭВМ, отличительным признаком которой является раздельное хранение и обработка команд и данных. Архитектура была разработана Говардом Эйкеном в конце 1930-х годов в Гарвардском университете
Типичные операции (сложение и умножение) требуют от любого вычислительного устройства нескольких действий: выборку двух операндов, выбор инструкции и её выполнение, и, наконец, сохранение результата.
Идея, реализованная Эйкеном, заключалась в физическом разделении линий передачи команд и данных. В первом компьютере Эйкена «Марк I» для хранения инструкций использовалась перфорированная лента, а для работы с данными — электромеханические регистры. Это позволяло одновременно пересылать и обрабатывать команды и данные, благодаря чему значительно повышалось общее быстродействие.
В более подробное описание, определяющее конкретную архитектуру, также входят: структурная схема ЭВМ, средства и способы доступа к элементам этой структурной схемы, организация и разрядность интерфейсов ЭВМ, набор и доступность регистров, организация памяти и способы её адресации, набор и формат машинных команд процессора, способы представления и форматы данных, правила обработки прерываний.
По перечисленным признакам и их сочетаниям среди архитектур выделяют:
2. По особенностям набора регистров, формата команд и данных: CISC, RISC, VLIW;
3. По количеству центральных процессоров: однопроцессорные, многопроцессорные, суперскалярные; многопроцессорные по принципу взаимодействия с памятью: симметричные многопроцессорные (SMP), масcивно-параллельные (MPP), распределенные.
Большинство многопроцессорных систем сегодня используют архитектуру SMP.
SMP системы позволяют любому процессору работать над любой задачей независимо от того, где в памяти хранятся данные для этой задачи; с должной поддержкой операционной системы, SMP системы могут легко перемещать задачи между процессорами эффективно распределяя нагрузку. С другой стороны, память гораздо медленнее процессоров, которые к ней обращаются, даже однопроцессорным машинам приходится тратить значительное время на получение данных из памяти. В SMP только один процессор может обращаться к памяти в данный момент времени.
Массивно-параллельная архитектура (англ. Massive Parallel Processing, MPP) — класс архитектур параллельных вычислительных систем Особенность архитектуры состоит в том, что память физически разделена. Система строится из отдельных модулей, содержащих процессор, локальный банк операционной памяти, коммуникационные процессоры или сетевые адаптеры, иногда — жесткие диски и/или другие устройства ввода/вывода. Доступ к банку операционной памяти из данного модуля имеют только процессоры из этого же модуля. Модули соединяются специальными коммуникационными каналами. в отличие от SMP-систем, в машинах с раздельной памятью каждый процессор имеет доступ только к своей локальной памяти, в связи с чем не возникает необходимости в потактовой синхронизации процессоров.
Распределённые вычисления, метакомпьютинг (англ. grid — сеть) - способ решения трудоёмких вычислительных задач с использованием нескольких компьютеров, объединённых в параллельную вычислительную систему (одновременное решения различных частей одной вычислительной задачи несколькими процессорами (или ядрами одного процессора) одного или нескольких компьютеров)
В суперскалярных процессорах также есть несколько вычислительных модулей, но задача распределения между ними работы решается аппаратно. Это сильно усложняет дизайн процессора, и может быть чревато ошибками. В процессорах VLIW задача распределения решается во время компиляции и в инструкциях явно указано, какое вычислительное устройство должно выполнять какую команду.
Суперскалярность — архитектура вычислительного ядра, использующая несколько декодеров команд, которые могут нагружать работой множество исполнительных блоков. Планирование исполнения потока команд является динамическим и осуществляется самим вычислительным ядром. Если в процессе работы команды, обрабатываемые конвейером, не противоречат друг другу, и одна не зависит от результата другой, то такое устройство может осуществить параллельное выполнение команд. В суперскалярных системах решение о запуске инструкции на исполнение принимает сам вычислительный модуль, что требует много ресурсов
Архитектура системы–совокупность свойств системы, существенных для пользования.
Архитектурой компьютера называется его описание на некотором общем уровне, включающее описание пользовательских возможностей программирования, системы команд, системы адресации, организации памяти и т.д. Архитектура определяет принципы действия, информационные связи и взаимное соединение основных логических узлов компьютера: процессора, оперативного ЗУ, внешних ЗУ и периферийных устройств. Общность архитектуры разных компьютеров обеспечивает их совместимость с точки зрения пользователя.
Наиболее распространены следующие архитектурные решения.
Классическая архитектура (архитектура фон Неймана) — одно арифметико-логическое устройство (АЛУ), через которое проходит поток данных, и одно устройство управления (УУ), через которое проходит поток команд — программа. Это однопроцессорный компьютер.
К этому типу архитектуры относится и архитектура персонального компьютера с общей шиной. Все функциональные блоки здесь связаны между собой общей шиной, называемой также системной магистралью.
Физически магистраль представляет собой многопроводную линию с гнездами для подключения электронных схем. Совокупность проводов магистрали разделяется на отдельные группы: шину адреса, шину данных и шину управления.
Периферийные устройства (принтер и др.) подключаются к аппаратуре компьютера через специальные контроллеры — устройства управления периферийными устройствами.
Контроллер — устройство, которое связывает периферийное оборудование или каналы связи с центральным процессором, освобождая процессор от непосредственного управления функционированием данного оборудования.
Многопроцессорная архитектура. Наличие в компьютере нескольких процессоров означает, что параллельно может быть организовано много потоков данных и много потоков команд. Таким образом, параллельно могут выполняться несколько фрагментов одной задачи.
Многомашинная вычислительная система. Здесь несколько процессоров, входящих в вычислительную систему, не имеют общей оперативной памяти, а имеют каждый свою (локальную). Каждый компьютер в многомашинной системе имеет классическую архитектуру, и такая система применяется достаточно широко. Однако эффект от применения такой вычислительной системы может быть получен только при решении задач, имеющих очень специальную структуру: она должна разбиваться на столько слабо связанных подзадач, сколько компьютеров в системе.
Преимущество в быстродействии многопроцессорных и многомашинных вычислительных систем перед однопроцессорными очевидно.
Архитектура с параллельными процессорами. Здесь несколько АЛУ работают под управлением одного УУ. Это означает, что множество данных может обрабатываться по одной программе — то есть по одному потоку команд. Высокое быстродействие такой архитектуры можно получить только на задачах, в которых одинаковые вычислительные операции выполняются одновременно на различных однотипных наборах данных.
Самой ранней и наиболее известной является классификация архитектур вычислительных систем, предложенная в 1966 году М.Флинном. Классификация базируется на понятии потока, под которым понимается последовательность элементов, команд или данных, обрабатываемая процессором. На основе числа потоков команд и потоков данных Флинн выделяет четыре класса архитектур: SISD,MISD,SIMD,MIMD.
SISD (single instruction stream / single data stream) – одиночный поток команд и одиночный поток данных. К этому классу относятся последовательные компьютерные системы, которые имеют один центральный процессор, способный обрабатывать только один поток последовательно исполняемых инструкций. В настоящее время практически все высокопроизводительные системы имеют более одного центрального процессора, однако каждый из них выполняет несвязанные потоки инструкций, что делает такие системы комплексами SISD-систем, действующих на разных пространствах данных. Для увеличения скорости обработки команд и скорости выполнения арифметических операций может применяться конвейерная обработка. В случае векторных систем векторный поток данных следует рассматривать как поток из одиночных неделимых векторов. Примерами компьютеров с архитектурой SISD могут служить большинство рабочих станций Compaq, Hewlett-Packard и Sun Microsystems.
MISD (multiple instruction stream / single data stream) – множественный поток команд и одиночный поток данных. Теоретически в этом типе машин множество инструкций должно выполняться над единственным потоком данных. До сих пор ни одной реальной машины, попадающей в данный класс, создано не было. В качестве аналога работы такой системы, по-видимому, можно рассматривать работу банка. С любого терминала можно подать команду и что-то сделать с имеющимся банком данных. Посколькубаза данных одна, а команд много, мы имеем дело с множественным потоком команд и одиночным потоком данных.
SIMD (single instruction stream / multiple data stream) – одиночный поток команд и множественный поток данных. Эти системы обычно имеют большое количество процессоров, от 1024 до 16384, которые могут выполнять одну и ту же инструкцию относительно разных данных в жесткой конфигурации. Единственная инструкция параллельно выполняется над многими элементами данных. Примерами SIMD-машин являются системы CPP DAP, Gamma II и Quadrics Apemille. Другим подклассом SIMD-систем являются векторные компьютеры. Векторные компьютеры манипулируют массивами сходных данных подобно тому, как скалярные машины обрабатывают отдельные элементы таких массивов. Это делается за счет использования специально сконструированных векторных центральных процессоров. Когда данные обрабатываются посредством векторных модулей, результаты могут быть выданы на один, два или три такта частотогенератора (такт частотогенератора является основным временным параметром системы). При работе в векторном режиме векторные процессоры обрабатывают данные практически параллельно, что делает их в несколько раз более быстрыми, чем при работе в скалярном режиме. Примерами систем подобного типа являются, например, компьютеры Hitachi S3600.
MIMD (multiple instruction stream / multiple data stream) – множественный поток команд и множественный поток данных. Эти машины параллельно выполняют несколько потоков инструкций над различными потоками данных. В отличие от упомянутых выше многопроцессорных SISD-машин, команды и данные связаны, потому что они представляют различные части одной и той же задачи. Например, MIMD-системы могут параллельно выполнять множество подзадач с целью сокращения времени выполнения основной задачи. Большое разнообразие попадающих в данный класссистем делает классификацию Флинна не полностью адекватной, поэтому существуют дополненные и расширенные классификации, именованные фамилиями разработчиков.
Классификация архитектур вычислительных систем нужна для того, чтобы понять особенности работы той или иной архитектуры, но она не является достаточно детальной, чтобы на нее можно было опираться при создании МВС, поэтому следует вводить более детальную классификацию, которая связана с различными архитектурами ЭВМ и с используемым оборудованием.
Читайте также: