Портал освітньо-інформаційних послуг «Студентська консультація»

  
Телефон +3 8(066) 185-39-18
Телефон +3 8(093) 202-63-01
 (093) 202-63-01
 studscon@gmail.com
 facebook.com/studcons

<script>

  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){

  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),

  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)

  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

 

  ga('create', 'UA-53007750-1', 'auto');

  ga('send', 'pageview');

 

</script>

Методики перенацілюваної генерації коду для мікропроцесорних архітектур з нерегулярним довгим командним словом

Тип роботи: 
Автореферат
К-сть сторінок: 
32
Мова: 
Українська
Оцінка: 

регістрів, але можливо вивільнити деякі без вивантаження у пам’ять) можливо вивільнити регістри з найбільш непотрібними значеннями;

3) якщо ||VC||NBE (вистачає вільних регістрів), то можливе зайняття вільного регістра;
4) в іншому випадку, якщо завантаження каналу «регістри-пам’ять» було дуже щільним, необхідно: а) виконувати лише команди, в результаті виконання яких можливе вивільнення регістра, для якого час до найближчого звернення до збереженої в ньому змінної максимальний щодо інших змінних; б) вивантажити у пам’ять rg'iMRGB з максимальним часом i.
Урахування особливостей архітектури ПЦОС у генераторі коду. Для поліпшення якостей генерації коду для сучасних ПЦОС та МП з ДКС запропоновано наступні поліпшення:
1. використання реверсивної генерації розкладу команд (як з початкової вершини, так і з кінцевої) для застосування відкладених переходів;
2. застосування предикатних операцій для організації трас ББ;
3. впровадження генерації коду для двох послідовних ББ одночасно для використання команд, які включають у себе команди суміжних ББ;
4. використання кластеризованих регістрових файлів за допомогою віртуальних регістрів (розподілу з урахуванням структури РФ), регістрових регіонів та ітеративних уточнень з відкоченнями;
5. кластеризація команд ББ для випадків переключення режимів обчислень;
6. вирізнення операцій каналу «пам'ять-регістри» з ББ та рівномірний розподіл інструкцій завантаження/вивантаження регістрів по ДК генерованого ББ (спекулятивне завантаження змінних для більш ефективного використання каналу «регістри-пам’ять).
Програмна конвеєризація та визначення оптимальної структури МП. В прикладних завданнях часто необхідно оптимізувати виконання циклів, час виконання яких займає від 20 до 80 відсотків часу виконання усієї програми. Якщо є можливість вибору з декількох МП, то необхідно визначити який з них найшвидше виконає програму, або визначити оптимальну архітектуру гіпотетичного МП, який може було зроблено за допомогою програмованих логічних матриць. Для цього запропоновано використовувати метод програмної конвеєризації EPS К. Ебчоглу, який виділяє оптимальний програмний конвеєр для процесора з необмеженою кількістю ресурсів, удосконаливши метод для цільових МП з реальними архітектурними обмеженнями. Разом з ітеративною процедурою розгортки циклів метод дозволяє відшуковувати оптимальні програмні конвеєри для процесорів, результати генерації конвеєра можуть бути порівняні між собою для визначення кращого варіанту.
Ітеративна компіляція. Для оптимізації розміщення змінних по просторах пам'яті для гарвардської архітектури та кластеризації розміщення змінних запропоновано аналіз статистичної інформації про конфлікти при доступі до пам'яті (можливість вибору при генерації коду однієї з декількох команд доступу до пам’яті з однаковою функцією оцінки). Ця інформація є множиною MC={ mc (i, j) N }, де mc (i, j) – кількість конфліктів між змінними vari та varj. За кожного конфлікту зовні тіла циклу значення mc (i, j) збільшується на 1, в разі конфлікту в тілі циклу значення збільшується експоненціально за глибиною вкладення тіла циклу. Пари змінних, які мають найбільші значення конфліктів, розміщуються по різних просторах пам’яті.
Процедура оптимізації може бути проведена циклічно, до досягнення певних результатів. Тобто, генерація коду (компіляція) проводиться ітеративно до досягнення ліпших характеристик якості. Для виконання оптимізацій, які працюють із статистичною інформацією, запропоновано використовувати ітеративну компіляцію.
У четвертому розділі дисертації описано методики перенацілюваної компіляції, застосовані у прототипі перенацілюваного компілятора НВРК-2.
Компілятор НВРК-2 (опис якого доступний в мережі Інтернет http: //hbpk2. euro. ru) складається з чотирьох частин: лексичного та синтаксичного аналізатора, глобального оптимізатора, генератора коду та аналізатора коду.
Лексичний та синтаксичний аналізатори (ЛА та СА) перетворюють вхідну програму у внутрішнє подання у вигляді ІГМ програми. Глобальний оптимізатор (ГО) виконує машинно-незалежні глобальні та локальні оптимізації над ІГМ програми. В процесі глобальної оптимізації за допомогою гіпотетичного модуля П-MIMD методами математичного програмування можливо розпаралелювати вхідний код для багатопроцесорних кластерів. Генератор коду (ГК) виконує генерацію коду та машинно-залежні оптимізації. Аналізатор коду (АК) відповідає за оптимізацію на базі статистичної інформації про процес оптимізації коду та керує процесом ітеративної компіляції. Налагодження компілятора описуються за допомогою мови розмітки XML, яка вигідно відрізняється від спеціалізованих мов типу ISDL або nML простотою, структурованістю та ієрархічністю, розширюваністю базових елементів та придатністю до автоматичної обробки. Розглянуто підтримане НВРК-2 розширення мови Сі – DSP-C, яке використовується для ручної оптимізації програм цифрової обробки сигналів мовою Сі.
У розділі розглянуто методики оптимізації та генерації коду для архітектур ПЦОС та МП з ДКС на прикладі МП ADSP-2106x – ПЦОС з однією з найскладнішим систем команд та нейропроцесора Л1879ВМ1, де використовується один з найскладніших з точки зору компіляції векторних сопроцесорів. Показана генерація коду за допомогою експертної системи для складних випадків оптимізації циклів. Розглянуто методику використання алгоритму глибинно-проникаючої програмної конвеєризації EPS з розгорткою циклів, показано переваги використання цих методів при генерації коду та аналізі пристосованості архітектури процесора для вирішення конкретних задач.
Викладені результати тестування методів генерації коду за допомогою тестів DSPstone як для алгоритмів цифрової обробки, так і для типових конструкцій мов високого рівня. Зростання швидкодії особливо позначається у випадках компіляції алгоритмів, до яких адаптована архітектура ПЦОС, у випадках, коли задіяна експертна система компілятора. У таблиці наведені результати генерації коду НВРК-2 та штатними компіляторами ПЦОС ADSP-2106x та нейропроцесора Л1879ВМ1. Ліві колонки містить дані для ADSP-2106x, праві – для Л1879ВМ1.
 
Порівняльні характеристики ефективності НВРК-2 та штатних компіляторів. 
Тестова
програма Довжина коду (слів) для штатного компілятора
Фото Капча