Avdeingfr ingeniørutdanning
Denne eksamen består av fire ppgaver. Det er sannsynig at ppgave vi tee rundt 10 prsent g at ppgave 2, 3 g 4 vi tee rundt 30 prsent hver. Dersm du finner ppgaveteksten ukar eer ufustendig, bør du ppyse m hviken tkning sm igger ti grunn fr din besvarese. Oppgave 1 (10 prsent) Du ska skrive et assemberprgram fr assemberen TASM. Du har gitt en macr esinn. Deme macren ber bruker m å gi et heta, eser inn dette hetaet g egger det i registeret ax. Macren frandrer ikke innhdet av andre registere enn ax. (Dette er at du trenger å vite m macren es inn. Du trenger ikke å vite hvrdan innmaten i macren ser ut.) Skrivet assemberprgram sm eser inn ta fra bruker ved å kae macren es inn. Innesningen av ta ska terminere når macren esinn egger O i registeret ax. Når prgramet terminerer ska det strste partaet bruker skrev inn, igge i registeret bx. (Husk at et parta er et ta sm er deeig på 2.) Oppgave 2 (30 prsent) Oppgave a Fim x. yg z sik at igningene under hder. (1 1)8 + (X)8 = (2222)8 2. (1111)16 + (Y}16 = (2222)16 3. (Hh + (1111)2 = (Z)2 Oppgave b Fi et heta n g X, X Xn sik at 35 = xn2n + + x121 + x2 hvr LO. X.'" 'Xn har verdien O eer. Oppgave c Finn t heta n g m g heta XO.X, Xn g Y, Y2,..., Ym sik at 17.125 = xn2n + + x121 + x2 + Y2i + ii + J +YmF hvr x'ene g y'ene har verdien O eer 1. Oppgave d Funksjnen G er gitt ved det bske uttrykket XY + X. Gi sannhetsverditabeen ti G Oppgave e Funksjnen G er gitt ved det bske uttrykket X + Y'Z. Gi sannhetsverditabeen ti G. (Sutt på ppgave e.) 1
Funksjnen F er gitt ved sannhetsvcrditabeen -Z' 1 F 1 O 1 O 1 O O Oppgave f Gi F ved et uttrykk sm er en sum av prdukter. Utrykket ska være så enket sm muig Oppgave g Gi F ved et uttrykk sm er et prdukt av summer. Utrykket ska være så enket sm muig. Oppgave h Impementer F uteukkende ved hjep av NAND-prter. Oppgave 3 (30 prsent). Denne ppgaven dreier seg m en datamaskin med en meget enke arkitektur. Figur er et diagram ver maskinens datapath. Figuren viser at datapathen innehder 64 n-bits registere. (Vi trenger ikke bry ss m den eksakte størresen på n i denne ppgaven.) Vi kaer disse registerne R, Ri R21... I 3. Hvert av registerne virker sm en teer (cunter). Et sikt teerregister har tre innganger enabe, inc g dec. Tabeen viser hvrdan disse inngangene kntrerer innhdet av registeret. enabe inc dec x, )( ingen perasjn, dvs. registeret behder sin verdi ingen perasjn, dvs. registeret behder sin verdi -, dvs. registerets verdi minkes med 1 + 1, dvs. registerets verdi økes med 1 (Når et register sm hder taverdien 2ft - 1 ("bare enere") økes med en, så får det verdien O ("bare nuer"). Det tisvarende skjer når et register sm hder taverdien O minkes med en. Registeret får da verdien 2ft - 1 ("bare enere").) Videre finner vi i diagrammet ver datapathen en standard 6-ti-64 dekder (uten "enabe"- inngang) g en standard 64-ti- mutipekser. Vi ser gså at datapathen har tre innganger R (6 bit), I (1 bit) g D (1 bit). ( Legg merke ti at inngangen R går både ti dekderen g ti mutipekseren.) Datapathen styres atså av kntrrd på 8 bit. Vi sier at et sikt kntrrd ska gis på frmen (R, E, B). Videre har data-path en utgang Z (1 bit). Av 2
diagrammet ser vi at Z = O dersm ae de n bitene i registeret sm mutipekseren veger ut er O, g at Z = 1 eers. Oppgave a Gi et kntrrd sm egger ti 1 i registeret R. Gi et kntrrd sm trekker fra 1 i registeret R7. (Sutt på ppgave a.j I figur 2 ser vi hvrdan datapathen inngår sm en de aven primitiv ensyke datamaskin. Du finner den sm kmpnenten merket Datapath. Maskinen kan prgrammeres ved at man egger et assemberprgram i maskinens ROM. Assemberspråket har fire instruksjner. '1 inc Rk (2) dec Rk (3) jmp injenr (4) jz injenr Vi nummerer g tirdner intruksjnene hver sin binærkde 00 O 10 11 inc dec jmp jz Hver instruksjn ska gis ved 8 bit i,i,i2,ij,i4,i5,i6,i7. Vi bruker de t første bitene i, i ti å angi hviken av de fire intruksjnene det dreier seg m. De seks siste bitene i;, ij, i". i5, i6. i7 angir instruksjnens parameter. Instruksjnen inc Rk. (i = O, i = O. 1. Bitene i2,i3.i."is,i6,i7 gir k.. Instruksjnen dec Rk. (i = O, i = Rk. Bitene i2,i3.i4.is,i6,ii gir k. Denne instruksjnen øker registeret Rk med Denne instruksjnen trekker fra i registeret. Instruksjnen jmp injenr. (i = 1, i = O.) Dette er en ubetinget hppinstruksjn. De seks siste bitene i2- i3. i-- is- i6 i7 frteer hviken inje i assemberprgrammet det ska hppes ti.. Instruksjnen jz injenr. (i =, i =.) Dette er en betinget hppinstruksjn. De seks siste bitene i2, ij, i... i.r,. i6, i7 frteer hviken inje i assemberprgrammet det eventuet ska hppes ti. Det ska hppes dersm Z (utgang fra datapath) var O etter frrige kkkesyke. Oppgave b Her et prgram skrevet i assemberspråket: kke ut dec R3 jz ut jmp.kke inc R3 inc R3 3
Prgrammet utfører perasjnen R3 f- 2. Prgrammet sørger atså fr at registeret R3 settes ti 2, uansett hva sm måtte igge i registeret når prgrammet starter. Gi dette prgrammet i binær frm, dvs. gi prgrammet sik det vi se ut i maskinens ROM. (Sutt på ppgave b.) Kmpnetene i figur 2 sm er merket ROM, Cunter g D-vippe er standard hyevare. ROM er et 64 x 8 bit "read ny memry", dvs. at det har en adresseinngang på 6 bit g gir 8 bit ut (i,i],i2,i3,i4,is,i6,i7). D-vippe er en standard D-vippe med et bit inn g et bit ut. Cunter er en standard 6-bits teer med parae innasting (Iad). Tabeen frteer det du trenger å vite m Cunter. (Vi antar at Cunter er nustit når eksekveringen av et prgram starter.) Figuren viser ingen kkker g kkkeinnganger, men samtige kkkeinnganger i arkitekturen er sevsagt kbet ti den samme kkken. De eneste kmpntente i figuren vi ikke har frkart er den kmbinatriske kretsen sm er merket Branch Cntrg maskinens instruksjnsdekder sm er merket Decder. Det er din ppgave å knstruere disse kretsene sik at maskinen virker g bir i stand ti å eksekvere assember kde sm igger i ROM. Oppgave c Tegn et prtdiagram ver kretsen Branch Cntr. Oppgave d Tegn et prtdiagram ver maskinens instruksjnsdekder, dvs. ver kretsen Decder. Oppgave e Skrivet assemberprgram sm utfører perasjnen R +- R + RI. Prgrammet ska bevare innhdet i registeret RI. Vi tenker ss atså at det igger et vikårig ta i R g et vikårig ta i RI når prgrammet starter. Prgrammet ska sørge fr at summen av de t taene egges i R. Videre ska prgrammet sørge fr at den verdien RI hder når prgrammet er ferdig er den samme verdien sm RI hdt da prgrammet startet. Skriv assemberkde med "abier" etter mønster av prgrammet fra ppgave b. Hint: Det er ikke muig å få ti dette uten å bruke (g ødeegge innhdet av) et hjeperegister. Bruk R2 sm hjeperegister. Oppgave 4 (30 prsent) Du ska knstruere en sekvensie krets sm styrer en vaskemaskin i et sev betjent vaskeri. En kunde må betae 40 krner fr en vask. Man betaer ved å egge mynter i maskinen. Det umuig å egge på mynter når maskinen aerede er igang, g maskinen aksepterer kun tikrnemynter. (Ae andre mynter returneres.) En kunde må atså egge fire tikrnemynter på maskinen. N år den fjerde tikrnen egges på ska maskinen starte. Kretsen sm ska knstrueres, mttar på hver kkkesyke ett signa X. Dersm X =, har maskinen mttatt en tikrne. Dersm X = O, har ikke maskinen mttatt en tikrne. Kretsen gir en utput S. Dersm S = starter vaskemaskinen. Dersm S = O starter den ikke. 4
Oppgave a Tegn et tistandsdiagram ver kretsen. (Sutt på ppgave aj En JK-vippe har t innganger. Dersm vi kaer seve vippen fr Q, så er det vanig å kae disse inngangene JQ g KQ. Her er tabe sm beskriver hvrdan en JK-vippe virker: Oppgave b Impementer kretsen ved hjep av t JK-vipper. (Det hder med t vipper.) Sørg fr at prtdiagrammet ver kretsen bir enkest muig. Oppgave c Impementer kretsen ved hjep av t D-vipper. (Det hder å sette pp igningene fr impementasjnen. Du trenger ikke å tegne seve kretsen.) Finnes det gde grunner ti å vege JK-vipper framfr D-vipper når man ska impementere kretsen? (Sutt på ppgave c) Du har gitt en standard 4-bits teer (cunter) med t innganger reset g cunt. viser hvrdan teeren" virker. Tabeen Oppgave d Imementer. kretsen uten å bruke andre kmpnenter. enn teeren sm er beskrevet ver. g standard kmbinatriske prter, dvs. AND-prter, OR-prter, NOT-prter g ignende. 5
R76i 6-ti-64 DECODER 4; t.: RO enabe inc dec R63 enabe inc dec D n R-Ti: 64-ti1.-1 """ i '3 MOX c! " n-- ID AJ. r Figure 1: Datapath 6
..c 8- ca - ca C N :-=.- u - 01 G) 8: "> c 'Q j '" Q \O :-= Q N... G) - c U =: " u ]. u c c I- m ( Figure 2: Hee arkitekturen 7