Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти та науки України
Національний університет «Львівська політехніка»
ІКТА
Кафедра ЗІ
/
Лабораторна робота №2
«ДОСЛІДЖЕННЯ ВИКОНАННЯ ЦИКЛІВ НА
КОНВЕЄРІ ІНСТРУКЦІЙ»
з дисципліни: «Архітектура комп’ютерних систем»
Варіант - 19
Мета роботи - опанувати техніку конвеєрного виконання RISC інструкцій.
Завдання
Засобами архітектурного симулятора WinMIPS64 машини з 64-розрядною
RISC архітектурою MIPS64 дослідити конвеєрне виконання фрагментів
машинних програм, що містять цикли. Виявити наявні залежності (небезпеки)
даних і керування, оптимізувати програмний код та дослідити дію
запропонованої оптимізації. За результатами проведених лабораторних
досліджень оформити звіт та захистити його.
Варіант
Числа
19
36, 7, 60, 1, 43, 60, 4, 11, 39, 25
Виконання роботи
Перевірка синтаксису програми за допомогою утиліти asm.exe.
/
Виконання програми у WinMIPS64
Головна сторінка
Перед початком роботи з інструкціями потрібно увімкнути механізм випередження(Forwarding) і прогнозування(Branch target buffer)
/
Clock 1
/
Clock 7
На 7 циклі було отримано RAW (read after write), що показано на скріншоті:
/
Clock 10
На 10 циклі було отримано 2 RAW
/
Clock 11
Після 11 циклів симуляції виконання інструкцій, утворилося пригальмовування через виконаний умовний перехід (branch taken stall).
/
Clock 76
На 76 циклі симуляції виконання інструкцій, трапилася помилка передбачення напрямку умовного переходу (Branch misprediction stall у вікні статистики):
/
Clock 84
На 84 циклі програма була завершена з такими результатами:
/
Кількість циклів та оптимізація програми суттєво збільшується коли ми застосовуємо Forwarding та Branch target buffer. Якщо ми вимкнемо ці механізми то результат виконання програми буде наступним:
/
Результат виконання програми сумування 10 чисел з механізмами випередження та прогнозування:
Загальне число виконаних циклів становить 84.
СРІ = 1.500 – середнє число циклів, що припало на виконання кожної інструкції програми.
RAW Stalls (read after write) = 20;
Branch Taken Stalls (виконаного умовного переходу) = 2;
Branch Misprediction Stalls (передбачені напрямку умовного переходу)= 2;
Результат виконання програми сумування 10 чисел без механізмів випередження та прогнозування:
Загальне число виконаних циклів становить 110.
СРІ = 1.964 – середнє число циклів, що припало на виконання кожної інструкції програми.
RAW Stalls (read after write) = 41;
Branch Taken Stalls (виконаного умовного переходу) = 9;
Branch Misprediction Stalls (передбачені напрямку умовного переходу)= 0;
Висновок: Виконавши дану лабораторну роботу, я навчився виконувати певні RISC інструкції. Слід зазначити, що при вимкнених механізмах випередження та прогнозування не було помилки в передбаченні напрямку умовного переходу (Branch misprediction stall).
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!