LOGIČNI MODELI RAČUNALNIŠKIH STRUKTUR II MAKSIMILJAN GERKEŠ TEHNIŠKA FAKU LTETA, MAR IBOR VTO ELEKTROTEHNIKA, RAČUNALNIŠTVO IN INFORMATIKA METALNA, MARIBOR TOZD TOVARNA INVESTICIJSKE OPREME UDK : 681^.517.11/12 POVZETEK: Poljuben označen usmerjen graf z ehim začetnim in končnim vozliščem, pri katerem se vse poti sklenejo med tema vozliščema, j« preoblikovan v vasr >;aključeno selektorsko operacijo, tudi če vsebuje zanke s končno mnogo pono- vitv.-,rt)i. Za izgradijo it;.jdi:! iv sekvenči^ih in mikrojJrogramiranih strojev so izdelani postopki dekompozicije s pomočjo karaktGristicnili lastno:;i.i, kar lahko vcH ilo realizacije, ki ima več sekvencnih oz. mikroprogramiranih strojev kot za­ četni inodel. Defii.' can je p u,|ilošen mc^ I operatorja s selektorsko operacijo in ga je možno razgraditi do poljubnih de- talj''?>'. Izdelani so inr.(i.!U kiin!. rt^tnih r".'•'ualniških struktur. ABSTRACT: LOGIC.':(, iV(0"ia.-; !"OR COJ-^lc-tjTER STRUCTURES II. Any labelled directed graph with single input and single out; It nodo in '.vhii.-h ;iU di.i'.<.tod paths .»'e terminated at the output node, can be modelled with a setect operation in the seli loop, even if looj.v? w'J.h .;i linite nun-.hiu- of repetitions are presented in the initial graph. For a model design of a scq'.Jential or microp.'ogramir,.Kl mascliino procedures were defined, that can lead to reallzations \nth some sequential or ivucroprograniiTit^jl p.ws<-l''' i-;s, altcMO" initial model was single maschine model. Abstract operator with the ability to decompose it into .inv fequi. c I detail is ;!ofined. Models for well known computer structures were built. UVOD: Poljubs-v., oznao«ri vsiuerjrfii groi., ki ima fino začetno in eno končno vozlišče in v katerem vse usmerjene poti vo­ dijo od začetnega h končnemu vozlišču lahko preoblikuje­ mo v graf vase / :ljuČGne .s.';l -ktorske operacije. Takšno preoblikovanje usoieijencja gi.'.\fa je možno tudi, če graf vsebuje operacije v zaiikaU, ki imajo končno število po­ novitev. Iz icc.n '-£)zlo;"! :i 1. 'iku .'joljiiben program, mikro- program, ... rc.ili^.iramo v obliki sekvenčnega stroja oz. mikroprogiaicisko krmiljenega stioja. Kadar pa vase zaključena selek^ooska opotMcija rabi kot izhodiščni mo­ del za snovanje i;-.brane računalniške strukture lahko s postopki dekompozicije preoblikujemo lo operacijo v sestavljeno vase zaključeno selektorsko operacijo, ka­ tere realizacija laliko v splošnem ztihteva izgradnjo več povezanih sekvencnih strojev ali mikroprogramsko kr­ miljenih strojev. Pri dekompoziciji kompleksnih sekvencnih strojev - kot so naprimcr modeli procesorjev je smiselno uporabiti splošnejši pristop k dekompoziciji in sicer z uporabo karakterističnili lastnosti specifilcacije, katerim podre­ jamo dekompozicijo izbrane strukture. Odstopanja od karakterističnih lastnosti pa obravnavamo kot izjeme, s katerimi korigiramo osnovno strukturo, dobljeno sa­ mo na podlagi UfK^.števapja karakterističnih lastnosti. Za snovanje operatorjev sckvoiičnih oz. mikroprogrami­ ranih strojev je uporabljen abstraktni pristop, ki omogo­ ča definicijo posplošenega modela operatorja ter njegovo dekompozicijo do poljubnih detaljev. Predlagani so mo­ deli konkretnih i-ačiinalniških struktur, izgrajeni s po- močj o opisanih postopkov modeliranja od krmilnih enot / preko pomnilnih struktur do operatorjev.. / 1. PRETVORBA GRAFA OPERACIJ V GRAF VASE ZAKUU- ČENE SELEKTORSKE OPERACIJE Kot iztočnico vzemimo.označen usmerjen graf z enim za­ četnim in enim končnim vozliščem. Graf naj ne vsebuje operacij v zankah. Vse poti, ki izhajajo iz začetnega vozlišča morajo končati v končnem vozlišču. Vsem ope­ racijskim vozliščem (Op., i = 1, 2, ..., n) pripišemo izjave Q., ki specificirajo naslednjaoperacijska vozlišča. Vsaki usmerjeni poti, ki povezuje začetno in končno voz­ lišče lahko tedaj priredimo graf samih sekvenčno pove­ zanih operacij. Tak graf - sekvenčno operacijo pa lahko po [ij preoblikujemo v vase zaključeno selektorsko operacijo. Vzemimo, da najdemo v označenem usmerjenem grafu G n-usmerjenih poti, ki vodijo od začetnega h končnemu vozlišču. Tedaj lahko narišemo n-sekvenčnih operacij, s katerimi ponazorimo prehode po grafu G v izbranih trenutkih. Začetna vozlišča teh grafov (sekvencnih ope­ racij) niso enaka, če je začetno vozlišče grafa selektor- ska operacija; enaka so, če je začetno vozlišče opera- cijsko vozlišče. Podobno velja za končna vozlišča, da ni­ so vsa enaka, če je graf zaključen s selektorsko operaci­ jo, drugače so vsa vozlišča enaka. Na sliki 1.1 je podan splošei) primer, če je število neenakih začetnih in konč­ nih vozlišč različno. Poljubno operacijsko vozlišče Op. je določeno z izjavo Q., ki jo pridružimo predhodnemu vozlišču Op. in v bistvu določa usmerjeno vejo od Op. k Op., ali s konjunkcijo Q.AP..AP, , A...AP , če vodi i 1 1] ki rs' k vozlišču Op usmerjena pot preko več ali ene selektor- skih operacij. 1 2 "^^sako vejo določa "^r^v- različnih v splošnem sestav- 1 začetnih Ijena izjava /^ vozlišč operacijska vozlišča \t- različnih končnih vozlišč Slika 1.1: Ponazoritev usmerjenega grafa G z n-usmer- jenimi grafi - sekvenčnimi operacijami Po opisanem postopku pretvorbe se lahko nekatere opera­ cije v vase zaključeni selektorski operaciji ponovijo tudi do n-krat, saj lahko isto vozlišče večkrat "prehodimo" po različnih usmerjenih poteh. Tedaj reduciramo veje, ki se v vase zaključeni selektorski operaciji ponavljajo takole: Q.AOp.VQ.AOp.V...VQ.AOp. = Q.AOp. 1111 1111 (1.1) Ojjeracije, ki se v vase zaključeni selektorski operaciji ponavljajo (l.l) nadomestimo z eno samo operacijo. Slika 1.2 podaja zgled tako preoblikovanega grafa G, ki ustreza modelu sekvenčnoga stroja opisanega v [ij . Slika 1.2: Usmerjen graf G preoblikovan v vase zaklju­ čeno selektorsko operacijo 1.1. Preoblikovanje operacij v zanki Sedaj sprostimo pogoj, da usmerjen graf G ne sme vse­ bovati operacij v zanki. Obdržimo pa omejitev, da mora­ jo imeti zanke končno mnogo ponovitev. Tvorimo nov graf, v katerem operacije v zanki ponazorimo kot vozliš­ ča z enim vhodom in enim izhodom. Slika 1.3 podaja zgled takšne pretvorbe, kjer je lahko operacija Op. tudi sestavljena operacija, ki vsebuje nove operacije v zanki. Slika 1.3: Pretvorba operacije v zanki v vozliščno operacijo Tako dobljen graf sedaj ustreza pogojem, da ga lahko pre­ oblikujemo v vase zaključeno selektorsko operacijo. Ugo­ tovimo lahko, da vsaka operacija v zanki, če govorimo o njeni logični realizaciji v bistvu predstavlja avtonomen sekvenčni stroj. Pri logični realizaciji usmerjenega gra­ fa, ki vsebuje več zank, bi tedaj morali izdelati še toli­ ko sekvenčnih strojev, kolikor je operacij v zanki. Takšen pristop pa je v splošnem preveč tog, zato skuša­ mo operacije v zanki prevesti v koncept ene vase zaklju­ čene selektorske operacije oz. enega sekvenčnega stroja. Takoj pripomnimo, da končni cilj ni vedno ena sama vase zaključena selektorska operacija oz. en sekvenčni stroj, ampak da želimo imeti možnost, da sami odločamo o šte­ vilu vase zaključenih selektorskih operacij oz. o organi­ zaciji sistema. Vzemimo, da smo označen usmerjen graf G, ki vsebuje operacijo Op. v zanki preoblikovali v vase zaključeno se­ lektorsko operacijo, ki jo podaja slika 1.4. OP„ Slika l.'l: Graf G preoblikovan v vašo zaključeno selektorsko operocijo Na sliki 1.4 so P , P , •.., P v splošnem sestavljene izjave oblike: Q., Q,AP, » •-• • Sedaj pa opazujmo graf s slike 1.4 v trenutku, ko se ope­ racija Op. ponovi m-krat. Tedaj lahko narišemo graf na sliki 1.5 » m-ponovitev Slika 1.5: Graf G v primeru, ko se operacija Op. ponovi m-krat Sekvenčno operacijo v grafu s slike 1.5 lahko po LlJ preoblikujemo v vase zaključeno selektorsko operacijo. Graf na sliki 1.5 tedaj preide v graf na sliki 1.6. Prav­ kar opisano pretvorbo zančnc operacije laliko verificira­ mo tudi s popolno indukcijo in s tem potrdimo pravilnost pretvorbe. Za graf na sliki 1.6 izdelajmo še simbolični zapis: ISAP Slika 1.6: Preoblikovaria zančna operacija sel (S, P.): Op, ^2 — °P2 P. , Op. , 1-1 1-1 P. , — Op. , 1+1 - 1+1 P —-Op n '^n P. —- Op. 1 1 SAP Op. kjer je za izjavo S (in tudi izjave Q., i=l, 2, ...) v praksi snovanja strojne opreme udomačen izraz stanje. Zančni operaciji Op. smo izjavo S pripisali zato, da za­ gotovimo enoličnost selektorske operacije - samo ena iz­ med izjav P^, P^, ...,Pj, pravilna. , P , P je lahko naenkrat ' n' V ta namen vzemimo, da so izjave P , P ,..., P izbra­ ne kot konjunktivne kombinacije niza izjav p ..p _,.. C m—1 m-2 —, p , p m velja 2 -n > 1. Tedaj lahko za S izberemo iz preostalih konjunktivnih kom­ binacij iz niza p ., P„ -, m-1 m-2 •»Pn Z zgornjim primerom smo pokazali, kako je mogoče z dodatno izjavo S ohraniti enoličnost selektorske operaci­ je. Če sta v usmerjenem grafu dve ali več zančnih operacij jih reduciramo postopoma - z nekaj Izkušnjami pa lahko reduciramo tudi vse hkrati. Vzemimo primer, da sta nam pri preoblikovanju grafa G v vase zaključeno selek­ torsko operacijo preostali dve operaciji v zanki. Slika 1.7 podaja tak primer. Slika 1.7: Preoblikovan greif G z dvema zančnima operacijama Najprej preoblikujemo zančno operacijo Op. in pustimo zančno operacijo Op. nedotaknjeno. Graf s slike 1.7 pre­ ide tedaj v graf na sliki 1.8. Slika 1.8: Prvi korak preoblikovanja Postopek ]:)onovimo nad zančno operacijo Op. in dobimo 10 graf na sliki 1.9. C3AS, Slika 1.9: Preoblikovan graf s slike 1.7 Zapišimo še selektorsko operacijo v simboličnem zapisu: sel: l-l 1-1 P- , — Op- •• p. , — Op. , J-1 J-1 p. , — Op. , J+1 J+1 p — Op n n P. _^ Op. 1 *^i SjAP— Opj P. — Op. J J S^AO— Op^. Vzemimo j da so izjavo P,» P,« • • • i P-. iz > onjunktivnih kombinacij niza izjev; .,P^, •.P„ Pm-1' Pm-2'' „n"i Pj 1 PQ in 2 -n » 2 Tedaj lahko za S in S izberemo iz i.reostalih konjunktiv- nih kombinacij zgornjega niza. Obdelajmo še primer, ko zančna operacija v vase zaklju­ čeni selektorski operaciji tudi sama vsebuje zančno ope- .racijo. Tako oblikovan graf G podaja slika 1.10. Preoblikovanje grafa s slike 1.10 pričnemo tako, da si zanko določeno z izjavo Q zamislimo kot sestavljeno ope­ racijo (Op.). Tedaj preide graf v obliko na sliki 1.4, ki jo ŽG znamo preoblikovati. Če opravimo postopek pre­ oblikovanja, preide graf s slike 1.10 v obliko na sliki 1.11. Ponovno si zamislimo zančni operaciji Op kot operaciji Op. in dobimo graf, v katerem sta po dve selcvenčno po­ vezani operaciji, ki ju lahko preoblikujemo po [ij v vase zaključeno selektorsko operacijo. S tem dobimo graf na sliki 1.12. Slika 1.10: Graf G z vgnezdeno zančno operacijo ppi)-'C% Slika 1.11: Prvi korak pri preoblikovanju vgnezdene zanke Graf na sliki 1.12 pa je s stališča preoblikovanja zančnih operacij enak grafu na sliki 1.7, zato lahko narišemo kar končno obliko grafa vase zaključene selektorske operaci­ je na sliki 1.13. Slika 1.12: Drugi korak preoblikovanja vgnezdene zanke 11 Slika 1.13: Preoblikovan graf vgnezdene zanke Posplošitev opisane transiormacije na n-vgnezdenih zank je enostavna in lahko shajamo z doslej definiranimi trans­ formacijami. Opravimo pa še preobJikravaHie grafa s sUke 1.14. 1 SelN y ~i'> Slika 1.14: Graf G z operacij« v povratni veji zanke Grafu G smo kn? s sir-.isclno u-;orah > c'o:-lej opisanih transformacij. Zato lahko ;nariŠGn-.o k'.r graf vase zaklju­ čene selektorske operacije na sliki 1 . 15. Slika 1.15: Graf vase zaključene selektorske operacije za graf s slike 1.14 Z Zvezdico označeno operacijo Op. smo vrisali zato, ker laliko pogosto izvorni grof G preoblikujemo tako kot na sliki 1.14. Sicer bi morali vpeljati namesto vozlišča Op. na sliki 1.15 vozlišče O , ki izvai" "'-•razno" opera­ cijo. Pri fizičnem snovanju moramo zagotoviti tudi iniciailiza- cijo operacij v naših grafih. To dosežemo B tem, da v vhodno vozlišče "pripieljemo" izjavo, ki izbere začetno vejo v vase zaključeni selektorski operaciji - sistem po­ stavimo v začetno stanje. 2. DEKOMPOZICIJA VASE ZAKLJUČENE SELEKTORSKE OPERACIJE - SEKVENČNEGA STROJA; NAVZDOLNJE SNOVANJE V tem razdelku se omejimo na dekompozicijo kompleksnih vase zaključenih selektorskih operacij - sekvenčnih stro­ jev. Pri enostavnih sekvenčnih strojih lahko neposredno z uporabo transformacij definiranih v Ll J in v 1. raz­ delku preoblikujemo graf sekvenčnega stroja v želeno obliko. Izhajajmo iz vase zaključene selektorske operacije na sliki 2.1. Slika 2.1: Izhodiščni graf za dekompozicijo Dekompozicijo takšnega grafa lahko pričnemo, če imamo na voljo specifikacijo o operacijah, stanjih in pogojih, ki morajo biti izpolnjeni, da se operacije lahko izvedejo. V splošnem lahko isti graf ob upoštevanju njegovega opi­ sa (specifikacije) razgradimo na množico različnih na­ činov. Kako bo potekala razgradnja in kdaj bo postopek - končan je odvisno od lastnosti operacij in zunanjih zahtev, ki smo jih postavili kot cilje snovanja." Omejimo se na en sam primer dekompozicije sekvenčne­ ga-stroja, ki pa bo pretežno ilustriral karakteristike de- kompKDzicije sekvenčnih strojev. Pri tem bomo uporabili poenostavljen zapis, saj bi bil formaliziran zapis pre­ obsežen. Izhajajmo iz naloge, da je potrebno izdelati procesor, ki izvaja instrukcije kompleksne računalniške arhitekture (CISC), katere opis obsega nekaj sto strani. Že sam zapis selektorske operacije za tako instrukcijsko množico v smislu slike 2.1 bi bil toliko nepregleden, da iz njega ne bi kaj dosti razbrali. Zato uporabimo nekoli- 12 ko splošnejši pristop. Iz specifikacije naše instrukcijske množice ugotovimo, da je splošna zgradba instrukcije npr. takšna: code src 1. rx src 2. rx ... src m.rx dst.wx (2.1) V 2.1 je code ime operacije, iz katerega razberemo tu­ di tipe operandov, src j . rx so določila operandov ali kar operandi in dst . wx določilo dcstinacljskega operan- da. Naša specifikacija dovoljuje, da lahko oblika 2.1 de­ generira v code, v code z izvornimi operandi brez desti- nacijskega operanda ali code s samo destinacijskim ope- random. Pri izvajanju vsake instrukcije se postavi še niz izjav, ki v splošnem laliko vplivajo na izbiro naslednje instrukcijaza izvajanje. Značilna lastnost instrukcijske množice naj bo, da instrukcije i+1 ni možno pričeti deko- dirati, dokler ni v celoti dekodirana instrukcija i, čili dokler ni v celoti dekodirana instrukcija i in izvedena zahtevana operacija, ki postavi niz izjav te instrukcije. To lastnost lahko ugotovimo iz imena operacije v instruk- ciji. Ta opis nam zaenkrat zadošča, da lahko pričnemo z de- kompozicijo. Izhajajmo iz slike 2.1 in predpostavimo, da imajo vse instrukcije splošno zgradbo (2.1). Tedaj lahko obdelavo poljubne instrukcije ponazorimo s tremi sekvenčno povezanimi operacijami in sicer z operacijo dekodiranja instrukcije Od., operacijo izvajanja Oe, in operacijo vpisa destinacijskega operanda Ow.. Ekspli­ citna definicija operacij nas ne zanima in jo lahko za kon­ kretno instrukcijske množico izpeljemo s pomočjo [.ij in [2] . Model iz katerega smo izhajali na sliki 2.1 lah­ ko sedaj preoblikujemo tako kot podaja slika 2^2. — prerezemo — prerezemo Slika 2.2: Začetni korak dekompozicije Odstopanja bd idealizirane zgradbe instrukcij (2.1) bo­ mo upoštevali kasneje. Takšen pristop nam omogoča, da se v določenih fazah snovanja osredotočimo na karakte­ ristične lastnosti instrukcijske množice in prilagodimo izgradnjo modela tistim lastnostim arhitekture, ki so na določenem nivoju snovanja dominantne. Na ta način ima­ mo ves čas pred seboj bistvo problema in se ne izgublja­ mo v detaljih. Seveda pa mora končni model naše arhi­ tekture verno posnemati vse njene lastnosti. Lahko se zgodi, da pri takšnem pristopu "vidimo" tudi lastnosti, ki jih "ni" oz. tiste ki niso dovolj karakteristične, da bi jih upoštevali že na tekočem nivoju snovanja, ampak še­ le kasneje. Skrajna možna posledica je lahko, da je re­ zultat snovanja nezadovoljiv in je potreiino postopek sno­ vanja ponoviti. Da minimiziramo subjektivno komponento pri ugotavlja­ nju karakterističnih lastnosti lahko koristimo razmero­ ma obsežen matematični aparat za analizo sistemov. Graf s slike 2.2 lahko ponazorimo kot tri sekvenčno po­ vezane vase zaključene selektorske operacije. Upošteva­ mo še, da lahko instrukcije, ki imajo enako operacijo Od , "enako" operacijo Oe. (odvisno od organizacije ope­ racijske enote) in enako operacijo Ow nadomestimo z eno samo operacijo, če ustrezno prilagodimo izjave P ,... ,P v vseh treh novih selektorskih operacijah. Ta- . ko dobimo krmilni model na sliki 2.3. Na sliki 2.3 (b) je podan zgoščen graf za sliko 2.3 (a). 2.3 (b) nam bo omogočal dovolj zgoščen zapis, zato na­ daljujemo snovanje s tako oblikovanim grafom. Poiskusi- mo sedaj združiti operaciji Od in Ow v eno samo sestav­ ljeno operacijo. V ta namen definirajmo izjavo W-past, ki trdi, da je rezultat operacije Oe., j = 1,2,..., s dolo­ čen. Ko postane izjava W-past pravilna se lahko sproži izvajanje operacije Ow. Graf s slike 2.3 (b) preide tako v obliko na sliki 2.4. S tem smo dobili dve sekvenčno povezani sestavljeni ope­ raciji Oi in Oe. Pri tem je Oi že v svoji zanki, kar pome­ ni, da jo bomo realizirali kot sekvenčni stroj. Tudi opie- racijo Oe bomo realizirali kot sekvenčni stroj, saj so operacije, definirane s kompleksno instrukcijske množi­ co toliko kompleksne, da zahtevajo pri logični realizaciji dodatno interpretacijo z enostavnejšimi operacijami. Graf na sliki 2.4 (b) lahko preoblikujemo v paralelno ope­ racijo, če dovolimo, da se ob izvajanju operacije Oe in­ strukcije i paralelno dekodira instrukcija i+1, torej izva- 13 Slika 2.3: Ponazoritev:s tremi sekvenčno povezanimi selektorskimi operacijami. W-pasty ^el (Oe (a) (b) izvajanje strežba nadaljevanje Od W-past operacij Od Slika 2.4: Združitev operacij Ow in Od v sestavljeno operacijo Oi Janje operacije Oi. Takšna paralelna operacija je možna, če lahko po končanem dekodiranju instrukcije i pričnemo z dekodiranjem instrukcije i+1. Dekodironje instrukcije i+1 se lahko izvede v celoti, če ni odvisnosti med izvor­ nimi operandi instrukcije i+1 in destinacijskim operan- dom instrukcije i. Sicer je potrebno ob ugotovljeni od­ visnosti med operandi, prekiniti izvajanje dekodiranja instrukcije i+1 ter počakati, da nastopi W-past, ustreči W-past, ter nadaljevati pri prekinjenem ddcbdiranju. Iz­ javo s katero ugotovimo odvisnost poimenujmo z O-past in jo definirajmo takole: O-past postane pravilna, če nastopi odvisnost med izvornimi operandi instrukcije i+1 in destinacijskim operandom instrukcije i, za katero se izvaja operacija Oe. Na sliki 2.5 sta podana grafa, ki ponazarjaU strežbo pasti W-past in O-past. W-past W-past SI. 2.5: Strežba W-pasti in O-pasti Iz slike 2.5 razberemo, da se strežba W-pasti vrine med izvajanje operacij Op. in Op. (Od) in da se po končani strežbi izvaja operacija Op., ki je določena z izjavo Q^ , ki jo mora stroj pomniti, da lahko nadaljuje izvajanje. Pri strežbi O-pasti pa se operacija Op. med izvajanjem spremeni v operacijo On, ki izvede "prazno" operacijo, nato nastopi čakanje na W-past in po končani strežbi W- pasti se ponovi izvajanje operacije Op (Od). Slika 2.6 podaja paralelno vase zaključeno operacijo Oi Oe. Uvedimo še termina za Oi in Oe za fizično izvedbo in si­ cer instrukcijski procesor za Oi ter operacijski proce­ sor za Oe. Sedaj imamo na voljo parametre za pričetek definicije kr­ milnih grafov za instrukcijski In operacijski procesor. Na sliki 2.7 je podan krmilni graf za instrukcijski pro­ cesor oz. za sestavljeno operacijo Oi s slike 2.4- Pri tem smo vpeljali še izjavi next in dec, ki omogočata - prva interpretacijo operacij dekodiranja in druga dekodi- . ranje instrukcijskega niza. Nabor potrebnih krmilnih iz­ jav s tem sicer.še ni zaključen, vendar se bomo s takisa. krmilnim modelom zadovoljili in ga bomo prevedli na iz­ hodiščno organizacijsko shemo instrukcijskega procefor- ja. Zato najprej preoblikujemo graf s slike 2.7 v gra| vase zaključene selektorske operacije, tako kot jo podaja slika 2.8. Za preoblikovanje smo uporabili postopke 14 W-past Oi Oe Oi Oe i \ i+1 1 ^- i+2 ( - O-past i+1 W-past zs i+1 i+2 i+1 SI. 2.6: Paralelni model izvajanja operacij opisane v [l] in v 1. razdelku. V naslednjem koraku pa sliko 2.8 prevedemo v mikroprogramsko krmiljen model sekvenčnega stroja po sliki 2.9. Tako dobljeni model še ne izpolnjuje specifikacije naše kompleksne instrukcijske množice. Zato specificiramo, da se insUrukcije, katerih pričetek dekodiranja je odvisen od postavljenih izjav instrukcije v operacijskem procesorju, v celoti dekodirajo in izve­ dejo v instrukcijskem procesorju. Pri instrukcijah, ki nimajo destinacijskega operanda pa W-past sproži v in- Slika 2.7: Začetni približek k realnemu krmilnemu modelu instrukcijskega procesorja W-ret O-ret next ' next -next S S S dec dec dec S S S W-ret W-past V/-past W-past W-past W-past W-past V-past W-past W-past W-past O-past O-past O-past O-past (Ow\ md^ /OdXoi^\/OrTN (OiT) mw^ ^OwN fodj ^Odjoi^ ^On) (Or^ (ow^ md\ fOd\ IP- S in S lahko definiramo kot izjavi poljubno izbrani iz niza možnih konjunktivnih kombinacij izjav a - ,. ,a.. next iz­ java določa niz a. ,..., a kot vir, ki določa naslednjo operacijo. Izjava dec določa niz i ,..., i kot vir, ki določa operacije pri dekodiranju nove instrukcije. Izjava W-ret določa niz r n-r ., r , kot vir, ki določa naslednjo operacijo ter W-ret ob aktivni izjavi O-ret niz p ,...,p kot vir, ki določa novo operacijo. Izjava W-past izbira niz/iVW(h-l:0) kot vir, ki določa naslenjo operacijo, ter izjava O-past niz /iVO{n-l:0) kot vir, ki določa naslednjo operacijo. Defini­ ramo še selektorsko operacijo MUX, ki specificira eno izmed izjav next, dec, W-ret. Slika 2.8: Vase zaključena seloktorska operacija za 2.7 15 (»n-l«"-« 'o' MUX, (a^j,..., Og) O-past Slika 2.9: Mikropronrnmsko krmiljen moddl instrukcijskcya procesorja - začetni približek strukcijskem procesorju izvajanje operacije On. h) lom z.\kljiicinio snovanje modela instrukcijskc<|a pro­ cesorja; doslej dobljeno blokovno shemo podaja slika 2.10. Poikjben postopek opravimo pri snovanju začctJicga mo­ dela opcracijskcfja procesorja. Operacija Oe s slike 2.5 tako preide v sestavljeno operacijo, katere graf podaja slika 2.11. Pri tem je F-past izjava, ki pove, da se v operacijskem procesorju izvaja opjeracija, ki bo zah­ tevala strežbo W-pasti v instrukcijskem procesorju, hkrati pa v le-tern še teče strežba prejšnje W-pasti. Zato je potrebno počakati na zaključek strežbe W- pasti in nato ponoviti mikrooperacijo, ki je bila pre­ kinjena ob strežbi W-pasti. Graf na sliki 2.12 podaja strežbo F-pasti. Izjava enext specificira izvajanje na- }iV : p(n-l:0) 1 r(n-l:0) _ • uVO/n-l:0> 1 1 ' \ SEL / DKAUJI POMNILNIK 1 1 1 1 1 MUX • I d 1 (. -!'• •• L_ A •- W-past •^ O-past in-I'••'"o^ ''o^ "C 0-rct O-past Slika 2.10: Začetni približek k blokovni shemi instrukcijskega procesorja Slika 2.11: Začetni krmilni model operacijskega procesorja siednjc mikroopcracijc, izjava cdcc pa pričctck izvajanja 16 novega mikroprograma, ki interpretira operacijo Oe., katero je določil instrukcijski procesor, če je tudi ready izjava, ki trdi da so vsi parametri za strežbo na voljo, pravilna. W-rct W-ret Slika 2-12: Graf strežbe F-pasti Graf s slike 2.11 po opisanih postopkih preoblikujemo v mikroprogramski model sekvencnega stroja, katerega graf podaja slika 2.13. Začetno blokovno shemo operacij­ skega procesorja,dobljenoiz tega grafa, pa podaja slika MUX, (a^_^,...,ag) I''-pnst .Slika 2.13: Mikroprotjramski model operacijskega procesorja - začetni približek 2.14. Doslej smo podali le pricetek dekompozicije sekvencnega stroja (slika 2.1), s katerim smo pričeli razgradnjo. S smiselno uporabo doslej opisanih postopkov lahko krmil­ no strukturo obeh procesorjev razvijemo do potrebnih detaljev. Čeprav smo se omejili na en sam primer dekompx5zicije, so v splošnem postopki razgradnje kompleksnih sekvenč- nih strojev podobni doslej opisanim. Preostane nam še izgradnja modelov operacijskih enot za takšne stroje. On" (e . ^n) Slika 2-14: Blokovna shem a operacijskega procesorja - začetni približek 3. MODEU OPERACIJSKIH ENOT Predpostavimo, da smo za izbrano instrukcijsko množi­ co razvili po postopkih [2] algoritme v simboličnem za­ pisu ali v poljubnem formalnem jeziku, ki opisujejo ope­ racije določene z instrukcijsko množico na abstraktnem nivoju, primernem za logično realizacijo. Iz tako pri­ pravljenih algoritmov laliko razberemo, katere operacije se izvajajo, katere komponente stanj moramo pomniti, katere komponente stanj dobimo iz instrukcijskega niza oz. zunanjega pomnilnika, katere izjave povzročijo vejit- ve itd. Skratka na voljo imamo vse podatke, da lahko v celoti realiziramo tako krmilno kot operacijsko struktu­ ro sekvencnega stroja oz. krmilno in operacijsko struk­ ture sckvcnčnih strojev, odvisno od tcgn kalco smo dcfi- 17 nirali organizacijo sistema. Načeloma lahko pričnemo 2 izgradnjo modela operacijske enote iz različnih izhodišč. V našem primeru pa definirajmo operacijsko enoto kot selektofsko operacijo, ki odvisno od pravilnostiizjav P , P ,... ,P 'Zvede pripadajočo operacijo nad začetnim stanjem in producira končno stanje za to operacijo. Mo­ del operacijske enote lahko tedaj izgradimo iz selektor- ske operacije, katere graf podaja slika 3.1. Izpolnjenost začetnih pogojev Pi.,j = l,2, ...,n lahko ugotavljamo med izvajanjem operacij in sprožimo pasti, če ti pogoji niso izpolnjeni, ali pa smo ugotavljanje iz- pjolnjenosti teh pogojev že vgradili v krmilne algoritme in jih ugotavljamo s pomočjo vejitev. Slika 3.1- Začetni približek k modelu operacijske enote. • V praksi pogosto uporabljamo oba načina. V našem pri­ meru bomo smatrali Pi. = 1, j = 1, 2,..., n. V sploš­ nem lahko rečemo, da glede na pravilno P, j = 1, 2,... .., n najprej izberemo tej izjavi pripadajoče začetno sta­ nje Si., nato aktiviramo izbrano operacijsko enoto, ki izvede operacijo Op., dobljene vrednosti pa priredimo imenom končnega stanja So.. Graf s slike 3.1 preide te­ daj v obliko na sliki 3.2. V praksi so pogosto končna stanja nekaterih operacij ali njihove komponente hkrati tudi začetna stanja ali kompo­ nente operacij, ki se bodo šele izvršile. V ta namen pred­ postavimo, da imajo začetna stanja do p komponent in ustrezno preoblikujmo prvo selektorsko operacijo s sli:- ke 3.2 v paralelno selektorsko operacijo nad komponen­ tami stanj po sliki 3.3. Pri tem dovolimo, da so lahko komponente stanj prazne -C.^=0, je (1, 2,...,n3 , k£ (1, 2,..., p} . Za končna stanja So., j = 1, 2, ..., h predpostavimo, da imajo do r komponent. D. , je fl, 2, ..., n] , ke^^l, 2, ..., rj. Slika 3.4 podaja graf pjiralelne se- loklorskc operacije, ki vrednosti Icomponent priredi imo- Si. — v. J J iz začetnega stanja dobimo vrednosti w . — Op. (v.) J J J operacija določi vrednosti končnega stanja w. } So. — J imena končnega stanja dobijo vrednosti Slika 3.2: Model delovanja operacijske enote Slika 3.3: Odjem vrednosti stanj Si. po komponentah nom končnega stanja So.. Tudi tukaj dovolimo, da se lah­ ko izvedejo prazne prireditve B. = 0. Sedaj pa upoštevajmo, da so laiiko končne komponente tu­ di začetne komponente novih operacij. V ta namen defini­ rajmo tabelarično prireditev imen komponent C, in B. novim imenom C., C„,..., C , tako da bo v tabeli vsa- 1' 2 m ka komponenta, ki je likrati začetna in končna imela eno samo ime. Nad preimenovanimi komponentami definiraj­ mo novo paralelno selektorsko operacijo, pri kateri na­ čeloma dovolimo, da laiiko vsaJco vredrost komponente 18 Slika 3.4: 1'ripis vrednosti stanju So. po komponentah stanja odjemamo ali priredimo (beremo oz. vpišemo). Izjave R.,isi,2,...,p bodo določale odjem, izjave R. , j = 1, 2,..., r pa prireditev vrednosti, Izjave Q. , j>l, 2,...,p oz r inksl,2, ...,m bomo v ko- njunkciji z izjavami R. oz. R. uporabili za izbiro vozlišč katerim bomo odjemali vrednosti v , zal, 2,..., m oz. priredili vrednosti v , 1 =1, 2,...,r. Za opis ta­ ko deiinirane sestavljene paralelne selektorske operaci­ je uporabimo simbolični zapis. Sel: Sel: Sel: R — sel: Si - ^ ^12- ^2 • Q v Im m R — sel: Si-(V «12 - (S> •^2 — ^ — ^1 ^1 sel: R - P Q —v ^21 1 Q —v ^22 2 . ... ^m"~ m R — sel: r Si- S2- — sel: v-^ S.2-^2 • Q —v pm m (V--r (C3) - W^ im m 1 Q — (C ) — w rm m r (3.1) Sestavljena paralelna selektorska operacija je definirana tako, da lahko "preberemo" poljubno i>ermutacijo p vred­ nosti in "vpišetno" poljubno pcrmutacijo do r vrednosti. Na ta način lahko dobimo vrednosti poljubnega začetnega stanja Si. in priredimo vrednosti poljubnemu končnemu stanju So.. . V praksi običajno ne potrebujemo tako splošne organiza­ cije "pomnilnega prostora", zato lahko pri realizaciji konicretno naloge sestavljeno operacijo (3.1) primerno • poenostavinlo. 3.1. Model pomnilne celice Izhajajmo iz selektorske operacije: Sel (V): V — P (Q, Q) (3.2) V — P (Q, D), kjer je P relacija zamenjave vrednosti Q z vrednostjo Q ali vrednosti Q z vrednostjo D. (3.2) preoblikujemo v disjunktivno obliko: VAP (Q,Q) V VAP (Q, D) (3.3) Modelirajmo V, Q, D z izjavami po [ij takole: WE izjava, ki bo ekvivalentna izjavi V , Q ,... ,Q niz izjav, s katerimi modeliramo Q, ter D ,...,D niz iz­ jav, s katerimi modeliramo D. Relacijo zamenjave pa po­ nazorimo z logično ekvivalenco. V/EA(Q =Q ,)VWEA(Q , = D ) n-1 n-1 n-1 n-1 \VE ^(Qn 9 = Qn ,)VWEA(Q _ = D ) n-2 n-2 n-2 n-2 (3.4) (3.5) WEA(Q =Q) VWEA(Q =D) 00 00 Izraz (3.4) poenostavimo in dobimo: Q , = Q ,AWEVD ,AWE n-1 n-1 n—1 n-2 n-2 n-2 Q = Q A WEVD A V/E 00 o (3.5) imenujmo relacije pomnjenja,za pomnilno celico ki jo te relacije opisujejo pa uporabimo simbol na sUki 3.5. D D \VE • • Q ^SEL / Q VE Slika 3.5: Simbol pomnilne celice tipa zapah 3.2. Model pomnilnika s serijskim odjemom in serijsko prireditvijo Da ne bi ponovno v celoti izvajali vseh relacij tako kot pri pomnilni celici, uporabimo nekoliko poenostavljen zapis. Z £>označimo vrednost, ki je na vhodu pomnilnika, z D ,D _,..., D. označimo vrednosti v pomnilniku n n-1 1 (pomnilnih celicah) z Q pa označimo vrednost na izhodu pomnilnika. Z A., i = 1, 2,..., n označimo poljubne 19 konjunktivne kombinacije niza izjav (a ,, a _,• •• m-1 m—2 ..., a ), kjer velja 2 V n. Z izjavo R pa bomo zahtevali prireditve vrednosti, z iz- > j avo R pa odjem vrednosti. Sedaj lahko definiramo selektorsko operacijo: Sel: ^- A,- A n sel: R—P (Q, Dj) R—P (Dj, D) sel: R — P (Q, D^) R— P(D2, D ) « sel: R — P (Q, D^) R — P (D , D) (3.6) Če upoštevamo model pomnilne celice in simbolični zapis (3.6), lahko kar narišemo eno izmed možnih blokovnih shem takega pomnilnika na sliki 3.6. D Ai R(low A_AR v^ >—1 O < D odobritev odjema \ SEL 7 na' I r Slika 3.6: Blokovna shema serijsko organiziranega pomnilnika 3.3. Model paralelnega pomnilnika Model serijskega pomnilnika posplošimo tako, da bo mož­ no paralelno branje p vrednosti in paralelni vpis do r vred­ nosti ter s tem logično realizacijo sestavljene paralelne selektorske operacije (3.1). Predpostavimo p >r in defi­ niraj mo ADR , i = 1, 2,..., m,..., ADR .,..., ADR ., ter so ADR .,..., ADR .,iinj = l,2, ...^ m, poljubne konjunkcije izjav a _,..., a ob pogoju da, če je i_= j imamo opraviti z eno in isto konjunktivno kombinacijo iz- inv a ^,..., n .D , D .....D so vrednosti na vho- n-1 o r r-1 1 du paralelnega pomnilnika, Q , Q nosti na izhodu ter V , V ,... ,V vrednosti v pomnil­ nih celicah. R^, R ,..., R specificirajo branje iz para­ lelnega pomnilnika, izjave R , R ,..., R pa vpis v pa­ ralelni pomnilnik. Sestavljena paralelna operacija se tedaj glasi: Sel: R —sel: R —sel: P ADRjj -P(Qj,Vj) ADRpj -P^-^^) ADR^2 ^P(Qj,V2) ADRp2 -PfOp.Vj) ADR -P(Q ,V ) im 1 m ADR — P(Q , V ) pm p m • sel: ADRj^-P(Vj,Dj) ADRj2-P(V2,D^) R —sel: ADR^j -P(Vj,D^) ADR^2-P(^'V ADR, — P(V ,DJ ADR^_ —P(V ,D ) Im m' 1 rm m r Paralelna selektorska operacija, ki odloča o vpisu v pom­ nilne celice sicer ni enolična, vendar hi običajno, da bi istemu imenu komponente stanja skušali hkrati prirediti dve ali več vrednosti. Eno izmed možnih blokovrih shem takega pomnilnika poda­ ja slika 3.7. ADRjj AD^ST ADK . : n . ADRpi i «1 R2 \" 1 •* / PLA ---C ---C • >-c v ,r^ A ^ 1 • • • 1 PLA C v, *J 2 1 SEL/ d''^ "A— '. \^ • • • i^ * • * m SEL / Wr" ., Q, so vred- «2 Slika 3.7: Blokovna shema paralelnega pomnilnika 20 Tak paralelni pomnilnik v praksi omogoča precej več kot realno potrebujemo. Zato ga lahko pri reševanju kon­ kretne naloge primerno poenostavimo. 3.4. Modeli operatorjev V tem razdelku bomo pod operatorjem razumeli pred­ vsem enote, ki izvajajo operacije določene s selektorsko operacijo kot začetnim krmilnim modelom, ki ga lahko po potrebi razgradimo do primernega abstraktnega nivoja. V ta sklop sodi tudi selektorska operacija s slike 3.2, ki izvaja operacije Op. (v.). Na sliki 3.8 je ponovno nari­ san graf selektorske operacije, iz katerega bomo razvili modele operatorjev. Op. w.— Op.(v.) J J J Slika 3.8: Začetni približek k modelu operatorja Selektorsko operacijo zapišimo v disjunktivni obliki: PjAOp^(v^)VP^Op2(v2)V...VP^AOp^(v^). (3.8) Op.(v.) pa pomeni vrednost w., ki jo dobimo kot rezul­ tat operacije. (3.8) laliko tedaj zapišemo: 112 2 n n (3.9) Vendar (3.9) opisuje samo odjem vrednosti w. iz izhoda operatorja, ne pa tudi izvajanje operacije. Zakaj sedaj nenadoma težave s selektorsko operacijo? Selektorska operacija, kot je definirana, je logični (krmilni) model kamor lahko zapišemo "karkoli" . Če sledimo pot i sko­ zi selektorsko operacijo, laliko rečemo da, če je pravil­ na P. potem se izvede operacija Op. nad vrednostmi sta­ nja Si. in kot rezultat določi vrednosti končnega stanja So.. Ostale poti v selektorski operaciji lahko v tem tre­ nutku ignoriramo. Pri fizični izvedbi modela selektor­ ske operacije pa je tako, da moramo definirati podatkov­ ne poti, definirati logično izvedbo .operatorjev, poskrbe­ ti za krmiljenje celotnega operatorja in na koncu odvze­ ti pravilen rezultat. V ta namen najprej definirajmo realizacijo operacije Op., i = 1, 2, ..., n, z operatorjem OP.. V splošnem la.hko operatorje realiziramo na dva načina; s pomočjo logičnih tabel ali s pomočjo logičnih izrazov. Slika 3.9 logična tabela ali _ logični izraz D. •» D i o Slika 3.9: Definicija logičnega modela operatorja podaja koncept po katerem operacijo Op. prevedemo v njien logični model. f in g sta surjektivni preslikavi, f in g pa sta v sploš­ nem relaciji. D. in D so nizi pravilnostnih vrednosti iz­ jav, s katerimi smo modelirali vrednosti v. in w. glede na [l] . V splošnem lahko tedaj tudi operatorje ponazarjamo s se­ lektorsko operacijo, saj lahko poljubno logično tabelo pre­ vedemo v disjunktivno obliko prav tako pa tudi poljuben logični izreiz. Sedaj pa ponovno izhajajmo iz (3.8). Tedaj lahko glede na zgornja izvajanja narišemo naslednjo blokovno shemo operatorja za sliko 3.8 na sliki 3.10. Slika 3.10: Začetni model operatorja Kjer so Op , Op ,..., Op v splošnem zopet selektorske operacije,• ki jih lahko definiramo takole: Sel: P.Av,^ — w.^ 11 1 r, . 2 2 P.Av. — w. 11 1 P.Av. —- w. 11 1 > Op. (3.10) Z v. smo označili različne vrednosti začetnih stanj defi­ niranih z začetnim pogojem Pi. (Si.) in z w. vrednosti končnih stanj So.. V splošnem desna stran (3.10) ni eno- 1 ična. Sedaj pa definirajmo Se nekatere enalfovrcdnc blokovne sheme operatorjev. Izhajajmo iz grafa na sliki 3.11. 21 Slika 3.11: Preoblikovana '.slektorska operac.ij.v Ugotijvimc lahko, da QI-;?.J S slike 3.11 uHrezg. gratii s slike 3.8. V^el;a namreč : OV...^'0Vp.AOp. (v.)VOV...VO (:3.11) 111 P, A O (v.)VP,AOp,(v.) 1 n Ji 1 11 P.AO (v.)VP.AOp.(v.) (3.12) 1 n 1 I i ', P AO (v )VP ACp (v ) n n n n n n Če je P. pravilna tedaj zgornje relacije prorfajo v obliko: PiAOp.Cv.) kar je enako (3.11). Pri tem je opreci j,i O •'.si.nirana tako, da velja O (v.) = 0, i = l,2,...,'n . Blokovno shemo za ta primer podaja slik,' 3 .i:'.. •Slika 3.12: EnaJvovrcdon zai-ctni nioclc! operatorja Iz razlogov, ki so snovalcem dobro znani lahko SEL ope­ racijo s slike 3.12 pogosto nadomestimo z ALI operacijo aH s skupnim vodilom s tremi stanji. V praksi se pogosto uporablja tudi poenostavljena blokov­ na shema operatorja s slike 3.12, ki jo podaja slika 3.13. SEL operatorji niso krmiljeni s P. Slika 3.13: Poenostavljerimcfdel operatorja Poimenujmo operator s slike 3.10 univerzalni operator. Sedaj pa izhajajmo iz krmilnega grafa na sliki 3.14. Slika 3.14: Sestavljena šelektorska operacija kot krmilni model Vzemimo, da lahko notranje seleklorske operacije reali­ ziramo z operatorji OP , OP , — , OP . Tedaj lahko ta­ koj narišemo blokovno shemo za celotno krmilno shemo s slike 3.14 na sliki 3.15. Op. SEL • SEL a SEI^ '• SEL z Op, izbira izbira opera- operacije to rja , • ' Slika 3.15: Model operatorja in krmilna struktura ža krmilni gral s slike 3.14 22 Nn sliki 3.15 so SliL. krmilni ukazi, do knlcrih pridemo s preoblikovanjem iisjav 1» ,...,I* ,Q ,...,Q .... v nize ekvivalcMltiili izjav 1x3 [lostopku [ij • ''ri snovanju mikroprogramiranili sistemov se je sanje udomačil iz- raz mikroukazi, za celotno polje pa izraz vertikalno funk­ cionalno polje. V tem smislu sta na sliki 3.16 rodani še blokovni shemi in struktura krmilnega polja za sokvcnčuo in paralelno vezane univerzalne operatorje. •T 0|' Op., Op, Slika 3.16: Blokovni sliemi in struktura krmilnega polja za sokvcnčno in paralelno povezane opera­ torje ^ Snovanje operatorjev laliko tedaj pričnemo z izdelavo gra­ fa, ki je v začetku sclcktorska operacija, ki jo po (»tro­ bi razgradimo v sestavljeno operacijo, sestavljeno iz scicktnrskili, sckvcnčnili in paralelnih operacij. Tako do­ bljen graf pogosto imenujemo krmilni graf operatorja, saj določa precedenco o|)eracij pri izvajanju. S fiomočjo krmilnega grafa pa nato iTidcInmo blokovno shemo o|)era- torjn, ki izvede operacije določene z krmilnim grafom. Nasletlnji korak je logičiio snovanje, ki nas pripelje do lo­ gične sheme operatorja. 1. ZAKLJUČEK Predlagani postopki snovanja in izgradnje logičnih modelov računalniških struktur so splošni in niso omejeni samo na snovanje mikroprogramiranih sistemov. Osnova [»stopkov so sclcktorska, sckvenCna in paralelna operacija, ki so lahko tudi vase zaključene. Z dodajanjem scmnntikc lali­ ko z njimi modeliramo najrazličnejšo računalniške struk­ ture na različnih obstraktiiih nivojih. Pokazali smo, kako lahko isto al^straktnc strukture upo­ rabljamo tako za snovanje krmilnih mehanizmov kot ope­ ratorjev, ki jih Ic-ti krmilijo. Izkazalo se je, da v sploš­ nem ni mogoče postavili ostro meje med krmilno in ope;- rnrijsko strukturo izbrane računalniške strukturo. Meja je s stališča zunanjega opazovalca (uirarabnika, progra­ merja itd.) določena z. abstraktni m nivojem na katerem opazujemo obnašanje izbrano računalniško strukture. Od tod izhaja tudi programski model izbrane računalniško strukture za izbrani abstraktni nivo opazovanja. Po drugi strani pa laliko v splošnem isto računalniško strukturo opazujemo kot krmilno strukturo, operacijsko ali pomnil­ no strukturo. Ugotovili smo namreč, da v splošnem ses­ tavljene strukturo vsebujejo vse tri komponente. Od kon­ teksta opazovanja je odvisno kako bomo "videli" takšno strukturo. Potrdimo to z zgledom: mikroprogramirana krmilna enota jo brez dvoma krmilna struktura, saj do­ loča operacije in njihovo zaix>redje pri izvajanju. Hkra­ ti pa je tudi pomnilna struktura, saj na adrose iz različ­ nih virov odgovarja z različnimi podatki, ne glede na tt> kaj ti podatki predstavljajo. V njej laliko vidimo tudi ope­ racijsko strukturo, posebej če jo opazujemo v kontekstu i nstrukcijski niz - mikroprogramirana krmilna enota - m ikroinstrukcija - operacijska enota - izjave po končani operaciji, kjer je krmilna enota prva izmed dveh sokvcnč­ no povezanih operatorjev (operacij). Takšno moryavo kontekstov opazovanja pri snovanju pogos­ to uporabljamo, S.TJ nam menjava konteksta prikaže pro­ blem v novi dimenziji in nas s lom navede na rešitve, do katerih bi laliko težko prišli zdrugačnim kontekstom opa­ zovanja. S. LMERATUKA [l"] M. Gerkeš: Logični modeli računalniških struktur, Informatica 3, str. 1 - 12, Ljubljana 1985. [2] C. D. Jones: Software Design: A Rigorous Approach Prentico-Hall International, 1980. £3] J. Viraiil: Preklopno funkcije, strukturo in sistemi. Univerza Edvarda Kardelja v Ljubljani, I-okulteta za elektrotehniko, Ljubljana 19B3, [4] M. Gerkeš, M. I'crnek, M. Paglavec: Aplikocija- biixjlarnega mikroprocesorja. Poročilo o Uclu za lo-^ to 1984, UUP/UP: RačuanlniSka oprema 03-2370, PORS 3, Visoka teliniška šola, Maribor, 1984. Raziskavo je sofinancirala Raziskovalna skupnost Slove­ nije PoRS 03.