🚀 Вийди на новий рівень крипто-торгівлі!
Easy Trade Bot — автоматизуй свій прибуток уже зараз!

Ми пропонуємо перелік перевірених прибуткових стратегій на такі пари як BTC, DOT, TRX, AAVE, ETH, LINK та інші. Ви можете підключити автоматичну торгівлю на своєму акаунті Binance або отримувати торгові рекомендації на email у режимі реального часу. Також можемо створити бота для обраної вами монети.

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

Перейти до бота + 30$ бонус

Дослідження виконання циклів на конвеєрі інструкцій

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

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

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

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

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА Кафедра БІТ ЗВІТ до лабораторної роботи №2 з курсу: «Архітектура комп’ютерних систем» на тему: «Дослідження виконання циклів на конвеєрі інструкцій» Варіант-16 Львів — 2022 Мета роботи Опанувати техніку конвеєрного виконання RISC інструкцій. Завдання Засобами архітектурного симулятора WinMIPS64 машини з 64- розрядною RISC архітектурою MIPS64 дослідити конвеєрне виконання фрагментів машинних програм, що містять цикли. Виявити наявні залежності (небезпеки) даних і керування, оптимізувати програмний код та дослідити дію запропонованої оптимізації. За результатами проведених лабораторних досліджень оформити звіт та захистити його. Порядок виконання роботи Спершу через стандартний текстовий редактор створюємо програмний файл, Lab2(16).s. В цій програмі міститиметься код для MIPS64, записаний мовою асемблер, що знаходить згідно з варіантом завдання суму десяти чисел 17, 43, 15, 22, 34, 17, 53, 11, 40, 23 з кроком 1. Тобто в пам’яті програмно резервуємо .word з ініціалізацією 10 комірок для заданих чисел, а також без ініціалізації, .space, що призначається як місце для збереження результату суми. Далі подається власне сам текст асемблерної програми, що обчислює суму заданих заданих чисел (рис. 1). / Рис. 1. Текст асемблерної програми Далі подається основне вікно програми MIPS64 до її виконання (рис. 2). якій дозволено використання апаратного механізму випередження даних (forwarding), а також апаратури прогнозування напрямку умовного переходу за допомогою буфера цільових адрес переходу (branch target buffer). / Рис. 2. Основне вікно симулятора зі завантаженою програмою Тепер протиснувши Execute/Single Cycle або F7 на клавіатурі можна побачити покрокове симулювання. / Рис. 3. Виконання сьомого циклу програми Після десятого циклу у дочірньому вікні “конвеєра” симулятора можна побачити виконання другого RAW пригальмування (рис. 4). / Рис. 4. Виконання десятого циклу програми На одинадцятому циклі симулювання, відбувається перше пригальмування за рахунок виконаного умовного переходу (branch taken stall) (рис. 5). /Рис. 5. Виконання одинадцятого циклу програми Пройшовши 84 циклів симулювання, спостерігаємо стан виникнення першої помилки в передбаченні напрямку умовного переходу (Branch misprediction stall) (рис. 6). Branch prediction «вгадує» наступну інструкцію, яку потрібно виконати, і вставляє наступну передбачувану інструкцію в конвеєр. Неправильне вгадування інструкції спричиняє Branch misprediction stall. Таке пригальмування уповільнює виконання програми, оскільки частково оброблені інструкції в конвеєрі після розгалуження повинні бути відкинуті, а конвеєр повинен початися спочатку з правильної гілки. / Рис. 6. Виконання вісімдесят четвертого циклу програми / Рис. 7. Вікно симулятора по завершенню виконання програми з увімкненим branch target buffer На рисунку 7 можна бачити головне вікно симулятора по завершенню симулювання програми з використанням forwarding та branch target buffer. Тепер поглянемо на головне вікно по виконанні симуляції цієї ж програми, але вже коли вимкнемо симулювання апаратури прогнозування напрямку умовного переходу за допомогою буфера цільових адрес переходу (branch target buffer) (рис. 8). / Рис. 8. Вікно симулятора по завершенню виконання програми з вимкненим branch target buffer Отже, як бачимо з рисунків 7 та 8, по виконанню програми з оптимізованою апаратурою втрати конвеєра інструкцій склали 20 RAW- пригальмувань, 2 пригальмування під час взятих, виконаних умовних переходів (Branch Taken Stall) і ще 2 пригальмування (Branch Misprediction Stalls) через помилкове передбачення напрямку умовного переходу апаратними засобами, де й власне використовується буфер цільових адрес переходів - branch target buffer. При вимкненні branch target buffer втрати конвеєра інструкцій теж склали 20 RAW-пригальмувань, але тут вже маємо 9 пригальмувань - Branch Taken Stall. Ну і пригальмування Branch Misprediction Stalls, звичайно, рівне 0. Висновок: під час виконання даної лабораторної роботи набув як теоретичних так і практичних навичок, зокрема опанував техніку конвеєрного виконання RISC інструкцій.
Антиботан аватар за замовчуванням

08.04.2025 12:04-

Коментарі

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

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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