№ 2 (34), 2015 Технические науки. Информатика, вычислительная техника
УДК 004.272.42
Р. Н. Федюнин, А. С. Войнов, И. В. Сенокосов RISC-ЯДРО ДЛЯ ОБРАБОТКИ МНОГОМЕРНЫХ МАССИВОВ
Аннотация.
Актуальность и цели. Работа на стыке нескольких областей математических и информационных дисциплин дает результаты, которые находят применение в различных прикладных областях, таких как цифровая обработка сигналов, криптография и пр. Элементы матричной алгебры позволяют создать алгоритмы параллельной и распределенной обработки многомерных массивов. Реализация на программируемой логической интегральной схеме позволяет сделать быструю и дешевую апробацию схемотехнической и программной реализации математического аппарата. Именно поэтому данные тематики широко представлены учеными России и Запада.
Материалы и методы. Исследование и реализация RISC-ядра для обработки многомерных массивов (матриц) проведены на основе формализма теории недетерминированных автоматов с последующим функциональным моделированием RISC-ядра в системе автоматизированного проектирования ALTERA QUARTUS. В качестве основных алгоритмов исследования и реализации блоков взяты алгоритмы матричной алгебры.
Результаты. Приведено подробное описание RISC-ядра для обработки многомерных массивов. Получена модель функционирования RISC-ядра на основе теории недетерминированных автоматов. Предложена система канонических уравнений на основе математической модели RISC-ядра. Произведена схемотехническая реализация функциональных блоков RISC-ядра с последующим моделированием в системе автоматизированного проектирования Altera Quartus.
Выводы. Предложен способ реализации функциональных блоков RISC-ядра для выполнения операций матричной алгебры. Использована теория недетерминированных автоматов для реализации модели функциональных блоков устройства. Произведено математическое описание, а затем функциональное моделирование устройств на уровне soft-процессора.
Ключевые слова: RISC-ядро, SOFT-ядро, функциональный блок обработки многомерных массивов, матричная алгебра, система автоматизированного проектирования ALTERA QUARTUS.
R. N. Fedyunin, A. S. Voynov, I. V. Senokosov
RISC ARITHMETIC LOGIC UNIT FOR CALCULATION OF MULTILEVEL ARRAYS
Abstract.
Background. Working at the junction of several areas of mathematical and information sciences gives results that are used in various applications, such as digital signal processing, cryptography etc. The elements of matrix algebra algorithms allow to create the algorithms of parallel and distributed processing of multidimensional arrays. Implementation on FPGA allows to quick and cheap testing hardware and software implementation of the mathematical apparatus.
Materials and methods. The research and implementation of RISC-core processing for multidimensional arrays were carried out on the basis of the formalism of the theory of nondeterministic automata, followed by functional simulation RISC-core CAD ALTERA QUARTUS. Algorithms of matrix algebra acted as the basic algorithms of units research and implementation.
Engineering sciences. Computer science, computer engineering and control
45
Известия высших учебных заведений. Поволжский регион
Results. The article shows a detailed description of RISC-core processing for multidimensional arrays. The authors obtained a model of RISC-core functioning, based on the theory of non-deterministic automata, suggested a system of canonical equations based on the mathematical model of RISC-core and carried out a circuit implementation of the functional blocks of RISC-core, followed by modeling in CAD Altera Quartus.
Conclusions. The authors have proposed a method for implementation of the functional blocks of RISC-core to perform matrix algebra operation. The researchers used the theory of nondeterministic automata to implement a model of the functional blocks of the device. The authors carried out a mathematical description and then a functional simulation of devices at a soft-processor level.
Key words: RISC, soft-core, arithmetic logic unit, unit for multilevel arrays calculation, CAD Altera Quartus, matrix.
Введение
Способ разработки вычислительных ядер (soft-ядер) для реализации заданного набора операций средствами системы автоматизированного проектирования (САПР) ALTERA QUARTUS, предполагает следующие шаги (рис. 1).
Разработка обобщенной схемы soft-ядра
Рис. 1. Маршрут разработки и верификации вычислительных устройств средствами САПР ALTERA QUARTUS; НДА - недетерминированные аппараты
Для обработки многомерных массивов (матриц) в качестве примера возьмем схему SOFT-ядра с RISC архитектурой [1], для которой нам предстоит реализовать модуль обработки многомерных массивов (рис. 2).
Каждый блок арифметико-логического устройства (АЛУ) ядра - специализированное устройство обработки многомерных массивов (рис. 3), способное к выполнению следующего набора операций над матрицами:
1. Определение коэффициентов характеристического уравнения.
2. Нахождение геометрических кратностей матрицы для арифметических корней.
3. Приведение матрицы к диагональному виду.
46
University proceedings. Volga region
№ 2 (34), 2015 Технические науки. Информатика, вычислительная техника
4. Нахождение собственных векторов матрицы для арифметических корней в соответствии с геометрической кратностью.
5. Запись полученных корней в виде жордановой матрицы.
6. Составление матрицы переходов (B) на основе собственных векторов.
7. Нахождение определителя матрицы В.
8. Нахождение матрицы миноров для матрицы В.
9. Нахождение матрицы алгебраических дополнений на основании матрицы миноров для матрицы В.
10. Нахождение транспонированной матрицы алгебраических дополнений для матрицы В.
11. Получение обратной матрицы для матрицы В.
Кэш команд
Файл регистров
Рис. 2. Обобщенная структура операционной части RISC-ядра
Поток команд к обработчикам матричных операций
| УУ и сортировщик команд [•
matrix В imatrix А
matrix В matrix А
matrix В matrix А
matrix Y(op1) matrix Y(op2) matrix Y(op3)
Рис. 3. Вариант АЛУ на базе специализированных устройств обработки многомерных массивов (УУ - устройство управления)
Engineering sciences. Computer science, computer engineering and control 47
Известия высших учебных заведений. Поволжский регион
1. Формальное описание функционального блока умножения с помощью теории недетерминированных автоматов
На основании исследований, представленных в [2-5], составляется математическая модель RISC-ядра (рис. 4).
Представленные на рис. 4 события представляют собой состояния недетерминированного автомата в i единицу времени:
Sq - начальное состояние;
51 - вычисление det(A - XE);
J\, J3, J5, J7 - начало параллельного выполнения событий;
52 - нахождение алгебраического дополнения для элемента (1,1);
53 - нахождение алгебраического дополнения для элемента (i,i);
54 - нахождение алгебраического дополнения для элемента (n,n);
J2, J4, J6, Jg - окончание параллельного выполнения событий;
Ssum - суммирование значений, полученных в S2, S3, S4 ;
55 - подбор первого корня характеристического уравнения;
56 - операция деления на X - x для получения квадратного уравнения;
57 - нахождение корней характеристического уравнения и определение алгебраической кратности всех корней;
Sg, S9 - нахождение ранга матрицы, если есть отличные от 1 алгебраические кратности;
Siq - нахождение ранга матрицы и геометрической кратности, если все алгебраические кратности равны 1;
S11, S12 - нахождение геометрических кратностей в случае двух разных алгебраических кратностей;
S13, S14 - проверка на равенство алгебраических и геометрических кратностей;
Sfc - окончание работы программы по причине неравенства алгебраических и геометрических кратностей;
48
University proceedings. Volga region
№ 2 (34), 2015 Технические науки. Информатика, вычислительная техника
1S15 - нахождение собственного вектора при кратности, равной 2;
<Si5 - нахождение собственного вектора при кратности, равной 1;
<Si7 - изменение одного из параметров для вычисления второго вектора; ^18 - запись алгебраических корней с помощью жордановой формы;
519 - нахождение определителя матрицы B;
520 - нахождение матрицы миноров для матрицы B ;
521 - нахождение матрицы алгебраических дополнений для матрицы B ;
522 - транспонирование матрицы алгебраических дополнений;
523 - нахождение обратной матрицы B (делим транспонированную матрицу на определитель);
Send - окончание работы алгоритма.
Описание сигналов, показанных на граф-схеме модели:
A - начальная матрица; b - сигнал начала работы;
c - составлена матрица для характеристического уравнения; d - сигнал для начала параллельного вычисления алгебраических дополнений для главной диагонали;
e - сигнал окончания вычисления алгебраического дополнения для элемента матрицы (1,1);
f - сигнал окончания вычисления алгебраического дополнения для элемента матрицы (2,2);
g - сигнал окончания вычисления алгебраического дополнения для элемента матрицы (3,3);
h - сигнал того, что все три алгебраических дополнения вычислены; se - сигнал того, что суммирование успешно выполнено; i - сигнал к переходу к следующему делителю свободного члена характеристического уравнения;
j - сигнал того, что первый корень характеристического уравнения вычислен;
k - сигнал об успешном окончании операции деления; l - сигнал для начала вычисления геометрической кратности матрицы; m - сигнал для начала параллельного вычисления рангов матрицы для каждого из алгебраических корней;
n - сигнал окончания вычисления ранга матрицы для одного из двух алгебраических корней при алгебраической кратности одного из корней больше 1;
о - сигнал окончания вычисления ранга матрицы для второго алгебраического корня при алгебраической кратности одного из корней больше 1;
p - сигнал окончания вычисления ранга матрицы при равенстве алгебраической кратности всех корней 1;
q, r - сигналы окончания вычисления геометрических кратностей
в случае неравенства одной из алгебраических кратностей 1;
s, u - сигнал того, что алгебраические и геометрические кратности совпали;
Engineering sciences. Computer science, computer engineering and control
49
Известия высших учебных заведений. Поволжский регион
t - сигнал наличия алгебраических корней характеристического уравнения и их кратности;
v, w - сигналы того, что алгебраические и геометрические кратности не совпадают;
х - сигнал того, что разрешено начинать вычисление собственных векторов матрицы;
у - сигнал разрешения вычисления собственного вектора для алгебраических корней, кратность которых больше 1;
z - сигнал разрешения вычисления собственного вектора для алгебраических корней, кратность которых равна 1;
а1 - сигнал об окончании нахождения собственного вектора при алгебраической кратности, равной 2;
Ь1 - сигнал для подбора следующего параметра с целью определения подходящего для собственного вектора;
c1 - сигнал проверки, подходит или нет новый параметр для составления собственного вектора;
d1 - сигнал об окончании нахождения собственного вектора при алгебраической кратности, равной 1;
е1 - сигнал об окончании поиска собственных векторов для алгебраической кратности больше 1;
f 1 - сигнал об окончании поиска собственных векторов; g1 - сигнал того, что алгебраические корни были успешно приведены к жордановой форме;
h1 - сигнал начала параллельного вычисления определителя жордано-вой матрицы и матрицы миноров;
/1 - сигнал об окончании вычисления определителя жордановой матрицы;
j1 - сигнал об окончании вычисления матицы миноров; k1 - сигнал об окончании вычисления матрицы алгебраических дополнений;
m1 - сигнал об успешном получении транспонированной матрицы; п1 - сигнал того, что все подготовлено для вычисления обратной матрицы;
о1 - обратная матрица успешно найдена.
Для последующей аппаратной реализации функционального RISC-ядра, на основе описанных состояний и рисунка 4 составим систему канонических уравнений алгоритма умножения больших чисел:
Sq (t +1) = A л Xn ; S1 (t +1) = Sq л b ; J1(t +1) = S1 л c ; S2 (t +1) = J1 л d ;
S3(t +1) = J1 лd ; S4(t +1) = J1 лd ; J2(t +1) = S2 лe v S3 л f v S4 лg ;
Ssum (t + 1) _ J2 л h ; S5 (t + 1) _ Ssum л se v S5 л ^ ; S6 (t +1) _ S5 л j ;
Sy(t +1) = S6 л k ; J3(t +1) = S7 л l; Sg(t +1) = J3 л m ; Sg(t +1) = J3 л m ; S1o(t +1) = J3 лm ; Sn(t +1) = Sg лn ; S12(t +1) = S9 лo ;
50
University proceedings. Volga region
№ 2 (34), 2015 Технические науки. Информатика, вычислительная техника
Su(t +1) — S11 л q v $12 л r v S7 л t; S^(t +1) — S^q a p v S7 a t;
Sk (t +1) — S13 л v v S14 л w ; J\(t +1) — S13 л s v S14 л u ; J$(t +1) — J4 л x ; S^(t +1) — J5 лy vS17 лd; S16(t +1) — J5 лz vS16 лb1; S^(t +1) — S15 лa1;
J6(t +1) — S17 л e1 v S16 лd1 ; S18(t +1) — J6 л f1; J7(t +1) — S18 л g1; S19(t +1) — J7 лh1; S2o(t +1) — J7 лh1; S21(t +1) — S2Q л j1;
S22(t +1) — S21 лk1; J8(t +1) — S19 л /1 vS22 лm1;
S23(t +1) — J8 л n1; Send (t +1) — S23 л o1 •
2. Схемотехническое описание функциональных блоков RISC-ядра для обработки многомерных массивов
Устройство состоит из устройства управления, генерирующего управляющие сигналы (УС), и операционной части. Операционная часть - это четыре независимых блока: блок работы с жордановой матрицей, блок обработки матрицы переходов, блок работы с обратной матрицей, запоминающее устройство (ЗУ). Все устройства объединены одной шиной данных (ШД), шинами команд устройства управления (рис. 5-8).
Рис. 5. Обобщенная схема RISC-ядра для обработки многомерных массивов
Engineering sciences. Computer science, computer engineering and control
51
Известия высших учебных заведений. Поволжский регион
Рис. 6. Блок RISC-ядра для составления жордановой матрицы
i-й собственный вектор
Рис. 7. Блок RISC-ядра для составления матрицы переходов
52
University proceedings. Volga region
№ 2 (34), 2015 Технические науки. Информатика, вычислительная техника
Матрица перехода (В) -►
Составим
собственный базис матрицы
Обратная матрица (на ШД)
Рис. 8. Блок RISC-ядра для составления обратной матрицы
Устройство управления генерирует управляющие сигналы для независимой работы блоков операционного устройства: УС1 - занесение данных в первый блок, УС2 - вычисление жордановой матрицы, УС3 - вычисление матрицы переходов, УС4 - вычисление обратной матрицы, УС5 - запись полученных данных в ЗУ.
Заключение
В заключение требуется отметить, что данный вид устройств относится к классу специфических и узконаправленных [6], так как под каждую конкретную задачу составляется свое ядро. Вместе с тем в мире вычислительной техники всегда найдутся задачи, для которых потребуется реализация нетривиальных и в чем-то уникальных вычислительных систем.
Список литературы
1. URL: https://www.altera.com/
2. Карацуба, Е. А. Быстрые алгоритмы и метод БВЕ / Е. А. Карацуба. - М. : Вильямс, 2008. - 341 с.
3. Вашкевич, Н. П. Недетерминированные автоматы в проектировании систем параллельной обработки : учеб. пособие / Н. П. Вашкевич. - Пенза : Изд-во ПензГУ, 2004. - 280 с.
Engineering sciences. Computer science, computer engineering and control
53
Известия высших учебных заведений. Поволжский регион
4. Вашкевич, Н. П. Формальное описание алгоритма управления взаимодействующими параллельными процессами в задаче «производители-потребители» с использованием кольцевого согласующего буфера / Н. П. Вашкевич, Р. А. Бикта-шев, А. А. Тараканов // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2007. - № 4. - С. 98-107.
5. Федюнин, Р. Н. Функциональные блоки АЛУ для конвейерно-параллельной обработки информации на базе однородных вычислительных структур / Р. Н. Федюнин // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2007. - № 2. - С. 32-42.
6. Федюнин, Р. Н. Способ реализации аппаратного слоя VLIW архитектуры на базе систолических структур / Р. Н. Федюнин // Известия высших учебных заведений. Поволжский Регион. Технические науки. - 2013. - № 2. - С. 15-22.
References
1. Available at: https://www.altera.com/
2. Karatsuba E. A. Bystrye algoritmy i metod BVE [Fast algorithms and FEE method]. Moscow: Vil'yams, 2008, 341 p.
3. Vashkevich N. P. Nedeterminirovannye avtomaty v proektirovanii sistem parallel’noy obrabotki: ucheb. posobie [Nondeterministic automata in parallel processing systems design: tutorial]. Penza: Izd-vo PenzGU, 2004, 280 p.
4. Vashkevich N. P., Biktashev R. A., Tarakanov A. A. Izvestiya vysshikh uchebnykh zavedeniy. Povolzhskiy region. Tekhnicheskie nauki [University proceedings. Volga region. Engineering sciences]. 2007, no. 4, pp. 98-107.
5. Fedyunin R. N. Izvestiya vysshikh uchebnykh zavedeniy. Povolzhskiy region. Tekhnicheskie nauki [University proceedings. Volga region. Engineering sciences]. 2007, no. 2, pp. 32-42.
6. Fedyunin R. N. Izvestiya vysshikh uchebnykh zavedeniy. Povolzhskiy Region. Tekhnicheskie nauki [University proceedings. Volga region. Engineering sciences]. 2013, no. 2, pp. 15-22.
Федюнин Роман Николаевич
кандидат технических наук, доцент, кафедра вычислительной техники, Пензенский государственный университет (Россия, г. Пенза, ул. Красная, 40)
E-mail: frn_penza@mail.ru
Войнов Артем Сергеевич студент, Пензенский государственный университет (Россия, г. Пенза, ул. Красная, 40)
E-mail: voj49@yandex.ru
Сенокосов Илья Владимирович
студент, Пензенский государственный университет (Россия, г. Пенза, ул. Красная, 40)
E-mail: senokosov.i@yandex.ru
Fedyunin Roman Nikolaevich Candidate of engineering sciences, associate professor, sub-department of computer engineering, Penza State University (40 Krasnaya street, Penza, Russia)
Voynov Artem Sergeevich Student, Penza State University (40 Krasnaya street, Penza, Russia)
Senokosov Il'ya Vladimirovich
Student, Penza State University (40 Krasnaya street, Penza, Russia)
54
University proceedings. Volga region
№ 2 (34), 2015 Технические науки. Информатика, вычислительная техника
УДК 004.272.42 Федюнин, Р. Н.
RISC-ядро для обработки многомерных массивов / Р. Н. Федюнин, А. С. Войнов, И. В. Сенокосов // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2015. - № 2 (34). - С. 45-55.
Engineering sciences. Computer science, computer engineering and control
55