Архитектура рачунара/Август 2020

Извор: SI Wiki
< Архитектура рачунара
Датум измене: 1. март 2022. у 14:21; аутор: Aleksa (разговор | доприноси) (још прекуцавам само привремено чување)
(разл) ← Старија измена | Тренутна верзија (разл) | Новија измена → (разл)
Пређи на навигацију Пређи на претрагу

1. задатак

Поставка

[5п] У посматраном рачунарском систему процесор има један пар линија којима улазно/излазни уређаји могу процесору да шаљу захтеве за прекид и од процесора добијају сигнале потврда. У датом систему има 4 улазно/излазних уређаја које треба некако повезати помоћу тог пара линија на процесор користећи посебна уређај који се назива контролер прекида тако да се омогући за сваки улазно/излазни уређај скок на одговарајућу прекидну рутину векторисаним механизмом прекида. Нацртати као та 4 узлазно/излазна уређаја треба повезати на процесор користећи контролер прекида и пар линија.

2. задатак

Поставка

[5п]

  1. Нацртати структуру контролера улазно/излазне периферије са директним приступом меморији.
  2. Објаснити којим битовима и у којим регистрима се задају могући режими рада контролера и добијају информације како се добија пренос података.
  3. Објаснити на који начин је реализовано држање магистрале код блоковског трансфера података.

3. задатак

Поставка

[5п] Написати оптималну секвенцу инструкција која одговара следећој стандардној библиотечкој C функцији која проналази прво појављивање карактера c у првих n бајта низа str;

void *memchr(const void *str, int c, int n);

Функција као резултат враћа показивач на пронађени карактер или 0 у случају да карактер није пронађен. Формати инструкција и података су као у задатку 2. На располагању стоје и сложене инструкције.

4. задатак

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

Поставка

[25п] У рачунарском систему се налази једноадресни процесор, меморија и периферије PER0, PER1 до PERN. Сматрати да је[sic] број N припада скупу од 0h до FFh и да може да се користи као непосредна вредност у програму (#N). Све компоненте рачунара су повезане системском магистралом са 16 битном адресном и 16 битном магистралом података. Адресирање је на нивоу 16 битних речи. Сви подаци и адресе су ширине 16 бита. Улазно-излазни адресни простор и меморијски адресни простор су мапирани. Адресе релевантних регистара се формирају на следећи начин:

PERXX_CONTROL FXX0h
PERXX_STATUS FXX1h
PERXX_DATA FXX2h

где XX припада скупу од 0h до N. Нпр. за периферију PER5 адреса контролног, статусног и регистра података биле би F050h, F051h и F052h, респективно. У управљачким регистрима бит 0 је Start којим се дозвољава почетак операције, бит 1 одређују тип преноса података (1 - улаз (input), 0 - излаз (output)), бит 2 је Enable којим се дозвољава прекид, а у статусним регистрима бит 0 је Ready који сигнализира спремност контролера периферије. Написати главни програм, одговарајући потпрограм и прекидне рутине којима се обавља следећи пренос. Периферија PERN шаље бесконачан низ података који се смешта у кружни бафер величине 100h у меморију почев од адресе 1000h. Пријем података од периферије PERN престаје када се напуни бафер и почиње опет када се у истом ослободи простор. У паралели са примањем података са периферије PERN, из кружног бафера је потребно слати податке на периферије PER0 до PERN-1. Податке треба слати тако да све периферије приме текући податак пре слања следећег податка из бафера. Нпр. податак на адреси 1000h треба послати периферијама PER0 до PERN-1 пре слања података на адреси 1001h. Периферије PER0 до PERN-1 престају са радом када се испразан[sic] бафер, а почињу опет када се у истом појави нови податак. Примање података са периферије PERN реализовати коришћењем механизма прекида. Слање података са периферија PER0 до PERN-1 реализовати испитивањем бита спремности. За слање једног податка из бафера на периферију XX, XX припада скупу од 0 до N-1, потребно реализовати потпрограм

bool sendDataToPERX(int value, int x)

који кроз акумулатор враћа јединицу ако аргумент value јесте послат на периферију PERX, где аргумент x одговара редном броју периферије на коју се шаље податак. У супротном враћа нулу. Аргументи value и x се приликом позива потпрограма преноси[sic] путем стека и позивалац потпрограма је дужан да аргумент скине са стека након извршавања. Сматрати да су доступни регистри BP и SP приликом писања потпрограма. Процесор не поседује регистре опште намене. Стек расте од виших ка нижим локацијама, а SP указује на последњу заузету локацију. Дозвољено је користити додатне променљиве, али њихове називе треба писати описно и семантички исправно. Обавезно је писање концизних коментара над семантичким целинама