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

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
м (sub->sup)
м (Nerešeno)
Ред 1: Ред 1:
{{tocright}}
{{tocright}}
{{нерешено}}


== Колоквијум 2 ==
== Колоквијум 2 ==

Верзија на датум 27. јун 2021. у 19:45

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

Колоквијум 2

Посматра се део рачунара који чине меморија и процесор. Меморија је капацитета 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, 3 или 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. Нацртати дијаграм тока фаза формирања адресе и читања операнда и фазе извршавање операције.

Колоквијум 3

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

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

Битови 7, 6 и 5 првог бајта инструкције је 000 за све инструкције скока. Код инструкције условног скока бит 4 првог бајта инструкције је 0, док код инструкција безусловног скока бит 4 првог бајта инструкције је 1. Инструкција условног скока је инструкција условног скока уколико је резултат негативан (BN) и инструкције безусловног скока су инструкција безусловног скока (JMP) и инструкција скока на потпрограм JSR. Битовима 3 до 0 првог бајта инструкције специфицира се код операције и на основу тога су за инструкције BN, JMP и JSR усвојени кодови операције 00000000, 00010000 и 00010001, респективно. Инструкције JMP и JSR се реализују као апсолутни скокови, при чему је адреса дата другим и трећим бајтом инструкције. Дужина инструкција је 3 бајта. Инструкција BN се реализује као релативни скок у односу на текућу вредност програмског бројача PC, а померај је 8 битна целобројна величина са знаком дата другим бајтом инструкције. Дужина инструкције је 2 бајта.

Битови 7, 6 и 5 првог бајта инструкције је 001 за све безадресне инструкције. Безадресне инструкције су инструкције стављања садржаја акумулатора на стек (PUSH), пуњења акумулатора садржајем са стека (POP) и инструкција комплементирања садржаја акумулатора (NOT). Битовима 4 до 0 првог бајта инструкције специфира се код операције за безадресне инструкције. На основу тога су за инструкције PUSH, POP и NOT усвојени кодови операција 00100000, 00100001 и 00100010, респективно. Дужина инструкција је 1 бајт.

Битови 7, 6 и 5 првог бајта инструкције имају вредности од 010 до 111 за адресне инструкције. Адресне инструкције су инструкција преноса у акумулатор (LD), инструкција преноса из акумулатора (ST), инструкција аритметичког померања удесно за једно место (ASR), инструкција упоређивања акумулатора са операндом (CMP), инструкција сабирања (ADD) и инструкција одузимања (SUB). На основу тога су за инструкције LD, ST, ASR, CMP, ADD и SUB усвојени кодови операција 010, 011, 100, 101, 110 и 111, респективно. Дужина инструкција је 2 или 3 бајта и зависи од специфичног начина адресирања.

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

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

  1. Пројектовати део операционе јединице процесора (фазе: FETCH, ADDR и EXEC) која је потребна да се изврши инструкција CMP +(R0). Цртати само неопходне компоненте које су потребне за извршавање наведене инструкције.
  2. Дати су почетни садржаји регистара и индикатора: PC=1000h, SP=2000h, ACC=FFF7h, R0=0000h, R1=0001h, R2=0002h, R3=0003h, N=1, Z=0, V=0 и C=0. Индикатори статусне речи на које инструкција не утиче треба да остану непромењени. Извршити 7 сукцесивних наредби и за сваку наредбу одредити следеће: у фази читања инструкције - меморијске адресе са којих је прочитана инструкција, садржај регистра IR, инструкцију која је прочитана и нови садржај регистра PC; у фази одређивања адресе операнда и читања операнда - меморијске адресе са којих је прочитана адреса операнда, меморијске адресе са којих је прочитан операнд, вредност операнда и нови садржај регистара опште намене који су у овој фази промењени; у фази извршавања операције - меморијске адресе којима се у овој фази приступа, садржај акумулатора A и индикатора N, Z, V и C након извршавања инструкције и нови садржај регистара и меморијских локација који су у овој фази промењени. Резултате представити у табелама 1, 2 и 3 формулара.