Архитектура рачунара/К Јул 2021
- Овај рок није решен. Помозите SI Wiki тако што ћете га решити.
1. задатак
Поставка
(7) У регистру PSW постоји неколико бита који се односе на прекиде. У неке од датих бита се може постављати вредност 1, могу се брисати, и може се уписивати вредност.
- Назначити све бите регистра PSW који се односе на прекиде и објаснити чему који бит намењен. Назначити на основу чега се одређује број појединих бита.
- За сваки од ових бита назначити у којим се ситуацијама њихова вредност мења (поставља, брише, уписује). Одговор дати табеларно.
Бити регистра PSW | Мењање (постављање, брисање, уписивање) | Ситуација у којој се мења |
---|---|---|
Решење
2. задатак
Поставка
(8) Адресирање регистара контролера улазно/излазних уређаја може да се реализује на два начина, па у зависности од тога како је то реализовано постоје (1) системи код којих је улазно/излазни адресни простор меморијски пресликан и (2) системи код којих су улазно/излазни и меморијски адресни простори раздвојени.
- Објаснити које се инструкције користе за упис и читање регистара контролера улазно/излазних уређаја у случајевима (1) и (2).
- Објаснити како у случајевима (1) и (2) контролери меморије и улазно/излазних уређаја утврђују ко од њих треба као слуга да реализују[sic] циклус на магистрали инициран од стране процесора као газде.
Решење
3. задатак
Поставка
(25) Адресна магистрала процесора као и магистрала података је 16-битна. Садржај дела оперативне меморије је приказан на слици:
Адреса | 0000h | 0001h | 0002h | 0003h | 0004h | 0005h | 0006h | 0007h | 0008h | 0009h | 000Ah |
Садржај | 02h | 10h | 00h | 10h | 10h | 11h | 10h | F2h | 0Eh | FFh | 00h |
Адреса | 1000h | 1001h | 1002h | 1003h | 1004h | 1005h | 1006h | 1007h | 1008h | 1009h | 100Ah |
Садржај | 1Fh | 0Fh | 0Eh | 25h | 08h | 00h | F0h | 02h | 11h | 07h | 00h |
Адреса | 100Bh | 100Ch | 100Dh | 100Eh | 100Fh | 1010h | 1011h | 1012h | 1013h | 1014h | 1015h |
Садржај | FFh | FFh | 00h | FFh | F8h | F3h | FDh | F4h | 09h | F0h | F4h |
Процесор поседује 16-битне регистре PC (програмски бројач), SP (показивач на прву слободну локацију стека који расте према вишим адресама), PSW (програмска статусна реч) и регистар ACC (акумулатор). Претпоставити да је пре почетка извршавања главног програма PC = 1001h, ACC = FFFFh, SP = E000h, IVTP=1h, а PSW = 5050h. Процесор из меморије дохвата инструкције бајт по бајт. Оперативна меморија је сачињена од два модула (M0 и M1) исте величине, а ширина меморијске речи је 8 бита. Један меморијски модул (M0) је повезан на линије D7..0, а други меморијски модул (M1) на линије D15..8 магистрале података. Модуле M0 садржи марне, а модул M1 непарне адресе. Адресирање је на нивоу података дужине 8 и 16 бита. Подаци и адресе дужине 16 бита се у меморију смештају тако да се на нижу локацију смешта нижи бајт. Приступ (упис/читање) до једног бајта податка траје један циклус на магистрали. Приступ (упис/читање) до два бајта податка почев од меморијске локације са парном адресом траје један циклус на магистрали, а почев од непарне адресе траје две циклуса на магистрали. Фаза читања инструкције започиње увек читањем једног бајта - прог бајта инструкције. На основу првог бајта инструкције, процесор зна колика је дужина инструкције и може да оптимизује број циклуса на магистрали, тако да у наставку довлачења инструкције може, али не мора, да чита инструкцију бајт по бајт.
- Навести секвенцу садржаја на адресној магистрали, магистрали података и контролној магистрали за сваки циклус на магистрали при извршавању главног програма и прекидне рутине. Приликом скока у прекидну рутину на стеку се чувају PSW и PC, тим редоследом. Инструкције које оперишу са осмобитним подацима акумулатора користе нижих осам бита акумулатора, док се виших осам битова не мењају.
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 ...
- Решење представити у табели чије заглавље изгледа као на слици: (Табела 3)
- Рб представља редни број циклуса на магистрали, A15..0 и D15..0 садржаје адресних линија и линија података у датом циклусу. RD, WR и W (означава да се приступа по два бајта податка почев од парне адресе) су вредности управљачких сигнала на магистрали. PC представља садржај програмског бројача, IR садржај инструкцијског регистра, TMP садржај прихватног регистра операнда или адресе операнда, ACC садржај акумулатора и SP садржај показивача на врх стека. О вредности регистра PSW не треба водити евиденцију (сматрати да се не мења). У коментару навести у којој од фаза се реализује дати циклус: дохватања инструкције (IF), декодовања инструкције (ID), извршавања операције (EX) или обрада прекида (IS).
- Детаљно нацртати како би се повезали модули M0 и M1 на задату магистралу. Повезивање процесора на магистралу није потребно цртати. Означити све ширине сигнала.
- Колико је релативно убрзање извршавања дате секвенце инструкција под а) на задатој архитектури магистрале и процесора (архитектура А), у односу да магистрала и процесор подржавају само циклусе уписа и читања од једног бајта (архитектура Б)?
Резултат дати као: број циклуса (архитектура А)/број циклуса (архитектура Б)
Рб | A15..0 | D15..8 | D7..0 | RD | WR | W | PC | IR23:16 | IR15:8 | IR7:0 | TMP15..0 | ACC | SP | Коментар |
Решење
а)
Рб | A15..0 | D15..8 | D7..0 | RD | WR | W | PC | IR23:16 | IR15:8 | IR7:0 | TMP15..0 | ACC | SP | Коментар |
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) |
б) НЕДОСТАЈЕ
в) Како архитектура А за секвенцу инструкција из дела а. користи двобајтно читање 6 пута и завршава дату секвенцу са 20 читања, закључујемо да би архитектури Б требало 26 читања. Резултат је 20/26.