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