Система и архитектура памяти
Существуют различные стили архитектуры системы и памяти, которые необходимо учитывать при разработке программы или параллельной системы. Это очень необходимо, потому что один стиль системы и памяти может подходить для одной задачи, но может быть подвержен ошибкам для другой задачи.
Архитектура компьютерных систем, поддерживающая параллелизм
Майкл Флинн в 1972 году дал таксономию для категоризации различных стилей архитектуры компьютерных систем. Эта таксономия определяет четыре разных стиля следующим образом:
- Одиночный поток инструкций, одиночный поток данных (SISD)
- Одиночный поток инструкций, множественный поток данных (SIMD)
- Несколько потоков команд, один поток данных (MISD)
- Множественный поток инструкций, множественный поток данных (MIMD).
Одиночный поток инструкций, одиночный поток данных (SISD)
Как следует из названия, такие системы будут иметь один последовательный входящий поток данных и один единый блок обработки для выполнения потока данных. Они похожи на однопроцессорные системы с архитектурой параллельных вычислений. Ниже приводится архитектура SISD -

Преимущества SISD
Преимущества архитектуры SISD следующие:
- Требуется меньше энергии.
- Нет проблем со сложным протоколом связи между несколькими ядрами.
Недостатки SISD
Недостатки архитектуры SISD следующие:
- Скорость архитектуры SISD ограничена, как и у одноядерных процессоров.
- Он не подходит для больших приложений.
Одиночный поток инструкций, множественный поток данных (SIMD)
Как следует из названия, такие системы будут иметь несколько потоков входящих данных и количество процессоров, которые могут действовать по одной инструкции в любой момент времени. Они похожи на многопроцессорные системы с архитектурой параллельных вычислений. Ниже приводится архитектура SIMD -

Лучший пример для SIMD - видеокарты. Эти карты имеют сотни отдельных процессоров. Если говорить о вычислительной разнице между SISD и SIMD, то для добавляемых массивов[5, 15, 20] а также [15, 25, 10],Архитектура SISD должна будет выполнять три разные операции добавления. С другой стороны, с архитектурой SIMD мы можем добавить их за одну операцию добавления.
Преимущества SIMD
Преимущества архитектуры SIMD заключаются в следующем:
Одна и та же операция с несколькими элементами может быть выполнена с использованием только одной инструкции.
Пропускную способность системы можно увеличить за счет увеличения количества ядер процессора.
Скорость обработки выше, чем у архитектуры SISD.
Недостатки SIMD
Недостатки SIMD-архитектуры следующие:
- Между номерами ядер процессора существует сложная связь.
- Стоимость выше, чем у архитектуры SISD.
Поток нескольких инструкций и отдельных данных (MISD)
Системы с потоком MISD имеют несколько блоков обработки, выполняющих разные операции, выполняя разные инструкции с одним и тем же набором данных. Ниже приводится архитектура MISD -

Представителей архитектуры MISD пока нет в продаже.
Поток с множественными инструкциями и множественными данными (MIMD)
В системе, использующей архитектуру MIMD, каждый процессор в многопроцессорной системе может выполнять разные наборы инструкций независимо от другого набора данных параллельно. Это противоположно архитектуре SIMD, в которой одна операция выполняется над несколькими наборами данных. Ниже приводится архитектура MIMD -

Обычный мультипроцессор использует архитектуру MIMD. Эти архитектуры в основном используются в ряде областей приложений, таких как автоматизированное проектирование / автоматизированное производство, моделирование, моделирование, переключатели связи и т. Д.
Архитектуры памяти, поддерживающие параллелизм
При работе с такими концепциями, как параллелизм и параллелизм, всегда необходимо ускорить работу программ. Одним из решений, найденных разработчиками компьютеров, является создание нескольких компьютеров с общей памятью, т. Е. Компьютеров с единым физическим адресным пространством, к которому имеют доступ все ядра процессора. В этом сценарии может быть несколько разных стилей архитектуры, но следующие три важных архитектурных стиля:
UMA (унифицированный доступ к памяти)
В этой модели все процессоры равномерно распределяют физическую память. Все процессоры имеют одинаковое время доступа ко всем словам памяти. Каждый процессор может иметь частную кэш-память. Периферийные устройства подчиняются набору правил.
Когда все процессоры имеют равный доступ ко всем периферийным устройствам, система называется symmetric multiprocessor. Когда только один или несколько процессоров могут получить доступ к периферийным устройствам, система называетсяasymmetric multiprocessor.

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

Архитектура только кэш-памяти (COMA)
Модель COMA - это специализированная версия модели NUMA. Здесь вся распределенная основная память преобразуется в кэш-память.
