ПАРАЛЛЕЛЬНЫЕ КОМПЬЮТЕРНЫЕ СИСТЕМЫ

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

В разделе рассматриваются общие вопросы параллельных компьютерных систем, или компьютеров параллельного действия, а также их отдельные классы.

Общие вопросы

Пути повышения производительности компьютеров

Принципы разработки современных процессоров. К основополагающим принципам, которым по возможности стараются следовать производители универсальных процессоров, относятся [161:

=> принцип использования аппаратных средств для выполнения команд. Данный принцип обеспечивает более высокую производительность, поскольку устраняется интерпретация команды микрокомандами. Поэтому в компьютерах с архитектурой CISC сложные команды стремятся разбить на более простые команды и выполнить их аппаратно как последовательность микрокоманд;

=> инициирование одновременного выполнения большого количества команд. Такой принцип реализуется в процессоре 500-М IPS, который способен приступать к выполнению до 500 млн команд (инструкций) в секунду. При этом компьютер может изменять последовательность их выполнения, исходя из наличия свободных ресурсов памяти и аппаратных средств;

=> принцип простоты декодирования команд. Количество вызываемых команд в секунду зависит от процесса декодирования отдельных команд. Поэтому полезны любые средства, которые способствуют упрощению этого процесса, например использование регулярных команд с фиксированной длиной и с небольшим количеством полей; => принцип выделения специальных команд загрузки (load) и сохранения (store) для обращения к памяти. На доступ к памяти тратится много времени, и подобная задержка нежелательна. Использование для пересылки операндов между регистрами и памятью специальных команд способствует реализации одного из самых простых способов разбивки операций на отдельные шаги и параллельному их выполнению;

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

О направлениях развития компьютеров. Следует выделить два направления, по которым идет развитие компьютерной техники:

=> повышение быстродействия (тактовой частоты) процессоров. Поскольку для выполнения операций отводится тактовый интервал, го производительность компьютера напрямую связана с его длительностью. В этом направлении процессорная техника приблизилась к физическим пределам, поскольку время переключения электронных схем (составляющее доли наносекунды) ограничивается скоростью распространения сигналов в полупроводниках и линиях, связывающих элементы и узлы компьютера, которая не может превысить 30 см/нс (скорости света). Поэтому дальнейшее уменьшение времени переключения электронных схем связано с этим ограничением и не приведет к существенному повышению производительности;

=> использование принципа параллелизма обработки информации путем создания многопроцессорных и многомашинных компьютерных систем. Такие системы позволяют распараллелить во времени выполнение программы или одновременно (параллельно) выполнять несколько программ. Это направление является более перспективным.

Существуют две основные формы параллелизма:

=> параллелизм на уровне команд, при котором обеспечивается выполнение большого количества команд в секунду;

=> параллелизм на уровне процессоров, когда над одной задачей работают одновременно несколько процессоров.

Рассмотрим некоторые особенности обеих форм параллелизма.

Параллелизм на уровне команд. Можно выделить конвейерную и суперскалярную технологии, реализующие параллелизм на уровне команд.

Конвейеризация. Выполнение команды можно разделить на два этапа: выборка из основной памяти и собственно выполнение. Известно, что этап выборки занимает сравнительно длительное время. Для его сокращения в 1959 г. при разработке IBM Stretch [16] был предложен принцип выборки с упреждением, согласно которому команды выбираются из памяти заранее и помещаются в буферный регистр. Это происходит, когда процессор не занимает внешнюю шину, связывающую его с основной памятью. При выполнении программы по мере необходимости команды вызываются из буфера, благодаря чему сокращается время их выполнения. Позднее идея конвейеризации получила дальнейшее развитие. При конвейерной технологии выполнение команды разделяется на несколько стадий, или этапов (например: выборка команды, декодирование, выборка операнда, непосредственно выполнение, возврат), которые реализуются одновременно соответствующими аппаратными средствами (см. § 2.2).

Если время выполнения одной команды Т с, то при отсутствии простоев и ожиданий конвейерный принцип обеспечивает выполнение я/Гкоманд в секунду, где п — число стадий (ступеней) конвейера.

Суперскалярная технология. Использование в процессоре нескольких конвейеров позволяет значительно повысить его производительность. В качестве примера может служить структура с двойным конвейером из пяти стадий каждый (Pentium MMX), в котором для вызова команд используется общий блок, выбирающий из памяти сразу две команды. Один из конвейеров может выполнять произвольные команды, его называют главным или и-конвейером. Второй конвейер (v-конвеиер) выполняет только простые команды с целыми числами, а также одну простую команду с плавающей точкой.

Загружаемые в конвейеры команды не должны конфликтовать при использовании ресурсов (например, регистров), кроме того, ни одна из них не должна зависеть от результата выполнения другой команды. Разработаны правила, по которым определяется совместимость команд для параллельного исполнения. При несовместимости команд выполняется только одна из них (в ц-конвейере). Другая команда откладывается для создания пары с одной из следующих команд. Команды выполняются по порядку. Для объединения команд в совместимые пары используются специальные компиляторы.

Сначала двойные конвейеры (как и одинарные) использовались только в компьютерах с архитектурой RISC. Позднее два конвейера появились в процессорах Pentium с CISC архитектурой. Благодаря этому программы для операций с целыми числами стали выполняться почти в 2 раза быстрее, чем на компьютерах с 486-м процессором, имеющим такую же тактовую частоту.

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

Структура процессора с функциональными блоками незначительное время

Рис. 17.1. Структура процессора с функциональными блоками незначительное время. Поэтому функциональные блоки четвертой стадии загружены работой. Процесс выполнения команд с использованием суперскалярной архитектуры называют суперскалярной технологией [2, 12].

Параллелизм на уровне процессоров. Конвейерная и суперскалярная технология позволяют увеличить производительность компьютера не более чем в 5...К) раз [16]. Для дальнейшего повышения производительности необходимо создавать многомашинные и многопроцессорные системы. Рассмотрим их особенности.

Многомашинные системы (рис. 11.2,а) содержат несколько компьютеров, каждый из которых имеет свою операционную систему и располагает собственными средствами для обмена информацией. Реализация обмена информацией происходит путем взаимодействия операционных систем машин между собой. Это ухудшает динамические характеристики процессов межмашинного обмена данными. Применение многомашинной структуры позволяет повысить надежность компьютерной системы, так как при отказах в одной машине обработку данных могут продолжать другие.

Многопроцессорные системы. К основным особенностям таких систем (рис. 17.2,6) можно отнести следующие:

=> процессоры обретают статус процессорных элементов (ПЭ) компьютерной системы, которые включаются в состав системы в требуемом количестве;

Многомашинная (а) и многопроцессорная (б) системы

Рис. 17.2. Многомашинная (а) и многопроцессорная (б) системы

=> система имеет общую память, равнодоступную для всех ПЭ и каналов ввода-вы вода;

=> управление осуществляется одной общей операционной системой.

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

=> производительность — благодаря быстрому обмену данными между процессорами через общую оперативную память;

=> надежность и живучесть — система сохраняет работоспособность, пока работоспособен хотя бы один модуль каждого типа устройства. Однако построение многомашинных систем из серийно выпускаемых ЭВМ с их стандартными операционными системами значительно проще, чем построение многопроцессорных систем, из-за определенных трудностей, возникающих при реализации общего поля памяти, и трудоемкой разработки специальной операционной системы.

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

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

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >