Архитектура рачунара/К Јул 2021 — разлика између измена

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
(postavka)
 
м (Formatiranje)
 
(Није приказано 6 међуизмена 3 корисника)
Ред 1: Ред 1:
{{tocright}}
{{tocright}}
{{нерешено}}
'''Колоквијум у јулском испитном року 2021. године''' одржан је 8. јула.


== 1. задатак ==
== 1. задатак ==
{{делимично решено}}
=== Поставка ===
'''(7)''' У регистру PSW постоји неколико бита који се односе на прекиде. У неке од датих бита се може постављати вредност 1, могу се брисати, и може се уписивати вредност.
'''(7)''' У регистру PSW постоји неколико бита који се односе на прекиде. У неке од датих бита се може постављати вредност 1, могу се брисати, и може се уписивати вредност.
<div class="abc-list">
<div class="abc-list">
Ред 13: Ред 15:
| || ||
| || ||
|}
|}
=== Решење ===


== 2. задатак ==
== 2. задатак ==
=== Поставка ===
'''(8)''' Адресирање регистара контролера улазно/излазних уређаја може да се реализује на два начина, па у зависности од тога како је то реализовано постоје (1) системи код којих је улазно/излазни адресни простор меморијски пресликан и (2) системи код којих су улазно/излазни и меморијски адресни простори раздвојени.
'''(8)''' Адресирање регистара контролера улазно/излазних уређаја може да се реализује на два начина, па у зависности од тога како је то реализовано постоје (1) системи код којих је улазно/излазни адресни простор меморијски пресликан и (2) системи код којих су улазно/излазни и меморијски адресни простори раздвојени.
<div class="abc-list">
<div class="abc-list">
# Објаснити које се инструкције користе за упис и читање регистара контролера улазно/излазних уређаја у случајевима (1) и (2).
# Објаснити које се инструкције користе за упис и читање регистара контролера улазно/излазних уређаја у случајевима (1) и (2).
# Објаснити како у случајевима (1) и (2) контролери меморије и улазно/излазних уређаја утврђују ко од њих треба као слуга да реализују<sup>[sic]</sup> циклус на магистрали инициран од стране процесора као газде.
# Објаснити како у случајевима (1) и (2) контролери меморије и улазно/излазних уређаја утврђују ко од њих треба као слуга да реализују<sup>[sic]</sup> циклус на магистрали инициран од стране процесора као газде.
</div>
=== Решење ===
<div class="abc-list">
#
#* (1) STORE, LOAD;
#* (2) OUT, IN
#
#* (1) Само на основу бита адресе.
#* (2) На основу бита адресе и сигнала <math>M/\overline{IO}</math>.
</div>
</div>


== 3. задатак ==
== 3. задатак ==
{{делимично решено}}
=== Поставка ===
'''(25)''' Адресна магистрала процесора као и магистрала података је 16-битна. Садржај дела оперативне меморије је приказан на слици:
'''(25)''' Адресна магистрала процесора као и магистрала података је 16-битна. Садржај дела оперативне меморије је приказан на слици:
{| class="wikitable"
{| class="wikitable"
Ред 40: Ред 57:
<div class="abc-list">
<div class="abc-list">
# Навести секвенцу садржаја на адресној магистрали, магистрали података и контролној магистрали за сваки циклус на магистрали при извршавању главног програма и прекидне рутине. Приликом скока у прекидну рутину на стеку се чувају PSW и PC, тим редоследом. Инструкције које оперишу са осмобитним подацима акумулатора користе нижих осам бита акумулатора, док се виших осам битова не мењају.
# Навести секвенцу садржаја на адресној магистрали, магистрали података и контролној магистрали за сваки циклус на магистрали при извршавању главног програма и прекидне рутине. Приликом скока у прекидну рутину на стеку се чувају PSW и PC, тим редоследом. Инструкције које оперишу са осмобитним подацима акумулатора користе нижих осам бита акумулатора, док се виших осам битова не мењају.
{|
#: <syntaxhighlight lang="asm">
| адреса || инструкција || || коментар
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
...
</syntaxhighlight>
#: Решење представити у табели чије заглавље изгледа као на слици: (Табела 3)
#: Рб представља редни број циклуса на магистрали, A<sub>15..0</sub> и D<sub>15..0</sub> садржаје адресних линија и линија података у датом циклусу. RD, WR и W (означава да се приступа по два бајта податка почев од парне адресе) су вредности управљачких сигнала на магистрали. PC представља садржај програмског бројача, IR садржај инструкцијског регистра, TMP садржај прихватног регистра операнда или адресе операнда, ACC садржај акумулатора и SP садржај показивача на врх стека. О вредности регистра PSW не треба водити евиденцију (сматрати да се не мења). У коментару навести у којој од фаза се реализује дати циклус: дохватања инструкције (IF), декодовања инструкције (ID), извршавања операције (EX) или обрада прекида (IS).
# Детаљно нацртати како би се повезали модули M0 и M1 на задату магистралу. Повезивање процесора на магистралу није потребно цртати. Означити све ширине сигнала.
# Колико је релативно убрзање извршавања дате секвенце инструкција под а) на задатој архитектури магистрале и процесора (архитектура А), у односу да магистрала и процесор подржавају само циклусе уписа и читања од једног бајта (архитектура Б)?
Резултат дати као: <code>број циклуса (архитектура А)/број циклуса (архитектура Б)</code>
</div>
 
{| class="wikitable"
|+ Табела 3: Заглавље решења дела под а.
| Рб || A<sub>15..0</sub> || D<sub>15..8</sub> || D<sub>7..0</sub> || RD || WR || W || PC || IR<sub>23:16</sub> || IR<sub>15:8</sub> || IR<sub>7:0</sub> || TMP<sub>15..0</sub> || ACC || SP || Коментар
|-
|-
| 1001h || ANDB || #0Eh || ; neposredno adresiranje
|}
 
=== Решење ===
<div class="abc-list">
# Решење дато у табели испод.
# НЕДОСТАЈЕ
# Како архитектура А за секвенцу инструкција из дела под а користи двобајтно читање 6 пута и завршава дату секвенцу са 20 читања, закључујемо да би архитектури Б требало 26 читања. Резултат је 20/26.
</div>
 
{| class="wikitable"
|+ Табела 4: решење дела под а.
| Рб || A<sub>15..0</sub> || D<sub>15..8</sub> || D<sub>7..0</sub> || RD || WR || W || PC || IR<sub>23:16</sub> || IR<sub>15:8</sub> || IR<sub>7:0</sub> || TMP<sub>15..0</sub> || ACC || SP || Коментар
|-
|-
| 1003h || STOREW || 0008h || ; memorijsko direktno adresiranje
| 1 || 1001 || 0F || / || 1 || 0 || 0 || 1002 || 0F || / || / || / || FFFF || E000 || IF (ANDB)
|-
|-
| 1006h || INT  || #2h || ; softverski prekid
| 2 || 1002 || / || 0E || 1 || 0 || 0 || 1003 || 0F || 0E || / || / || FFFF || E000 || IF (ANDB)
|-
|-
| 1008h || STORES || 0007h || ; memorijsko direktno adresiranje
| || || || ||  ||  ||  ||  || 0F || 0E || / || 0E || FFFF || E000 || ID (ANDB)
|-
|-
| 100Bh || HALT ||     || ; zaustavljanje procesora
| ||  ||  ||  || ||  ||  ||  || 0F || 0E || / || 0E || FF0E || E000 || IE (ANDB)
|-
|-
| 100Ch || ...     
| 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)
|-
|-
| 1010h || NOT    ||   || ; bezadresno adresiranje
| 5 || 0008 || FF || 0E || 0 || 1 || 1 || 1006 || 25  || 08 || 00 || 0008 || FF0E || E000 || IE (STOREW)
|-
|-
| 1011h || INC    ||   || ; bezadresno adresiranje
| 6 || 1006 || / || F0 || 1 || 0 || 0 || 1007 || F0 || / || / || / || FF0E || E000 || IF (INT)
|-
|-
| 1012h || RTI    ||   || ; povratak iz potprograma
| 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)
{| class="wikitable"
|-
| Рб || A<sub>15..0</sub> || D<sub>15..8</sub> || D<sub>7..0</sub> || RD || WR || W || PC || IR<sub>23:16</sub> || IR<sub>15:8</sub> || IR<sub>7:0</sub> || TMP<sub>15..0</sub> || ACC || SP || Коментар
| 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)
|}
|}
Рб представља редни број циклуса на магистрали, A<sub>15..0</sub> и D<sub>15..0</sub> садржаје адресних линија и линија података у датом циклусу. RD, WR и W (означава да се приступа по два бајта податка почев од парне адресе) су вредности управљачких сигнала на магистрали. PC представља садржај програмског бројача, IR садржај инструкцијског регистра, TMP садржај прихватног регистра операнда или адресе операнда, ACC садржај акумулатора и SP садржај показивача на врх стека. О вредности регистра PSW не треба водити евиденцију (сматрати да се не мења). У коментару навести у којој од фаза се реализује дати циклус: дохватања инструкције (IF), декодовања инструкције (ID), извршавања операције (EX) или обрада прекида (IS).
# Детаљно нацртати како би се повезали модули M0 и M1 на задату магистралу. Повезивање процесора на магистралу није потребно цртати. Означити све ширине сигнала.
# Колико је релативно убрзање извршавања дате секвенце инструкција под а) на задатој архитектури магистрале и процесора (архитектура А), у односу да магистрала и процесор подржавају само циклусе уписа и читања од једног бајта (архитектура Б)?
Резултат дати као: <code>број циклуса (архитектура А)/број циклуса (архитектура Б)</code>
</div>


[[Категорија:Архитектура рачунара]]
[[Категорија:Архитектура рачунара]]
[[Категорија:Рокови]]
[[Категорија:Рокови]]

Тренутна верзија на датум 6. мај 2023. у 01:04

Колоквијум у јулском испитном року 2021. године одржан је 8. јула.

1. задатак

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

Поставка

(7) У регистру PSW постоји неколико бита који се односе на прекиде. У неке од датих бита се може постављати вредност 1, могу се брисати, и може се уписивати вредност.

  1. Назначити све бите регистра PSW који се односе на прекиде и објаснити чему који бит намењен. Назначити на основу чега се одређује број појединих бита.
  2. За сваки од ових бита назначити у којим се ситуацијама њихова вредност мења (поставља, брише, уписује). Одговор дати табеларно.
Бити регистра PSW Мењање (постављање, брисање, уписивање) Ситуација у којој се мења

Решење

2. задатак

Поставка

(8) Адресирање регистара контролера улазно/излазних уређаја може да се реализује на два начина, па у зависности од тога како је то реализовано постоје (1) системи код којих је улазно/излазни адресни простор меморијски пресликан и (2) системи код којих су улазно/излазни и меморијски адресни простори раздвојени.

  1. Објаснити које се инструкције користе за упис и читање регистара контролера улазно/излазних уређаја у случајевима (1) и (2).
  2. Објаснити како у случајевима (1) и (2) контролери меморије и улазно/излазних уређаја утврђују ко од њих треба као слуга да реализују[sic] циклус на магистрали инициран од стране процесора као газде.

Решење

    • (1) STORE, LOAD;
    • (2) OUT, IN
    • (1) Само на основу бита адресе.
    • (2) На основу бита адресе и сигнала .

3. задатак

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

Поставка

(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 бита се у меморију смештају тако да се на нижу локацију смешта нижи бајт. Приступ (упис/читање) до једног бајта податка траје један циклус на магистрали. Приступ (упис/читање) до два бајта податка почев од меморијске локације са парном адресом траје један циклус на магистрали, а почев од непарне адресе траје две циклуса на магистрали. Фаза читања инструкције започиње увек читањем једног бајта - прог бајта инструкције. На основу првог бајта инструкције, процесор зна колика је дужина инструкције и може да оптимизује број циклуса на магистрали, тако да у наставку довлачења инструкције може, али не мора, да чита инструкцију бајт по бајт.

  1. Навести секвенцу садржаја на адресној магистрали, магистрали података и контролној магистрали за сваки циклус на магистрали при извршавању главног програма и прекидне рутине. Приликом скока у прекидну рутину на стеку се чувају 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).
  2. Детаљно нацртати како би се повезали модули M0 и M1 на задату магистралу. Повезивање процесора на магистралу није потребно цртати. Означити све ширине сигнала.
  3. Колико је релативно убрзање извршавања дате секвенце инструкција под а) на задатој архитектури магистрале и процесора (архитектура А), у односу да магистрала и процесор подржавају само циклусе уписа и читања од једног бајта (архитектура Б)?

Резултат дати као: број циклуса (архитектура А)/број циклуса (архитектура Б)

Табела 3: Заглавље решења дела под а.
Рб A15..0 D15..8 D7..0 RD WR W PC IR23:16 IR15:8 IR7:0 TMP15..0 ACC SP Коментар

Решење

  1. Решење дато у табели испод.
  2. НЕДОСТАЈЕ
  3. Како архитектура А за секвенцу инструкција из дела под а користи двобајтно читање 6 пута и завршава дату секвенцу са 20 читања, закључујемо да би архитектури Б требало 26 читања. Резултат је 20/26.
Табела 4: решење дела под а.
Рб 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)