Аппаратное обеспечение. Многопроцессорные архитектуры

Однопроцессорные архитектуры

ЦПУ – кэш1 – кэш2 – память

Параллелизм внутри обычного процессора

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

Стадии исполнения: выборка, декодирование, исполнение, запись результатов.

ВДИЗ ВДИЗ ВДИЗ

Процессор без конвейера

ВДИЗ

ВДИЗ

ВДИЗ

Процессор с конвейером.

Поток инструкций могут нарушить переходы и прерывания. Поэтому используется предсказание переходов.

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

  1. Суперскалярность. Исполнение нескольких инструкций одновременно. Требует наличие нескольких независимых устройств: целочисленных, для работы с плавающей точкой, управления памятью, мультимедийных команд и т.д.В суперскалярном процессоре несколько конвейеров инструкций.
  2. Многоядерность. Фактически несколько процессоров с разделяемой памятью

Многопроцессорные архитектуры

  1. Сильно связанные процессоры (SMP- симметричные мультипроцессорные системы).

Общая шина, общая память Задачи могут переходить от одного процессора к другому. Синхронизация кэшей. Пример – мат. плата с двумя Pentium 4.

  1. Слабо связанные процессоры. Разделяемая память, но невозможен переход задачи.

Память память

----------------------------- сеть

ЦПУ ЦПУ

Пример – промышленные компьютеры –стойки с процессорными платами и платами с памятью.

3. Распределенные процессоры. Распределенная память.

----------------------------- сеть

память память

ЦПУ ЦПУ

Кластеры.

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

Поддержка параллелизма системой команд процессора.

Доступ к объектам синхронизации (например семафорам). Процесс читает значение семафора. Если оно = 1, то процесс его обнуляет, занимая семафор. Изменение семафора состоит из трех стадий: чтение, изменение, запись. Если на стадии чтения произойдет переключение на другой процесс, то он также может занять семафор, что приведет к одновременной попытке обратиться к разным ресурсам, то есть к ошибке.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: