sprawozdanie Pak nr 2

Akademia Techniczno – Humanistyczna w Bielsku Białej

Wydział: Budowy Maszyn i Informatyki

Kierunek Automatyka i Robotyka

Rok: 2014/2015

Semestr: 4

PODSTAWY Architektury komputerów

ĆWICZENIA 2

Wykonawca sprawozdania

Szymon Gajewski

  1. Cel ćwiczenia

Opanować technikę potokowego wykonania rozkazów przychodów warunkowych

  1. Zadania

Symulatorem WinMIPS64 wykonać badanie potokowego wykonania fragmentów programów komputerowych z cyklami. Optymizować kod programowy i wykonać badanie kodu.

Kod programu

; Program: loop.s

; Sum of 10 integer values

.data

values: .word 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ; 64-bit integers

result: .space 8

.text

MAIN:

daddui R1,R0,10 ; R1 <- 10

dadd R2,R0,R0 ; R2 <- 0 POINTER REG

dadd R3,R0,R0 ; R3 <- 0 RESULT REG

LOOP:

ld R4,values(R2) ;GET A VALUE IN R4

dadd R3,R3,R4 ; R3 <- R3 + R4

daddi R2,R2,8 ; R2 <- R2 + 8 POINTER INCREMENT

daddi R1,R1,-1 ; R1 <- R1 - 1 DECREMENT COUNTER

bnez R1,LOOP

nop

sd R3,result(R0) ; Result in R3

HALT ; the end

Okna programowe

Zasada programu jest taka sama jak pokazałem w sprawozdaniu nr1.

W tym przypadku występują inne błędy.

Pierwszy błąd Raw 1 pokazał się w 7 takcie

Drugi błąd typu Raw w takcie 10

Po wykonaniu 11 taktu pojawiło się pierwsze hamowanie, przez błąd w wykonaniu przejścia warunkowego (branch taken stall).

Po wykonaniu 12 taktu pojawia się kolejny błąd typu (branch taken stall).

Przy wykonywaniu 76 taktu miało miejsce pojawienie się pierwszego błędu w prognozowaniu kierunku przesyłania warunkowego (Branch misprediction stall).

Przy wykonywaniu 77 taktu miało miejsce pojawienie się drugi błędu typu (Branch misprediction stall).

Po zakończonym programie można odnotować 84 cykle, 56 instrukcji, 1,500 cykli na instrukcje, 20 konfliktów RAW oraz 2 błędy: w prognozowaniu kierunku przesyłania warunkowego i 2 wykonywania przejścia warunkowego.

Optymalizacja

W celu poprawienia szybkości działania programu pozbywamy się wszystkich błędów.

Kod programu po optymalizacji

; Program: loop.s

; Sum of 10 integer values

.data

values: .word 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ; 64-bit integers

result: .space 8

.text

MAIN:

daddui R1,R0,10 ; R1 <- 10

dadd R2,R0,R0 ; R2 <- 0 POINTER REG

dadd R3,R0,R0 ; R3 <- 0 RESULT REG

LOOP:

ld R4,values(R2) ;GET A VALUE IN R4

nop

dadd R3,R3,R4 ; R3 <- R3 + R4

nop

daddi R2,R2,8 ; R2 <- R2 + 8 POINTER INCREMENT

nop

daddi R1,R1,-1 ; R1 <- R1 - 1 DECREMENT COUNTER

nop

bnez R1,LOOP

nop

sd R3,result(R0) ; Result in R3

nop

HALT ; the end

Żeby ten program został zoptymalizowany należy w odpowiednie miejsca wprowadzić polecenie nop

I zmienić ustawienia w konfiguracji należało wyłączyć polecenie Enable branch target bulfer i włączyć Enable delay slot.

Dzięki tym zmianą pozbywamy się błędów z programu i jak widzimy z okna Statistics, liczba instrukcji wynosła 106 ale ilość cykli na instrukcje zmalała do 1.036 co przyśpieszyło działanie programu.


Wyszukiwarka

Podobne podstrony:
sprawozdanie Pak nr 3
sprawozdanie Pak nr 1
SPRAWOZDANIE Z CWICZENIA NR 4, Technologia zywnosci, semestr III, chemia zywnosci
Sprawozdanie z ćwiczenia nr 2(transformator), Studia, AAAASEMIII, 3. semestr, Elektrotechnika II, Pa
Sprawozdanie z cwiczenia nr 1 justa
sprawozdanie ćw nr 1(1)
Sprawozdanie z +wiczenia nr 1, Studia, AAAASEMIII, 3. semestr, Elektrotechnika II, Pack, Pack
Sprawozdanie damiana nr 1, chemia w nauce i gospodarce Uł, semestr V, sprawozdania chemia fizyczna i
Moje sprawozdanie chemia nr 3, Studia budownictwo pierwszy rok, Chemia budowlana, Chemia budowlana,
Sprawozdanie z ćwiczenia nr 1
sprawozdanie z wytrzymałości nr 2
sprawozdanie cw nr 1
Sprawozdanie z cwiczenia nr 1
Sprawozdanie Ćw Nr$
Sprawozdanie ilościowa nr 8

więcej podobnych podstron