ORT2/K2 2023

Izvor: SI Wiki
< ОРТ2
Datum izmene: 11. decembar 2023. u 17:24; autor: Aleksa (razgovor | doprinosi) (Obrisani komentari, formatiranje)
(razl) ← Starija izmena | Trenutna verzija (razl) | Novija izmena → (razl)
Pređi na navigaciju Pređi na pretragu
Ovaj rok nije rešen. Pomozite SI Wiki tako što ćete ga rešiti.

Drugi kolokvijum 2023. godine održan je 10.12.2023. Radilo se 90 minuta. Na ovom K2 je došlo do promene, jer za razliku od prethodnih gde su se tražile samo faza adresiranja i izvršavanja, ovde su dolazile u obzir i faze učitavanja instrukcije i prekida. Videćete na prethodnim rokovima da ni jedan procesor nije imao mogućnost obrade prekida.

Postavka

Posmatra se deo računara koji čine memorija i procesor. Memorija je kapaciteta 2^8 bajtova. Širina memorijske reči je 1 bajt. Procesorje sa jednoadresnim formatom instrukcija. Podaci su dužine 2 bajta i zauzimaju dve susedne memorijske lokacije, pri čemu se mlađi bajt nalazi na višoj, a stariji bajt na nižoj adresi. U procesoru postoji registar programskog brojača RS dužine 1 bajt, adresni registar memorije MAR dužine 1 bajt, prihvatni registar podatka memorije MDR 1 bajt, prihvatni registar instrukcije IR dužine Z bajta, akumulator A dužine 2 bajta, prihvatni registar podatka V dužine 2 bajta, registri opšte namene RO do RZ dužine 2 bajta, programska statusna reč PSW dužine І bajt, ukazivačna vrh steka SP dužine 1 bajt, registar broja ulaza u tabelu sa adresama prekidnih rutina BRU dužine 4 bita, ukazivač na tabelu sa adresama prekidnih rutina IVTP dužine 1 bajt. Svi registri imaju operaciju paralelnog upisa. Registri RS, MAR, SR i svi registri opšte namene imaju operaciju inkrementiranja. Registar SR ima operaciju dekrementiranja. U propesoru postoji i aritmetičko-logička jedinica ALU koja obavlja sve potrebne aritmetičke, logičke i pomeračke operacije. Na prvi ulaz ALU mogu se dovesti registri A i IVRP. Na drugi ulaz ALU mogu se dovesti registri V i BRU. Instrukcije su dužine 1, 2 ili Z bajta. Instrukcije skoka su instrukcija uslovnog skoka ukoliko se desio prenos (VS) i instrukcija bezuslovnog skoka na potprogram (JSR). Bit IR23 ima vrednost O za instrukcije skoka. Bit IR22 ima vrednost O za instrukcije uslovnog skoka, odnosno vrednost 1 za instrukcije bezuslovnog skoka. Bitovi IR21.20 označavaju redni broj instrukcije. Instrukcija VS realizuje se kao relativni skok u odnosu na trenutnu vrednost programskogbrojača RS. Bitovi ІR23.20 predstavljaju kod operacije kojije 0000. Bitovi IR19.16 se ne koriste. Bitovi IR15.8 predstavljaju pomeraj koji je 8-bigna celobrojna veličina sa znakom. Instrukcija je dužine 2 bajta. Instrukcija JSR se realizuje kao apsolutni skok. Bitovi IR23.20 predstavljaju kod operacije koji je 0100. Bitovi IR19.16 se ne koriste. Bitovi IR15.8 predstavljaju adresu skoka. Instrukcija je dužine 2 bajta. Bezadresne instrukcije su instrukcija povratka iz potprograma (RTS) i instrukcija povratka iz prekidne rutine (RTI). Bit ІR23 ima vrednost 1 za bezadresne instrukcije. Bitovi ІR22.20 označavaju redni broj instrukcije. Bitovi ІR23.20 predstavljaju kod operacije i redom su 1000 i 1001 za instrukcije RTS i RTI. Bitovi IR19.16 se ne koriste. Instrukcije su dužine 1 bajt. Adresne instrukcije su instrukcija prenosa u akumulator (LD), instrukcija prenosa iz akumulatora (ST) aritmetička instrukcija sabiranja (ADD), logička instrukcija eksluzivnog ili (XOR), pomeračka instrukcija rotiranja udesno za jedno mesto (ROR) i instrukcija bezuslovnog skoka na sračunatu adresu (JADR). U slučaju da se naiđe na kombinaciju operacija sa nekim adresiranjem sa kojim ta operacija nemože da se izvrši, takve instrukcije treba da budu bez dejstva. Instrukcija ROR rezultat pomeranja smešta u registar A. Bit ІR23 ima vrednost 1 za adresne instrukcije. Bitovi ІR22.20 označavaju redni broj instrukcije. Bitovi ІR23.20 predstavljaju kod operacije i redom su 1010, 1011, 1100, 1101, 1110 i 1111 za instrukcije LD, ST, ADD, XOR, ROR .JADR. Dužina instrukcija zavisi od načina adresiranja. Načini adresiranja su registarsko direktno adresiranje (regdir), memorijsko indirektno adresiranje (memind), PC relativno adresiranje sa pomerajem (perelpom) neposredno adresiranje (immed). Bitovi IR19.18 predstavljaju način adresiranja redom su 00, 01, 10 i 11 za alresiranja regdir, memind, pcrelpom, immed. Kod registarskih adresiranja bitovi IR17.16 koriste - za adresiranjej jednog registra opšte namene R0 do R3, dok se kod ostalih načina adresiranja ovi bitovi ne koriste. Kod adresiranja sa pomerajem bitovi IR15.8 predstavljaju pomeraj koji je 8-bitna celobrojna veličina sa znakom. Kod memorijskih adresiranja bitovi IR15.8 predstavljaju adresu memorijske lokacije. Kod neposrednog adresiranja drugi i treći bajt instrukcije sadrže 16 bitni podatak. Instrukcije su dužine 1, 2 ili 3 bajta. Stek raste prema nižim memorijskim lokacijama, a registar SR ukazuje na poslednju zauzetu memorijsku lokaciju. Zahtevi za prekid dolaze od 16 ulazno-izlaznih uređaja po linijama označenim od O do 15. Po liniji O stiže zahtev za prekid najnižeg, a po liniji 15 najvišeg prioriteta. Broj linije najvišeg prioriteta po kojojje stigao zahtev za prekid nalazi se u binarnom obliku u registru BRU. Adrese prekidnih rutina 16 ulazno-izlaznih uređaja koji po linijama označenim od 0 do 15 šalju zahteve za prekid nalaze se ulazima 0 do 15 tabele sa adresama prekidnih rutina. Sadržaj registra BRU predstavlja broj ulaza u tabelu sa adresama prekidnih rutina. Početna adresa tabele sa adresama prekidnih rutina se nalazi u registru IVTR. U okviru hardverskog dela opsluživanja zahteva za prekid na stek sa stavljaju samo registri PC i PSW.

  1. Napisati izraze za generisanje signala logičkog uslova operacije XOR, signala načina adresiranja, psrelrom i sve izraze za generisanje signala dužina instrukcija. (3)
  2. Nacrtati dijagram toka faze formiranja adrese i čitanja operanda. (5)
  3. Nacrtati dijagram toka faze izvršavanja operacije. (10)
  4. Nacrtati dijagram toka faze opsluživanja prekida. (2)