Добавил:
Допоможу чим зможу) Відсигнальте якщо знайшли шось корисне) Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
32
Добавлен:
11.03.2020
Размер:
221.8 Кб
Скачать

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”

ІКТА

Кафедра ­­___

ЗВІТ

ДО ЛАБОРАТОРНОЇ РОБОТИ № 1

З КУРСУ:

“ Архітектура комп’ютерних систем”

НА ТЕМУ:

“ Програма Цикл

Підготував:

Ст.гр.КБ-24

Войтович О.О.

Прийня__:

___________________

Львів 2019

Базова частна

Метою виконання базової частини кожної лабораторної роботи є опанування студентом технологій обробки потоку інструкцій конвеєром універсальних процесорів (на прикладі обробки програм певних типів) та отримання навичок з кількісного оцінювання ефективності мікроархітектур цих процесорів.

Звіт з роботи

Завдання

1. Завантажити базисну версію програми до симулятора. Спланувати використання комірок головної пам’яті та записати до них вихідні дані.

2. Виконати програму у кроковому режимі. Перевірити виконнання програми.

3. Пояснити подані вікнами(циклове вікно, вікно статистик) симулятора протоколи вионання програми. 4. Зробити висновки за результатами симуляції виконання програми.

Базисна версія програми

;****************************************************************

;* Example DLX code without the use of loop unrolling and *

;* rescheduling. *

;* Assumtions: *

;* R1 initially holds the value 0 *

;* A is an integer array, stored beginning at address 0 *

;* B is an integer array, stored beginning at address 4000 *

;* *

;* Written by Dr. Michelle Hugue *

;* (Worksheet Loop Unrolling and Rescheduling 1) *

;****************************************************************

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

Clock Cycle Diagram

На скріншоті видно, що для викнання інструкцій 3,4 та 7 було витрачено на один крок більше очікуваного, через те що в процесі виконання цих інструкцій виникає RAW-залежність між даними, томущо порушено виконання правила, що наступна інструкція не може читати значення операнда з цільового регістру до того, як операндне значення в ньому зформоване попередньою інструкцією.

На виконання програми знадобилося 44 кроки з яких 8 викликані затримкою R-stall.

Експереминтальна частина

Метою виконання експериментальної частини відповідної лабораторної роботи є прищеплення студентам навичок з самостійного планування експерименту та розв'язування інженерних задач, що при цьому виникають, з подальшим оцінюванням ефективності запропонованих та втілених ними пропозицій за обраними студентами критеріями.

Завдання

1. Запропонувати заходи з прощення ефективності використання апаратних засобів процесора та скласти відповідну експереминтальну версію базової пограми.

2. Виконати експериментальну у кроковому режимі. Перевірити результат виконання програми.

3.Пояснити подані вікнами(циклове вікно, вікно статистик) симулятора протоколи виконання програми.

4. Подати кількісні значення тих характеристик, які доводять зростання ефективностіроботи апаратних засобів.

5. Зробити висновки за результатами виконання експеременту.

Модифікована програма на асемблерній мові

Loop:

lw r2,0(r1) ;get next A value

lw r3,20(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 40(r1),r2 ;store new A

bnez r4,Loop ;repeat loop if not done

trap 0 ;end

Clock Cycle Diagram

З скріншоту видно, що за допомогою перестановки інструкцій без зміни логіки, ми позбутися RAW-залежності між даними.

Порівнюючи з минулою статистикою можна впевнено сказати, що ми позбулися всіх затримок типу RAW-stalls та пришвидчили виконання програми(36 циклів замість 44).

Висновок

На цій лабораторній роботі я навчився працювати з програмою WinDLX та всіма її компонентами, розібрав принцип роботи базисної програми «Цикл» та визначив, що її код не досконалий і викликає 8 затримок в конвеєрі типу R-stall. Програму на асемблерній мові вдалося оптимізувати за допомогою перестановки її рядків, що не змінило логіку виконання програми, але спричинило ліквідування цих затримок і скоротило кількість циклів виконання програми з 44 до 36.

Соседние файлы в папке Лаби готові