DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

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

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

ДОСЛІДЖЕННЯ КОНВЕЄРНОГО ВИКОНАННЯ ІНСТРУКЦІЙ РУХОМОЇ КОМИ

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

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

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

Рік:
2022
Тип роботи:
Лабораторна робота
Предмет:
Архітектура комп ютерних систем

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА Кафедра ЗІ / Лабораторна робота №4 з дисципліни: «Архітектура комп’ютерних систем» на тему: «ДОСЛІДЖЕННЯ КОНВЕЄРНОГО ВИКОНАННЯ ІНСТРУКЦІЙ РУХОМОЇ КОМИ» Мета роботи: опанування технікою конвеєрного виконання RISC інструкцій для операндів формату рухомої коми. Завдання Засобами архітектурного симулятора WinMIPS64 машини з 64-розрядною RISC архітектурою MIPS64 дослідити конвеєрне виконання фрагментів машинних програм, що команди опрацювання операндів в форматі з рухомою комою. Виявити наявні залежності (небезпеки) даних і керування, оптимізувати програмний код та дослідити дію запропонованої оптимізації. За результатами проведених лабораторних досліджень оформити звіт та захистити його. Виконання роботи Змінивши початкове число- 27 виконуємо наступний фрагмент коду: .data number: .word 27 max: .word 0 .text start: ld r1,number(r0) loop: andi r3,r1,1 beqz r3,even odd: dadd r2,r1,r1 dadd r1,r2,r1 daddi r1,r1,1 j over even: dsrl r1,r1,1 over: ld r4,max(r0) slt r3,r4,r1 beqz r3,skip sd r1,max(r0) skip: slti r3,r1,2 beqz r3,loop halt Перевіряємо код за допомогою asm: / Як бачимо, помилок не виникло. Програму можна відкривати та запускати у WinMips64. Для оптимізації коду, включимо Forwarding та Branch Target Buffer. / Виконуємо програму та отримуємо наступний результат: / Оптимізуємо код наступним чино, та залишимо Forwarding та Branch Target Buffer включеними: .data number: .word 27 max: .word 0 .text start: ld r1,number(r0) andi r5,r1,1 loop: dadd r2,r1,r1 beqz r5,even odd: dadd r1,r2,r1 ld r4,max(r0) daddi r1,r1,1 slt r3,r4,r1 andi r5,r1,1 beqz r3,loop sd r1,max(r0) j loop even: dsrl r1,r1,1 slti r3,r1,2 andi r5, r1,1 beqz r3,loop halt Запускаємо перевірку коду за допомогою asm.exe: / Як бачимо, помилок не виникло. Програму можна відкривати та запускати у WinMips64. / Програма відпрацювала за 976 циклів, виконуючи 781 інструкцій, з 1 пригальмуванням RAW (Read after write). СPI = 1.250. Висновок В ході виконання даної лабораторної роботи, я опанував технікою конвеєрного виконання RISC інструкцій для операндів формату рухомої коми. Також було оптимізовано заданий код, після чого CPI змінилося з 1.611 до 1.250.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

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

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

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

Admin

26.02.2023 12:38

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