WOJSKOWA AKADEMIA TECHNICZNA









SPRAWOZDANIE Z LABORATORIUM

ARCHITEKTURY I ORGANIZACJI KOMPUTERÓW

LABORATORIUM nr 7-8

wersja nr 9
















Michał Sokołowski

Grupa: I0Y4S1

Nr: 16






1. Treść zadania


1. Zadeklaruje dwie tablice przechowujące liczby całkowite: T 110- elementową oraz TB Rozmiar-elementową (gdzie liczba Rozmiar jest podana w tabeli z punktu A3), a także zmienną Suma zmiennoprzecinkową podwójnej precyzji.

2. Komórki tablicy T wypełni rosnąco kolejnymi liczbami całkowitymi począwszy od numeru w dzienniku studentki/ studenta, powiększonego o liczbę SKŁADNIK, o wartości podanej poniżej (np. dla numeru 10, TA będzie zawierać kolejne liczby całkowite 10+SKŁADNIK, 11+SKŁADNIK,…)

3. Następnie dla każdego elementu tablicy TB wykona operację : (T[i+2] * T[i+4] * T[i+6])

4. W zmiennej Suma umieści sumę wszystkich elementów tablicy TB.

2. Program




.data

tabT: .word 110

tabTB: .word 60

numer: .word 16

skladnik: .word 180



T: .space 440

TB: .space 240

suma: .double 0


.text

;wskaznikT

addi r10, r0, T


;Obliczanie 1-el

lw r1, numer

lw r2, skladnik

add r3, r1, r2

subi r10,r10,#4


;liczba wykonan petli tablicaT

lw r8, tabT


TablicaT:


sw 4(r10), r3

subi r8, r8, 1

addi r10, r10, 4

addi r3, r3, 1

bnez r8, TablicaT



;wskaznikT

addi r10, r0, T


;wskaznikTB

addi r12, r0, TB


;liczba wykonan petli TablicaTB

lw r8, tabTB


;suma

addi r25, r0, 0


TablicaTB:

;wczytywanie danych

lw r1, 8(r10)

lw r2, 16(r10)

lw r3, 24(r10)


;wykonywanie dzialan

mult r4,r1, r2

mult r5,r4,r3

sw 0(r12), r5

;suma

add r25, r25, r5


;wskaznikTB++

addi r12, r12, #4


;wskaznikT++

addi r10, r10, #4


;liczba wykonan petli--

subi r8, r8, #1

bnez r8,TablicaTB


movi2fp f1,r25

cvti2d f2,f1

sd suma,f2

trap 0








3. Algorytm działania programu

















4. Wydruk zawartości arkusza kalkulacyjnego

Pierwsze 10 elementów tablicy T oraz TB oraz Sumy.

Ostatnie 10 elementów tablicy T.

Ostatnie 10 elementów tablicy TB.







5. Wydruk zawartości pamięci operacyjnej winDLX

Forwarding ON





Forwarding OFF







6. Analiza

Forwarding ON

Jak widać na diagramie cykli zegarowych występuje3 hazardy typu RAW w rozkazach:


mult r5, r4,r3

sw 0(r12), r5
bnez r8,TablicaTB

Każdy z nich czeka na daną z poprzedniego rozkazu, widać również że Forwarding powzwala korzystać z rejestrów zanim zostaną zapisane w fazie Write Back.

Liczba Instrukcji=14+5*110+11*60=1224
Liczba cykli = 1224instrukcji+712hazardów +1nop=1937

Forwarding OFF



Jak widać na diagramie cykli zegarowych występują 5hazardy typu RAW:

mult r4, r1,r2

mult r5, r4,r3

sw 0(r12), r5
bnez r8,TablicaTB

Każda z nich czeka na daną z poprzednich rozkazów. Wyłączenie forwarding sprawia że ilość hazardów rośnie przez co program wykonywał się około 4 sekundy dłużej

Liczba Instrukcji=14+5*110+11*60=1224
Liczba cykl forwarding OFF = 1224instrukcji+1078stalli +1nop=2303