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 дослідити конвеєрне виконання фрагментів машинних програм, що містять цикли. Виявити наявні залежності (небезпеки) даних і керування, оптимізувати програмний код та дослідити дію запропонованої оптимізації. За результатами проведених лабораторних досліджень оформити звіт та захистити його. Варіант Числа  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:31

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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