Общая классификация вычислительных систем

По назначению.

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

Специализированные ориентированы на решение узкого класса задач.

По типу.

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

Многомашинные.

Возможны два варианта:

· обе машины решают одну и ту же задачу и периодически сверяют результаты решения;

· обе машины работают параллельно, но обрабатывают собственные потоки заданий

По характеру устройств.

· Однородные системы содержат несколько однотипных ЭВМ (или процессоров). Основной недостаток однородных ВС - неполная загруженность отдельных ЭВМ (процессоров) во время её работы. В связи с этим недостатком применяются неоднородные ВС;

· Неоднородные. Неоднородные системы содержат разнотипные ЭВМ (или процессоры).

По управлению.

· Централизованные. Функции управления сосредоточены в главной ЭВМ (процессор). Ее задачей являются распределение нагрузки между элементами, выделение ресурсов, контроль состояния ресурсов, координация взаимодействия.

· Децентрализованные. Функции управления распределены между ее элементами, т.е. каждый процессор или ЭВМ действуют автономно, решая свои задачи.

· Смешенные. Совмещаются процедуры централизованного и децентрализованного управления. Т.е. ВС разбивается на группы взаимодействующих ЭВМ (или процессоров), где в каждой группе осуществляется централизованное управление, а между группами - децентрализованное.

Структуры многопроцессорных систем с распределенной памятью.

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

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

Для построения крупномасштабных систем альтернативой рассмотренному в предыдущем разделе протоколу наблюдения может служить протокол на основе справочника, который отслеживает состояние кэшей. Такой подход предполагает, что логически единый справочник хранит состояние каждого блока памяти, который может кэшироваться. В справочнике обычно содержится информация о том, в каких кэшах имеются копии данного блока, модифицировался ли данный блок и т.д. (РИСУНОК СИММЕТРИЧЕН СВЕРХУ)

Общая классификация вычислительных систем - student2.ru

Многопроцессорные системы с общей памятью.

Общая классификация вычислительных систем - student2.ru

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

Распараллеливание вычислительных процессов.

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

Параллелизм на уровне выполнения команд.

Современные процессоры имеют многоступенчатый конвейер команд. Каждой ступени конвейера соответствует определённое действие, выполняемое процессором в этой инструкции на этом этапе. Процессор с N ступенями конвейера может иметь одновременно до N различных инструкций на разном уровне законченности. Классический пример процессора с конвейером — это RISC-процессор с 5-ю ступенями: выборка инструкции из памяти (IF), декодирование инструкции (ID), выполнение инструкции (EX), доступ к памяти (MEM), запись результата в регистры (WB). Процессор Pentium 4 имеет 35-тиступенчатый конвейер. Общая классификация вычислительных систем - student2.ru Классический пример пятиступенчатого конвейера на RISC-машине (IF = выборка инструкции, ID = декодирование инструкции, EX = выполнение инструкции, MEM = доступ к памяти, WB = запись результата в регистры).

Ускорение работы процессора. Конвейерная организация.

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

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

IF (Instruction Fetch) - считывание команды в процессор;

ID (Instruction Decoding) - декодирование команды;

OR (Operand Reading) - считывание операндов;

EX (Executing) - выполнение команды;

WB (Write Back) - запись результата.

Общая классификация вычислительных систем - student2.ru

Так как в каждом такте могут выполняться различные стадии обработки команд, то длительность такта выбирается исходя из максимального времени выполнения всех стадий. Кроме того, следует учитывать, что для передачи команды с одной стадии на другую требуется определенное дополнительное время (Δt), связанное с записью промежуточных результатов обработки в буферные регистры

Конфликты, возникающие при конвейерной организации.

Конфликты- это такие ситуации в конвейерной обработке, которые препятствуют выполнению очередной команды в предназначенном для нее такте.

Конфликты делятся на три группы:

· структурные,

· по управлению,

· по данным.

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

Наши рекомендации