ОРТ2/К2 2023

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
Овај рок није решен. Помозите SI Wiki тако што ћете га решити.

Други колоквијум 2023. године одржан је 10.12.2023. Радило се 90 минута. На овом К2 је дошло до промене, јер за разлику од претходних где су се тражиле само фаза адресирања и извршавања, овде су долазиле у обзир и фазе учитавања инструкције и прекида. Видећете на претходним роковима да ни један процесор није имао могућност обраде прекида.

Поставка

Посматра се део рачунара који чине меморија и процесор. Меморија је капацитета 2^8 бајтова. Ширина меморијске речи је 1 бајт. Процесорје са једноадресним форматом инструкција. Подаци су дужине 2 бајта и заузимају две суседне меморијске локације, при чему се млађи бајт налази на вишој, а старији бајт на нижој адреси. У процесору постоји регистар програмског бројача РС дужине 1 бајт, адресни регистар меморије MАR дужине 1 бајт, прихватни регистар податка меморије MDR 1 бајт, прихватни регистар инструкције IR дужине З бајта, акумулатор А дужине 2 бајта, прихватни регистар податка В дужине 2 бајта, регистри опште намене RО до RЗ дужине 2 бајта, програмска статусна реч PSW дужине І бајт, указивачна врх стека SP дужине 1 бајт, регистар броја улаза у табелу са адресама прекидних рутина BRU дужине 4 бита, указивач на табелу са адресама прекидних рутина IVTP дужине 1 бајт. Сви регистри имају операцију паралелног уписа. Регистри РС, MАR, SР и сви регистри опште намене имају операцију инкрементирања. Регистар SР има операцију декрементирања. У пропесору постоји и аритметичко-логичка јединица ALU која обавља све потребне аритметичке, логичке и померачке операције. На први улаз АLU могу се довести регистри А и IVRP. На други улаз АLU могу се довести регистри В и BRU. Инструкције су дужине 1, 2 или З бајта. Инструкције скока су инструкција условног скока уколико се десио пренос (ВС) и инструкција безусловног скока на потпрограм (JSR). Бит IR23 има вредност О за инструкције скока. Бит IR22 има вредност О за инструкције условног скока, односно вредност 1 за инструкције безусловног скока. Битови IR21.20 означавају редни број инструкције. Инструкција ВС реализује се као релативни скок у односу на тренутну вредност програмскогбројача РС. Битови ІR23.20 представљају код операције којије 0000. Битови IR19.16 се не користе. Битови IR15.8 представљају померај који је 8-бигна целобројна величина са знаком. Инструкција је дужине 2 бајта. Инструкција JSR се реализује као апсолутни скок. Битови IR23.20 представљају код операције који је 0100. Битови IR19.16 се не користе. Битови IR15.8 представљају адресу скока. Инструкција је дужине 2 бајта. Безадресне инструкције су инструкција повратка из потпрограма (RTS) и инструкција повратка из прекидне рутине (RТI). Бит ІR23 има вредност 1 за безадресне инструкције. Битови ІR22.20 означавају редни број инструкције. Битови ІR23.20 представљају код операције и редом су 1000 и 1001 за инструкције RTS и RTI. Битови IR19.16 се не користе. Инструкције су дужине 1 бајт. Адресне инструкције су инструкција преноса у акумулатор (LD), инструкција преноса из акумулатора (ST) аритметичка инструкција сабирања (АDD), логичка инструкција екслузивног или (XОR), померачка инструкција ротирања удесно за једно место (ROR) и инструкција безусловног скока на срачунату адресу (JADR). У случају да се наиђе на комбинацију операција са неким адресирањем са којим та операција неможе да се изврши, такве инструкције треба да буду без дејства. Инструкција ROR резултат померања смешта у регистар А. Бит ІR23 има вредност 1 за адресне инструкције. Битови ІR22.20 означавају редни број инструкције. Битови ІR23.20 представљају код операције и редом су 1010, 1011, 1100, 1101, 1110 и 1111 за инструкције LD, ST, ADD, XOR, ROR .JADR. Дужина инструкција зависи од начина адресирања. Начини адресирања су регистарско директно адресирање (regdir), меморијско индиректно адресирање (memind), PC релативно адресирање са померајем (perelpom) непосредно адресирање (immed). Битови IR19.18 представљају начин адресирања редом су 00, 01, 10 и 11 за алресирања regdir, memind, pcrelpom, immed. Код регистарских адресирања битови IR17.16 користе - за адресирањеј једног регистра опште намене R0 до R3, док се код осталих начина адресирања ови битови не користе. Код адресирања са померајем битови IR15.8 представљају померај који је 8-битна целобројна величина са знаком. Код меморијских адресирања битови IR15.8 представљају адресу меморијске локације. Код непосредног адресирања други и трећи бајт инструкције садрже 16 битни податак. Инструкције су дужине 1, 2 или 3 бајта. Стек расте према нижим меморијским локацијама, а регистар SР указује на последњу заузету меморијску локацију. Захтеви за прекид долазе од 16 улазно-излазних уређаја по линијама означеним од О до 15. По линији О стиже захтев за прекид најнижег, а по линији 15 највишег приоритета. Број линије највишег приоритета по којојје стигао захтев за прекид налази се у бинарном облику у регистру BRU. Адресе прекидних рутина 16 улазно-излазних уређаја који по линијама означеним од 0 до 15 шаљу захтеве за прекид налазе се улазима 0 до 15 табеле са адресама прекидних рутина. Садржај регистра BRU представља број улаза у табелу са адресама прекидних рутина. Почетна адреса табеле са адресама прекидних рутина се налази у регистру IVТР. У оквиру хардверског дела опслуживања захтева за прекид на стек са стављају само регистри PC и PSW.

  1. Написати изразе за генерисање сигнала логичког услова операције XOR, сигнала начина адресирања, pсrеlроm и све изразе за генерисање сигнала дужина инструкција. (3)
  2. Нацртати дијаграм тока фазе формирања адресе и читања операнда. (5)
  3. Нацртати дијаграм тока фазе извршавања операције. (10)
  4. Нацртати дијаграм тока фазе опслуживања прекида. (2)