Варианты реализации и структура аппаратного арбитра общей шины многопроцессорной системы

УДК 004.31

ВАРИАНТЫ РЕАЛИЗАЦИИ И СТРУКТУРА АППАРАТНОГО АРБИТРА ОБЩЕЙ ШИНЫ МНОГОПРОЦЕССОРНОЙ СИСТЕМЫ1

А. И. Мартышкин

VARIANTS OF IMPLEMENTATION AND STRUCTURE OF HARDWARE ARBITER OF COMMON BUS FOR MULTIPROCESSOR SYSTEM

А. I. Martyshkin

Аннотация. Актуальность и цели. Сегодня, когда быстродействие вычислительных систем достигло колоссальных показателей, проблема производительности остается актуальной в том числе и потому, что круг задач, решаемых на ЭВМ, существенно расширился, а также потому, что возросла сложность самих задач. Одним из решений этой проблемы стало появление многоядерных и многопроцессорных вычислительных систем (например, на основе общей шины). Зачастую в них возникает проблема распределения (назначения) процессоров на обработку задач. Здесь немалое влияние имеет организация шинного арбитра, который управляет процессом занятия и освобождения общей шины. Этим обусловлена актуальность статьи. Цель работы - создание и описание структуры аппаратного арбитра общей шины многопроцессорной системы, включающей 16 процессоров. Материалы и методы. Для достижения поставленных в работе целей применена САПР Web pack ISE фирмы Xilinx с возможностью создания и моделирования работы блока аппаратного арбитра, что облегчает синтез проектов, ориентированных на использование современной элементной базы - ПЛИС. Результаты. Рассмотрены возможные варианты реализации аппаратного арбитра, описаны их достоинства и недостатки, а также состав предлагаемого устройства. Представлена структурная схема вычислительной системы, включающей в себя аппаратный арбитр общей шины. Выводы. В заключении статьи представлены полученные результаты и выводы, повествующие о результатах проведенных исследований и дальнейшем варианте развития проекта. В будущем предполагается реализовать аппаратный арбитр в виде платы расширения с применением ПЛИС. Областью применения ассоциативного сопроцессора являются многопроцессорные системы на базе сигнальных процессоров типа TMS320 или аналогичных.

Ключевые слова: аппаратный арбитр, общая шина, многопроцессорная система, статические приоритеты, динамические приоритеты, централизованный арбитраж, децентрализованный арбитраж, ПЛИС.

Abstract. Background. Today, when the speed of computing systems has reached colossal rates, the problem of productivity remains topical, including because the range of tasks solved on a computer has grown significantly, and because the complexity of the tasks has increased. One of the solutions to this problem was the emergence of multi-core

1 Работа выполнена при финансовой поддержке РФФИ (грант № 16-07-00012).

195

and multiprocessor computing systems (for example, based on a common bus). Often in them, there is a problem of distribution (assignment) of processors on processing of tasks. Here, the organization of the tire arbitrator, which manages the process of occupying and releasing the common tire, has considerable influence. This is due to the relevance of the article. The purpose of the work is to create and describe the structure of the hardware arbiter of the common bus of the multiprocessor system, which includes 16 processors. Materials and methods. To achieve the goals set in the work, CAD Web pack ISE from Xilinx Company is applied with the ability to create and simulate the work of the hardware arbiter unit, which facilitates the synthesis of projects focused on the use of a modern element base -PLD. Results. The article considers possible options for implementing a hardware arbiter. Their advantages and disadvantages are described. The composition of the proposed device is described. A block diagram of a computer system including a common bus arbiter is presented. Conclusions. The conclusion of the article presents the results and conclusions, which tell about the results of the research and the further development of the project. In the future, it is proposed to implement a hardware arbiter in the form of an expansion board using PLDs. The field of application of the associative coprocessor are multiprocessor systems based on signal processors such as TMS320 or similar.

Key words: hardware arbiter, common bus, multiprocessor system, static priorities, dynamic priorities, centralized arbitration, decentralized arbitration, PLD.

Введение

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

В настоящее время, когда быстродействие вычислительных систем достигает колоссальных показателей, проблема производительности остается актуальной в том числе и потому, что круг задач, решаемых на ЭВМ, существенно вырос, а также потому, что возросла сложность самих задач. Одним из решений этой проблемы стало появление многоядерных и многопроцессорных вычислительных систем [1-3], а также специализированных систем [4-6]. Здесь немалое влияние имеет организация шинного арбитра, который управляет процессом занятия и освобождения общей шины. От того, насколько правильно и качественно продуман функционал и структура арбитра, зависит быстродействие вычислительной системы в целом [7-9].

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

Целью статьи является разработка арбитра общей шины многопроцессорной системы, включающей 16 процессоров.

Суть арбитража состоит в следующем (рис. 1). Имеется многопроцессорная система, состоящая из N процессоров. Также имеется общая шина, например, функционирующая в соответствии со спецификацией AMBA [10], в задачи которой входит обмен данными между процессорами, оперативной

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

Рис. 1. Многопроцессорная система

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

Предполагается, что рассматриваемое устройство будет работать в составе многопроцессорной системы на базе 16 сигнальных процессоров типа TMS 320.

В ходе анализа литературы по тематике статьи были рассмотрены альтернативные варианты проектирования арбитра общей шины многопроцессорной системы [7, 9, 11]. На основе проведенного анализа определим архитектурно-структурные особенности рассматриваемого устройства, сравнив их предварительно с существующими на сегодняшний день. Арбитр шины реализуется аппаратно, что не предусматривает больших требований к ресурсам процессора и делает его независимым от быстродействия последнего.

Далее рассмотрим возможные варианты реализации алгоритма работы арбитра и имеющиеся на сегодняшний день устройства реализации процедуры запросов на управление шиной по централизованной или децентрализованной схеме [6, 7, 11]. Выбор конкретной схемы зависит от требований к производительности и стоимостных ограничений. При централизованном арбитраже в системе имеется устройство (центральный арбитр), ответственное за предоставление доступа к шине только одному из процессоров. Это устройство может быть самостоятельным модулем или частью процессора. В зависимости от того, каким образом процессоры подключены к центральному арбитру, возможные схемы централизованного арбитража можно разделить на параллельные и последовательные. Централизованный последовательный арбитраж (рис. 2) предполагает наличие только одного сигнала предоставления общей шины, последовательно проходящего через цепочку процессоров.

Рис. 2. Общая схема централизованного последовательного арбитража

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

Статический приоритет - каждому потенциальному ведущему присваивается определенный уровень приоритета, который остается неизменным.

Схема статических приоритетов, показанная на рис. 3, может быть описана следующими логическими выражениями:

ПШ0= ЗШ0;

ПШ1= ЗШ0ЗШ1;

ПШ2 = ЗЩ, ЗШ1ЗШ2;

ПШ3 = ЗШд ЗШ1ЗШ2ЗШ3;

ПШ4 = ЗШд ЗШ1ЗШ2 ЗШ3ЗШ4; ПШ5 = ЗШо ЗШ1ЗШ2 ЗШз зШ4ЗШ5; ПШ6 = ЗЩ0 ЗШ1ЗШ2 ЗШ3 ЗШ4 ЗШ^ЗШб;

ПШ7 = ЗШ0 ЗШ1ЗШ2 ЗШ3 ЗШ4 ЗШ5 ЗШ6ЗШ7 .

Рис. 3. Возможная реализация централизованного арбитража со статическими приоритетами

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

Централизованный параллельный арбитраж со статическими приоритетами (рис. 4) предполагает наличие у каждого процессора в системе строго зафиксированного за ним уровня приоритета.

Рис. 4. Общая схема централизованного параллельного арбитража

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

Децентрализованный арбитраж (рис. 5) предполагает отсутствие центрального арбитра и наличие у каждого процессора в системе собственного модуля доступа к общей шине.

Рис. 5. Схема распределенного децентрализованного арбитража

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

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

Устройство, рассматриваемое в статье, предполагается отладить в программе Web pack ISE, создав VHDL-код описания функционирования арбитра [12], а затем спроектировать на базе программируемой логической интегральной схемы (ПЛИС) Spartan 3 фирмы Xilinx, которая относится к ПЛИС типа FPGA.

Структурная схема аппаратного арбитра

На этапе проектирования любого устройства необходимо выбрать наиболее оптимальную его структуру. Предлагаемая структурная схема многопроцессорной системы с аппаратным арбитром шины представлена на рис. 6.

Рис. 6. Структурная схема многопроцессорной системы с аппаратным арбитром

Рассмотрим ее состав и взаимодействие основных структурных блоков друг с другом. Многопроцессорная система состоит из трех основных блоков: арбитр шины, общая память и шестнадцать одинаковых процессорных модулей.

В состав каждого блока процессорного модуля входит схема ввода входной последовательности. Она необходима для приема входной последовательности из канала связи и должна подавать обработанную последовательность на локальную шину данных. Таким образом, блок процессорного модуля необходим для приема входной последовательности из канала связи, обработки данных и формирования управляющих сигналов. Он выполняет следующие функции:

- прием и обработка входной последовательности;

- выполнение вычислений;

- формирование сигналов для работы арбитра шины, глобальной памяти и схемы вывода;

- прием и передача данных из глобальной памяти.

Блок арбитра шины необходим для управления общей шиной. В его состав входят:

- регистр запросов;

- схема выделения статических приоритетов;

- схема выделения динамических приоритетов;

- регистр приоритетов.

Блок арбитра шины выполняет следующие функции:

- обработка сигналов запроса шины от процессоров;

- анализ запросов и формирование ответа по принципу статических или динамических приоритетов;

- разрешение или запрет доступа процессоров к общей шине в зависимости от ее текущего состояния (свободно/занято);

- выделение приоритетов процессорным модулям на захват шины.

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

- прием и хранение данных, полученных от процессорных модулей;

- передача данных в процессорные модули;

- управление чтением/записью.

Заключение

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

Устройство, рассматриваемое в статье, для последующего исследования предполагается спроектировать на базе программируемой логической инте-

гральной схемы (ПЛИС) Spartan 3 фирмы Xilinx и реализовать на плате расширения.

Библиографический список

1. Бикташев, Р. А. Многопроцессорные системы. Архитектура, топология, анализ производительности : учеб. пособие / Р. А. Бикташев, В. С. Князьков. - Пенза : Изд-во Пенз. гос. ун-та, 2004. - 107 с.

2. Мартышкин, А. И. Функциональная организация и алгоритмы работы аппаратного буферного устройства памяти многопроцессорной вычислительной системы / А. И. Мартышкин // Фундаментальные исследования. - 2016. - № 12-3. -С. 518-522.

3. Salnikov, I. I. Investigation of the memory subsystem of information systems by buffering transactions on the queuing models / I. I. Salnikov, M. Yu. Babich, M. M. Butaev, A. I. Martyshkin // International Journal of Applied Engineering Research. - 2016. -Vol. 11, № 19. - P. 9846-9849.

4. Мартенс-Атюшев, Д. С. Разработка и исследование реконфигурируемого вычислительного кластера для цифровой обработки сигнала / Д. С. Мартенс-Атюшев, А. И. Мартышкин // Современные информационные технологии. - 2015. - № 21. -С. 190-195.

5. Мартышкин, А. И. Модуль ассоциативного сопроцессора на базе ПЛИС для специализированных вычислительных систем / А. И. Мартышкин // Вестник Рязанского государственного радиотехнического университета. - 2016. - № 58. -С. 75-82.

6. Мартышкин, А. И. Структурная организация блока ассоциативного сопроцессора на базе программируемой логической интегральной схемы для специализированных вычислительных систем / А. И. Мартышкин // Модели, системы, сети в экономике, технике, природе и обществе. - 2016. - № 4 (20). - С. 128-138.

7. Бикташев, Р. А. Архитектура параллельных вычислительных систем / Р. А. Бик-ташев, В. С. Князьков. - Пенза : РИО Упринформпечати, 1993. - 166 с.

8. Таненбаум, Э. Архитектура компьютера / Э. Таненбаум, Т. Остин. - 6-е изд. -СПб. : Питер, 2013. - 816 с.

9. Хамахер, К. Организация ЭВМ / К. Хамахер, З. Вранешич, С. Заки ; пер. с англ. О. Здир. - 5-е изд. - СПб. : Питер ; Киев : BHV, 2003. - 848 с.

10. АМВА Specification. Rev 2.0. - ARM Limited, 1999. - 230 p.

11. Цилькер, Б. Я. Организация ЭВМ и систем / Б. Я. Цилькер, С. А. Орлов. -2-е изд. - СПб. : Питер, 2011. - 688 с.

12. Суворова, Е. А. Проектирование цифровых систем на VHDL / Е. А. Суворова, Ю. Е. Шейнин. - СПб. : БХВ-Петербург, 2003. - 576 с.

Мартышкин Алексей Иванович кандидат технических наук, доцент, кафедра вычислительных машин и систем,

Пензенский государственный технологический университет E-mail: alexey314@yandex.ru

Martyshkin Aleksey Ivanovich candidate of technical sciences, associate professor,

sub-department of computers and systems, Penza State Technological University

УДК 004.31 Мартышкин, А. И.

Варианты реализации и структура аппаратного арбитра общей шины многопроцессорной системы / А. И. Мартышкин // Модели, системы, сети в экономике, технике, природе и обществе. - 2017. - № 2 (22). - С. 195-204.