ОРТ2/К2 Фебруар 2021 — разлика између измена

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
Нема описа измене
м (Ispravke u postavci)
 
(Није приказано 8 међуизмена 2 корисника)
Ред 3: Ред 3:


== Поставка ==
== Поставка ==
Посматра се део рачунара који чине меморија и процесор. Меморија је капацитета 2<sup>16</sup> бајтова. Ширина меморијске речи је 1 бајт. Процесор је са једноадресним форматом инструкција. Адресе и подаци су дужине 16 бита и заузимају по две суседне меморијске локације, при чему се старији бајт налази на вишој, а млађи бајт на нижој адреси.
Посматра се део рачунара који чине меморија и процесор. Меморија је капацитета 2<sup>16</sup> бајтова. Ширина меморијске речи је 1 бајт. Процесор је са једноадресним форматом инструкција. Подаци су дужине 8 бита без знака, а адресе дужине 16 бита и заузимају по две суседне меморијске локације, при чему се старији бајт налази на вишој, а млађи бајт на нижој адреси.


У процесору постоји регистар програмског бројача PC дужине 2 бајта, адресни регистар меморије MAR дужине 2 бајта, прихватни регистар податка меморије MDR дужине 1 бајт, прихватни регистар инструкције IR дужине 4 бајта, акумулатор A дужине 1 бајт, прихватни регистар податка B дужине 1 бајт, регистри опште намене R0 до R15 дужине 2 бајта, програмска статусна реч PSW дужине 1 бајт. Инструкције су дужине 1, 2, 3 или 4 бајта.
У процесору постоји регистар програмског бројача PC дужине 2 бајта, адресни регистар меморије MAR дужине 2 бајта, прихватни регистар податка меморије MDR дужине 1 бајт, прихватни регистар инструкције IR дужине 4 бајта, акумулатор A дужине 1 бајт, прихватни регистар податка B дужине 1 бајт, регистри опште намене R0 до R15 дужине 2 бајта, програмска статусна реч PSW дужине 1 бајт. Инструкције су дужине 1, 2, 3 или 4 бајта.
Ред 11: Ред 11:
Битови 7 и 6 првог бајта инструкције су 00 за све инструкције скока. Код инструкција условног скока бит 5 првог бајта инструкције је 0, док код инструкција безусловног скока бит 5 првог бајта инструкције је 1. Инструкција условног скока је инструкција условног скока уколико је резултат нула (JZ), а инструкције безусловног скока су инструкција безусловног скока (JMP) и инструкција скока на потпрограм (JSR). Битовима 4 до 0 првог бајта инструкције специфицира се код операције и на основу тога су за инструкције JZ, JMP и JSR усвојени кодови операције 00000000, 00100000 и 00100001, респективно. Инструкције JZ, JMP и JSR се реализују као апсолутни скокови, при чему је адреса дата другим и трећим бајтом инструкције. Дужина инструкција је 3 бајта.
Битови 7 и 6 првог бајта инструкције су 00 за све инструкције скока. Код инструкција условног скока бит 5 првог бајта инструкције је 0, док код инструкција безусловног скока бит 5 првог бајта инструкције је 1. Инструкција условног скока је инструкција условног скока уколико је резултат нула (JZ), а инструкције безусловног скока су инструкција безусловног скока (JMP) и инструкција скока на потпрограм (JSR). Битовима 4 до 0 првог бајта инструкције специфицира се код операције и на основу тога су за инструкције JZ, JMP и JSR усвојени кодови операције 00000000, 00100000 и 00100001, респективно. Инструкције JZ, JMP и JSR се реализују као апсолутни скокови, при чему је адреса дата другим и трећим бајтом инструкције. Дужина инструкција је 3 бајта.


Бит 7 И 6 првог бајта инструкције су 1 за све адресне и безадресне инструкције.
Бит 7 и 6 првог бајта инструкције су 11 за све адресне и безадресне инструкције.


Бит 5 првог бајта инструкције је 0 за безадресне инструкције. Безадресне инструкције су инструкције стављања садржаја акумулатора на стек (PUSH), пуњења акумулатора садржајем са стека (POP), инкрементирање акумулатора (DEC) и повратка из потпорграма (RTS). Битовима 4 до 0 првог бајта инструкције специфицира се код операције за безадресне инструкције. На основу тога су за инструкције PUSH, POP, INC и RTS усвојени кодови операција 11000000, 11000001, 11000010 и 11000011, респективно. Дужина инструкција је 1 бајт.
Бит 5 првог бајта инструкције је 0 за безадресне инструкције. Безадресне инструкције су инструкције стављања садржаја акумулатора на стек (PUSH), пуњења акумулатора садржајем са стека (POP), инкрементирање акумулатора (INC) и повратка из потпрограма (RTS). Битовима 4 до 0 првог бајта инструкције специфицира се код операције за безадресне инструкције. На основу тога су за инструкције PUSH, POP, INC и RTS усвојени кодови операција 11000000, 11000001, 11000010 и 11000011, респективно. Дужина инструкција је 1 бајт.


Бит 5 првог бајта инструкције je 1 за адресне инструкције. Адресне инструкције су инструкција преноса у акумулатор (LD), инструкција преноса из акумулатора (ST), логичка инструкција "и" (AND), инструкција аритметичког померања операнда једно место удесно која смешта резултат у акумулатор (ASR) и инструкција безусловног скока на срачунату адресу (JADR). Битовима 4 до 0 првог бајта инструкције специфицира се код операције за адресне инструкције. На основу тога су за инструкције LD, ST, OR, ROR и JADR усвојени кодови операција 11100000, 11100001, 11100010, 11100011 и 11100100 респективно. Дужина инструкција је 2 или 4 бајта и зависи од специфицираног начина адресирања.
Бит 5 првог бајта инструкције је 1 за адресне инструкције. Адресне инструкције су инструкција преноса у акумулатор (LD), инструкција преноса из акумулатора (ST), логичка инструкција "и" (AND), инструкција аритметичког померања операнда једно место удесно која смешта резултат у акумулатор (ASR) и инструкција безусловног скока на срачунату адресу (JADR). Битовима 4 до 0 првог бајта инструкције специфицира се код операције за адресне инструкције. На основу тога су за инструкције LD, ST, AND, ASR и JADR усвојени кодови операција 11100000, 11100001, 11100010, 11100011 и 11100100 респективно. Дужина инструкција је 2 или 4 бајта и зависи од специфицираног начина адресирања.


Начини адресирања су специфицирани битовима 7, 6 и 5 другог бајта инструкције и то на следећи начин: 000-регистратко индиректно адресирање (regind), 001-регистарско директно адресирање (regdir), 010-меморијско индиректно адресирање (memind), 011-релативно адресирање са померајем (pcrel) и 100-непосредно адресирање (immed). Код регистарског директног и регистарског индиректног адресирања користи неке од регистара опште намене R0 до R15 специфициране битовима од 4 до 1 другог бајта. Битови 0 другог бајта инструкције се не користи. Дужина инструкција је 2 бајта. Код меморисјког индиректног адресираеа 16 битна адреса меморијске локазије је дата трећим у четвртим бајтом инструкције. Битови 4 до 0 другог бајта интрукције се не користе. Дужина инструкције је 4 бајта. Код релативног адресирања са померајем трећи и четврти бајт инструкције садрже 16 битни померај који је дат као целобројна величина без знака. Битови 4 до 0 другог бајта инструкције се не користе. Дужина инструкција је 4 бајта. Код непосредног адресирања 8 битни операнд дат је трећим бајтом инструкције. Битови 4 до 0 другог бајта инструкције се не користе. Дужина инструкција је 3 бајта.
Начини адресирања су специфицирани битовима 7, 6 и 5 другог бајта инструкције и то на следећи начин: 000-регистарско индиректно адресирање (regind), 001-регистарско директно адресирање (regdir), 010-меморијско индиректно адресирање (memind), 011-релативно адресирање са померајем (pcrel) и 100-непосредно адресирање (immed). Код регистарског директног и регистарског индиректног адресирања користи неке од регистара опште намене R0 до R15 специфицираних битовима од 4 до 1 другог бајта. Бит 0 другог бајта инструкције се не користи. Дужина инструкција је 2 бајта. Код меморијског индиректног адресирања 16 битна адреса меморијске локације је дата трећим и четвртим бајтом инструкције. Битови 4 до 0 другог бајта интрукције се не користе. Дужина инструкције је 4 бајта. Код релативног адресирања са померајем трећи и четврти бајт инструкције садрже 16 битни померај који је дат као целобројна величина без знака. Битови 4 до 0 другог бајта инструкције се не користе. Дужина инструкција је 4 бајта. Код непосредног адресирања 8 битни операнд дат је трећим бајтом инструкције. Битови 4 до 0 другог бајта инструкције се не користе. Дужина инструкција је 3 бајта.


Стек расте према нижим меморијским локацијама, а регистар SP указује на последњу заузету меморијску локацију. Процесор нема могућност обраде прекида.
Стек расте према нижим меморијским локацијама, а регистар SP указује на последњу заузету меморијску локацију. Процесор нема могућност обраде прекида.


Процесор нема подршку за детектовање грешке у адресирању у првој фази, већ тако причитане инструкције игноришу у осталим фазама.
Процесор нема подршку за детектовање грешке у адресирању у првој фази, већ тако прочитане инструкције игноришу у осталим фазама.


Први корак сваке фазе сматрати да се означава са FETCH, ADD, EXEC.
Први корак сваке фазе сматрати да се означава са FETCH, ADDR, EXEC.


<div class="abc-list">
<div class="abc-list">
Ред 49: Ред 49:
<math> INC = IR_{31}IR_{30}\overline{IR_{29}}\overline{IR_{28}}\overline{IR_{27}}\overline{IR_{26}} IR_{25}\overline{IR_{24}}  </math>
<math> INC = IR_{31}IR_{30}\overline{IR_{29}}\overline{IR_{28}}\overline{IR_{27}}\overline{IR_{26}} IR_{25}\overline{IR_{24}}  </math>


<math> AND = IR_{31}IR_{30}IR_{29}\overline{IR_{28}}\overline{IR_{27}} IR_{26} IR_{25}\overline{IR_{24}}  </math>
<math> AND = IR_{31}IR_{30}IR_{29}\overline{IR_{28}}\overline{IR_{27}}\overline{IR_{26}} IR_{25}\overline{IR_{24}}  </math>


<math> ASR = IR_{31}IR_{30}IR_{29}\overline{IR_{28}}\overline{IR_{27}} IR_{26} IR_{25}IR_{24}  </math>
<math> ASR = IR_{31}IR_{30}IR_{29}\overline{IR_{28}}\overline{IR_{27}}\overline{IR_{26}} IR_{25}IR_{24}  </math>


=== Дијаграми тока ===
=== Дијаграми тока ===
==== ADDR ====
==== ADDR ====
[[Датотека:ORT2 K2 Februar 2021 ADDR.svg|оквир|средина|ADDR]]
[[Датотека:ORT2 K2 Februar 2021 ADDR.svg|оквир|центар|ADDR]]


==== EXEC ====
==== EXEC ====
[[Датотека:ORT2 K2 Februar 2021 EXEC.svg|оквир|средина|EXEC]]
[[Датотека:ORT2 K2 Februar 2021 EXEC.svg|оквир|центар|EXEC]]


[[Категорија:ОРТ2]]
[[Категорија:ОРТ2]]
[[Категорија:Рокови]]
[[Категорија:Рокови]]

Тренутна верзија на датум 12. децембар 2021. у 18:38

К2 2020 је одржан у фебруарском испитном року 2021.

Поставка

Посматра се део рачунара који чине меморија и процесор. Меморија је капацитета 216 бајтова. Ширина меморијске речи је 1 бајт. Процесор је са једноадресним форматом инструкција. Подаци су дужине 8 бита без знака, а адресе дужине 16 бита и заузимају по две суседне меморијске локације, при чему се старији бајт налази на вишој, а млађи бајт на нижој адреси.

У процесору постоји регистар програмског бројача PC дужине 2 бајта, адресни регистар меморије MAR дужине 2 бајта, прихватни регистар податка меморије MDR дужине 1 бајт, прихватни регистар инструкције IR дужине 4 бајта, акумулатор A дужине 1 бајт, прихватни регистар податка B дужине 1 бајт, регистри опште намене R0 до R15 дужине 2 бајта, програмска статусна реч PSW дужине 1 бајт. Инструкције су дужине 1, 2, 3 или 4 бајта.

Приликом читања података из регистра опште намене, узима се нижих 8 бита.

Битови 7 и 6 првог бајта инструкције су 00 за све инструкције скока. Код инструкција условног скока бит 5 првог бајта инструкције је 0, док код инструкција безусловног скока бит 5 првог бајта инструкције је 1. Инструкција условног скока је инструкција условног скока уколико је резултат нула (JZ), а инструкције безусловног скока су инструкција безусловног скока (JMP) и инструкција скока на потпрограм (JSR). Битовима 4 до 0 првог бајта инструкције специфицира се код операције и на основу тога су за инструкције JZ, JMP и JSR усвојени кодови операције 00000000, 00100000 и 00100001, респективно. Инструкције JZ, JMP и JSR се реализују као апсолутни скокови, при чему је адреса дата другим и трећим бајтом инструкције. Дужина инструкција је 3 бајта.

Бит 7 и 6 првог бајта инструкције су 11 за све адресне и безадресне инструкције.

Бит 5 првог бајта инструкције је 0 за безадресне инструкције. Безадресне инструкције су инструкције стављања садржаја акумулатора на стек (PUSH), пуњења акумулатора садржајем са стека (POP), инкрементирање акумулатора (INC) и повратка из потпрограма (RTS). Битовима 4 до 0 првог бајта инструкције специфицира се код операције за безадресне инструкције. На основу тога су за инструкције PUSH, POP, INC и RTS усвојени кодови операција 11000000, 11000001, 11000010 и 11000011, респективно. Дужина инструкција је 1 бајт.

Бит 5 првог бајта инструкције је 1 за адресне инструкције. Адресне инструкције су инструкција преноса у акумулатор (LD), инструкција преноса из акумулатора (ST), логичка инструкција "и" (AND), инструкција аритметичког померања операнда једно место удесно која смешта резултат у акумулатор (ASR) и инструкција безусловног скока на срачунату адресу (JADR). Битовима 4 до 0 првог бајта инструкције специфицира се код операције за адресне инструкције. На основу тога су за инструкције LD, ST, AND, ASR и JADR усвојени кодови операција 11100000, 11100001, 11100010, 11100011 и 11100100 респективно. Дужина инструкција је 2 или 4 бајта и зависи од специфицираног начина адресирања.

Начини адресирања су специфицирани битовима 7, 6 и 5 другог бајта инструкције и то на следећи начин: 000-регистарско индиректно адресирање (regind), 001-регистарско директно адресирање (regdir), 010-меморијско индиректно адресирање (memind), 011-релативно адресирање са померајем (pcrel) и 100-непосредно адресирање (immed). Код регистарског директног и регистарског индиректног адресирања користи неке од регистара опште намене R0 до R15 специфицираних битовима од 4 до 1 другог бајта. Бит 0 другог бајта инструкције се не користи. Дужина инструкција је 2 бајта. Код меморијског индиректног адресирања 16 битна адреса меморијске локације је дата трећим и четвртим бајтом инструкције. Битови 4 до 0 другог бајта интрукције се не користе. Дужина инструкције је 4 бајта. Код релативног адресирања са померајем трећи и четврти бајт инструкције садрже 16 битни померај који је дат као целобројна величина без знака. Битови 4 до 0 другог бајта инструкције се не користе. Дужина инструкција је 4 бајта. Код непосредног адресирања 8 битни операнд дат је трећим бајтом инструкције. Битови 4 до 0 другог бајта инструкције се не користе. Дужина инструкција је 3 бајта.

Стек расте према нижим меморијским локацијама, а регистар SP указује на последњу заузету меморијску локацију. Процесор нема могућност обраде прекида.

Процесор нема подршку за детектовање грешке у адресирању у првој фази, већ тако прочитане инструкције игноришу у осталим фазама.

Први корак сваке фазе сматрати да се означава са FETCH, ADDR, EXEC.

  1. Написати изразе за генерисање сигнала свих начина адресирања. IR регистар се попуњава од виших ка нижим битовима.
  2. Написати изразе за генерисање сигнала операција и то само за INC, AND и ASR.
  3. Нацртати дијаграм тока фазе формирања адресе и читања операнда и фазе извршавање[sic] инструкције.

Решење

Кодови операција

/

Сигнали

Дијаграми тока

ADDR

ADDR

EXEC

EXEC