Arhitekture i organizacije računara
AOR prvi doma
ć
i
1.
Neki ra
č
unari imaju posebne instrukcije za izdvajanje sadržaja proizvoljnog polja iz 32-bitnog
registra i njegovo smeštanje u bitove najmanje težine nekog registra. Zahtevana operacija
prikazana je na slici.
31
j
i
0
$t3
31 - j bitova
polje (j - i bitova)
i + 1 bit
31
(j-i-1)
0
$t0
32–(j–i) bitova
polje (j-i bitova)
a. Na
ć
i najkra
ć
i niz MIPS instrukcija koji izdvaja polje za konstantne vrednosti i=5 i j=22 iz
registra $t3 i smešta ga u registru $t0.
b. Uraditi isto ako su i i j promenljive date sadržajima registara $t1 i $t2 respektivno.
2.
Kombinaciona logika prikazana na slici sastoji se od šest blokova kombinacionih mreža A, B,
C, D, E i F sa vremenima prostiranja signala kroz njih od 80 ps, 30 ps, 60 ps, 50 ps, 70 ps i 10 ps
respektivno. Izlazni signali iz poslednjeg bloka F upisuju se u registar sa vremenom prostiranja
20 ps. Možemo projektovati proto
č
nu verziju ove mreže umetanjem proto
č
nih registara sa
vremenom prostiranja 20 ps izme
đ
u parova ovih blokova,
č
ime ovih šest blokova delimo u
stepene.
a)
Izme
đ
u kojih blokova treba umetnuti jedan proto
č
ni registar da formiramo proto
č
nu verziju mreže
sa dva stepena koja
ć
e imati maksimalnu propusnost za toliki broj stepena? Kolika
ć
e biti
latencija i propusnost takve mreže?
b)
Izme
đ
u kojih blokova treba umetnuti dva proto
č
na registra da formiramo proto
č
nu verziju mreže
sa tri stepena koja
ć
e imati maksimalnu propusnost za toliki broj stepena? Kolika
ć
e biti latencija i
propusnost takve mreže?
c)
Izme
đ
u kojih blokova treba umetnuti tri proto
č
na registra da formiramo proto
č
nu verziju mreže sa
č
etiri stepena koja
ć
e imati maksimalnu propusnost za toliki broj stepena? Kolika
ć
e biti latencija
i propusnost takve mreže?
d)
Koliki je maksimalan broj stepena koji
ć
e dati proto
č
nu organizaciju sa maksimalnom dostižnom
propusnoš
ć
u? Prikazati tu organizaciju i izra
č
unati njenu latenciju i propusnost.
3.
Iskaz
switch
u C-u može se implementirati nizom testiranja (uslovnih grananja), pretvaraju
ć
i
switch
iskaz u
niz
if-then-else
iskaza. Efikasno alternativno rešenje može biti kodirano kao tabela adresa alternativnih nizova
A
80ps
30ps
60ps
50ps
70ps
10ps
B
C
D
E
F
R
e
g
instrukcija, nazvana
tabela adresa skokova
, u kojoj program treba da adesira odgovaraju
ć
u stavku tabele a
zatim sko
č
i na odgovaraju
ć
i niz instrukcija. Tabela adresa skokova je onda polje re
č
i koje sadrži adrese koje
odgovaraju obeležjima (labelama) u kodu. Program pribavlja odgovaraju
ć
u stavku tabele adresa skokova u
neki registar, a zatim ska
č
e na odgovaraju
ć
u adresu instrukcijom Jump register.
Slede
ć
i kod u C-u bira izme
đ
u
č
etiri alternative zavisno od toga da li
k
ima vrednost 0, 1, 2 ili 3.
switch (k) {
case 0: f = i + j; break; /* k = 0 */
case 1: f = g + h; break; /* k = 1 */
case 2: f = g – h; break; /* k = 2 */
case 3: f = i – j; break; /* k = 3 */
}
Neka se šest promenljovih
f, g, h, i, j
i
k
nalaze u registrima R16
do R21 respektivno. Napisati odgovaraju
ć
i MIPS kod.
4.
Dat je slede
ć
i niz instrukcija u MIPS arhitekturi. Navesti zavisnosti po
podacima u datom nizu instrukcija i prikazati izvršenje ovog niza instrukcija
na petostepenom proto
č
nom procesoru po taktnim ciklusima za slede
ć
a dva
slu
č
aja: a) bez premoš
ć
avanja, uz pretpostavku da se grananje nikada ne
obavlja, i grananje u
č
etvrtoj instrukciji nije obavljeno, i b) sa
premoš
ć
avanjem, uz pretpostavku da se grananje nikada ne obavlja, i
grananje u
č
etvrtoj instrukciji je obavljeno.
ADD R1,R2,R3
SUBU R2,R4,R3
ANDI R5,R2, #511
BEQZ R5, 3
SW R2, 12(R7)
ADD R3,R6,R2
BEQZ R0, 2
LW R4, 20(R7)
SUBU R8, R4 ,R10
ANDI R1, R4 , #16
adresa izraza za k = 0
adresa izraza za k = 1
adresa izraza za k = 2
adresa izraza za k = 3
Tabela adresa skokova
Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.
Slični dokumenti