А О Мельник - Реалізація програмних спеціалізованих процесорів - страница 1

Страницы:
1  2 

отражения Фонга. Модель отражения Блинна-Фонга ( www.compgraphics.info ). 5. Программи­рование шейдеров на HLSL. Модели освещения. ( www.gamedev.ru ) 6. Кубическая текстура. (www.ru.wikipedia.org ). 7. Blinn К. Models of Light Reflection for Computer Sythesized Pictures, SIGGRAPH 77, Computer Graphics, vll, n4, cm273-536, 1977. 8. HDRCubeMap Direct3D Sample (www.msdn.microsoft.com ).

УДК 004.272.2,004.272.23

A.O. Мельник, A.M. Сало, B.A. Клименко, Л.О. Цигилик, А.В. Юрчук

Національний університет "Львівська політехніка", кафедра електронних обчислювальних машин

РЕАЛІЗАЦІЯ ПРОГРАМНИХ СПЕЦІАЛІЗОВАНИХ ПРОЦЕСОРІВ У РЕКОНФІГУРОВНИХ ПРИСКОРЮВАЧАХ УНІВЕРСАЛЬНИХ КОМП'ЮТЕРІВ

© Мельник А.О., Сало А.М., Клименко В.А., Цигилик Л.О., Юрчук А.В., 2009

Розглянуто історію появи прискорювачів універсальних комп'ютерів. Подано вимоги до реконфігурованого прискорювача щодо приймання, опрацювання та передавання даних. Представлено модель спеціалізованого процесора та показано методи оптимізації архітектури цієї моделі під об'єм ПЛІС. Визначено основні вимоги щодо оптимізації архітектури апаратних ресурсів ПЛІС. Розглянуто етапи проектування прискорювачів універсальних комп'ютерів за допомогою САПР ХАМЕЛЕОН.

In this article the requirements to the reconfigurable accelerator in relation to data reception, processing and data transfer are given. The model of the specialized processor is presented and the architecture optimization methods of this model in accordance to the FPGA capacity are described. The basic requirements concerning architecture optimization of FPGA hardware resources are defined.

Вступ. Потреба вирішення ресурсомістких задач та задач з інтенсивним використанням даних, таких як обробка мультимедійних даних в реальному часі, сучасне математичне моделювання і обробка вмісту спричинили формування нового типу програмних та апаратних засобів, які отримали назву реконфігуровних прискорювачів. Реконфігуровні прискорювачі все частіше використовуються для виконання складних задач обробки даних з метою зменшення навантаження на універсальні процесори та підвищення продуктивності комп'ютерних систем. При цьому можливість реконфігурування, тобто заміни вмісту реконфігуровного прискорювача новим спеціалізованим процесором, відкриває перспективи надання принципово нових властивостей та досягнення високих технічних характеристик комп'ютерної системи, до складу якої входить реконфігуровний прискорювач [6].

1. Поява прискорювачів універсальних комп'ютерів. Використання в комп'ютерних системах прискорювачів не є новим підходом. Перші прискорювачі універсальних комп'ютерів з'явились в середині 60-х років минулого століття, коли було набуто певного досвіду використання комп'ютерів у науковій та виробничій сферах, покращилась їх архітектура, але швидкодія була недостатньою для вирішення складних наукових проблем, насамперед завдань цифрової обробки сигналів. Для таких потреб почали створювати спеціалізовані процесори, які апаратно реалізували найскладніші алгоритми і під'єднувались до універсальних комп'ютерів як прискорювачі при виконанні цих алгоритмів. Зокрема, такі спеціалізовані процесори створювались для виконанняалгоритмів згортки під час обробки даних сейсморозвідки. З часом спеціалізовані процесори стали входити до складу більшості серій універсальних комп'ютерів. Наприклад, до складу серій ШМ 360 і IBM 370 входили спеціалізовані процесори АР2938 та АР3838. При цьому універсальний комп'ютер здійснював загальний контроль над обчислювальним процесом та операціями введення-виведення.

Створення потужних реконфігуровних середовищ відновило інтерес до даного напряму. Можна впевнено стверджувати, що створення програмних апаратно-орієнтованих спеціалізованих процесорів сьогодні належить до найновіших та найважливіших напрямів розвитку високопро­дуктивних комп'ютерних систем [4]. У зв'язку з цим виникає потреба розроблення методів проектування та структурної організації програмних апаратно-орієнтованих спеціалізованих процесорів, методів їх інтеграції в систему, а також визначення вимог до них для ефективного синтезу в реконфігуровних прискорювачах [3].

2. Вимоги до реконфігуровного прискорювача в частині організації приймання даних, їх опрацювання та видавання. Продуктивність процесорного ядра прискорювача для виконання відповідного алгоритму можна обчислити так [1]:

P = KF- (2.1)

N

де Р - продуктивність процесора; К - кількість вхідних каналів; F - частота процесора; R -складність алгоритму, що виконується на процесорі; N - кількість елементів вхідних даних.

Для кожного алгоритму, який реалізується в процесорному ядрі, наперед відомими є кількість N вхідних даних та обчислювальна складність R алгоритму. Значення К можне варіювати залежно від можливостей комп'ютера, до якого під'єднують прискорювач. Значення F визначається елементною базою, на якій будується прискорювач. Кількість каналів К вибирають відповідно до рівня продуктивності та апаратних витрат, яких треба досягти. При визначенні необхідного рівня продуктивності відповідно до апаратних затрат приймемо, що кількість обладнання реконфігуровного прискорювача дорівнює Qra, а кількість обладнання на реалізацію ядра прискорювача - Qsp.

Можливі чотири випадки в співвідношенні між цими величинами. Якщо Qsp незначно менше або дорівнює Qra, то мети досягнуто. Якщо ж QSp незначно більше Qra, то потрібно дещо зменшити вимоги до продуктивності ядра прискорювача. Якщо виконується нерівність Qra<Qsp> причому співвідношення між затратами обладнання більше за одиницю, то виникає потреба в скороченні затрат обладнання на ядро прискорювача. Цього досягають спрощенням його структури та, відповідно, пониженням продуктивності. При цьому для того, щоб не простоювали ресурси комп'ютера, можна зменшити потоки інформації, скоротивши кількість вхідних каналів надходження даних на величину m = Integer(qra/ Qsp) аж до одного, а також за потреби понизити частоту надходження даних на спеціалізований процесор. Якщо ж виконується нерівність Qra>Qsp5 причому співвідношення між затратами обладнання більше за одиницю, то для ефективнішого використання ресурсів реконфігуровного прискорювача доцільно під'єднати паралельно m = Integer(QSp/qra) ядер прискорювача.

Організація передачі даних між прискорювачем і персональним комп'ютером відіграє значну роль у продуктивності цілої системи. Можливі два варіанти побудови системи з прискорювачем:

1. Прискорювач взаємодіє з центральним процесором за допомогою периферійної шини, наприклад, шини PCI-Express.

2. Прискорювач взаємодіє з прискорювачем за допомогою системної шини.

Сьогодні існують готові платформи від лідерів виробництва універсальних процесорів фірм AMD та Intel для побудови системи з реконфігурованим прискорювачем. Такими платформами є AMD Torrenza від AMD та платформа Intel з технологією QuickAssist Accelerator Abstraction Layer (AAL). Ці платформи дають змогу під'єднати реконфігуровний прискорювач як до системної шини (у AMD - Hypertransport, у Intel - Front Side Bus), так і до периферійної шини PCI Express [9].

Використання шини PCI Express є більш універсальним рішенням - сьогодні вже багато персональних комп'ютерів оснащують шиною PCI Express. Для такого рішення канал взаємодії стає «вузьким місцем», адже частота периферійної шини значно менша від частоти системної шини.

При розміщенні прискорювача на периферійній шині для досягнення найбільшого рівня продуктивності було сформульовано такі вимоги до організації передавання даних.

1. Дані мають передаватися за допомогою каналів прямого доступу до пам'яті (Direct Memory Access - DMA). Використання DMA каналів розвантажує центральний процесор для виконання інших задач, що підвищує продуктивність системи.

2. Дані мають передаватися пакетами оптимального розміру. Розмір пакета залежить від швидкості каналу передачі даних, часу, витраченого на ініціалізацію однієї передачі, частоти шини даних та кількості вхідних даних. Оптимальний розмір пакета має забезпечити завантаження каналу передавання даних з мінімальними витратами на організацію передачі.

Необхідно вибрати розмір пакета такий, щоб:

t^MIN

t ^ - загальний час передавання даних.

За пакетного передавання даних загальний час становить

V......

/     / t ._

саа      їаеада        їаеад'а       їаеада jr

їаеада

Макета - час передачі пакета; NnaKemie - кількість пакетів; Vdamx - обсяг переданих даних; VnaKema -обсяг пакета.

Час передавання даних складається з часу ініціалізації та часу передавання. Отже, для пакета оптимального розміру має виконуватися така умова

т+тг*»      , (2.2)

v.......

гаеаоа

де tj (V)- час ініціалізації пересилання при пересилці пакета обсягом V; t(V) - час пересилки пакета обсягом V.

Наприклад, для плати PLDA Xpress FX 100 на ПЛІС Virtex 4 FX 100 було досліджено оптимальний розмір пакета пересилки даних. У результаті отримано залежність швидкості передавання даних від розміру пакета (рис. 1). Розрядність шини даних становить 32 розряди. З результатів видно, що найоптимальнішим є розмір пакета в 1 Мб (рис. 1), при якому досягається максимальна швидкість передачі даних.

3. Швидкість каналу передачі даних вибирають відповідно до класу вирішуваних задач і частоти ядра конфігурованого прискорювача. Канал має забезпечити неперервний потік даних та результатів, щоб уникнути очікувань на отримання нових вхідних даних. Швидкість передавання даних має давати змогу повністю використати ресурси реконфігуровного прискорювача.

4. Вибір розрядності каналу передачі даних відповідно до вирішуваної задачі та архітектури конфігурованого прискорювача. Розрядність має забезпечити завантаження даних у всі функціональні частини конфігурованого прискорювача.

5. Організація передавання даних безпосередньо з локальної пам'яті комп'ютера у локальну пам'ять прискорювача. Це дасть змогу перенести обчислювальні витрати з організації передачі даних на контролер прямого доступу до пам'яті.

6. Опрацьовують дані під час пересилання (на фоні пересилання).

7. При виконанні однієї команди мають виконуватися два пересилання даних: пересилання до реконфігуровного прискорювача блоку вхідних даних та пересилання до центрального процесора блоку вихідних даних.

При розміщенні прискорювача на системній шині процесора не відбувається жодних простоїв системи, адже частота системної шини значно перевищує частоту сучасних ПЛІС. Необхідно забезпечити синхронізацію передачі даних за допомогою буферів.

На програмному рівні необхідно організувати бібліотеку функцій введення та виведення даних з прискорювача та конфігурування каналу передачі даних. Така бібліотека функцій дасть змогу користувачам прискорювачів організувати ефективний обмін даними.

Продуктивність передачі даних шиною PC І Е

|ооооо ■

-с

$00000 ■

262144 52428В Розмір каналу пдррдачі

Рис. 1. Графік росту продуктивності передачі даних шиною РСІ-Е

3. Вимоги до архітектури прискорювача. Оптимізація моделі спеціалізованого процесора під об'єм ПЛІС. Спеціалізований процесор призначений для реалізації обмеженого класу алгоритмів. Його внутрішня структура повинна містити тільки ті модулі та вузли системи, які безпосередньо використовуються для організації обчислень [6]. Модель спеціалізованого процесора можна описати так:

SC = {I,0,MM,A,C} (3.1)

де SC - спеціалізований процесор;

I = {irp\r,p,{r,p)eZ,{r,p)>0} (3.2)

множина портів введення ір, дер- кількість портів введення, г - їх розрядність;

O = \prJ\r,j,{r,j)eZ,{r,j)>0}

(3.3)

(3.4) (3.5)

- множина портів виведення о., деу - кількість портів виведення, г - їх розрядність;

MM = {тте І е є Z,e > 0}

- множина комірок пам'яті тте, де е - об'єм пам'яті (кількість слів);

А = {alurp{x y) I P(x,y)eZ,P(x,y) > 0,х є Z,y є r]

- множина арифметико-логічних пристроїв (алп) alurp^xyy де p(jc,>') - кількість алл, х -

максимальний рівень розпаралеленості алгоритму (кількість паралельних операцій), у - допустимий відсоток втрати продуктивності виконання алгоритму, г - розрядність;

С = {cs^^» I S(r,p,j,P(x,y))e r,S > 0} (3.6)

- керівний пристрій, де s{r,p,j,p(x,y))- складність керівного пристрою.

Ця модель спеціалізованого процесора (3.1) описує мінімальну конфігурацію системи, необхідну для організації обчислень. Змінюючи елементи кожної з множин в більший чи в менший бік, створюють новий спеціалізований процесор. Наприклад, змінивши один елемент г -розрядність, необхідно змінювати структуру в трьох модулях: множини {і,о,а}, що, своєю чергою

збільшує не тільки апаратні затрати, а й складність обчислювальної системи cs^r'p'J'P^x'y^ Т (для alurP(xy) - змінюється реалізація команди обчислення з рухомою комою).

Вимоги, які стоять перед розробниками спеціалізованих процесорів для реконфігурованих прискорювачів:

• розробити високопродуктивну систему;

• оптимально використати апаратні ресурси.

Під час розроблення спеціалізованого процесора як прискорювача універсальних комп'ютерів виникають такі фізичні обмеження: об'єм ПЛІС, інтерфейс зв'язку між комп'ютером та реконфігурованим прискорювачем тощо. Оскільки об'єм ПЛІС є обмежений, а задачі, які добре розпаралелюються та масштабуються, вимагають значних апаратних затрат, постає завдання: оптимально підібрати кількість обчислювальних модулів (АЛП) для реалізації множини задач при наперед заданому об'ємі ПЛІС.

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

Сьогодні об'єм ПЛІС значно виріс, що дає можливість реалізовувати множину складних проектів на одному кристалі. Створивши модель спеціалізованого процесора та синтезувавши її під певну ПЛІС, визначимо, який відсоток кристала зайнятий проектом, а який - вільний. Відповідно, вільну область доцільно використати для реалізації інших задач та алгоритмів.

Як показано на рис. 2, у ПЛІС прошито моделі спеціалізованих процесорів для виконання двох задач (Рендерення та Фільтр), об'єм апаратних ресурсів для виконання третьої задачі (ДКП) перевищує допустимий об'єм ПЛІС. Це спонукає до оптимізації структури спеціалізованих процесорів цих задач з акцентом на економію апаратних ресурсів та незначну (<10%) втрату продуктивності. Такий підхід дає змогу ефективно використовувати не тільки об'єм ПЛІС, але й економить час для переходу від однієї задачі до іншої під час роботи системи.

 

Необхідний об'см

 

JIJMC ;иія реалізації

 

ЗАДАЧІ №

 

 

] коблідиий об'сч

і

J ЕЛІ.С для реалізації

 

ЗАДАЧІ №

Рис. 2. Розподіл апаратних ресурсів ПЛІС для реалізації обчислень

Задачу, розв'язання якої необхідно прискорити, вибирають програмно. Драйвер реконфі­гуровного прискорювача подає спеціальну команду на ПЛІС, згідно з якою в певний момент часу буде розв'язано ту чи іншу задачу. Така ідея дає змогу не використовувати програматор ПЛІС як «перемикач» між задачами і відповідно економить апаратні витрати (мікросхему програматора ПЛІС) і час (необхідний для реконфігурування ПЛІС). З використанням цього підходу для створення прискорювача на ПЛІС можливі два варіанти:

• сумарний об'єм файлів конфігурації ПЛІС (для реалізації декількох задач, рис. 2) перевищує її загальний об'єм;

•   з'являється невикористана область ресурсів ПЛІС.

Якщо виникає переповнення чи залишок незадіяних блоків ПЛІС, постає одна необхідність - модифікація структури спеціалізованого процесора із збереженням при цьому високої продуктивності системи.

Для отримання максимальної продуктивності виконання задачі спеціалізованим процесором необхідно розробити систему планування виконання команд, яка б відображала природний паралелізм задачі, тобто максимально розпаралелити незалежні вітки алгоритму (рис. 3) [5], після чого оптимізувати структуру процесорів під загальний об'єм ПЛІС.

add гб, г2р г4

sub ґ1, г5, ґЗ

add г4. г2, гЗ

add г2, г4, г1

стр гб, г4

Z г2 Рис. 3. Паралельне представлення коду програми

Процес проектування та оптимізації спеціалізованих процесорів під об'єм ПЛІС охоплює декілька етапів (для кожного алгоритму окремо):

1. Максимально розпаралеливши алгоритм, визначають значення х (множини А), та згідно з у (початково задається в конфігураційних параметрах програми) підбирають необхідну кількість АЛЛ. Враховуючи параметри алгоритму, формують множини [і,0,С] та оптимально підбирають кількість   елементів   пам'яті   {мм}',   результатом   об'єднання   цих   множин   буде модель

Страницы:
1  2 


Похожие статьи

А О Мельник - Автономна адаптивна система виявлення та відстеження порушників

А О Мельник - Апаратна реалізація циклів програмованих конфігурованих процесорів

А О Мельник - Теоретичні засади формування та реалізації механізму виявлення передумов світових економічних криз

А О Мельник - Реалізація програмних спеціалізованих процесорів

А О Мельник - Структура та характеристики векторної пам'яті з впорядкованим доступом