Архитектура рачунара/К Јун 2021

Извор: SI Wiki
< Архитектура рачунара
Датум измене: 4. фебруар 2022. у 13:45; аутор: KockaAdmiralac (разговор | доприноси) (Ima više smisla da se I bit isključi nakon što pošaljemo PSW na stek a ne pre toga)
(разл) ← Старија измена | Тренутна верзија (разл) | Новија измена → (разл)
Пређи на навигацију Пређи на претрагу

1. задатак

Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.

Поставка

[7п] Посматра се процесор код кога се у корацима за обраду прекида хардверски уместо на стеку perистар РС чува у регистру NPC, а регистар PSW чува у регистру NPSW док се остали регистри не чувају. У регистру IRR jе забележено о ком прекиду се ради. Регистрима NPC, NPSW, IRR je могуhe приступати програмским путем за упис и читање. Обjаснити шта је све потребно урадити хардверски и софтверски како би се омогућило гнежђење прекида код оваквог процесора

2. задатак

Поставка

[8п] Нацртати и објаснити шему дела модула који се користи у арбитрацији са праћењем. Шема треба да укључи делове који подржавају и паралелну и серијску арбитрацију, синхронизацију на сигпал такта магистрале и ситнал заузећа магистрале.

Решење

Шема модула

3. задатак

Поставка

[25п] Адресна магистрала процесора jе ширине 16 бита, магистрала података је 8 битова. Садржај дела оперативне меморије је приказан на слици:

Слика 1 - део оперативне меморије
Адреса 0000h 0001h 0002h 0003h 0004h 0005h 0006h 0007h 0008h 0009h 000Ah
Садржај 02h 34h 0Ch 72h 12h 72h 00h 03h 05h 07h 00h
Адреса 7200h 7201h 7202h 7203h 7204h 7205h 7206h 7207h 7208h 7209h 720Ah
Садржај 1Fh 0Eh 0Fh 25h 09h 00h F1h 21h 05h 00h FFh
Адреса 720Bh 720Ch 720Dh 720Eh 720Fh 7210h 7211h 7212h 7213h 7214h 7215h
Садржај F3h FDh 24h 34h 12h F4h F5h FDh F5h 34h 12h

Процесор поседује 16-битне регистре РС (програмски бројач), SP (показивач на прву слободну локацију стека који расте према вишим адресама), РSW (програмска статусна реч), IVTP (показивач на IV табелу) и регистар АСС (акумулатор). Претпоставити да је пре почетка извршавања главног програма РC=7203h, АСС=2211h, SP=Е000h, IVTР=0000h, а PSW=C001h. Индикатори NZCV се налазе на месту највиша четири бита регистра PSW (PSW15..12), док се бити L1..0 и бит I налазе на месту најнижих битова овог регистра (PSW2..0).

Процесор из меморије дохвата податке бајт по бајт. У току извршавања инструкције DEC по линији IRQM2 долази захтев за спољашњи маскирајући захтев који има највиши приоритет. Овој линији одговара улаз број 2 у IV табели. Све инструкције, осим инструкције RTI, реагују на прекиде и не постоји регистар маске IMR.

Навести секвенцу садржаја на адресној магистрали, магистрали података и контролној магистрали за сваки циклус на магистрали при извршавању главног програма и прекидних рутина којe ћe се извршити. Приликом скока у прекидну рутину на стеку се чувају РС и PSW, тим редоследом.

7203h STOREW 0009h ; memorijsko direktno adresiranje
7206h INT #1h      ; softverski prekid
7207h DEC          ; bezadresno adresiranje
7208h HALT         ; zaustavljanje procesora
7209h ...
   
720Ch РОPW         ; skidanje sa steka dva bajta
720Dh LDW #1234h   ; nesposredno adresiranje
7210h PUSHW        ; stavljanje na stek dva bajta
7211h RTI          ; povratak iz prekidne routine
7212h INC          ; bezadresno adresiranje 
7213h RTI          ; povratak iz prekidne routine 
7214h ...

Решење представити у табели чије заглавље изгледа као на слици:

Рб A15..0 D7..0 RD WR PC
IR23..16 IR15..8 IR7..0 TEMP15..0 ACC SP PSW Коментар

Рб представља редни број циклуса на магистрали, А15..0 и D7..0 садржаје адресних линија и линија података у датом циклусу. RD и WR су вредности управљачких сигнала на магистрали. РС представља садржај програмског бројача, IR садржај инструкцијскоr perистра, ТЕМP садржај прихватног регистра операнда или адресе операнда, АСС садржај акумулатора, SP садржај показивача на врх стека и РSW садржај програмске статусне речи. У коментару навести у којој од фаза дохватања инструкције (IF), декодовања инструкције (ID), извршавања (EX) или опслуживања прекида (IS) се реализује дати циклус. Све инструкције након којих се скаче у прекидну рутину у фази IS врше припрему за скок у одговарајућу прекидну рутину.

Решење

Р.бр. ABUS15..0 DBUS7..0 RD WR PC IR23..16 IR15..8 IR7..0 TEMP15..0 ACC SP PSW Коментар
- - - - - 7203 - - - - 2211 E000 C001
1 7203 25 1 0 7204 25 - - - 2211 E000 C001 IF (STOREW 0009h)
2 7204 09 1 0 7205 25 09 - - 2211 E000 C001 IF (STOREW 0009h)
3 7205 00 1 0 7206 25 09 00 - 2211 E000 C001 IF (STOREW 0009h)
4 0009 11 0 1 7206 25 09 00 - 2211 E000 C001 EX (STOREW 0009h)
5 000A 22 0 1 7206 25 09 00 - 2211 E000 C001 EX (STOREW 0009h)
6 7206 F1 1 0 7207 F1 - - - 2211 E000 C001 IF (INT #1h)
7 E000 07 0 1 7207 F1 - - - 2211 E000 C001 IS (INT #1h)
E001 IS (INT #1h)
8 E001 72 0 1 7207 F1 - - - 2211 E001 C001 IS (INT #1h)
E002 IS (INT #1h)
9 E002 01 0 1 7207 F1 - - - 2211 E002 C001 IS (INT #1h)
E003 IS (INT #1h)
10 E003 C0 0 1 7207 F1 - - - 2211 E003 C001 IS (INT #1h)
E004 IS (INT #1h)
11 0002 0C 1 0 7207 F1 - - XX0C 2111 E004 C000 IS (INT #1h)
12 0003 72 1 0 7207 F1 - - 720C 2111 E004 C000 IS (INT #1h)
720C E004 IS (INT #1h)
13 720C FD 1 0 720D FD - - - 2211 E004 C000 IF (POPW)
E003 EX (POPW)
14 E003 C0 1 0 720D FD - - C0XX 2211 E003 C000 EX (POPW)
E002 EX (POPW)
15 E002 01 1 0 720D FD - - C001 2211 E002 C000 EX (POPW)
- C001 EX (POPW)
16 720D 24 1 0 720E 24 - - - C001 E002 C000 IF (LDW #1234h)
17 720E 34 1 0 720F 24 34 - - C001 E002 C000 IF (LDW #1234h)
18 720F 12 1 0 7210 24 34 12 - C001 E002 C000 IF (LDW #1234h)
1234 EX (LDW #1234h)
19 7210 F4 1 0 7211 F4 - - - 1234 E002 C000 IF (PUSHW)
20 E002 34 0 1 7211 F4 - - - 1234 E002 C000 EX (PUSHW)
E003 EX (PUSHW)
21 E003 12 0 1 7211 F4 - - - 1234 E003 C000 EX (PUSHW)
E004 EX (PUSHW)
22 7211 F5 1 0 7212 F5 - - - 1234 E004 C000 IF (RTI)
E003 EX (RTI)
23 E003 12 1 0 7212 F5 - - 12XX 1234 E003 C000 EX (RTI)
E002 EX (RTI)
24 E002 34 1 0 7212 F5 - - 1234 1234 E002 C000 EX (RTI)
E001 1234 EX (RTI)
25 E001 72 1 0 7212 F5 - - 72XX 1234 E001 1234 EX (RTI)
E000 EX (RTI)
26 E000 07 1 0 7212 F5 - - 7207 1234 E000 1234 EX (RTI)
7207 EX (RTI)
27 7207 21 1 0 7208 21 - - - 1234 E000 1234 IF (DEC)
1233 0234 EX (DEC), прекид се не прихвата јер I = 0
28 7208 05 1 0 7209 05 - - - 1233 E000 0234 IF (HALT)
- - - - - - - - - - - - - EX (HALT)