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

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

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

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

до лабораторної роботи №2

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

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

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

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

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА Кафедра БІТ З В І Т до лабораторної роботи №2 з курсу: «Архітектура комп’ютерних систем» Варіант № 21 Львів 2022 Мета роботи: опанувати техніку конвеєрного виконання RISC інструкцій. Завдання: Засобами архітектурного симулятора WinMIPS64 машини з 64-розрядною RISC архітектурою MIPS64 дослідити конвеєрне виконання фрагментів машинних програм, що містять цикли. Виявити наявні залежності (небезпеки) даних і керування, оптимізувати програмний код та дослідити дію запропонованої оптимізації. За результатами проведених лабораторних досліджень оформити звіт та захистити його. Завантаження програми .data values: .word 3, 9, 29, 34, 21, 47, 13, 27, 25, 11 ; 64-bit integers result: .space 8 .text MAIN: daddui R1,R0,10 ; R1 <- 10 dadd R2,R0,R0 ; R2 <- 0 POINTER REG dadd R3,R0,R0 ; R3 <- 0 RESULT REG LOOP: ld R4,values(R2) ;GET A VALUE IN R4 dadd R3,R3,R4 ; R3 <- R3 + R4 daddi R2,R2,8 ; R2 <- R2 + 8 POINTER INCREMENT daddi R1,R1,-1 ; R1 <- R1 - 1 DECREMENT COUNTER bnez R1,LOOP nop sd R3,result(R0) ; Result in R3 HALT ; the end Результат після виконання команди C:\winmips64> asm lab2.s > report.txt Pass 1 completed with 0 errors 00000000 .data 00000000 0000000000000003 values: .word 3, 9, 29, 34, 21, 47, 13, 27, 25, 11 ; 64-bit integers 0000000000000009 000000000000001d 0000000000000022 0000000000000015 000000000000002f 000000000000000d 000000000000001b 0000000000000019 000000000000000b 00000050 result: .space 8 00000000 .text 00000000 6401000a MAIN: daddui R1,R0,10 ; R1 <- 10 00000004 0000102c dadd R2,R0,R0 ; R2 <- 0 POINTER REG 00000008 0000182c dadd R3,R0,R0 ; R3 <- 0 RESULT REG 0000000c dc440000 LOOP: ld R4,values(R2) ;GET A VALUE IN R4 00000010 0064182c dadd R3,R3,R4 ; R3 <- R3 + R4 00000014 60420008 daddi R2,R2,8 ; R2 <- R2 + 8 POINTER INCREMENT 00000018 6021ffff daddi R1,R1,-1 ; R1 <- R1 - 1 DECREMENT COUNTER 0000001c 1c01fffb bnez R1,LOOP 00000020 00000000 nop 00000024 fc030050 sd R3,result(R0) ; Result in R3 00000028 04000000 HALT ; the end Pass 2 completed with 0 errors Code Symbol Table MAIN = 00000000 LOOP = 0000000c Data Symbol Table values = 00000000 result = 00000050 Синтаксис є коректним. Далі відкриємо програму WINMIPS64 і запустимо в ній файл lab2.s, яки1 ми попередньо створили. Переконався, що програма завантажена до пам’яті і симулятор готовий до роботи. У вікні “Code” спостерігаємо код програми. / Також використовуємо апаратні механізми випередження даними і прогнозування напрямку умовного переходу за допомогою буфера цільових адрес переходу (branch target buffer, BTB). / Покроково симулюємо виконання інструкцій. Після виконання 7 циклу отримали RAW (read after write). / При виконанні 10 такту бачимо ще 1 пригальмування / Після 11 тактів симулювання, сталося перше пригальмування за рахунок виконаного умовного переходу (branch taken stall). / На 76 циклі виконання отримали першу помилку передбачення напрямку умовного переходу (Branch misprediction stall). / Завершення програми / Результат виконання програми сумування 10 чисел показав нам правильний результат 0xdb. Загальне число виконаних циклів становить 84. СРІ = 1.500 – це середнє число тактових інтервалів (cycles per instruction), що припало на виконання кожної інструкції програми, RAW Stalls = 20, Branch Taken Stalls = 2, Branch Misprediction Stalls = 2 Виконаємо програму ще раз без механізмів випередження та прогнозування. / Результат виконання програми без механізмів випередження та прогнозування сумування 10 чисел показав нам такий самий результат 0xdb. Загальне число виконаних циклів становить 110. СРІ = 1.964 – це середнє число тактових інтервалів (cycles per instruction), що припало на виконання кожної інструкції програми, RAW Stalls = 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

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