МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра ЕОМ
Лабораторна робота №1
з дисципліни " Архітектура комп’ютера ч.2 "
Програма ЦИКЛ
Базова частина
Мета: опанування студентом технологій обробки потоку інструкцій конвеєром універсальних процесорів (на прикладі обробки програм певних типів) та отримання навичок з кількісного оцінювання ефективності мікроархітектур цих процесорів.
Завдання:
Завантажити базисну версію програми до симулятора. Спланувати використаня комірок головної пам’яті та записати до них вихідні дані.
Виконати програму у кроковому режимі. Перевірити результат виконання програми.
Пояснити подані вікнами (циклове вікно, вікно статистик) симулятора протоколи виконання програми.
Зробити висновки за результатами симуляції виконання програми.
Оформити звіт та захистити його.
Текст програми:
Loop:
lw r2,0(r1) ;get next A value
lw r3,20(r1) ;get next B value
add r2,r2,r3 ;update A
sw 40(r1),r2 ;store new A
addi r1,r1,#4 ;update counter
subi r4,r1,#16 ;check to see if done
bnez r4,Loop ;repeat loop if not done
trap 0 ;end
Циклове вікно:
З рисунку наведеного вище, який представляє циклове вікно стимулятора видно, що на виконання 3-ї, 4-ї і 7-ї інструкції витрачено по 6 циклів на кожну замість 5-ти. Це пояснюється затримкою конвеєра (R-Stall) через RAW-залежність даних між інструкціями 2 і 3 та 5 і 6 , і автоматично спричиненою цим затримкою Stall на 1 цикл інструкції 4. З рисунка чітко видно випереджувальне пересилання даних до виконавчої сходинки інструкції додавання, що позначено стрілками. Тут дані пересилають не з регістрового файла, а з відповідних полів конвеєрних регістрів.
Вікно статистики:
На виконання програми витрачено 44 цикли, виникло 8 затримок R-Stalls.
Експериментальна частина
Мета: прищеплення студентам навичок з самостійного планування експерименту та розв'язування інженерних задач, що при цьому виникають, з подальшим оцінюванням ефективності запропонованих та втілених ними пропозицій за обраними студентами критеріями.
Завдання:
1. Запропонувати заходи з покращення ефективності використання апаратних засобів
процесора та скласти відповідну експериментальну версію базової програми.
2. Виконати експериментальну програму у кроковому режимі. Перевірити результат виконання програми.
3. Пояснити подані вікнами (циклове вікно, вікно статистик) симулятора протоколи виконання програми.
4. Подати кількісні значення тих характеристик, які доводять зростання ефективності роботи апаратних засобів.
5. Зробити висновки за результатами виконання експерименту.
6. Оформити звіт Е та захистити його.
Модифікований текст програми:
Loop:
lw r2,0(r1) ;get next A value
lw r3,0x20(r1) ;get next B value
addi r1,r1,#4 ;update counter
add r2,r2,r3 ;update A
subi r4,r1,#16 ;check to see if done
sw 0x40(r1),r2 ;store new A
bnez r4,Loop ;repeat loop if not done
trap 0 ;end
Для покращення ефективності використання апаратних засобів і уникнення затримки конвеєра, було переміщено інструкції, між якими виникала RAW-залежність.
Циклове вікно:
Як видно з рисунка наведеного вище затримок конвеєра, які виникали через залежність даних між інструкціями вдалось уникнути за допомогою переміщення інструкцій.
Вікно статистики:
На виконання програми витрачено 36 циклів, немає жодної затримки R-Stalls. Отже, запропонований варіант програми ефективніший від попереднього.
Висновки: в ході лабораторної роботи було досліджено 2 програми додавання масивів чисел. Перша програма викликала затримки конвеєра через залежність даних між інструкціями. Цю проблему було вирішено другою програмою, переміщенням інструкцій. Отже, переміщення інструкцій дає можливість позбавитись затримок конвеєра.