Параллельные ЭВМ часто подразделяются по классификации Флинна на машины типа SIMD (с одним потоком команд при множественном потоке данных) и MIMD (с множественным потоком команд при множественном потоке данных).
Различие понятий многомашинной (ММС) и многопроцессорной (МПС) систем поясняет рис.ММС содержит несколько ЭВМ, каждая из которых имеет свою ОП и работает под управлением своей операционной системы, а также средства обмена информацией между машинами. Реализация обмена информацией происходит, в конечном счете, путем взаимодействия операционных систем машин между собой. Это ухудшает динамические характеристики процессов межмашинного обмена данными. Применение многомашинных систем позволяет повысить надежность вычислительных комплексов. При отказе в одной машине обработку данных может продолжать другая машина комплекса. Однако можно заметить, что при этом оборудование комплекса недостаточно эффективно используется для этой цели.
Этих недостатков лишены многопроцессорные системы. В таких системах (рис,б) процессоры обретают статус рядовых агрегатов вычислительной системы, которые подобно другим агрегатам, таким, как модули памяти, каналы, периферийные устройства, включаются в состав системы в нужном количестве.
Вычислительная система называется многопроцессорной, если она содержит несколько процессоров, работающих с общей ОП (общее поле оперативной памяти) и управляется одной общей операционной системой. Часто в МПС организуется общее поле внешней памяти.
Можно выделить четыре основных типа архитектуры систем параллельной обработки:
1) Конвейерная и векторная обработка.
Основу конвейерной обработки составляет раздельное выполнение некоторой операции в несколько этапов с передачей данных одного этапа следующему. Производительность при этом возрастает благодаря тому, что одновременно на различных ступенях конвейера выполняются несколько операций.
Главный принцип вычислений на векторной машине состоит в выполнении некоторой элементарной операции, которая должна многократно применяться к некоторому блоку данных.Векторные операции обеспечивают полную загрузку вычислительного конвейера.
При выполнении векторной команды одна и та же операция применяется ко всем элементам вектора.
2) Машины типа SIMD.
Состоят из большого числа идентичных процессорных элементов, имеющих собственную память. Все процессорные элементы выполняют одну и ту же программу. В отличие от машин первого типа, это универсальные программируемые ЭВМ, так что задача, решаемая параллельно, может быть достаточно сложной и содержать ветвления. Модели (1) и (2) схожи, и часто обсуждаются как эквивалентные.
3) Машины типа MIMD (мультипроцессор).
В машинах данного типа каждый процессорный элемент (ПЭ) выполняет свою программу достаточно независимо от других процессорных элементов. Процессорные элементы, конечно, должны как-то связываться друг с другом, что делает необходимым более подробную классификацию машин типа MIMD. В мультипроцессорах с общей памятью (сильно связанных мультипроцессорах) имеется память, доступная всем ПЭ. С общей памятью ПЭ связываются с помощью сети обмена. Слабосвязанные многопроцессорные системы – машины с локальной памятью, связанные с помощью сети обмена.
4) Многопроцессорные машины с SIMD-процессорами.
Представляют собой многопроцессорные системы, в которых в качестве процессоров используются процессоры типов 1 и 2.
Особенностью многопроцессорной системы является сеть обмена, с помощью которой процессоры соединяются друг с другом или с памятью.
Системы прерываний.
Прерывание – это инициируемый определенным образом процесс, временно переключающий микропроцессор на выполнение другой программы с последующим возобновлением выполнения прерванной программы.
Механизм прерываний позволяет обеспечить наиболее эффективное управление не только внешними устройствами, но и программами. Некоторые операционные системы используют механизм прерываний не только для обслуживания внешних устройств, но и для предоставления своих услуг. Прерывания могут быть внешними и внутренними. Внешние прерывания вызываются внешними по отношению к микропроцессору событиями. На них формируются внешние по отношению к микропроцессору сигналы, которые извещают микропроцессор о том, что некоторое внешнее устройство просит уделить ему внимание. Внутренние прерывания возникают внутри микропроцессора во время вычислительного процесса. К их возбуждению приводит одна из двух причин:
– ненормальное внутреннее состояние микропроцессора, возникшее при обработке некоторой команды программы;
– обработка машинной команды «int xx». Такой тип прерываний называется программным. Это – планируемые прерывания, так как с их помощью программист обращается в нужное для него время за обслуживанием своих запросов либо к операционной системе, либо к BIOS, либо к собственным программам обработки прерываний.
3.Кэш-память.
Это высокоскоростная память произвольного доступа, используемая процессором компьютера для временного хранения информации. Она увеличивает производительность, поскольку хранит наиболее часто используемые данные и команды «ближе» к процессору, откуда их можно быстрее получить. Кэш-память напрямую влияет на скорость вычислений и помогает процессору работать с более равномерной загрузкой. Компьютеры хранят данные в аналогичной иерархии. Когда приложение начинает работать, данные и команды переносятся с медленного жесткого диска в оперативную память произвольного доступа (Dynamic Random Access Memory -- DRAM), откуда процессор может быстро их получить. Оперативная память выполняет роль кэша для жесткого диска.
Для достаточно быстрых компьютеров необходимо обеспечить быстрый доступ к оперативной памяти, иначе микропроцессор будет простаивать и быстродействие компьютера уменьшится. Для этого такие компьютеры могут оснащаться кэш-памятью, т.е. "сверхоперативной" памятью относительно небольшого объема (обычно от 64 до 256 кбайт), в которой хранятся наиболее часто используемые участки оперативной памяти. Кэш-память располагается "между" микропроцессором и оперативной памятью, и при обращении микропроцессора к памяти сначала производится поиск нужных данных в кэш-памяти. Поскольку время доступа к кэш-памяти в несколько раз меньше, чем к обычной памяти, а в большинстве случаев необходимые микропроцессору данные содержаться в кэш-памяти, среднее время доступа к памяти уменьшается.