Многоядерные процессоры в промышленной автоматике


PDF версия

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

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

Объединение функций

Многоядерные процессоры в сочетании с технологией виртуализации позволяют создать одноплатформенную архитектуру, которая способна объединить функции различных управляющих устройств, например, программируемого логического контроллера (PLC), контроллера перемещения и человеко-машинных интерфейсов (HMI).
Среди разнообразных приложений многоядерные процессоры идеально подходят, например, для реализации систем управления перемещением в станках с цифровым управлением. Такой подход отличается от прежних представлений, когда считалось, что лучше всего раздельно управлять такими функциями как использование  отдельного контроллера для каждой координаты перемещения станка, который также частично управляет логикой работы станка; центрального PLC с контроллером перемещения по каждой координате; центрального PLC для управления логикой работы и центрального контроллера перемещения для всех координат станка.
Однако такой подход имеет ряд недостатков. Например, возникает необходимость в сложной системе синхронизации, которая должна отслеживать работу нескольких программ, разработку/отладку программ или, как в последнем случае, возникает необходимость  использования двух программ с высокими требованиями по пропускной способности каналов связи. Именно такие проблемы позволяют решить многоядерные процессоры, которые исключают необходимость в PLC и интегрируют управление перемещением, логическое управление и другие функции в одном устройстве.
Среди предлагаемых Intel многоядерных процессоров имеются две модели семейства Atom и Core 2 Duo (каждый из которых, содержит по два ядра), Core 2 Quad с четырьмя ядрами и ряд процессоров семейства Core i7, содержащих шесть ядер. Каждое ядро многоядерного процессора можно назначить для обслуживания разных операционных систем при использовании технологии виртуализации, например, используя контроллеры компании National Instruments (см. рис. 1).

Рис. 1. Пример назначения для процессорных ядер разных операционных систем
Источник National Instruments и Control Engineering

 

Производительность на единицу мощности

Более эффективное использование мощности на кристалле является одним из преимуществ многоядерных процессоров, которые находят применение в промышленных приложениях. Увеличение частоты тактового сигнала с целью роста производительности отрицательно сказывается на потребляемой мощности, а многоядерные процессоры обеспечивают совершенно иной подход. Потребляемая мощность стала серьезной проблемой для традиционных (одноядерных) кристаллов. Несколько процессоров на кристалле предоставляют возможность реализации параллельного принципа вычислений, при том, что потребляемая мощность растет линейно, а не экспоненциально, с увеличением числа ядер.
Дополнительные вычислительные ядра транслируются в более компактные автоматизированные системы, которые могут интегрировать больше функций. Эта дополнительная вычислительная мощность позволяет пользователям многоядерных процессоров реализовывать более сложные алгоритмы управления, которые способны обеспечивать больше функций и более эффективно выполнять вычисления. Более совершенные программные алгоритмы помогают быстрее завершить процесс, сокращая тем самым потребляемую мощность или другие издержки, связанные с работой системы.
Многоядерные процессоры позволяют использовать более одной операционной системы (ОС) на одном контроллере. Возможность запуска функций реального времени для детерминистского управления и задач общего назначения (человеко-машинный интерфейс, доступ к сети и т.д.) предусмотрены во многих промышленных системах автоматизации. Кроме того, пользователи могут запланировать, как использовать ядра, т.е. определить, какое ядро будет управлять данной ОС или специальным контуром управления.
Компания Beckhoff Automation, которая занимается внедрением многоядерных процессоров в своих промышленных компьютерах (Iindustrial PC — IPC), признала преимущества использования дополнительных ядер в многозадачных приложениях. Компания изобрела термин «научная автоматика» (scientific automation), который позволил обобщить опыт использования дополнительных ядер на многоядерных IPC для выполнения различных параллельных задач.
Как показал опыт компании Beckhoff, многоядерные IPC могут сократить общее энергопотребление и в результате снизить количество тепла, выделяемого оборудованием. Дополнительным преимуществом является то, что для аппаратуры требуется теперь меньше пространства. При меньшем количестве тепла, выделяемого прибором, разработчики аппаратуры могут уменьшить размеры корпуса или убрать охлаждающие устройства из шкафа управления.
Возможность назначать отдельным ядрам процессора индивидуальные задания по автоматическому управлению можно проиллюстрировать на примере новой программной платформы TwinCAT 3 компании Beckhoff, которую планируется выпустить во II кв. 2011 г. (см. рис. 2). IPC становится мощным устройством, выполняющим функции четырех обычных устройств. При этом оно использует одну программную платформу и одну сеть (EtherCAT) со значительно меньшим числом межсоединений и предполагает более простое программирование.
Компания Freescale Semiconductor видит в многоядерных процессорах средство увеличения производительности и сокращения числа кристаллов, размеров платы и энергопотребления в промышленных приложениях (включая программируемые логические контроллеры, электроприводы и робототехнику).

Рис. 2. Программные средства позволяют разработчикам назначать индивидуальные ядра для выполнения специальных заданий на прикладном процессоре, например, программы управления перемещением на ядре 1, как показано на примере программной платформы TwinCAT 3 от Beckhoff Automation

Важно отметить, что многоядерные процессоры обычно работают на более низкой тактовой частоте, а два или четыре ядра, как правило, не удваивают и не учетверяют производительности. Однако многоядерная архитектура способна поддерживать намного более высокую производительность при более низкой стоимости и меньшем энергопотреблении, чем обычная одноядерная архитектура. Например, коммуникационный процессор QorIQ P4080 компании Freescale, в котором реализовано восемь 1,5-ГГц ядер на одном кристалле, обеспечивает производительность более 20 млрд. команд в секунду (MIPS), потребляя при этом менее 30 Вт. Предыдущее поколение одноядерного процессора демонстрировало производительность всего 3000 MIPS при таком же уровне потребляемой мощности.
Операционные системы также представляют важный аспект разработки приложений на базе многоядерных процессоров. В некоторых случаях вполне подходит одно ядро, выделенное для управления сложным процессом в режиме реального времени. Операционные системы, подобные ОС реального времени Enea OSE Multicore Real-Time Operating System и разработанные для оптимального распределения программных команд между несколькими ядрами процессора, например, контроллера QorIQ от Freescale, делают алгоритм таким, как будто он запущен на одноядерном процессоре. Подобно этому некоторые задачи, например, функции защиты, часто запускают на отдельных специализированных процессорах.


Другой подход к программированию

Переход к многоядерным процессорам — это не эволюционный шаг. Он требует от разработчиков ПО иного подхода. Разработчики должны сконцентрироваться на параллельном методе и сознательно разделить приложение на несколько потоков для реализации всех преимуществ многоядерных процессоров. Это представляет собой основную задачу при внедрении технологии многоядерных процессоров.
При работе с параллельным кодом у разработчиков возникают и другие проблемы. Во-первых, механизм связи между кэш-памятью данных разных ядер или архитектур памяти влияет на скорость, с которой код, исполняемый на этих ядрах, может обмениваться данными, следовательно, он жизненно важен для увеличения общей производительности приложения. Взаимодействие потоков при отладке и визуализации является еще одной проблемой.
Существуют программные инструменты, которые позволяют уменьшить проблемы кэш-памяти и процесса отладки. По сути, эти инструменты собирают информацию о взаимозависимостях, определяемых в коде, а затем используют ее для того, чтобы автоматически отобразить приложения на многоядерные процессоры. Базовая технология, которая называется «поток данных», исключает необходимость ручной идентификации параллельных частей кода. Поток данных является частью программного инструмента LabVIEW от National Instruments, который обычно используют для систем, содержащих до 8 ядер.
Разработчикам прикладного ПО необходимо внести изменения в программную архитектуру, чтобы реализовать преимущества дополнительных ядер. Для большинства пользователей это означает применение параллельного подхода в разработке ПО. Обычно используют два метода: первый и более простой — многозадачность (multitasking), второй — поточность (threading). Второй подход обеспечивает наилучшую производительность, но требует выполнения большого объема работ. Для преобразования последовательного программного приложения в многопоточное необходимы четыре этапа, а именно — анализ, отражение, применение и оптимизация параллельного подхода.
Многоядерные процессоры движутся в сторону промышленных систем автоматики, в первую очередь, для приложений более высокого класса, а затем, как ожидается, последует их внедрение в системы более низкого класса, т.к. стоимость реализации этих решений снижается, а опыт специалистов растет.

Литература
1. Frank J. Bartos. MultiCore Processors in Industrial Automation//Control Engineering, April, 2011

 

Оставьте отзыв

Ваш емейл адрес не будет опубликован. Обязательные поля отмечены *