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

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

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

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

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

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

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

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

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» Кафедра безпеки інформаційних технологій / ДОСЛІДЖЕННЯ ВИКОНАННЯ ЦИКЛІВ НА КОНВЕЄРІ ІНСТРУКЦІЙ МЕТОДИЧНІ ВКАЗІВКИ до лабораторної роботи № 2 з дисципліни «Архітектура комп’ютерних систем» для студентів спеціальності 125 «Кібербезпека» Львів 2022 Дослідження виконання циклів на конвеєрі інструкцій: методичні вказівки до виконання лабораторної роботи з дисципліни «Архітектура комп'ютерних систем» / Укл. Мельник В.А., Банах Р.І. – Львів, Національний університет «Львівська політехніка», 2022. – 10 с. Укладачі: Мельник В.А., дтн, професор каф. БІТ Банах Р.І., асистент каф. БІТ. Відповідальний за випуск: Рецензент Надруковано за рішенням засідання кафедри безпеки інформаційних технологій Національного університету «Львівська політехніка» Протокол № від 2022 р. Мета роботи Опанувати техніку конвеєрного виконання RISC інструкцій. Завдання Засобами архітектурного симулятора WinMIPS64 машини з 64-розрядною RISC архітектурою MIPS64 дослідити конвеєрне виконання фрагментів машинних програм, що містять цикли. Виявити наявні залежності (небезпеки) даних і керування, оптимізувати програмний код та дослідити дію запропонованої оптимізації. За результатами проведених лабораторних досліджень оформити звіт та захистити його. Варіант Числа  1 15, 38, 3, 43, 11, 47, 56, 11, 28, 29  2 3, 55, 17, 7, 56, 23, 29, 58, 52, 51  3 36, 50, 56, 48, 57, 52, 30, 53, 27, 1  4 24, 30, 39, 49, 22, 24, 53, 28, 44, 22  5 53, 54, 15, 13, 12, 33, 35, 58, 29, 23  6 7, 31, 34, 31, 25, 57, 13, 4, 39, 22  7 17, 17, 48, 32, 27, 46, 37, 40, 60, 27  8 17, 18, 24, 27, 51, 58, 24, 16, 37, 1  9 58, 47, 44, 14, 38, 27, 60, 5, 7, 27  10 4, 46, 41, 46, 18, 57, 13, 24, 4, 33  11 20, 3, 56, 17, 38, 19, 35, 53, 32, 42  12 19, 16, 22, 55, 39, 36, 50, 57, 19, 21  13 17, 13, 21, 20, 21, 13, 49, 56, 29, 26  14 7, 43, 19, 21, 22, 32, 35, 30, 10, 35  15 59, 36, 33, 60, 27, 21, 3, 46, 48, 43  16 17, 43, 15, 22, 34, 17, 53, 11, 40, 23  17 50, 21, 23, 8, 2, 39, 22, 44, 38, 26  18 60, 52, 51, 44, 21, 7, 8, 18, 7, 14  19 36, 7, 60, 1, 43, 60, 4, 11, 39, 25  20 1, 55, 20, 21, 58, 33, 36, 59, 17, 50  21 3, 9, 29, 34, 21, 47, 13, 27, 25, 11  22 11, 58, 54, 8, 14, 7, 58, 20, 57, 1  23 51, 25, 32, 31, 38, 16, 17, 40, 33, 2  24 26, 7, 60, 58, 32, 8, 11, 11, 42, 4  25 59, 30, 36, 9, 58, 15, 17, 52, 47, 15  26 41, 9, 50, 43, 4, 14, 23, 36, 32, 60  27 27, 17, 56, 36, 33, 46, 49, 46, 5, 46  28 50, 48, 55, 58, 26, 42, 27, 6, 25, 59  29 41, 31, 13, 13, 23, 11, 38, 39, 1, 40  30 18, 43, 19, 53, 43, 55, 37, 52, 16, 35  31 23, 19, 17, 54, 34, 7, 18, 20, 30, 36   Базовий варіант виконання лабораторної роботи Нехай симулюється наступна програма, записана мовою асемблер. Програма знаходить суму десяти чисел (від 1 до 10 з кроком 1, відповідь є 0х37 = 55 десяткове). Ясно, що в пам’яті програмно резервують (.word) з ініціалізацією 10 комірок з доданками, а також (без ініціалізації, .space) місце для результату (суми). ; Program: loop.s ; Sum of 10 integer values .data values: .word 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ; 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   Інструкції, що використовуються: LD Формат: LD rt, offset(base) Мета: завантажити подвійне слово з пам'яті. Опис: rt ← пам'ять[база+зміщення] Вміст 64-розрядного подвійного слова в місці пам’яті вибирається та розміщується в GPR rt. 16-бітове зміщення зі знаком додається до вмісту бази GPR для формування адреси. Обмеження: Ефективна адреса повинна бути природно вирівняна. Якщо будь-який із трьох найменш значущих бітів адреси відрізняються від нуля, виникає виняток Address Error. MIPS IV: 3 молодших біта поля зміщення мають бути нульовими. Якщо їх немає, то результат інструкції не визначено. Винятки: TLB Refill, TLB Invalid Помилка шини Помилка адреси Зарезервована інструкція DADD Формат: DADD rd, rs, rt Мета: додати 64-розрядні цілі числа. Опис: rd ← rs + rt 64-бітове значення подвійного слова в GPR rt додається до 64-бітового значення в GPR rs, щоб отримати 64-розрядний результат. 64-розрядний результат поміщається в GPR rd. Обмеження: Жодного Винятки: Переповнення цілого числа Зарезервована інструкція SD Формат: SD rt, зміщення (база) Мета: зберегти подвійне слово в пам'яті. Опис: пам'ять[база+зміщення] ← rt 64-розрядне подвійне слово в GPR rt зберігається в пам'яті в місці, визначеному вирівнянням ефективної адреса. 16-бітове зміщення зі знаком додається до вмісту бази GPR сформувати діючу адресу. Обмеження: Ефективна адреса повинна бути природно вирівняна. Якщо будь-який із трьох найменш значущих бітів ефективної адреси відмінні від нуля, виникає виняток Address Error. MIPS IV: 3 молодших біта поля зміщення мають бути нульовими. Якщо їх немає, то результат інструкції не визначено. Винятки: TLB Refill, TLB Invalid TLB змінений Помилка адреси Зарезервована інструкція HALT Формат: HALT Мета: переводить процесор у стан HALT, зупиняючи виконання інструкції. Інструкція зупинки є привілейованою. Будемо користуватися процесором, де задіяні апаратні механізми випередження даними і прогнозування напрямку умовного переходу за допомогою буфера цільових адрес переходу (branch target buffer, BTB). СРІ – це (середнє) число тактових інтервалів (cycles per instruction), що припало на виконання кожної інструкції програми. В ідеальному випадку для нашого п’ятисходинкового конвеєра маємо СРІ = 1, але залежності поміж інструкціями через дані (data hazards, RAW, WAR, WAW) збільшують СРІ, тобто часові витрати на виконання програми. Нижче зображено основне вікно симулятора зі завантаженою програмою (одне дочірнє вікно не видно). Дозволено використання апаратури випередження (forwarding) і апаратури передбачення напрямку умовного переходу (branch target buffer) (Рис. 1). Далі видно основне вікно та вміст пам’яті до старту програми (Рис. 2). Після виконання семи циклів симулювання, отримуємо перше RAW (Рис. 3). / Рис. 1. Основне вікно симулятора зі завантаженою програмою / Рис. 2. Основне вікно симулятора, де видно вміст пам’яті до старту / Рис. 3. Основне вікно симулятора, виконано 7 циклів симулювання / Рис. 4. Перше RAW пригальмування, 7 тактів симулювання У дочірньому вікні “конвеєра” симулятора після семи тактів симулювання можна побачити виконання першого RAW пригальмування (Рис. 4), в той час, як після десяти тактів відбувається друге RAW пригальмування (Рис. 5). Коли виконано одинадцять тактів симулювання, стається перше пригальмування за рахунок виконаного умовного переходу (branch taken stall) (Рис. 6). / Рис. 5. Друге RAW пригальмування. Виконано 10 тактів. Можна спостерігати стан виникнення першої помилки в передбаченні напрямку умовного переходу (Branch misprediction stall) (Рис. 7). Branch prediction «вгадує» наступну інструкцію, яку потрібно виконати, і вставляє наступну передбачувану інструкцію в конвеєр. Неправильне вгадування називається Branch misprediction stall. Частково оброблені інструкції в конвеєрі після розгалуження повинні бути відкинуті, а конвеєр повинен початися спочатку з правильної гілки, коли буде виявлено branch misprediction stall, а це уповільнює виконання програми. / Рис. 6. Пригальмування за рахунок виконаного умовного переходу / Рис. 7. Виникнення помилки в передбаченні напрямку умовного переходу / Рис. 8. Головне вікно симулятора по завершенню симулювання програми По виконанню програми з оптимізованою апаратурою втрати конвеєра інструкцій склали 20 RAW-пригальмувань, 2 пригальмування під час виконання виконаних взятих, виконаних умовних переходів (Branch taken) і ще 2 пригальмування через помилками передбачення напрямку умовного переходу апаратними засобами (тут використовується буфер цільових адрес переходів - branch target buffer) (Рис. 8). При використанні неоптимізованої апаратури час виконання програми зросте. Потрібно подати відповідь та питання – коли, чому, наскільки? Контрольні питання Як працює програма? Яку функцію виконує pointer increment? Яку функцію виконує decrement counter? Що таке Branch misprediction stall? Що таке branch target buffer? НАВЧАЛЬНЕ ВИДАННЯ Дослідження виконання циклів на конвеєрі інструкцій Методичні вказівки до лабораторної роботи з дисципліни «Адміністрування комп'ютерних систем» для студентів спеціальності 125 «Кібербезпека» Укладачі: Мельник В.А., дтн, професор каф. БІТ Банах Р.І., асистент каф. БІТ. Національний університет «Львівська політехніка» Львів 2022
Антиботан аватар за замовчуванням

08.04.2025 11:04-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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