Програма побудови таблиці простих чисел

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

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

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

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

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

МІНІСТЕРСТВО ОСВІТИ, НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”  Лабораторна робота № 5 з дисципліни "Архітектура комп’ютерів ч.2" Львів – 2013 Тема: Програма побудови таблиці простих чисел Мета : Дослідити техніку конвеєрного виконання програми побудови таблиці простих чисел Хід роботи У даній лабораторній роботі досліджується програма, що будує таблицю простих чисел Базисна версія програми, що буде симулюватися .data .global Count Count: .word 10 .global Table Table: .space Count*4 .text .global main main: ;*** Initialization addi r1,r0,0 ;Index in Table addi r2,r0,2 ;Current value ;*** Determine, if R2 can be divided by a value in table NextValue:addi r3,r0,0 ;Helpindex in Table Loop: seq r4,r1,r3 ;End of Table? bnez r4,IsPrim ;R2 is a prime number lw r5,Table(R3) divu r6,r2,r5 multu r7,r6,r5 subu r8,r2,r7 beqz r8,IsNoPrim addi r3,r3,4 j Loop IsPrim: ;*** Write value into Table and increment index sw Table(r1),r2 addi r1,r1,4 ;*** 'Count' reached? lw r9,Count srli r10,r1,2 sge r11,r10,r9 bnez r11,Finish IsNoPrim:;*** Check next value addi r2,r2,1 ;increment R2 j NextValue Finish: trap 0  Рис.1 Вікно статистики  Рис.2 Вікно конвеєра Як бачимо, було виконано 750 інструкцій, на що пішло 2605 циклів (CPI=3.47). Відбулося 2021 RAW пригальмовування конвеєра,107 пригальмовувань керування і 2 пригальмовування зупинки (trap stalls). Всього зупинок конвеєра 2130 Модифікована (оптимізована) версія програми .data .global Count Count: .word 10 .global Table Table: .space Count*4 .text .global main main: ;*** Initialization addi r1,r0,0 ;Index in Table addi r2,r0,2 ;Current value ;*** Determine, if R2 can be divided by a value in table NextValue: addi r3,r0,0 ;Helpindex in Table Loop: seq r4,r1,r3 ;End of Table? nop bnez r4,IsPrim ;R2 is a prime number lw r5,Table(R3) nop divu r6,r2,r5 nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop multu r7,r6,r5 nop nop nop nop subu r8,r2,r7 nop beqz r8,IsNoPrim addi r3,r3,4 j Loop IsPrim: ;*** Write value into Table and increment index sw Table(r1),r2 addi r1,r1,4 ;*** 'Count' reached? lw r9,Count srli r10,r1,2 sge r11,r10,r9 nop bnez r11,Finish IsNoPrim:;*** Check next value addi r2,r2,1 ;increment R2 j NextValue Finish: trap 0 Рис.3 Вікно конвеєра   Рис.5 Вікно коду (вміст пам’яті) – 10 простих чисел Рис.4 Вікно статистики Було виконано 2495 інструкцій, на що пішло 2674 цикли (CPI=1.07) Не відбулося жодного RAW пригальмовування, 107 пригальмовувань керування і 2 пригальмовування зупинки (trap stalls). Всього зупинок конвеєра 109 Для оптимізації було введено декілька “порожніх” інструкції nop та змінено порядок виконання деяких інструкцій Висновок: На лабораторній роботі я опанувала техніку конвеєрного виконання програми побудови таблиці простих чисел
Антиботан аватар за замовчуванням

19.12.2013 22:12-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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