Løsningsforslag til Øving 8:

\underline{Oppgave 1:}

a) 8.6 a i Hwang

b)

c)

\underline{Oppgave 2:}

a) Simultan aksess, S-aksess, for lav-ordens flettet minne-organisering er vist i figur 1a. Her blir alle minne-moduler aksessert simultant på en synkron måte. De høy-ordens (n − a) bittene velger samme data-ord fra alle moduler.

På slutten av hver minne-sykel (figur 1b) blir m = 2^{a} etterfølgende ord simultant “latchet” inn i data-bufferene. De a lav-ordens bitene brukes så for å multiplekse ut de m ordene, en pr. sykel. Hvis del-sykelen (τ) velges til 1/m av hoved-sykelen (θ), tar det to minne-sykeler for å aksessere m etterfølgende ord.

Hvis vi imidlertid overlapper aksess-fasen til den forrige aksessen med hente-fasen (figur 1b), kan m ord aksesseres i løpet av en minne-sykel. Hvis “stride”-verdien er større enn 1, så vil ytelsen minke proporsjonalt med “stride”-verdien.

b) Den m-veis lav-ordens flettede minne-organiseringen som er vist i figur 2a og 3, tillater m ord å bli aksessert samtidig på en overlappende måte. Denne samtidige (Eng: concurrent) aksess kalles C-aksess, som vist i 3b.

Aksessen til de forskjellige modulene veksler. De lav-ordens a bittene velger modul, og de høy-ordens b bittene velger ordet innen hver modul, hvor m = 2^{a} og a + b = n er adresselengden.

For å aksessere en vektor med “stride”-verdi på 1, blir etterfølgende adresser “latchet” inn i adresse-bufferen, med en adresse pr. sykel. Det trengs derfor m del-sykeler for å hente m ord, som tilsvarer en hoved-sykel (θ), som vist i figur 3b.

Hvis “stride”-verdien er 2, trenger de etterfølgende aksesser to del-sykeler for å unngå aksesskonflikter. Minne-ytelsen blir derfor bare halvparten. Hvis “stride”-verdien er 3, er det ingen modul-konflikter og vi får maksimum ytelse. Generelt kan vi si at vi får maksimal ytelse på m ord hvis “stride”-faktoren ikke er delelig med m.

c) En minne-organisering hvor C-aksess og S-aksess kombineres, kalles C/S-aksess. Dette er vist figur 4, hvor n aksess-busser brukes med m flettede minne-moduler tilkoblet hver buss. De m modulene på hver buss har m-veis fletting for å tillate C-aksess. De n bussene opererer i parallell for å tillate S-aksess. I hver minne-sykel kan det hentes maksimalt m × n ord, hvis de n bussene benyttes fullt ut med samlebånds-minne aksess.

C/S-aksess metoden passer for bruk i vektor multiprosessor maskiner. Metoden gir parallell samlebånds-aksess til vektor-data med en høy båndbredde. Spesielle vektor-hurtigbuffere trengs innen hver prosessor for å håndtere jevn flyt av data mellom hovedlager og vektorprosessorene.