Author: SANEK

Решение проблемы многоядерной технологии

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

Использование многоядерных процессоров в высокопроизводительных встраиваемых системах

Организация

ВГПУ

Телефон: 8 (919) 189-73-80
Эл. почта: san_techner@mail.ru

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

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

Режимы многопроцессорной обработки

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