Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: LX Международной научно-практической конференции «Технические науки - от теории к практике» (Россия, г. Новосибирск, 25 июля 2016 г.)

Наука: Технические науки

Секция: Информатика, вычислительная техника и управление

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Дорогой Я.Ю., Мороз И.Д. СПОСОБ ВЫПОЛНЕНИЯ НЕСКОЛЬКИХ ПОТОКОВ КОМАНД НА ОДНОМ ДИНАМИЧЕСКИ РЕКОНФИГУРИРУЕМОМ ПРОЦЕССОРНОМ ЯДРЕ // Технические науки - от теории к практике: сб. ст. по матер. LX междунар. науч.-практ. конф. № 7(55). – Новосибирск: СибАК, 2016.
Проголосовать за статью
Дипломы участников
У данной статьи нет
дипломов

СПОСОБ ВЫПОЛНЕНИЯ НЕСКОЛЬКИХ ПОТОКОВ КОМАНД НА ОДНОМ ДИНАМИЧЕСКИ РЕКОНФИГУРИРУЕМОМ ПРОЦЕССОРНОМ ЯДРЕ

Дорогой Ярослав Юрьевич

студент Национального технического университета Украины, «Киевский политехнический институт»,Украина, г. Киев

Мороз Илья Дмитриевич

студент Национального технического университета Украины, «Киевский политехнический институт»,Украина, г. Киев

METHOD OF MULTIPLE THREADS PROCESSING ON A SINGLE DINAMICALLY RECONFIGERED CORE

Yaroslaw Dorogyy

cand. Sc. (Eng.), Assoc. Prof, National Technical University of Ukraine,

“Kyiv Polytechnic Institute”,

Ukraine, Kiev

 

Ilya Moroz

student of National Technical University of Ukraine

“Kyiv Polytechnic Institute”,

Ukraine, Kiev

 

АННОТАЦИЯ

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

ABSTRACT

In this article has been described the way to improve the performance of the microprocessor with a dynamically reconfigurated kernel during multitasking environment operation. Given method allocates hardware resources into multiple virtual cores directly during runtime, thus can be used in multi-tasking systems.

 

Ключевые слова: многозадачность, потоки, виртуальные ядра.

Keywords: multitasking, threads, virtual cores.

 

Введение

На сегодняшний день актуальной задачей в сфере компьютерных технологий является повышение производительности компьютерных систем. Процессор – один из основных компонентов компьютерных систем, от которого существенно зависит производительность всей компьютерной системы. Важным способом повышения производительности процессора является улучшение показателя эффективности использования оборудования, поскольку при одинако­вом количестве общего оборудования увеличивается количество аппаратуры, задействованной для выполнения алгоритмов [3]. Кроме того, повышение эффективности использования оборудования способствует уменьшению энергопотребления системы, что особенно актуально для портативных компьютерных систем [4].

Постановка задачи

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

Во время выполнения многопоточных программ стоит задача оптимизации параллельного выполнения потоков на процессоре, которое для динамично реконфигурируемых процессоров может быть выполнено путем распределения оборудования для нескольких процессоров [4].

Описание способа решения

В описанных в [1; 2] динамично реконфигурируемых ядрах при выполнении большинства задач часто не будет использовано большое количество функциональных блоков, а следовательно, значение эффективности использования оборудования будет низким. Поэтому, для такого процессорного ядра при его использовании в многозадачных системах возможен способ повышения эффективности использования оборудования. При наличии достаточ­ного количества свободных функциональных блоков, указанный способ, при определенных условиях, дает возможность одновременно выполнять машинные команды разных потоков [6]. Каждый функциональный блок описанного ядра можно рассматривать как отдельный, самостоятельный процессор, который обрабатывает данные по определенному алгоритму, а все ядро – как сеть на кристалле. В таком случае, согласно классификации Хокни [7], описанное процессорное ядро является MIMD-системой, построенной на ком­мутаторах с разделенной памятью, поскольку матрица связей ядра позволяет подключение произвольных функциональных блоков между собой, а сами блоки не имеют доступа к одной общей памяти.

Проблема распределения функциональных блоков между потоками

Параллельное выполнение нескольких потоков на одном ядре возможно, когда свободны все необходимые функциональные блоки для всех потоков [5]. Поэтому одной из задач аппаратуры описанного процессора является контроль занятости функциональных блоков, который должен проводиться поочередно в порядке убывания приоритетов выполняемых процессов. Занятым функциональный блок считается только тогда, когда на его входы представлены значения. Если хотя бы один из необходимых для этого потока функциональных блоков занят, такой поток не может быть выполнен. Несколько сложнее проблема, связанная с использованием потоками функциональных блоков регистров, поскольку изменение одним потоком ранее записанного другим потоком значения не допускается, так как это может привести к неправильной работе программ.

Одним из способов избежать таких ситуаций является использование каждым из одновременно выполняемых потоков своего набора регистров. Схему функционального блока с отдельными регистрами для каждого потока показано на рисунке 1.

Для общего доступа к памяти может быть предусмотрен как один интерфейс доступа к памяти, который блокируется при работе с памятью, так и несколько – по одному интерфейсу на каждый из одновременно выполняемых потоков.

 

Рисунок 1. Функциональный блок регистра

 

Особенности структуры дешифратора команд

Для декодирования команд может быть использован как один дешифратор на все потоки, так и по одному дешифратора на каждый поток. Использование одного дешифратора в зависимости от характера задач может снижать производительность ядра из-за задержек на считывание операций из памяти команд. Для обеспечения одновре­менного выполнения нескольких потоков для каждого из них исполь­зуется отдельный дешифратор аналогичной структуры, на вход каждого из которых подаются машинные инструкции соответствующего потока.

Оценка эффективности использования оборудования

Для оценки эффективности использования оборудования определяют долю задействованных функциональных блоков, независимо от их типов.

Эффективность использования оборудования при выполнении описанным ядром определенной машинной команды можно определить по формуле:

 

,                                                                                            (1)

 

где: Ек – эффективность использования оборудования во время выполнения определенной машинной команды;

N – количество одновременно задействованных функциональных блоков;

Nобщ – общее количество функциональных блоков.

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

 

,                                                                                              (2)

 

где:   n – количество потоков, одновременно выполняющихся на процес­сорном ядре.

Принимая соотношение (2), при увеличении количества потоков n эффективность использования оборудования повышается.

Выводы

Описанный способ повышения производительности микропроцессора с динамично реконфигурируемым ядром позволяет значительно повысить производительность выполнения задач реального времени, а также программ с несколькими потоками с диф­ференцированными приоритетами.

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

 

Список литературы:

  1. Березовский М., Дунец Р. Динамично реконфигурируемые процес­сорные ядра // «Современные компьютерные системы и сети: разработка и использование»: Матер. 5-й Междунар. научно-техн. конф. ACSN-2011. – 204–205 с.
  2. Березовский М., Дунец Р. Оптимизация формата машинных команд динамично реконфигурируемого процессорного ядра // Радиоэлект­ронные и компьютерные системы. – 2012. – 120–124 с.
  3. Ланина Э.П. Многоядерность как способ увеличения производительности вычислительной системы // Информационно-телекоммуникационные системы. – 2008. – 24 с.
  4. Путря Ф.М. Архитектурные особенности процессоров с большим числом вычислительных ядер // Информационные технологии. – 2009. – № 4. –

    2–7 с.
Проголосовать за статью
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.