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

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

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

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

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

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

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА Кафедра БІТ З В І Т до лабораторної роботи №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:12

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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