Способ реализации аппаратного слоя VLIW-архитектуры на базе систолических структур

УДК 004.272.42

Р. Н. Федюнин

СПОСОБ РЕАЛИЗАЦИИ АППАРАТНОГО СЛОЯ VLIW-АРХИТЕКТУРЫ НА БАЗЕ СИСТОЛИЧЕСКИХ СТРУКТУР

Аннотация. Описывается способ реализации арифметико-логического устройства (АЛУ) специализированных процессоров на базе VLIW-архитектуры. Дается описание функциональных блоков АЛУ для реализации базовых арифметико-логических операций. Показан вариант реализации универсальной ячейки, на базе которой строится вычислительное ядро АЛУ. Приведены примеры вычислительных схем обработки данных АЛУ. Результатом работы являются патентно способные решения, которые нашли практическое отражение в опытно-конструкторских решениях на базе промышленных предприятий г. Пензы. Перспективность решения доказана множеством статей в зарубежной и российской научной прессе и техническими решениями корпораций XILINX и ALTERA.

Ключевые слова: систолические вычисления, VLIW, конвейерные вычисления, конвейерное умножение.

R. N. Fedyunin

METHOD OF REALIZATION OF A HARDWARE LAYER OF VLIW ARCHITECTURE ON THE BASIS SYSTOLIC STRUCTURES

Abstract. The article describes a method of realization of arithmetic logic unit (ALU) of dedicated processors on the basis of VLIW architecture. The author describes ALU functional blocks for realization of basic arithmetic logic operations, introduces a variant of realization of a universal cell which is the base for ALU computing core construction and gives the examples of ALU data processing computing schemes. The results of the research are the patent competitive solutions that have been practically implemented in research and production solution on the basis of industrial enterprises of Penza. Promissory nature of the solution is proved by multiple articles in foreign and Russian scientific press as well as by technical solutions of such corporations as XILINX and ALTERA.

Key words: systolic computing, VLIW, pipeline computing, pipeline multiplication.

В настоящий момент VLIW-процессоры составляют ощутимую конкуренцию RISC-процессорам. Это связано с рядом недостатков RISC-архитектуры.

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

Приведем причины, мешающие RISC-процессору обрабатывать 8 и более команд за цикл:

- мешает ограничение аппаратной технологии: у обычного RISC-процессора для этого просто мало независимых функциональных узлов;

- вторая причина в том, что в цикле конвейера К^С-ядра недостаточно времени, чтобы проанализировать 8-16 команд, определить, какие функциональные устройства не заняты, и отправить каждую команду на соответствующий узел; увеличение же времени цикла сократит производительность процессора;

- третье ограничение - компилятор не способен генерировать для каждого цикла по 8-16 независимых команд.

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

Но возможность выбирать на выполнение большее число команд бесполезна, если аппаратура суперскалярного К^С-процессора может выполнять одновременно ограниченное число команд.

VLIW-технология решает эту проблему, снимая с аппаратуры процессора задачу распределения команд. Вместо того, чтобы, как в К^С-процессоре, анализировать каждую инструкцию в потоке команд и затем распределять их по одной в функциональные узлы, компилятор VLIW генерирует отдельную команду для каждого функционального узла. Например, если функциональных узлов 16, то компилятор генерирует для каждого процессорного цикла 16 команд; но, в отличие от К^С-процессора, который анализирует, в какой функциональный узел направлять каждую команду, VLIW-процессор просто посылает первую команду в первый узел, вторую - во второй и т.д. Конечно, если на каком-то цикле у компилятора не оказывается команды для некоторого узла, он по-прежнему должен сгенерировать код «нет операции». Так как VLIW-процессор - только блок выполнения, а не анализа команд, то его время цикла меньше, чем время цикла суперскалярного К^С-процессора. Меньшее время цикла и увеличенная степень параллелизма исполнения команд, достигаемая посредством загрузки большего числа функциональных узлов, дает VLIW преимущества перед М8С.

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

Система, представленная на рис. 1, работает следующим образом. Команды из КЭШа-команд одновременно настраивают функциональные блоки (ФБ) на работу с конкретной операцией. Затем каждый ФБ в конвейерном режиме обрабатывает свой массив данных, поступающий из соответствующего банка КЭШ-данных. Данный процесс возможен, так как каждый ФБ - это поле однородных процессорных модулей (ПМ) (рис. 2) [1, 2]. Структура ПМ и поля однородной структуры приведены далее.

Таким образом, система получает масштабируемое операционное поле, готовое выполнить сколь угодно большое число операций. Технологически исполнение такого вида процессоров дешевле и проще [3] по сравнению с К^С-аналогами.

Теперь более подробно опишем операционную часть функциональных блоков процессора (рис. 3, 4) - процессорные модули.

Рис. 1. Организация аппаратной части VLIW-процессора

В состав каждого процессорного модуля введены битовый сумматор, перенастраиваемая комбинационная логика коммутации данных и их элементарных логических преобразований. Функциональные возможности процессорного модуля с данной организацией обеспечивают реализацию системы логических функций от пяти переменных. Аргументами функций являются значения логических переменных, поступающих на обработку по информационным каналам t, x, s, p, у; вычисленные значения функций формируются соответственно на информационных выходах процессорного модуля ^, x* , s*, p*, у*.

Настройка оборудования модуля ПМ на выполнение соответствующего типа функций выполняется по каналам управления ^ z1, z2.

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

При формировании на управляющем входе процессорного модуля сигнала k = 1 обеспечивается реализация следующей системы функций алгебры логики:

University proceedings. Volga region

информационный вход х

информационный вход у

вход управления операциями к • вход управления операциями г1 • вход управления операциями г2»

информационный вход у

информационный вход р

С1 А

С2 SM В

информационный выход х*

Рис. 2. Ячейка однородной вычислительной структуры

информационный выход у*

информационный выход

информационный выход р*

информационный выход

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

Рис. 3. Пример реализации логической функции в ФБ

Данная система функций позволяет выполнить в вычислительной среде операции вычисления значения логической функции от ^-переменных и операцию определения количества единиц в двоичном векторе.

Вычисление логической функции от ^-переменных выполняется в два этапа. На первом этапе выполняется формирование древовидной схемы вычисления реализуемой функции алгебры логики путем настройки аппаратной среды соответствующих процессорных модулей вычислительной среды на реализацию операций логического умножения, сложения, операций коммутации каналов передачи данных. Настройка модуля ПМ на тот или иной тип операций обеспечивается установкой на их настроечных входах z\ и г2 сле-

l lz = О и z2 = 0 t = * t = *

2 О = zl и z2 = Ь x* = x, t* = 0

З zl = ь и Z2 = 0 t x = * t О = * x

4 zl = ь и z2 = Ь t > x = * t О = * x

Xi

f

Рис. 4. Пример реализации операции арифметического умножения в ФБ

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

Пример построения схемы вычисления логической функции вида / =

в вычислительной среде из данных процессорных модулей показан на рис. 3.

При формировании на управляющем входе процессорного модуля сигнала к = 0 обеспечивается реализация следующей системы функций алгебры логики:

i * — s = s  у v A  у ;

2 * — p = B  у v p  у;

З * x = t;

4 * t = x;

5 = *

6 A = x  s  p v x  s  p v x  s  p v x  s  p ;

7 B = x  s  p v x  s  p v x  s  p v x  s  p .

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

Из предложенных вариантов арифметических операций рассмотрим арифметическое умножение двоичных чисел.

Арифметическое умножение двоичных чисел выполняется в вычислительной среде следующим образом. Множимое поразрядно подается на входы х1, х2,..., хп процессорных модулей первого столбца, а разряды множителя устанавливаются на входыу1,у2, ...,уп процессорных модулей первой строки вычислительной среды. Причем на входе х первого модуля первого столбца устанавливается младший разряд множимого, а на входе у - младший разряд множителя. На остальные входы вычислительной среды устанавливаются значения сигналов, равные 0. Таким образом, на выходах 5* процессорных модулей столбцов, на входы у которых поступает разряд множителя, равный 0, формируется копия числа, установленная на входах 5, а на выходах х* -сдвинутая на один разряд копия числа, установленного на входах х. При установке на входах у процессорных модулей столбца единичного значения разряда множителя на выходах 5* формируется сумма значений данных, установленных на входах 5 и х модулей ПЭ, а на выходах х* - сдвинутая на один разряд вниз копия числа, установленного на входах х. Пример выполнения операции умножения двух положительных двоичных чисел в вычислительной среде из данных процессорных модулей показан на рис. 4.

В данном случае множимое подается на группу входов X, а множитель -на группу входов У. Результат операции умножения формируется на группе выходов З1* начиная с модуля первой строки. На соответствующих информационных выходах 5* ячеек первого столбца формируется первое частичное произведения, а на х* - сдвинутая на один разряд копия множимого. На информационных выходах 5* ячеек второго столбца формируется второе частичное произведения, а на х* - сдвинутая на два разряда копия множимого и т.д.

Описанные выше схемы дают возможность реализовать высокоскоростную конвейерно-параллельную систему обработки данных. Новизна блоков подтверждена патентами РФ [1, 2]. Функциональные блоки и процессорные модули прошли тестовую апробацию на базе ОКР ПНИЭИ «Трамплин С» [3] в качестве блоков специализированных устройств обработки данных. В качестве технологической базы для экспериментальной апробации VLIW процессора [4] выбраны ПЛИС фирмы Х^ЩХ [5].

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

1. Пат. РФ 2284568. Ячейка однородной вычислительной среды / Федюнин Р. Н., Князьков В. С. Опубл. 27.09.2006, Бюл. № 27.

2. Пат. РФ 2285285. Ячейка однородной среды / Федюнин Р. Н., Князьков В. С. Опубл. 10.10.2006, Бюл. № 28.

3. Федюнин, Р. Н. Современные методы и способы реализации высокоскоростных вычислений / Р. Н. Федюнин // Системный анализ, управление и обработка информации. - 2006. - Спецвыпуск: Специальная техника средств связи. -С. 121-130.

4. URL: www.transmeta.com

5. URL: www.xilinx.com

References

1. Pat. RF 2284568. Yacheyka odnorodnoy vychislitel’noy sredy [Homogeneous computer medium cell]. Fedyunin R. N., Knyaz'kov V. S. 27.09.2006, no. 27.

2. Pat. RF 2285285. Yacheyka odnorodnoy sredy [Homogeneous medium cell]. Fedyunin R. N., Knyaz'kov V. S. 10.10.2006, no. 28.

3. Fedyunin R. N. Sistemnyy analiz, upravlenie i obrabotka informatsii [System analysis, control and processing of data]. 2006, Spetsvypusk, pp. 121-130.

4. available at: www.transmeta.com

5. available at: www.xilinx.com

Федюнин Роман Николаевич

кандидат технических наук, доцент, кафедра вычислительной техники, Пензенский государственный университет

E-mail: frn_penza@mail.ru

УДК 004.272.42 Федюнин, Р. Н.

Способ реализации аппаратного слоя VLГW-архитектуры на базе систолических структур / Р. Н. Федюнин // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2013. - № 2 (26). -С.15-22.

Fedyunin Roman Nikolaevich Candidate of engineering sciences, associate professor, sub-department of computer science, Penza State University