Научная статья на тему 'Швидкодіючий гібридний CORDIC-обчислювач тригонометричних функцій'

Швидкодіючий гібридний CORDIC-обчислювач тригонометричних функцій Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
100
25
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
синус / косинус / CORDIC / помножувач / гібридний метод / sine / cosine / CORDIC / multiplier / hybrid method

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Л В. Мороз, Я І. Грабовський, Т М. Микитів, Т Р. Борецький, Ю М. Костів

Розглянуто спосіб обчислення тригонометричних функцій, запропонований В.Д. Байковим, як одна з перших спроб застосувати пам'ять для підвищення швидкодії традиційного CORDIC алгоритму. Недоліком цього методу є значна похибка результату на певних критичних ділянках. Запропоновано декілька нових підходів, що забезпечують підвищення швидкодії за умови збереження точності обчислень. Одним із них є використання кінцевих помножувачів після проведення половини ітерацій. Розроблено гібридний метод, що поєднав у собі три складові: використання пам'яті – класичний CORDIC – кінцеві помножувачі. При цьому, за результатами моделювання на мікроконтролері, досягнуто підвищення швидкодії у 2,9 раза, порівняно з традиційним CORDIC алгоритмом без втрати точності.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

High-Speed Hybrid CORDIC-Calculator for Trigonometric Functions

The paper presents Baykov method for calculating trigonometric functions as one of the first attempts to use the memory in order to improve the performance of traditional CORDIC algorithm. The disadvantage of this method is supposed to be the result of a significant accuracy in the critical areas. The authors have proposed several new approaches for improving performance while retaining accuracy of the calculations. One of them is the use of final multipliers after half iterations. Also, it was possible to develop a hybrid method, which connects three components: memory usage – classic CORDIC – final multipliers. In this case, the results of simulation on the microcontroller, achieved speedup factor of 2.9 compared to the conventional CORDIC algorithm without loss of accuracy.

Текст научной работы на тему «Швидкодіючий гібридний CORDIC-обчислювач тригонометричних функцій»

The basic notions in relation to the marketing researches are considered. The systemati-zation of the types of the marketing researches, covering the different factors and conditions, directly affecting the processes of organization of the entrepreneurial activity is represented. It is proved that the usage of the marketing information system, as the basic tool for making marketing decisions allows applying the aggregate choice of the different systems, methods and tools, at assistance of which the internal and external information is analysed and interpreted.

Key words: marketing environment, market, sales, economy, information, enterprise, motivation, staff, processing, target, marketing information system.

УДК 681.3 Доц. Л.В. Мороз, д-р техн. наук; бакалавр Я.1. Грабовський;

астр. Т.М. Микитв; астр. Т.Р. Борецький; асист Ю.М. Косттв, канд. техн. наук; ст. викл. С.С. Войтуак, канд. ф1з.-мат. наук - НУ '^mienm полтехшка"

ШВИДКОД1ЮЧИЙ Г1БРИДНИЙ CORDIC-ОБЧИСЛЮВАЧ ТРИГОНОМЕТРИЧНИХ ФУНКЦ1Й

Розглянуто cnoci6 обчислення тригонометричних функцш, запропонований В Д. Байковим, як одна з перших спроб застосувати пам'ять для шдвищення швидкодн традицшного CORDIC алгоритму. Недолшом цього методу е значна похибка результату на певних критичних дщянках. Запропоновано декшька нових пiдходiв, що забезпе-чують шдвищення швидкодн за умови збереження точност обчислень. Одним iз них е використання кшцевих помножувачiв пiсля проведення половини iтерацiй. Розроблено гiбридний метод, що поеднав у собi три складов^ використання пам'ятi - класичний CORDIC - кiнцевi помножувачi. При цьому, за результатами моделювання на мшро-контролерi, досягнуто пiдвищення швидкодн у 2,9 раза, порiвняно з традицшним CORDIC алгоритмом без втрати точности

Ключовi слова: синус, косинус, CORDIC, помножувач, гiбридний метод.

Вступ. CORDIC-метод (або метод псевдоповороту вектора, метод Вол-дера) - це простий та ефективний метод обчислення багатьох елементарних функцiй. Назва методу походить вщ англiйського CОоordinate Rotation Digital Computer - цифровий комп'ютер повороту координат. Метод популярний i нинi завдяки простотi його програмно!' та апаратно!' реалiзацií. Причиною популяр-ностi е те, що для класичного CORDIC-методу потрiбен лише невеликий обсяг пам'яп та деяш елементарнi операцií, типу читання з пам'яп, додавання / вiднi-мання та зсув. CORDIC-метод використовуеться в багатьох галузях, таких як: 3D графжа, робототехнiка, модулi зв'язку, системи бюметрично! iдентифiкацií та iн. Вш е надзвичайно перспективним, оскiльки може бути застосований практично в кожнш галуз^ у якiй використовуються лшшш, матричнi й триго-нометричнi обчислення. Теорiя та алгоритми методу розглянуто в значнш юль-костi книгах та працях багатьох авторiв [3, 5, 6, 8, 9, 13].

Головною концепщею CORDIC-арифметики е те, що li засновано на простих принципах двовишрно! геометрц. Iтерацiйнi формулювання алгоритмов методу були вперше описаш в 1959 р. Джеком Волдером (Jack E. Voider) [11] шд час обчислення тригонометричних функцш, реалiзацil операцш множення i д1лення. За весь час кнування CORDICа ввдбувся великий прогрес у напрямi розроблення алгоритмов i архитектур для високопродуктивних та дешевих апа-

ратних ршень. Увага до обчислень, що базуються на CORDIC-методу шдвищи-лась у 1971 р., коли Джон Велзер (John Walther) [12] продемонстрував, що шляхом змши декшькох параметрiв можна обчислювати елементарнi трансценден-тш функцií, логарифми, експоненцшну функцда та квадратний корiнь [11].

Популярнкть CORDICа пов'язана насамперед з його потенциалом до ефективного та дешевого впровадження у такi задачi, якi включають: генерацда тригонометричних, логарифмiчних та iнших елементарних функцш; множення комплексних чисел, обчислення власних значень та сингулярне розкладання (SVD) матриць, розв'язування систем лiнiйних ршнянь тощо.

Хоча CORDIC-метод можливо i не найшвидший технiчний прийом для ви-конання цих операцiй (метод мае лише лшшну збiжнiсть), але вш е простим у впровадженнi на фiзичному рiвнi, оск1льки один i той же алгоритм можна викорис-тати для всiх цих додатюв, застосовуючи базовi операци зсуву та додавання [4,10].

Незважаючи на рiзноманiтнiсть рiзних технiк, запропонованих для прис-корення збiжностi алгоритмов методу, майже во вони зберiгають його тра-цiйний характер. Прискорення досягаеться переважно завдяки зменшенню за-гально1 кшькосп iтерацiй. Вiдома спроба пiдвищити швидкодда класичного CORDIC-методу завдяки використанню ПЗУ на раншх стад1ях обертань, однак вона не мала практичного застосування внаслвдок виникнення при цьому знач-но1 похибки обчислень [1]. Аналопчно ще в 1972 р. [2] було запропоновано спосiб використання операцп множення на залишковий кут на кшцевих стад1ях обертань, який повторено за кордоном лише у 1991 р. i шзшше [7, 9]. Однак i ця iдея була практично втшена у ПЛIС-варiантi лише недавно [14].

Метод Байкова. Споаб, який передбачае використання табличного методу (ПЗП-LUT) на початкових стад1ях iтерацiйного процесу, вперше був описаний В.Д. Байковим у робоп [1]. Тут да-розрядний аргумент fin (вх1дний кут, заданий в радiанах) подшяеться на двi частини:

fin = fs + fm-s , (1)

де: fs - старша частина, що мктить s двiйкових розрядiв; fm-s - молодша час-тина, що мктить решту т - s розрядш. Для спрощення викладу матерiалу можна вважати, що да - парне. Передбачаеться, що fin е [0,ж/4], тому

s

fs = g a2-, (2)

s < да /2.

Старш розряди обробляються за допомогою ПЗП, а решта - за допомогою класичного CORDIC-методу:

Xi+1 = Xi -Si • 2-i • y;

yi+1 = yi + Si • 2- • Xi; (3)

Zi+1 = Zi-Si • в;

f-1 if z< 0 , л

де Si = { , i = s +1,s + 2,..да, в = arctg(2-1).

' [+1 ifzt > 0' ' >

При цьому значения, що завантажуються з пам'яп, обчислюються за формулами:

x s = P ■ cos(fs);

y s = P ■ sin(fs); (4)

ZS = Фт-Si

де P - величина, обернена до коефщента деформацiï:

т

P = 1/ Д Vl + 2-

(5)

Отож, тут початковi значення xs та ys уже е скориговаиi на значення ко-ефiцieита деформацiï вектора з урахуванням необхiдних iтерацiй традицшного CORDIC-методу.

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

Метод i3 використанням кшцевих помножувачiв. Одним iз методов прискорення швидкодiï е використання кусково-лшшно1 апроксимацiï функцiй синуса та косинуса на завершальних стадиях iтерацiйного процесу шляхом замь ни останнiх к = m /2 ггеращй множенням на залишковий кут.

У цьому випадку на кроках i = 1... к (6)

використовуються традицшш формули (3) з вхвдними даними:

Х0 = Pk

Уо =0 (7)

Zo = fin

коефщкнт корекцiï Pk обчислюеться тшьки для тих значень i, що задовольня-ють умову (6):

P = 1/1 + 2-2i. (8)

(9)

Пiсля цього виконуються ды операцiï:

Хк +1 = Хк - Zk ■ Ук, Ук+1 = Ук + Zk ■ Хк,

де хк, ук, 2к - значення, яю отриманi на попередньому етап роботи.

Застосування кшцевих помножувачiв дае змогу ктотно (приблизно у два рази) зменшити число такпв процесора (табл.).

Алгоритм Максимальна додагна похибка Максимальна вiд'eмна похибка Кшь-кiсгь такпв

sin cos sin cos

Традицiйний CORDIC 7,1 • 10-9 5,1 • 10-9 -6,8 • 10-9 -5,7 • 10-9 792

Метод Байкова ПЗП - 4 6i™ 1,1 • 10-5 7,7 • 10-6 -1,0 • 10-5 -5,7 • 10-9 706

Залишкового множення 3,7 • 10-9 3,2 • 10-9 -4.2 • 10-9 -4,4 • 10-9 462

Гiбридний, ПЗП - 4 бгги 4,1 • 10-9 4,1 • 10-9 -3,3 • 10-9 -3,2 • 10-9 369

Гiбридний, ПЗП - 8 6ir 4,1 • 10-9 3,7 • 10-9 -3,1 • 10-9 -3,1 • 10-9 273

1=1

Пбридний метод. Запропоновано використовувати Bei описанi вище ме-тоди в такiй послщовностг табличний - класичний CORDIC - вихвдш помно-жувачi. Спочатку знаходяться значення xs, ys i zs за формулами (4), попм про-водяться iтерацií за формулами класичного CORDIC-методу:

рацiй використовуються вихвдш множення на залишковий кут ввджшдно до формули (9). Таке поеднання дае змогу iстотно пiдвищити швидкодда без втра-ти точностi обчислень, оскшьки застосування способу вихвдних помножувачiв допомагае врахувати вiдсутнiй кут шд час використання табличного методу.

Отримаш результати. Тестування проведено на мiкроконтролерi STM32F100RBT6B. Це мiкроконтролер на яда ARM Cortex-M3, що розроб-ляеться для додатюв, де важливi висока продуктившсть, низька цiна й енергос-поживання, час реакцií на переривання, а також простота у використанш.

У мiкроконтролерi е 16 регiстрiв. Один регiстр використовуеться як по-кажчик стека, iнший - як лiчильник команд, ще один зберкае адресу повернен-ня пiсля виклику пiдпрограми. Iншi 13 регiстрiв призначеш для загального ко-ристування. yd репстри е 32-бiтними. Також мжроконтролер мае 32-бiтну шину даних i 32-бiтовi iнтерфейси пам'ятi.

Мшроконтролер виконано за гарвардською арх1тектурою, у якш роздше-нi шини команд i даних. У самому яда використовуеться фшсований розподш адресного простору. 6 область коду програми, статичного ОЗП, пристро1'в введения - виведення i системних ресурсов.

Для перевiрки теоретичних результатов змодельовано методи обчислень:

а) традицшний CORDIC (3);

б) Байкова (3)-(5) - з використанням ПЗП-LUT на початку роботи;

в) залишкового множення (9);

г) пбридний (запропонований) iз розмiром переглядово! таблицi N = 24;

д) пбридний i3 розмiром таблицi N = 28 значень.

Критерiем швидкодп алгоритму виступае оцiнка усередненого значення квдькосп тактiв мiкроконтролера для виконання пiдпрограми обчислення пари функцiй sin(x) та cos(x) на iнтервалi [-p / 4; p / 4]. Критерiем правильностi роботи методу е ощнювання величини вiдхиления отриманих значень тригономет-ричних функцiй ввд еталонного значення, обчисленого з вищою точнiстю за до-помогою пакета Matlab 7.1. У таблицi наведено абсолютну додатну та вiд'емну похибки обчислення для кожно!' функцií, а також середню кiлькiсть тактiв роботи шдпрограми обчислення.

Висновки. З розглянутих методiв традицiйний CORDIC мае найнижчу швидкодiю. Метод Байкова за умови вищо1 швидкодп (рис. 1-2) мктить кри-тичнi далянки, на яких значно (приблизно у два рази) знижуеться, точнiсть тому його можна використати на практищ. Метод залишкового множення забезпечуе

x,+1 = Xi -Si • 2-1 • yi; yt+1 = yi + Si • 2- • Xi;

Zi+1 = Zi -Si • 0i;

(10)

|-1 if Zi < 0 , л

де Si = < , , i = s +1,s + 2,.m /2 , 0i = arctg(2-),

+1 if Zi > 0

а шсля завершення цих гге-

необхiдну точшсть обчислень на всьому дiапазонi за умови зростання швидко-д11 в 1,71 раза, порiвняно з традицшним СОКО!С.

Рис 1. Метод Байкова. Ктьшсть (ирних б'тг, функщя синус

15 Ц_I_\_I_I_I_I_Ь

О 0.1 0.2 0.3 0.4 0.5 0.6 0.7

Угол, рад

Рис 2. Метод Байкова. Ктьшсть (ирних б'тг, функщя косинус

О 0 1 0 2 0.3 0 4 0.5 0.6 0 7

Угол, рад

Рис 3. Пбридний метод. Функщя синус

Рис 4. Пбридний метод. Функщя косинус

Застосування запропонованого гiбридного методу дае змогу шдвищити швидкодiю у 1,69 раза, поршняно з методом залишкового множення (рис. 3-4). Пбридний метод можна застосувати в мшроконтролерних системах, де необ-хiдна висока швидкодая. Метод залишкового множення краще пiдходить для обчислювальних систем, побудованих на ПЛ1С, оскшьки потребуе мiнiмальноí кiлькостi пам'ятi за умови достатньо високо1 швидкодií.

Лггература

1. Байков В.Д.. Специализированные процессоры: итерационные алгоритмы и структуры / В Д. Байков, В.Б Смолов. - М. : Изд-во "Радио и связь", 1985. - 288 с.

2. Благовещенский Ю.В.. Вычисление элементарных функций на ЭВМ / Ю.В. Благовещенский, Г.С. Теслер. - К. : Изд-во "Техника", 1977. - 208 с.

3. Arndt J. Matters computational / J. Arndt // Ideas, algorithms, source code, 2010. - Pp. 966.

4. Chi-Chia, S. VLSI Design Concepts for Iterative Algorithms / S. Chi-Chia // PhD thesis. Technischen Universitat Dortmund. 11.04.2011.

5. Ercegovac M.D. Digital Arithmetic Kluwer / M.D. Ercegovac, Т. Lang. - Academic Publishers, 2004.

6. Koren I. Computer arithmetic algorithms / I. Koren. Second edition. 2002. - 266 p.

7. Meher P.K. 50 years of CORDIC: algorithms, architectures, and applications / P.K. Meher, J. Valls, T. Juang, K. Sridharan, K. Maharatna. - IEEE Transactions on Circuits and Systems - I: Regular Papers. - Vol. 56, № 9, September, 2009. - Pp. 1893-1907.

8. Muller J.-М. Elementary functions / J.-М. Muller // Algorithms and implementation. Second edition - USA : Birkhauser, 2006. - Pp. 265-269.

9. Parhami B. Computer arithmetic / B. Parhami // Algorithms and hardware designs, 2000. - 234 p.

10. Paska B. High-performance floating-point computing on reconfigurable circuits - PhD thesis. Septembre 2011. - 286 p.

11. Volder J.E. The Cordic trigonometric computing technique. - IBE Trans, on Electronic. Отр, 1959. - Vol. 8, № 3. - Pp. 330-334.

12. Walther J.S. A unified algorithm for elementary functions. - Proc. of Spring Joint Соф. Conf. (SJCC), New Jersey, 1971. - Vol. 38. - Pp. 379-385.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

13. Zarowski C.J. An introduction to numerical analysis for electrical and computer engineers. -С. : Wiley-Interscience, 2004. - Pp. 586.

14. F. de Dinechin, M. Istoan, and G. Sergent, "Fixed-point trigonometric functions on FPGAs", in Proceedings of the 4 International Symposium on Highly-Efficient Accelerators and Reconfigurable Technologies, Royaume-Uni, Edimburgh, UK, March 2013.

Мороз Л.В., Грабовский Я.И., Мыкытив Т.М, Борецкий Т.Р., Костив Ю.М., Войтусик С.С. Быстродействующий гибридный CORDIC-вы-числитель тригонометрических функций

Рассмотрен метод Байкова для вычисления тригонометрических функций, как одна из первых попыток применить память для повышения быстродействия традиционного CORDIC алгоритма. Недостатком метода является значительная погрешность результата на критических участках. Предложены несколько новых подходов, обеспечивающих повышение быстродействия при сохранении точности вычислений. Одним из них является использование конечных умножителей после проведения половины итераций. Разработан гибридный метод, который соединил три составляющие: использование памяти - классический CORDIC - конечные умножители. При этом, по результатам моделирования на микроконтроллере, достигнуто повышение быстродействия в 2,9 раза по сравнению с традиционным CORDIC алгоритмом без потери точности.

Ключевые слова: синус, косинус, CORDIC, умножитель, гибридный метод.

Moroz L. V., Grabowskyy Ya.I., Mykytiv T.M., Boretskyy T.R., Kostiv Yu.M., Voytusik S.S. High-Speed Hybrid CORDIC-Calculator for Trigonometric Functions

The paper presents Baykov method for calculating trigonometric functions as one of the first attempts to use the memory in order to improve the performance of traditional CORDIC algorithm. The disadvantage of this method is supposed to be the result of a significant accuracy in the critical areas. The authors have proposed several new approaches for improving performance while retaining accuracy of the calculations. One of them is the use of final multipliers after half iterations. Also, it was possible to develop a hybrid method, which connects three components: memory usage - classic CORDIC - final multipliers. In this case, the results of simulation on the microcontroller, achieved speedup factor of 2.9 compared to the conventional CORDIC algorithm without loss of accuracy.

Key words: sine, cosine, CORDIC, multiplier, hybrid method.

УДК630.32.002.5(075.8) Асист. Ю.1. Цимбалюк;

проф. М.Г. Адамовський, канд. техн. наук - НЛТУ Украти, м. Львiв

1М1ТАЦ1ЙНА МОДЕЛЬ РУХУ МАЛОГАБАРИТНО!

ТРЕЛЮВАЛЬНО'! СИСТЕМИ

Розроблено розрахункову модель штучно створеного люового насадження з ура-хуванням основних чинниюв, яю впливатимуть на параметри малогабаритно! трелювально! системи. Розглянуто трелювання лiсоматерiалiв шд наметом люу та розроблено ¡м^ацшну модель руху малогабаритно! трелювально! системи на базi причшних засо-бш без урахування тягово! одинищ. Виконано моделювання руху трелювально! системи для трелювання лiсоматерiалiв у нашвзавантаженому та нашвзбалансованому станах. Показано порядок роботи та можливост створено! ¡м^ацшно! моделi для практичного i наукового застосування.

Ключовi слова: круглий лкоматер1ал, трелювання, ¡мкацшна модель, трелюваль-на система, рубки догляду.

Актуальшсть роботи. З розвитком комп'ютерних технологш з'явилась можливкть бшьш широкого застосування iмiтацiйного моделювання в лковш галузi, зокрема для моделювання окремих операцiй лiсозаготiвельного процесу. Однieю з таких операцш е трелювання деревно!' сировини пiд час виконання доглядових рубань без прокладання розгалужено!' мережi транспортних шлях1в. Вiд цiеí операцц значною мiрою залежить загальний рiвень негативного техногенного впливу на лкове середовище. Виходячи з цього, актуальним е досль дження впливу параметров лiсового насадження та окремих технолопчних чин-никiв на параметри малогабаритно!' трелювально!' системи для ц безперешкод-ного руху в лковому насадженш з урахуванням мiнiмального пошкодження ростучих дерев.

Проведення таких дослiджень в реальних умовах ускладнюеться тим, що для кожно!' серií експериментiв, згiдно зi складеним планом, необхвдно шукати лiсовi насадження з вiдповiдними параметрами й умовами мкцезростання, щоб забезпечити умови експерименту. Тому в таких випадках актуальним стае часте використання 1мтацшного моделювання, яке на сучасному еташ розвитку комп'ютерних технологiй забезпечуе широт можливосп проведення досль джень з мшмальними матерiальними затратами i в коротт термiни.

Аналiз останнгх дослщжень i публiкацiй. Аналiз публiкацiй з ще!' тематики [1, 2] показуе, що проводяться роботи, пов'язаш з iмiтацiйним моделюван-ням руху лково!' машини тд наметом лiсу з метою дослiдження проникносто

i Надоели баннеры? Вы всегда можете отключить рекламу.