Arhitektura računara/K Jul 2021
Kolokvijum u julskom ispitnom roku 2021. godine održan je 8. jula.
1. zadatak
- Ovaj zadatak nije rešen. Pomozite SI Wiki tako što ćete ga rešiti.
Postavka
(7) U registru PSW postoji nekoliko bita koji se odnose na prekide. U neke od datih bita se može postavljati vrednost 1, mogu se brisati, i može se upisivati vrednost.
- Naznačiti sve bite registra PSW koji se odnose na prekide i objasniti čemu koji bit namenjen. Naznačiti na osnovu čega se određuje broj pojedinih bita.
- Za svaki od ovih bita naznačiti u kojim se situacijama njihova vrednost menja (postavlja, briše, upisuje). Odgovor dati tabelarno.
Biti registra PSW | Menjanje (postavljanje, brisanje, upisivanje) | Situacija u kojoj se menja |
---|---|---|
Rešenje
2. zadatak
Postavka
(8) Adresiranje registara kontrolera ulazno/izlaznih uređaja može da se realizuje na dva načina, pa u zavisnosti od toga kako je to realizovano postoje (1) sistemi kod kojih je ulazno/izlazni adresni prostor memorijski preslikan i (2) sistemi kod kojih su ulazno/izlazni i memorijski adresni prostori razdvojeni.
- Objasniti koje se instrukcije koriste za upis i čitanje registara kontrolera ulazno/izlaznih uređaja u slučajevima (1) i (2).
- Objasniti kako u slučajevima (1) i (2) kontroleri memorije i ulazno/izlaznih uređaja utvrđuju ko od njih treba kao sluga da realizuju[sic] ciklus na magistrali iniciran od strane procesora kao gazde.
Rešenje
-
- (1) STORE, LOAD;
- (2) OUT, IN
-
- (1) Samo na osnovu bita adrese.
- (2) Na osnovu bita adrese i signala .
3. zadatak
- Ovaj zadatak nije rešen. Pomozite SI Wiki tako što ćete ga rešiti.
Postavka
(25) Adresna magistrala procesora kao i magistrala podataka je 16-bitna. Sadržaj dela operativne memorije je prikazan na slici:
Adresa | 0000h | 0001h | 0002h | 0003h | 0004h | 0005h | 0006h | 0007h | 0008h | 0009h | 000Ah |
Sadržaj | 02h | 10h | 00h | 10h | 10h | 11h | 10h | F2h | 0Eh | FFh | 00h |
Adresa | 1000h | 1001h | 1002h | 1003h | 1004h | 1005h | 1006h | 1007h | 1008h | 1009h | 100Ah |
Sadržaj | 1Fh | 0Fh | 0Eh | 25h | 08h | 00h | F0h | 02h | 11h | 07h | 00h |
Adresa | 100Bh | 100Ch | 100Dh | 100Eh | 100Fh | 1010h | 1011h | 1012h | 1013h | 1014h | 1015h |
Sadržaj | FFh | FFh | 00h | FFh | F8h | F3h | FDh | F4h | 09h | F0h | F4h |
Procesor poseduje 16-bitne registre PC (programski brojač), SP (pokazivač na prvu slobodnu lokaciju steka koji raste prema višim adresama), PSW (programska statusna reč) i registar ACC (akumulator). Pretpostaviti da je pre početka izvršavanja glavnog programa PC = 1001h, ACC = FFFFh, SP = E000h, IVTP=1h, a PSW = 5050h. Procesor iz memorije dohvata instrukcije bajt po bajt. Operativna memorija je sačinjena od dva modula (M0 i M1) iste veličine, a širina memorijske reči je 8 bita. Jedan memorijski modul (M0) je povezan na linije D7..0, a drugi memorijski modul (M1) na linije D15..8 magistrale podataka. Module M0 sadrži marne, a modul M1 neparne adrese. Adresiranje je na nivou podataka dužine 8 i 16 bita. Podaci i adrese dužine 16 bita se u memoriju smeštaju tako da se na nižu lokaciju smešta niži bajt. Pristup (upis/čitanje) do jednog bajta podatka traje jedan ciklus na magistrali. Pristup (upis/čitanje) do dva bajta podatka počev od memorijske lokacije sa parnom adresom traje jedan ciklus na magistrali, a počev od neparne adrese traje dve ciklusa na magistrali. Faza čitanja instrukcije započinje uvek čitanjem jednog bajta - prog bajta instrukcije. Na osnovu prvog bajta instrukcije, procesor zna kolika je dužina instrukcije i može da optimizuje broj ciklusa na magistrali, tako da u nastavku dovlačenja instrukcije može, ali ne mora, da čita instrukciju bajt po bajt.
- Navesti sekvencu sadržaja na adresnoj magistrali, magistrali podataka i kontrolnoj magistrali za svaki ciklus na magistrali pri izvršavanju glavnog programa i prekidne rutine. Prilikom skoka u prekidnu rutinu na steku se čuvaju PSW i PC, tim redosledom. Instrukcije koje operišu sa osmobitnim podacima akumulatora koriste nižih osam bita akumulatora, dok se viših osam bitova ne menjaju.
1001h || ANDB || #0Eh || ; neposredno adresiranje 1003h || STOREW || 0008h || ; memorijsko direktno adresiranje 1006h || INT || #2h || ; softverski prekid 1008h || STORES || 0007h || ; memorijsko direktno adresiranje 100Bh || HALT || || ; zaustavljanje procesora 100Ch || ... ... 1010h || NOT || || ; bezadresno adresiranje 1011h || INC || || ; bezadresno adresiranje 1012h || RTI || || ; povratak iz potprograma ...
- Rešenje predstaviti u tabeli čije zaglavlje izgleda kao na slici: (Tabela 3)
- Rb predstavlja redni broj ciklusa na magistrali, A15..0 i D15..0 sadržaje adresnih linija i linija podataka u datom ciklusu. RD, WR i W (označava da se pristupa po dva bajta podatka počev od parne adrese) su vrednosti upravljačkih signala na magistrali. PC predstavlja sadržaj programskog brojača, IR sadržaj instrukcijskog registra, TMP sadržaj prihvatnog registra operanda ili adrese operanda, ACC sadržaj akumulatora i SP sadržaj pokazivača na vrh steka. O vrednosti registra PSW ne treba voditi evidenciju (smatrati da se ne menja). U komentaru navesti u kojoj od faza se realizuje dati ciklus: dohvatanja instrukcije (IF), dekodovanja instrukcije (ID), izvršavanja operacije (EX) ili obrada prekida (IS).
- Detaljno nacrtati kako bi se povezali moduli M0 i M1 na zadatu magistralu. Povezivanje procesora na magistralu nije potrebno crtati. Označiti sve širine signala.
- Koliko je relativno ubrzanje izvršavanja date sekvence instrukcija pod a) na zadatoj arhitekturi magistrale i procesora (arhitektura A), u odnosu da magistrala i procesor podržavaju samo cikluse upisa i čitanja od jednog bajta (arhitektura B)?
Rezultat dati kao: број циклуса (архитектура А)/број циклуса (архитектура Б)
Rb | A15..0 | D15..8 | D7..0 | RD | WR | W | PC | IR23:16 | IR15:8 | IR7:0 | TMP15..0 | ACC | SP | Komentar |
Rešenje
- Rešenje dato u tabeli ispod.
- NEDOSTAJE
- Kako arhitektura A za sekvencu instrukcija iz dela pod a koristi dvobajtno čitanje 6 puta i završava datu sekvencu sa 20 čitanja, zaključujemo da bi arhitekturi B trebalo 26 čitanja. Rezultat je 20/26.
Rb | A15..0 | D15..8 | D7..0 | RD | WR | W | PC | IR23:16 | IR15:8 | IR7:0 | TMP15..0 | ACC | SP | Komentar |
1 | 1001 | 0F | / | 1 | 0 | 0 | 1002 | 0F | / | / | / | FFFF | E000 | IF (ANDB) |
2 | 1002 | / | 0E | 1 | 0 | 0 | 1003 | 0F | 0E | / | / | FFFF | E000 | IF (ANDB) |
0F | 0E | / | 0E | FFFF | E000 | ID (ANDB) | ||||||||
0F | 0E | / | 0E | FF0E | E000 | IE (ANDB) | ||||||||
3 | 1003 | 25 | / | 1 | 0 | 0 | 1004 | 25 | / | / | / | FF0E | E000 | IF (STOREW) |
4 | 1004 | 00 | 08 | 1 | 0 | 1 | 1006 | 25 | 08 | 00 | / | FF0E | E000 | IF (STOREW) |
25 | 08 | 00 | 0008 | FF0E | E000 | ID (STOREW) | ||||||||
5 | 0008 | FF | 0E | 0 | 1 | 1 | 1006 | 25 | 08 | 00 | 0008 | FF0E | E000 | IE (STOREW) |
6 | 1006 | / | F0 | 1 | 0 | 0 | 1007 | F0 | / | / | / | FF0E | E000 | IF (INT) |
7 | 1007 | 02 | / | 1 | 0 | 0 | 1008 | F0 | 02 | / | / | FF0E | E000 | IF (INT) |
F0 | 02 | / | 02 | FF0E | E000 | ID (INT) | ||||||||
F0 | 02 | / | 02 | FF0E | E000 | IE (INT) | ||||||||
8 | E000 | 50 | 50 | 0 | 1 | 1 | 1008 | F0 | 02 | / | 02 | FF0E | E002 | IS (INT) |
9 | E002 | 10 | 08 | 0 | 1 | 1 | 1008 | F0 | 02 | / | 02 | FF0E | E004 | IS (INT) |
10 | 0005 | 11 | / | 1 | 0 | 0 | 1008 | F0 | 02 | / | 11 | FF0E | E004 | IS (INT) |
11 | 0006 | / | 10 | 1 | 0 | 0 | 1011 | F0 | 02 | / | 1011 | FF0E | E004 | IS (INT) |
12 | 1011 | FD | / | 1 | 0 | 0 | 1012 | FD | / | / | / | FF0E | E004 | IF (INC) |
/ | / | / | FF0F | E004 | IE (INC) | |||||||||
13 | 1012 | / | F4 | 1 | 0 | 0 | 1013 | F4 | / | / | / | FF0F | E004 | IF (RTI) |
14 | E002 | 10 | 08 | 1 | 0 | 1 | 1008 | F4 | / | / | 1008 | FF0F | E002 | IE (RTI) |
15 | E000 | 50 | 50 | 1 | 0 | 1 | 1008 | F4 | / | / | 5050 | FF0F | E000 | IE (RTI) |
16 | 1008 | / | 11 | 1 | 0 | 0 | 1009 | 11 | / | / | / | FF0F | E000 | IF (STOREB) |
17 | 1009 | 07 | / | 1 | 0 | 0 | 100A | 11 | 07 | / | / | FF0F | E000 | IF( STOREB) |
18 | 100A | / | 00 | 1 | 0 | 0 | 100B | 11 | 07 | 00 | / | FF0F | E000 | IF (STOREB) |
11 | 07 | 00 | 0007 | FF0F | E000 | ID (STOREB) | ||||||||
19 | 0007 | 0F | / | 0 | 1 | 0 | 100B | 11 | 07 | 00 | 0007 | FF0F | E000 | IE (STOREB) |
20 | 100B | FF | / | 1 | 0 | 0 | 100C | FF | / | / | / | FF0F | E000 | IF (HALT) |
/ | / | / | FF0F | E000 | IE (HALT) |