DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

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

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

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

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

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

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

Міністерство освіти та науки України Національний університет «Львівська політехніка» Кафедра ЗІ / Лабораторна робота №2 «ДОСЛІДЖЕННЯ ВИКОНАННЯ ЦИКЛІВ НА КОНВЕЄРІ ІНСТРУКЦІЙ» з дисципліни «Архітектура комп’ютерних систем» Львів-2022 Мета роботи: опанувати техніку конвеєрного виконання RISC інструкцій Завдання Засобами архітектурного симулятора WinMIPS64 машини з 64-розрядною RISC архітектурою MIPS64 дослідити конвеєрне виконання фрагментів машинних програм, що містять цикли. Виявити наявні залежності (небезпеки) даних і керування, оптимізувати програмний код та дослідити дію запропонованої оптимізації. За результатами проведених лабораторних досліджень оформити звіт та захистити його. Варіант Числа  16 17, 43, 15, 22, 34, 17, 53, 11, 40, 23   Виконання Спершу ми створюємо файл sumtens.s: / Рисунок 1.1 Файл sumtens.s Наступний крок це перевірити синтаксис програми ще до симулювання за допомогою утиліти asm.exe. Для цього потрібно виконати команду операційної системи: > asm sumtens.s. Рис.1.2 / Рисунок 1.2. Перевірка синтаксису утилітою asm. 2. Симулювання Синтаксис є коректним. Далі відкриємо програму WINMIPS64 і запустимо в ній файл sumtens.s., яким ми попередньо створили. Програма завантажена до пам’яті і симулятор готовий до роботи. У вікні “Code” спостерігаємо код програми. / Рисунок 2.1 Основне вікно симулятора з відкритим файлом sumtens.s Перед виконанням покрокової симуляції виконання інструкцій, вмикаємо апаратні механізми випередження даними і прогнозування напрямку умовного переходу за допомогою буфера цільових адрес переходу (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 / Після завершення програми наше кінцеве число = 113 – в шістнадцятковій системі числення. Clock 84 / Якщо ми переведемо число 113 в десяткову систему численням за допомогою конвертора то отримаємо число 275 (Рис 2.3) / Рисунок 2.3 Переведення числа в 10-ву систему числення За умовою ми додавали числа: 17 + 43 + 15 + 22 + 34 + 17 + 53 + 11 + 40 + 23 = 275. Отже програма відпрацювала правильно. Наступний етап, повторно запускаймо програму вимкнувши апаратні механізми випередження даними і прогнозування напрямку умовного переходу за допомогою буфера цільових адрес переходу, отримаємо такі результати: / Статистика після виконання програм: У режимі із забороною випередження(forwarding) / Результат виконання програми сумування 10 чисел показав нам правильний результат 11e. Загальне число виконаних циклів становить 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:07

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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