Arhitektura računara/Avgust 2020

Izvor: SI Wiki
< Архитектура рачунара
Datum izmene: 1. mart 2022. u 14:21; autor: Aleksa (razgovor | doprinosi) (још прекуцавам само привремено чување)
(razl) ← Starija izmena | Trenutna verzija (razl) | Novija izmena → (razl)
Pređi na navigaciju Pređi na pretragu

1. zadatak

Postavka

[5p] U posmatranom računarskom sistemu procesor ima jedan par linija kojima ulazno/izlazni uređaji mogu procesoru da šalju zahteve za prekid i od procesora dobijaju signale potvrda. U datom sistemu ima 4 ulazno/izlaznih uređaja koje treba nekako povezati pomoću tog para linija na procesor koristeći posebna uređaj koji se naziva kontroler prekida tako da se omogući za svaki ulazno/izlazni uređaj skok na odgovarajuću prekidnu rutinu vektorisanim mehanizmom prekida. Nacrtati kao ta 4 uzlazno/izlazna uređaja treba povezati na procesor koristeći kontroler prekida i par linija.

2. zadatak

Postavka

[5p]

  1. Nacrtati strukturu kontrolera ulazno/izlazne periferije sa direktnim pristupom memoriji.
  2. Objasniti kojim bitovima i u kojim registrima se zadaju mogući režimi rada kontrolera i dobijaju informacije kako se dobija prenos podataka.
  3. Objasniti na koji način je realizovano držanje magistrale kod blokovskog transfera podataka.

3. zadatak

Postavka

[5p] Napisati optimalnu sekvencu instrukcija koja odgovara sledećoj standardnoj bibliotečkoj C funkciji koja pronalazi prvo pojavljivanje karaktera c u prvih n bajta niza str;

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

Funkcija kao rezultat vraća pokazivač na pronađeni karakter ili 0 u slučaju da karakter nije pronađen. Formati instrukcija i podataka su kao u zadatku 2. Na raspolaganju stoje i složene instrukcije.

4. zadatak

Ovaj zadatak nije rešen. Pomozite SI Wiki tako što ćete ga rešiti.

Postavka

[25p] U računarskom sistemu se nalazi jednoadresni procesor, memorija i periferije PER0, PER1 do PERN. Smatrati da je[sic] broj N pripada skupu od 0h do FFh i da može da se koristi kao neposredna vrednost u programu (#N). Sve komponente računara su povezane sistemskom magistralom sa 16 bitnom adresnom i 16 bitnom magistralom podataka. Adresiranje je na nivou 16 bitnih reči. Svi podaci i adrese su širine 16 bita. Ulazno-izlazni adresni prostor i memorijski adresni prostor su mapirani. Adrese relevantnih registara se formiraju na sledeći način:

PERXX_CONTROL FXX0h
PERXX_STATUS FXX1h
PERXX_DATA FXX2h

gde XX pripada skupu od 0h do N. Npr. za periferiju PER5 adresa kontrolnog, statusnog i registra podataka bile bi F050h, F051h i F052h, respektivno. U upravljačkim registrima bit 0 je Start kojim se dozvoljava početak operacije, bit 1 određuju tip prenosa podataka (1 - ulaz (input), 0 - izlaz (output)), bit 2 je Enable kojim se dozvoljava prekid, a u statusnim registrima bit 0 je Ready koji signalizira spremnost kontrolera periferije. Napisati glavni program, odgovarajući potprogram i prekidne rutine kojima se obavlja sledeći prenos. Periferija PERN šalje beskonačan niz podataka koji se smešta u kružni bafer veličine 100h u memoriju počev od adrese 1000h. Prijem podataka od periferije PERN prestaje kada se napuni bafer i počinje opet kada se u istom oslobodi prostor. U paraleli sa primanjem podataka sa periferije PERN, iz kružnog bafera je potrebno slati podatke na periferije PER0 do PERN-1. Podatke treba slati tako da sve periferije prime tekući podatak pre slanja sledećeg podatka iz bafera. Npr. podatak na adresi 1000h treba poslati periferijama PER0 do PERN-1 pre slanja podataka na adresi 1001h. Periferije PER0 do PERN-1 prestaju sa radom kada se isprazan[sic] bafer, a počinju opet kada se u istom pojavi novi podatak. Primanje podataka sa periferije PERN realizovati korišćenjem mehanizma prekida. Slanje podataka sa periferija PER0 do PERN-1 realizovati ispitivanjem bita spremnosti. Za slanje jednog podatka iz bafera na periferiju XX, XX pripada skupu od 0 do N-1, potrebno realizovati potprogram

bool sendDataToPERX(int value, int x)

koji kroz akumulator vraća jedinicu ako argument value jeste poslat na periferiju PERX, gde argument x odgovara rednom broju periferije na koju se šalje podatak. U suprotnom vraća nulu. Argumenti value i x se prilikom poziva potprograma prenosi[sic] putem steka i pozivalac potprograma je dužan da argument skine sa steka nakon izvršavanja. Smatrati da su dostupni registri BP i SP prilikom pisanja potprograma. Procesor ne poseduje registre opšte namene. Stek raste od viših ka nižim lokacijama, a SP ukazuje na poslednju zauzetu lokaciju. Dozvoljeno je koristiti dodatne promenljive, ali njihove nazive treba pisati opisno i semantički ispravno. Obavezno je pisanje konciznih komentara nad semantičkim celinama