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

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

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

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

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

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

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

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

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

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

Міністерство освіти та науки України Національний університет «Львівська політехніка» Кафедра ЗІ / Лабораторна робота №2 «ДОСЛІДЖЕННЯ ВИКОНАННЯ ЦИКЛІВ НА КОНВЕЄРІ ІНСТРУКЦІЙ» з дисципліни «Архітектура комп’ютерних систем» Львів-2022 Мета роботи: опанувати техніку конвеєрного виконання RISC інструкцій Завдання Засобами архітектурного симулятора WinMIPS64 машини з 64-розрядною RISC архітектурою MIPS64 дослідити конвеєрне виконання фрагментів машинних програм, що містять цикли. Виявити наявні залежності (небезпеки) даних і керування, оптимізувати програмний код та дослідити дію запропонованої оптимізації. За результатами проведених лабораторних досліджень оформити звіт та захистити його. Варіант Числа  8 17, 18, 24, 27, 51, 58, 24, 16, 37, 1  Виконання Спершу ми створюємо файл sumtens.s: / Рисунок 1.1 Файл sumtens.s Наступний крок це перевірити синтаксис програми ще до симулювання за допомогою утиліти asm.exe. Для цього потрібно виконати команду операційної системи: > asm sumtens.s. Рис.1.2 / Рисунок 1.2. Перевірка синтаксису утилітою asm. 2. Симулювання Синтаксис є коректним. Далі відкриємо програму WINMIPS64 і запустимо в ній файл sumtens.s., яким ми попередньо створили. Програма завантажена до пам’яті і симулятор готовий до роботи. У вікні “Code” спостерігаємо код програми. / Перед виконанням покрокової симуляції виконання інструкцій, вмикаємо апаратні механізми випередження даними і прогнозування напрямку умовного переходу за допомогою буфера цільових адрес переходу (branch target buffer, BTB). / Рисунок 2.2 Дозволяємо використання випередження (forwarding) і апаратури передбачення напрямку умовного переходу (branch target buffer) у вікні Configure. Покроково симулюємо виконання інструкцій. На 7 циклів отримали RAW-пригальмування (read after write). Clock 7 / На 11 циклі симулювання, сталося перше пригальмування за рахунок виконаного умовного переходу (branch taken stall). Clock 11 / На 76 циклі виконання отримали першу помилку передбачення напрямку умовного переходу (Branch misprediction stall), викликане тим, що Branch prediction повинне вгадати наступну інструкцію та вставити її в конвеєр. Якщо це виконується неправильно автоматично виконується Branch misprediction stall: Clock 76 / Після завершення програми наше кінцеве число = 111– в шістнадцятковій системі числення. Clock 84 / Якщо ми переведемо число 111 в десяткову систему численням за допомогою конвертора то отримаємо число 273 (Рис 2.3) / За умовою ми додавали числа 17 + 18+ 24+ 27 + 51 + 58 + 24 + 16 + 37 + 1 = 273. Отже програма відпрацювала правильно. Наступний етап, повторно запускаймо програму вимкнувши апаратні механізми випередження даними і прогнозування напрямку умовного переходу за допомогою буфера цільових адрес переходу, отримаємо такі результати: / Статистика після виконання програм: У режимі із забороною випередження(forwarding) / Результат виконання програми сумування 10 чисел показав нам правильний результат 111. Загальне число виконаних циклів становить 84. СРІ = 1.500 – це середнє число тактових інтервалів (cycles per instruction), що припало на виконання кожної інструкції програми. • RAW Stalls (read after write) = 20 • Branch Taken Stalls (виконаного умовного переходу) = 2 • Branch Misprediction Stalls(передбаченні напрямку умовного переходу)= 2 У режимі без forwarding та branch target buffer / Результат виконання програми без механізмів випередження та прогнозування сумування 10 чисел показав нам такий самий результат 11е. Загальне число виконаних циклів становить 110. СРІ = 1.964 – це середнє число тактових інтервалів (cycles per instruction), що припало на виконання кожної інструкції програми. • RAW Stalls (read after write) = 41 • Branch Taken Stalls (виконаного умовного переходу) = 9 • Branch Misprediction Stalls (передбаченні напрямку умовного переходу)= 0 Висновок На лабораторій роботі, я навчився виконувати певні RISC інструкції. З ввімкненими механізми випередження даними і прогнозування напрямку умовного переходу за допомогою буфера цільових адрес переходу (branch target buffer, BTB) програма виконалася на 26 менше ніж з вимкненими механізмами. Середнє число тактових інтервалів без механізмів також виросло на 0.464. При вимкнених механізмах не було помилки в передбаченні напрямку умовного переходу (Branch misprediction stall).
Антиботан аватар за замовчуванням

08.04.2025 12:04-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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