Глава 37. Многоядерные мультипроцессорные системы
Общая структура многоядерных мультипроцессорных систем
С конструктивной точки зрения процессор - это микросхема. В одной микросхеме (процессоре) может быть реализовано много ядер (единицы или даже десятки).
Операционная система (ОС) оперирует такими единицами работы как процесс и поток. С точки зрения программиста аппаратура ядра - это часть процессора, которая выполняет какую-либо программу (поток).
Многоядерные мультипроцессорные системы (МПС) в общем случае состоят из (рис. 37.1):
нескольких многоядерных процессоров. Каждое ядро имеет в своем составе несколько уровней кэш-памяти.
оперативной памяти и подсистемы ввода-вывода, разделяемыми всеми ядрами процессоров;
коммутационной подсистемы между процессорами, оперативной памятью и подсистемой ввода-вывода.
Рис. 37.1. Упрощенная структура МПС
В процессоре, как правило, также имеется:
последний уровень кэш-памяти, общий для всех ядер;
многоканальный контроллер оперативной памяти, общий для всех ядер;
контроллеры для связи с периферией;
контроллеры интерфейсов для связи с другими процессорами в МПС.
МПС работает под управлением единой операционной системы.
Классификация МПС
По структуре коммуникационной подсистемы различают МПС:
с общей шиной;
с коммутатором;
с прямыми (непосредственными) связями;
с комбинацией общей шины и коммутатора;
с комбинацией непосредственных связей и коммутатора.
По способам работы с оперативной памятью МПС могут быть:
с логически и физически общей оперативной памятью с равным по времени доступом к любой ячейке памяти (Uniform Memory Access –UMA);
с логически и физически общей оперативной памятью, но с не равным по времени доступом к любой ячейке памяти (NonUniform Memory Access – NUMA). Среди NUMA МПС различают МПС без аппаратной поддержки когерентности кэш-памятей и с аппаратной поддержкой когерентности кэш-памятей (CC-NUMA МПС).
По функциям операционной системы различают:
МПС с равноправным участием всех процессоров (ядер) системы в выполнении функций операционной системы;
МПС с выделенным главным (ведущим) процессором (ядром), который выполняет функции операционной системы. Все остальные (ведомые) процессоры выполняют приложения.
По совокупности всех рассмотренных классификационных параметров МПС делят на симметричные и не симметричные МПС.
Симметричные МПС
В симметричной многоядерной мультипроцессорной системе:
все процессоры и ядра идентичные;
все ядра разделяют общую оперативную память;
время доступа каждого ядра в любую область оперативной памяти одинаково;
одна операционная система;
операционная система равномерно распределяет нагрузку на ядра;
для выполнения приложения могут использоваться несколько ядер;
может применяться та же модель программирования, что и в одноядерной системе;
каждое ядро может выполнять любые процедуры операционной системы, в том числе и по управлению вводом-выводом;
для наращивания мощности (масштабирования) системы достаточно добавить в нее еще несколько процессоров (соответственно, n*k ядер, где: n – количество добавленных процессоров; k – количество ядер в одном процессоре). Однако необходимо реально оценивать, насколько может возрасти производительность МПС при добавлении ядер и неизменности пропускной способности общей оперативной памяти.
Структура симметричной МПС аналогична структуре МПС, приведенной на рис. 37.1.
Основной недостаток симметричных МПС -существуютпределы для наращивания количества ядер при неизменности пропускной способности общей оперативной памяти.