Anda di halaman 1dari 4

Završni ispit iz Arhitekture računala 1 29.6.2006.

Prezime i ime (štampano): MBR:

Izjavljujem da tijekom izrade ove zadaće neću od drugoga primiti niti drugome pružiti pomoć, te da se neću
koristiti nedopuštenim sredstvima. Ove su radnje teška povreda Kodeksa ponašanja te mogu uzrokovati i trajno
isključenje s Fakulteta. Također izjavljujem da mi zdravstveno stanje dozvoljava pisanje ove zadaće.
Potpis:__________________________________________________

Dozvoljeno je koristiti isključivo službene šalabahtere (popis naredaba FRISC-a i ARM-a). Rješenja
obavezno pisati čitljivo, štampanim slovima. Koristite običnu olovku kako bi eventualne greške mogli
popraviti.

Teoretski zadatci (ispunjavate na ovom papiru):

1. (0,5 boda) Zadan je binarni broj 1100. Ako je to zapis u 4-bitnom NBC-u, onda je to zapis broja __. Ako je to
zapis u 4-bitnom formatu dvojnog komplementa, onda je to zapis broja___.

2. (0,5 boda) Ako smo zbrajali dva broja u NBC formatu i ako je došlo do prekoračenja opsega (tj. greške), onda je
zastavica ______ u stanju__.

3. (0,75 boda) Tri osnovna koraka koja procesori obavljaju prilikom izvođenja programa su: ________, _______i
_________.

4. (1 bod) Za CISC i RISC arhitekturu nabrojeno je nekoliko Svojstvo CISC RISC


svojstava. Za svako svojstvo označite sa "x" da li pripada jednoj velik broj registara
ili drugoj arhitekturi: velik broj različitih naredaba
složeno projektiranje arhitekture
dulji programi

5. (0,75 boda) Dopunite opis programskog brojila (PC). PC je _______ u kojem procesor pamti _____________
koju treba sljedeću izvesti. Nakon izvođenja svake naredbe, PC se automatski ___________.

6. (0,25 boda) Povratna adresa iz potprograma kod FRISC-a se sprema (gdje?) ___________.

7. (1,5 bod) Označite smjerove FRISC-ovih priključaka: READ je________, WRITE je _________, ADR je
_____, DATA je ___________, WAIT je _________ INT2 je ___________.

8. (1,75 boda) Za bezuvjetni, Svojstvo Bezuvjetni Uvjetn Prekidni


uvjetni i prekidni prijenos i
nabrojeno je nekoliko svojstava. najbrži rad
Za svako svojstvo označite sa "x" mogućnost gubitka/uvišestručenja podataka
čemu pripada: najsporiji rad
vanjska jedinica ima bistabil stanja
najjednostavnija vanjska jedinica
pogodno za očitavanje temperature svake minute

9. (0,25 boda) Ako imamo više neovisnih uvjetnih vanjskih jedinica, možemo primijeniti postupak koji se zove
_____________.

10. (0,5 boda) Kod sklopa FRISC-PIO maska se koristi u (kojem načinu rada?) ______________, a maska zadaje
_________________.

11. (1,5 boda) FRISC-DMA ima u svojoj unutrašnjosti sljedeće dijelove: ____________, _____________,
__________________, _________________, _________________ i _________________.
Okreni!
12. (0,25 boda) Pojava kad procesor u određenom trenutku ne može izvesti sve faze onih naredaba koje se nalaze u
protočnoj strukturi, jer sklopovlje procesora ne omogućuje istodobno izvođenje svih tih faza, naziva se
___________.

13. (0,25 boda) Kad naredba koja se nalazi u protočnoj strukturi i spremna je za izvođenje nije naredba koja se u
stvari treba izvesti, to se naziva ________________.

14. (0,25 boda) Kada se kod izvođenja naredaba u protočnoj strukturi naredba ne može izvesti jer podaci potrebni
za njeno izvođenje još nisu spremni, to se naziva _______________.

15. (0,25 boda) Procesor ARM povratnu adresu iz potprograma sprema u _________________.

16. (1 bod) Nakon uključenja procesor ARM treba izvesti program od ‘ORG 0
sljedećih 6 naredaba. Koliko vremenskih perioda treba da se izvedu sve MOV R0,#2
naredbe uključujući i zadnju naredbu ADD? Rješenje:
A SUBS R0,R0,#1
ADD R2,R2,R2
SUB R2,R2,R2
BNE A

ADD R0,R0,#1

17. (1,5 boda) Pretpostavimo da je u sustavu priručna memorija sa 3210 Adresa bloka u Adresa bloka u
bloka. Podaci se u priručnu memoriju preslikavaju korištenjem algoritma za radnoj memoriji priručnoj memoriji
direktno preslikavanje (objašnjenom na predavanjima). Za zadane adrese (rješenja)
blokova u radnoj memoriji odredite na koje će se adrese blokova u priručnoj 0x1
memoriji preslikati blokovi iz radne memorije: 0x2
0x20
0x152
0x830
0x44

18. (0,5 boda) Za jednostavno statičko predviđanje grananja objašnjeno na predavanjima vrijedi sljedeće. Ako
vrijedi da je____________________________, onda procesor pretpostavlja da je to skok na početak petlje pa kao
sljedeću naredbu učitava naredbu zadanu adresom grananja.

19. (0,75 boda) Kod ARM-a, GPIO i RTC se spajaju na sabirnicu ________ (naziv?). Memorija i procesor ARM se
spajaju sa sabirnicom ______________ (naziv?). Između ovih dvaju sabirnica nalazi se sklop koji se zove
__________-.
Programski zadatci (rješavate na svojim papirima):

20. (2 boda) Za FRISC napisati potprogram koji predznačno proširuje 16-bitni broj na 32 bita. 16-bitni broj
zapisan je u memoriji, a njegova adresa se prenosi stogom kao parametar potprograma (parametar
uklanja pozivatelj). Rezultat se vraća preko R0. Potprogram mora čuvati registre.

SIGN_EXTEND
PUSH R1 ;kontekst (push-pop)

LOAD R1, (SP+8) ; učitavanje adrese sa stoga


LOADH R0, (R1) ; učitavanje podatka sa adrese

ROTL R0, 10, R0 ; zajedno sa ROTR, ispitivanje predznaka


JR_P POZIT ; grananje
NEGAT
OR R0, 0FFFF, R0 ; proširivanje
POZIT
ROTR R0, 10, R0

POP R1
RET ; povratak

21. (5 bodova) Za ARM napisati potprogram koji računa sumu N članova sljedećeg niza: Y(X,N) = X*2 + X*4 +
X*8 + X*16... + X*2^N. Parametri X i N prenose se u potprogram preko registara R0=X i R3=N, a suma Y se
vraća preko registra R0. Napisati i glavni program koji poziva potprogram s parametrima X=4 i N=5. Potprogram
ne mora čuvati registre. Zanemariti slučajeve prekoračenja opsega.

`ORG 0
MOV R0, #4 ; učitavanje parametara
MOV R3, #5
BL NIZ1 ; poziv
SWI 123456 ; završetak

; potprogram
NIZ1 MOV R1,#1 ; CLAN inicijalizacija
MOV R2,#0 ; SUMA inicijalizacija

NIZ1_PETLJA
ADD R2,R2,R0, LSL R1 ; ovo je bit, množi s potencijom i sumira
ADD R1,R1,#1 ; povećanje brojača
CMP R1,R3 ; da li je N članova
BLS NIZ1_PETLJA ; skok

NIZ1_VAN
MOV R0,R2
MOV PC, LR ; povratak iz potp.
22. (9 bodova) Na procesor ARM spojeni su RTC (adresa 0FFFFFF00) i GPIO (adresa 0FFFFFE00). Napisati
program koji korištenjem prekida IRQ, sa sklopa RTC, svake sekunde mijenja stanje na bitu 5 (početno stanje je 0)
od vrata A sklopa GPIO. Na ulaz RTC-a doveden je signal frekvencije 10 Hz. Prekidni potprogram mora čuvati
sve registre, a glavni program vrti beskonačnu petlju.

`ORG 0
B GLAVNI ; skok da se ne prepiše preko adrese 18

`ORG 18
PREKIDNI
STMFD R13!, {R0} ; spremi kontekst + obnovi kontekst

LDR R0,[R2] ; promjena bita 5


EOR R0,R0,#10
STR R0,[R2]

STR R0,[R3,#8] ; obrađen prekid RTC-a


MOV R0,#0
STR R0,[R3,#0C] ; vrati brojilo na nulu

LDMFD R13!, {R0} ; obnovi kontekst


SUBS PC,R14,#4 ; povratak

GLAVNI
MOV R13,#1<8
LDR R2,LGPIO ; GPIO – učitavanje adrese
LDR R3,LRTC ; RTC – učitavanje adrese

MOV R0,#A ; 1 sekunda (10 dekadski)


STR R0,[R3,#4] ; upis

MOV R0,#1 ; RTC generira prekid


STR R0,[R3,#10] ; upis

MRS R0,CPSR ; omogući prihvaćanje prekida


BIC R0,R0,#80
MSR CPSR_c,R0

MOV R0, #20 ; postavljanje bita 5 da je izlazni


STR R0, [R2,#8] ; upis

MOV R0,#0 ; početno stanje bita je 0 - nije nužno, jer 0 je default


STR R0, [R2] ; upis

PETLJA ; beskonačna petlja


B PETLJA

`ORG 100
LGPIO DW 0FFFFFE00 ; adrese sklopova RTC i GPIO
LRTC DW 0FFFFFF00