Arhitektura računara/K Jul 2021

Izvor: SI Wiki
Pređi na navigaciju Pređi na pretragu
Ovaj rok nije rešen. Pomozite SI Wiki tako što ćete ga rešiti.

1. zadatak

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.

  1. 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.
  2. 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.

  1. Objasniti koje se instrukcije koriste za upis i čitanje registara kontrolera ulazno/izlaznih uređaja u slučajevima (1) i (2).
  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

a. (1) STORE, LOAD;

(2) OUT, IN


b. (1) Samo na osnovu bita adrese.

(2) Na osnovu bita adrese i signala .

3. zadatak

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.

  1. 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).
  2. 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.
  3. 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: број циклуса (архитектура А)/број циклуса (архитектура Б)

Tabela 3: Zaglavlje rešenja dela pod a.
Rb A15..0 D15..8 D7..0 RD WR W PC IR23:16 IR15:8 IR7:0 TMP15..0 ACC SP Komentar

Rešenje

a)

Tabela 4: rešenje dela pod a.
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)

b) NEDOSTAJE


v) Kako arhitektura A za sekvencu instrukcija iz dela 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.