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

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

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

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

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

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

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
Комп’ютерні науки
Кафедра:
Кафедра електронних обчислювальних машин

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

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

Про що ця робота

Досліджено техніку конвеєрного виконання програми побудови таблиці простих чисел у дисципліні архітектура комп’ютерів. Проведено аналіз статистики виконання базової та оптимізованої версій програми за допомогою інструкцій nop.

У роботі розглядаються

  • Архітектура комп’ютерів
  • Конвеєрне виконання
  • Прості числа
  • Оптимізація коду
  • Статистика інструкцій
  • Зупинки конвеєра

Зміст і розділи

  1. Хід роботи
  2. Базисна версія програми
  3. Модифікована версія програми
  4. Висновок
Для кого:Студенти технічних спеціальностей вищих навчальних закладів комп'ютерного спрямування.
Викладачі:Не вказано

Ключові поняття

прості числаінструкція nopстатистикациклиcpiraw пригальмовуваннязупинки конвеєраоптимізаціяпам'ять

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

МІНІСТЕРСТВО ОСВІТИ, НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”  Лабораторна робота № 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 та змінено порядок виконання деяких інструкцій Висновок: На лабораторній роботі я опанувала техніку конвеєрного виконання програми побудови таблиці простих чисел
Допоможи студентському архіву

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

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

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

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

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

Admin

26.02.2023 12:38

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