DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

ДОСЛІДЖЕННЯ КОНВЕЄРНОГО ВИКОНАННЯ ІНСТРУКЦІЙ РУХОМОЇ КОМИ

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКТА
Факультет:
КН
Кафедра:
ЗІ

Інформація про роботу

Рік:
2022
Тип роботи:
Лабораторна робота
Предмет:
Архітектура комп ютерних систем

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти та науки України Національний університет «Львівська політехніка» ІКТА Кафедра ЗІ / Лабораторна робота №4 з дисципліни: «Архітектура комп’ютерних систем» на тему: «ДОСЛІДЖЕННЯ КОНВЕЄРНОГО ВИКОНАННЯ ІНСТРУКЦІЙ РУХОМОЇ КОМИ» Львів 2022 Мета роботи - опанування технікою конвеєрного виконання RISC інструкцій для операндів формату рухомої коми. Завдання Засобами архітектурного симулятора WinMIPS64 машини з 64-розрядною RISC архітектурою MIPS64 дослідити конвеєрне виконання фрагментів машинних програм, що команди опрацювання операндів в форматі з рухомою комою. Виявити наявні залежності (небезпеки) даних і керування, оптимізувати програмний код та дослідити дію запропонованої оптимізації. За результатами проведених лабораторних досліджень оформити звіт та захистити його. Виконання роботи Було надано код програми: .data number: .word 27 max: .word 0 .text start: ld r1,number(r0) loop: andi r3,r1,1 beqz r3,even odd: dadd r2,r1,r1 dadd r1,r2,r1 daddi r1,r1,1 j over even: dsrl r1,r1,1 over: ld r4,max(r0) slt r3,r4,r1 beqz r3,skip sd r1,max(r0) skip: slti r3,r1,2 beqz r3,loop halt Виконання програми asm.exe за допомогою Windows PowerShell, яка дозволяє перевірити синтаксис програми до її виконання та її результат: / Оскільки синтаксис є правильним, наступним кроком буде виконання програми та його результат: / Програма відпрацювала за 2403 цикли, виконуючи 1028 інструкцій, тому на одну інструкцію припадає 2,338 циклів. Бачимо, що присутні 1054 пригальмовування RAW (Read after write). Проте можлива оптимізація цього коду, змінивши послідовність початку виконання фунцій та надано дозвіл на використання випередження (forwarding) і апаратури передбачення напрямку умовного переходу (branch target buffer). Після оптимізації отримано наступний код програми: .data number: .word 27 max: .word 0 .text start: ld r1,number(r0) andi r5,r1,1 loop: dadd r2,r1,r1 beqz r5,even odd: dadd r1,r2,r1 ld r4,max(r0) daddi r1,r1,1 slt r3,r4,r1 andi r5,r1,1 beqz r3,even sd r1,max(r0) j loop even: dsrl r1,r1,1 slti r3,r1,2 andi r5, r1,1 beqz r3,loop halt Перевірка синтаксису програми до її виконання та її результат: / Після запуску програми у WinMIPS64 та його виконання, програма відпрацювала за 864 циклів (на 1 539‬ цикли менше ніж у попередній), виконуючи 729 інструкцій, тому на одну інструкцію припадає 1,185 циклів для її виконання. Бачимо, що присутнє 1 пригальмування. / Висновок: Опанувавши техніку конвеєрного виконання RISC інструкцій для операндів формату рухомої коми, була виконана дана лабораторна робота, оптимізовано код для його швидкодії за допомогою зміни послідовності виконання функцій, функціями Forwarding (випередження) та Branch Target Buffer (прогнозування напрямку умовного переходу).
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!