NFORMATICA UNIVERZA v LJUBLJANI •• • • INSTITUT "JOŽEF ŠTEFAN odsek za uporabno matematiko 61001 ljubljana jamova 39 Jugoslavija tel.( OBI) 63-261 tlx: 31-296 yu jostin INFORMATICA časopis za tehnologijo računalništva in probleme informatike časopis za računarsku tehnologiju i probleme informatike spisanie za tehnologija na smetanjeto i problemi od oblasta na informatikata Ć«so|)ls izd.ljn Slovoii.sko (Ifiislvo INFORMATIKA, 61000 Ljiihljiina, Jamova ii'), JiKjoslavija lIKKDNßKI ODIlOH: 'Člani: T.Alcksić, l)o()<|rait, I), liitrakov, Skopio, 1'. L)ra-ijojlDvič, H<^ka, S. Il(xi/.ar, l.jiihljaria, II, Horvat, M;>ritu>i-, A. Mandx.lr, Sarajevo, S. Milialić, Varažditi, S.Turk, /.Mi|rt!l>. (ilaviil ill (>vi(' - inforiciacijiiki sistemi M. Kxfl - o|»>rai ij.ski sistemi A , .lerinaii-llla/.ić - iKjvict? zalo/.ništva I). Jormaii-Ml.iž.ii'-D/oiiova - I iliTatiii a in sr<>('anja I.. I.ftiari - pr'l>>kl i otehniko, Univerze v i.jnhljani Uredništvo In uprava: (>1000 l.jnlilJana, Institut .ložef Stelan, Jamova M'», telefon ((Hii) 63 261, telegram: JOSIIN, telfx: :ll J'>6 Yll .UiSriN. l/etna narof nlna za rlelovne <>r<|anl/.ncije 300,00 din, za posameznika 100,00 din, pi odala posamezne številk« M,00 din .i^.lro tarmi; TiOlOl-f,7H-IIHIi Sl.illAre iire.lnl-iiva laliko rii/.liknje (kI innenjn avtorjev. Na | i>.llai|l mneii|a Kepiil,|ii;ke(|.i Hekretariata za pro.sveto In kiilliiiost. .r,i/77 /.dm i.?>,\'m. Je ("asopin INK'. IHMAIH A Sti okovnl . asopis, ki Je opro.šreri temelj-Ii' iia ilavlva od (ir-miet i pioizvodov. li-ik: l'i>.K,;rna Kie.iij.i, |,|iìlill.iii,-'•udii'Ma riodično aktiviranje prcKira-ma 17 Cleanini) up DnstruetuiAlijori-tliins (Ising Invariants 20 Monitori za mikro sisli'ine sa pr 88 Llni|uistieN and Antomatic Pre* e. HsliKi of Texts 71 Stniletilska vprašanja 72 Novice In zanimivosti 73 Slovar 79 Literatura In srečanja INFORMATICA Journal of Computing and Informatics Published by INFORMATIKA, Slovene Society for informatics, 61000 Ljubljana, Joinova 39, Jugoslavija KDiroHIAL BOAIIIJ: T, Alekalć, Beoyrad, I). Bltrakov, Skopjo, P. Dra-cjojlovl.', Heka, S. II.Klžfir, l.jubljaiia, B. Horvat, Maribor, A. Mamlžl.', Sarajevo, S. Mlhallć, Varaždin, S. Turk, Zugrob. Edllor-ln-Chlef: A.I'. Ž(>leznikar TECHNICAL DKI'ARTMKNTS EDITORS: volume 1.1877 - W® 2 V. I. I). M A. H. L. n, N. L. 0. V. M, I'. S. Ii.it(i()i>vl^ - News Kalkovi? - l-xliicatloii . S|i<.||h1, M. Vukobrutovlć - Hobollca Tancig -Com(iullng In Iluinanltles and Social Sciences Turk - Hardware Kxaecutlve Editor: li. M urn PIIHLISHINO COUNCIL T. Uanovec, Zavod SH Slovenijo za družbeno planiranje, LJubljana A. Jernian-Hlažlf, Slovensko druStvo Informatika Ljubljana B. Klemen^l?, ISKHA, Elektromohanlko, Kranj S. Saksida, Inatltut /.a sociologijo in filozofijo pri Univerzi v Ljubljani }. Vlraiit, (•akulteta za elektrotehniko. Univerzo v Ljubljani Meackiuartersi 61000 LJubljana, Institut Jožef Stefan, Jamova .V>, I'lu^.e, (061) 63 261, Cable, JOSTIN Ljubljana, Telex. 31 2% YU JOSTIN Annual oubacrlptlo., rote for abroad Is US 3 18 fof com-P«nl«s, and US 3 Ö for individuals. Opinions ««pressed in the contributions ar. not nocess«-rlly shared by the faitoria» Board. Printed by: Tiskarna Kraeija, Ljubljana Design: T. Simončič VSEBINA A.P. Žoleznikar I. Ozimek M. Kovačević D, Npvak B. Popović M. Exel M. Meklnda S. Alagić M. Kovačević D. Novak A.P. Želcy,nlkar J.J. Dujmović P. Kolbezen B. Mihovilovlć Z. M Have J.J. Dujrtiović V. Zgaga M. Exal a. Trobec J. Korenini F. Novak H. Tireford D. DavCev P. Sgalt Programming of Mlcrocompu-tora Using Z80 Processor 13 An Application of the Monitor Concept to the Operating Subsystem for perlecislon Muklng-Survoy, Classification and Annotated Bibliography 38 Solution of Some Problems of the Real-Time Mlcroprlt>4doraddvilhC!uiy gUBi;SBC«,CS>ii,NBO t t v t ! t 84ilt Hibliwl, nibtnict with amy, coniai« and atta» KcumulUoi AND> 0 t p t 0 1 Loglul optrelhw OReiKORi 0 t p « 0 0 AndMI'iitifriraitllasi mC) « » v t 0 » Mit Incmnnl tSCg 0 « v t 1 » 84>lt dKmiMiit ADO DD. SS t 0 0 0 0 X 164»! aìil AĐCKL.SS t t v « 0 X 16^1 aid vllhcany sec HL. SS » t v i 1 X l&Mi ubUoct wllh eany RLA^RLCA.IIRA.RRCA t • 0 9 0 0 Route KCimuditot fiL>;itljCo,RRi;RllCii i t p t 0 0 RoUU ind ihift location « SLAi;SRAs:SRLe RU3.RRD 9 » p t 0 0 Rotate digit left and rtsbl DAA t t p < e t Decimal attuai accumtdator C?U 0 0 0 0 1 1 Camplanenl accumulai« SCF 1 e 0 s 0 0 Setcany CCP i • 0 0 0 X ComplaiMiil cany INt.(C) 0 t p « 0 0 Input ro(latei bidlrecl INl,)ND;0Un:0UTĐ e t X X 1 K 1 Block Input and output miR; INDR;0TIIt;0TOR e X X 1 X 1 Z°OirBi!'Oal!umiaeZ°l LĐl.LĐĐ 0 X t X 0 0 1 Bock tnuufei Imlracttonl UHR, LDDR 0 K 0 X 0 0 1 P/V-UfBC<>0.othe™mP/V-0 , Cri.CPiR.CPD.CFDR a t « X 1 X Dock aeaich Inttructlona Z-IlfA"(HL).othelwlaeZ-0 P/V - 1 If BC ^ 0, otherDdM P/V " 0 U>A.t:U)A,R 0 t Fl t 0 0 Ibe conlnit of the inbrrupi enable iUp^Acp (IFF) li copied Into the P/V flag BtTb.s « « X X 0 1 Ihe Hate of bit b al location a b copied into Uh znaB LOOP 8 J INC IX JPUT NEXT SUBTEXT CHAR LD A,(IX+00H)5 INTO ACCUMULATOR CPI {COr^PARE (A)=((HL)), INC (HL), J DEC (BC) RET PO 5EXIT IP (BC)=0 JR Z,LOO? f ELSE GO TO LOOP RET JEXIT Tu sta L6 in L7 posebni lokaciji« 5e je bila primerjava uspešna, imamo npr. po izstopu Iz subrutina ((IX)) = 'NULL', kar je anak konca podteksta. V nasprotnem primeru pa inicializl-ramù IX (na začetek podteksta) ter pokličemo subrutino SEBA z obsto (ju Izenačimo z HL, BC ečimi parametri L6,L7 znova. Naslove uspeha Slika 3. Tu pomeni: C bit prenosa (carry), Z bit ničle (zero), S bit predznaka (sign), p/v bit parnosti ali prestopa (parity/overflow), H bit prenosa Iz spodnje polovice zloga (half-carry) in N bit se?itevanja/ odštevanja} $ nakazuje spremembo bita, • njegovo nespremenjenost, .0 anuliranje in 1 postavitev na vrednost 1; x označuje nepomembnost} nadalje predstavlja r registre A,B,C,D, E.H,L; črka e predstavlja B-bitno in SS 16-■ bitno lokacijo. Ponavljalnlm ukazom so enolično prirejeni t.l. koračni ukazi, ki se izvajajo neponavljalno. To so ukazi za nalaganje (LDI, LDD), primerjavo (.CPI, CPD), vhod (INI, TND) in izhod (OUTI, OUTD). Splošna ahema teh ukazov je: akcija koračnega ukazaj inkrementiranje ali dekrementiranje (HL) In/all ne (DE),-dekrementiranje (BC); INCLUDE zastavica-(BC); Koračni ukazi predstavljajo tako telesa ustreznih dountil stavkov za ponavljalne ukaze. Z uporabo ponavljalnlh in koračnih ukazov Je mogoče doseči dokaj enostavno zgradbo posebnih programov. Vzemimo kot primer subrutino za iskanje podteksta v danem tekstu. Napišimo najprej pomožno subrutino SEBA s temle psevdo kodom : SUBROUTINE SEBA poišči prvi znak podteksta v danem tekstuj ce takega znaka v tekstu ni, izstopi} sicer pa shrani : inkrementirano lokacijo ujemanja (HL) in dekrementlrano stanje tekstovnega Stevnika (BC)} ugotovi, ali se natilednji znaki podteksta pojavljajo zaporedoma v tekstuj če Je bil pred popolnim ujemanjem podteksta in dela tekata dosežen konec teksta (glej (BC)), takoj izstopi} sicer pn Izstopi zaradi ujemanja ali neujemanja s podatki v uHtreznlli registrih ENDSUBROUTINK To subrullno zapišemo konkretno takole; SEBA:} LD A,(IX+OOH){LOAD FIRST 3UBTKXT CHAR CPIR • }REPEAT SEARCH FOR (A)=((Ja,)) ret ]'0 }EXTT IP (BC)=0 LD fL6),HI, }SAVK (fH,) LD 0.7),BC }3AVE (BC) (L6)-1 lahko shranjujemo in imamo tako zabeležene vse točke vstopanja podteksta v dani tekst. Imejmo dve razpredelnici z njunima začetnima naslovoma RAZI in RAZ2 ter z enakim obsegom OBS, ki predstavlja število zlogov v posamezni razpredelnici. Podatki RA21, RAZ2 in OBS naj se shranjujejo na lokacijah (naslovih) LOCI, L0C2 in L0C3. Podatke prenesemo is prve v drugo razoredelnlco takole: ld de,(LÒC2); (de) je namenski naslov LD HLp(LOCl)} (HL) Je izvirni naslov LD B,C,(L0C3)j (BC) Je število zlogov LDIR ; izvede se prenos Pri tem se tabeli vobče ne smeta,prekrivati. Na podoben način se lahko uporabi tudi ukaz LDDR. Ča pa takega ukaza ni, moramo imeti zanj tale programski segment ; loop I,D ld dec dec dec ld or jr A,(DE) (HL),A DE hl BC A,B C m, loop A pride ((DE)) (hl) pride (A) DE pride fDE)-l hl pride (hl)-1 BC pride (BC)-l } preizkusi (BC)=0 z ; B or C = o } če Je (BC)yo, pojdi v loop Ukaza LDIR in LDDR lahko uporabimo tudi v primerih k,opiranJa podatkov iz ene v drugo tabelo, ko se le-tl prekrivata} v tem primeru so pokvari izvirna tabela. Ukaza LDIR In LDDR lahko uporabimo tudi , za začetno (ali gosebno) nastavitev razpredelnice (npr. za začetno nastavitev simbolne tabele). Npr. za ukaz LDIR imamo psevdo kod: D0UHTIL((BC)=0) -*-"({hl))} de -a— (de)+l5 hl BC .<=6— (BC) -1 enddo (HL)+1} Tako dobimo: LD HL.RAZ LD (HL),0 LD DE,RAZ+1 LD BC,0BS-1 LDIR } v I^L je začetek razpredelnice } anuliraj prvo lokacijo J v DE je začetek + 1 5 preostali blok je OBS - 1 I anuliraj preostale lokacije Tako omo celotno razpredelnico anulirali, ko se jo prva lokacija, postavljena na nič, kopirala v drugo, druga v tretjo itn. K osnovnim tekstovnim manipulacijam sodi tudi vpisovanje In izpisove.nje teksta (npr. v ASCII kodu). Proceoor Z80 omogoča med drugim (zaradi materialIziranega sklada) takojšnje rekurzlvno pozivanje oubrutin. Imejmo določeno Z80 konfiguracijo (npr. z UART v vhodnem/izhodnem kanalu), kjer bodi KONVR Ime kontrolnih vrat za nerijski prenos podatkov (vsebina vrat Je status UARTja) ter TTY Ime vhodnih/izhodnih vrat, Subrutina za vpis znaka iz teleprinterja (serljakepa kanala) v akumulator A bodi: TTWr:f IN A,(KONVR)}čakalna zanka, ko se preizkuša niT 1,A ; kontrolni bit 1 na enico za JR Z.TTYVP ! aeriJaki vhod P A,(TTY) }znnk pride iz vrat v^aktunulat. RRT jvrnitev v pozivno točko 10 Podoìsno je mogoče napisati tudi subrutino za na teleprinter (ozlro-Imamo: izpis znaka, ki Je v A, ma v serijski kanal). In TTYIZ : f PUSH AF TEST j! IN LD (HL),A OR A RET- Z INO HL JR SPORVP Iohrani AKU in status A,(KONVR) (čakalna zanka: preizkus konBIT O,A J trdnega bita O na enico JB Z,TEST J za serijski izhod POP AP |vmi vrednost v AKU in stat. OUT (TTY),A jznak se odda v seriski kan. RET jvrnitev v pozivno točko Za vpis/izpis (vpis z odmevom) dobimo tole preprosto subrutinoi TVHIZ: s CALL TTYVP jySitaj znak CALL TTYIZ f izpiši ga RET ; in vrni se kjer Je zadevni znak ob izstopu v A. Izpišimo iz pomnilnika še poljubno dolgo zaporedje znakov, tj. sporočilo, ki začenja na lokaciji BEG, končuje se pa vselej z ASCII znakom TTOLL', tj. z OOH. Pred pozivom te šubru-tine naložimo (BEG) v HL z ukazom LD HL;bEG. Tedaj imamo: SPORIZ » ; LD A,(ra,) jv A pride ((HL)) CALL TTYIZ jpoziv izpisa znaka OR A »primerjava na OOH v AKU RET Z }izstop pri OOH INC HL {povečanje (HL) JR SPORIZ jizpis naslednjega znaka Podobno imamo za vpis sporočila: SPORVP:, CALL TTYVP ;v A pride znak iz kanala ;v (HL) se vpiše (A) iprimerjava na OOH jizstop pri OOH {povečanje (HL) jvpis naslednjega znaka Med osnovne tabelne manipulacije sodi tudi nalaganje' strojnega koda v pomnilnik (v he-ksadecimalni obliki) preko teleprinterja (serijskega kanala) ter izpis naloženega koda v obliki pravokotne tabele ali pa celo v t.i, ukaznem formatu. Zbirka teh subrutin za različne ^ bo opisana kdaj drugič. 4. Relativno naslavljanje V primerjavi s procesorjem 8080 ima procesor Z80 tudi nove ukaze za relativne skoke (pogojne in brezpogojni skok), in sicer JR, JR C, JR NC, JR Z, JR NZ, DJNZ Ta množica ukazov je pa v primerjavi z drugimi procesorji (npr. P8) se vedno pičla, saj pri teh pogojnih skokih le ničlo in prenos. Procesor P8 lahko preizkuša pri relativnih skokih še prestop, predznak in z dvema logičnima funkcijama (konjunkcijo in disjunkcijo) Se kombinacije prestopa, ničle, prenosa, predznaka in njihovih negacij. Vendar velja poudariti, da je^s kontekatno ustrezno uporabo kriterijev za ničlo in prenos mogoče rešiti probleme predznaka in prestopa. Relativne skoke uporabljamo predvsem v lokalnih programskih kontekstih; z njimi je programski kod krajši in ga lažje premeščamo v pomnilniku. Pri daljših skokih (ki presegajo območje -126 do +129 lokacij od lokacije operacijskega koda akočnega ukaza) lahko uporabimo dvojni ali večkratni relativni skok. Pri tem upoštevamo, da Je trajanje relativnega skoka nekako za 2056 večje od trajanja normalnega skoka (ukazi JP, JP C, JP NC itn.) in da je to časovno povečanje lahko v nekaterih primerih kritično (prekinltvene subrutlne, časovna konverzija). Torej moramo upoštevati problem prostora (relativni skok) in problem časa (normalni skok) v posameznem uporabniškem programu. V okviru relativnih skokov velja posebej obravnavati ukaz DJNZ LOOP. Ta ukaz Je zlasti pripraven v t.i. kontrolnih zankah. Njegov ps-evdo kod Je: .II1((B)Ä)) THEN GO TO LOOP ELSE ENDIF Imejmo začetni vmesnik ZVM (tj. prvi naslov tega vmesnika) in končni vmesnik KVM. Želimo subrutino, ki bo pomikala zloge iz ZVM v KVM, dokler ne najde ASCII znaka 'CR' ali dokler ni pomaknila 80 zlogov. Imamo; ; nastavi Števnik B { nastavi začetni kazalec J nastavi končni kazalec j prenesi zlog iz začetnega ( v končni vmesnik J primerjaj na znak 'OR' i prenos je opravljen ; sicer pa nadaljuj ; s prenosom naslednega znaka 'VMPR1 i LD B,80 LD HL.ZVM LD DE,KVM ZANKA:J LD A,(HL) LD (DE),A CP ODH RET Z INC HL INC DE DJNZ ZANKA Ukaz DJNZ nadomešča tako dva ukaza, in sicer DEC in JP oziroma JRi s tem se skrajša kodni zapis za en zlog in oas izvajanja za tri procesorske cikle. 5. Manipulacija z biti in uporaba indeksnih registrov Procesor Z80 ima ukaze za preizkušanje, anuliranje in postavitev poljubnega besednega bita (0,1,...,7) v registrih A,B,C,D,E,H,L ter v pomnilniku, če se naslovni kazalci nahajajo v registrih HL, IX in lY. Uporaba 'bitnih'ukazov pride v poštev pri konceptih kontrolnih, indlkacijsklh zastavic pri programiranju zunanjih kanalov, v notranjih programih, pri zgoščevanju podatkov (pakiranju) v pomnilniku ter pri organizaciji in uporabi t.i. binarnih tabel oziroma matrik (preklopne in relacijske matrike v telefoniji, v gramatičnih in drugih uporabniških obdelavah). Z enim samim ukazom je tako mogoče opraviti ustrezno bitno manipulacijo na poljubnem mestu in lokaciji. Že v dveh prejšnjih primerih (subrutina TTYVP in TTYIZ) smo uporabili ukaz BIT za preizkus bita O in 1 v akumulatorju. V ukazih SET bit,IME| RES bit,IME} BIT bit,IME| označuje 'bit' element 0,1,...,? in IME ime registra A,B,...,L oziroma izraze (HL), (IX+D) in (IY+D). Kadar želimo anulirati tretji bit vsebine na naslovu lOOAH, uporabimo segment LD HL,100AH| naloži lOOAH v HL ■RES 3,(HL) J anuliraj bit 3 vsebine (lOOAH) oziroma tudi LD IX.lOOOHi naloži lOOOH v IX RES 3,(IX+0AH)j prištej A k lOOOH in anuliraj I bit 3 vsebine (lOOAH) ali LD lY.lOOBH J naloži lOOBH v IY RES 3,(IY+PPH){ odštej 1 od lOOBH in anuliraj J bit 3 vsebine (lOOAH) Pri indeksnem naslavljanju lahko za D v izrazih IX+D in 1Y+D določimo posebna imena z uporabo zbirniSke direktive BQU. Ce pišemo X EQU O f X ima vrednost O Y EQU 1 t Y ima vrednost 1 Z EQU 2 ; Z ima vrednost 2 potem smo s segmentom LD SET RES BIT JP IX lEOOH I postavi (IX) na lEOOH 1X+I) i bit 5 vsebine (lEOO) je 1 IX+Y) I bit 4 vsebine (lEOl) na O IX+Z) I Se je bit 3 vsebine (1E02) Z,YES } enak 1 pojdi v YES ... i sioer ... postavljali in anulirali ter preizkušali bite besed od nekega osnovnega naslova, tj. lEOOH navzgor. 6. Pomlkan.le In rotiranje beaeđ Procesor Z80 Ima bogato zalogo raznovrstnih poinikalriih in vrtilnih ukazov, ki Jih Je podobno kot 'bitne' ukaze mogoSe uporabiti nad registri A,B,...,L in nad pomnllnlskiml besedami (kazalci v HL, IX In IY). Sestavljena vrtilna ukaza ata npr. RLD in RHD, ko imamo aklcl; 1 4 3 o (hll riìy - Tu imamo 4-bitno rotacijo med akumulatorjem A in pomnilno celico z naslovom (HL). Ta ukaza sta npr. pripravna za zbiranje hekaadecimalnih številk v heksadecimalno (notranje binarno) število. Pri vpisu heksadecimalnega števila iz periferije, ko prihajajo v^ heksadecimalne številke v obliki ASCII kodov, ae te najprej preslikajo v ustrezne 4-bitne ekvivalente in nato zlagajo v pomnilnik. Na ta na5in Je mogoče enostavno voltati poljubno dolgo heksadecimalno število v pomnilnik. Če označimo s Q virtualni register ter z (HL)' položaj nižjih 4 bitov in z (HL)" položaj višjih 4 bitov celice (HL), dobimo za ukaz RLD shemo ! Q (A); A — ((HL) ")s (HL)" ((HL)'); (HL)' (Q), Z zaporedjem ukazov RLD (oziroma RRD), INC HL in DEC HL Je mogoče oblikovati poljubno dolg 4-bitni vrtilni register v pomnilniku. 0-glejmo si subrutino za vstavitev heksadecimalne številke (na nižjih štirih bitih) v A na najnižje mesto večzložnega operanda. Imamo: INSA:j ; } f LD ADD DEC LD DEC NAZAJ; RLD DEC DJNZ RLD RET (HL) je začetni naslov včzl operanda. (C) Je dolžina operanda (štev zlogov), (A) Je heksadecimalna številka (sp 4 b) register B Je aktiven B,0 J nastavi kazalec HL HL,BC; na konec operan-HL I dnega registra B,C } nastavi B za izvajanje B J večzložnega pomika vstavi številko (A) z uporabo { štiribitnega levega HL ; pomika celotnega več-NAZAJ} zložnega operanda J določene dolžine ) vrni se Ko izstopimo le INSA imamo v A najvišje mesto operanda; tako Je mogoče to subrutino uporabiti za oblikovanje večzložnega, v levo vrtilne-,ga ali pomlkalnega registra heksadecimalnih .številk. Tudi pomike l6-bitnih registrov la;hko dosežemo dokaj enostavno. Za pomik vsebine za en bit v levo v registru DE imamo SLA E ; pomakni (E) v levo z ničlo RL d ; pomakni (d) v levo s prenosom Za register HL pa je najkrajša oblika levega pomika ADD HL,HL ; pomakni (HL) v levo z ničlo Za desni pomik pa imamo ; SRA H ; pomakni (H) desno z ničlo RR L ; pomakni (L) desno s prenosom Dober primer uporabe pomlkalnega In vrtilnega ukaza je subrutina za množenje l6-bitnih besed, ko imamo (HL) = (BC).(DE): MNOŽ : ; ; anuliraj (HL) ld hl,0 MZAN: ; srl b rr c . jr nc.nise ; ADD hl,de MISE: « EX HL.DE i pomakni (DE) v levo ADD III,, in:, ; EX }IL,DE ; LD A,n ; če je (BC)=0, končaj OR C f JR NZ,MZAN t sicer nadaljuj do konca RET i izstopi Pomlkalni In vrtilni ukazi nad ((!&)), ((IX+D)) in ((IY+D)) so izredno pripravni^za konstruiranje aritmetičnih rutin s- praktično poljubno stopnjo natančnosti (odvisno od prostora in časa). Brez težav je tako mogoče napisati rutine za 54-bitno aritmetiko (vključno z znanimi standardnimi funkcijami); to pa pomeni, da imamo na ^R tudi možnosti največjih računalnikov. Druga možnost za uporabo vrtilnih in po-mlkalnih ukazov se ponuja pri prenosu korekcijskih kodov, tj. pri prenosu podatkov na daljavo. Na koncu tega poglavja si oglejmo še subrutino za izpia akumulatorja v obliki dveh heksadecimalnih številk. V tej subrutini so uporabljeni ukazi RRCA za desno vrtenje vsebine akumulatorja. Imamo IZPA:; heksadecimalni izpis akumulatorja PUSH AP ; ohrani AI' RRCA ; zavrti (A) v deano RRCA ; štirikrat RRCA ; RRCA ; CALL INVPR ; uporabi inverzno pretvorbo POP AF t vrni AP . INVPRjj pretvorba heksdec v ASCII PUSH AP ; ohrani AP AND OPH ( odreži gornjo 4 bite CP OAH ; če je v A vrednost O,...,9 JR C.NIPR ; pojdi v NIPR ADD A,7 ; sicer priStej T NIPR:; oblikuj končno obliko ASCII ADD A,30H ; prištej 30H CALL TTYIZ ; izpiši heks številko POP AF ; vrni AP, ki Je nespremenjen RET t Izstopi Ta subrutina združuje dve subrutini,oziroma ima dve vstopni točki: IZPA in INVPR. Namesto, da bi v IZPA drugič poklicali INVPR, vstopimo v njo neposredno. Tu upoštevamo predvsem prostorsko optimizacijo. Z uporabo subrutine IZPA lahko zapišemo še subrutino za izpis poljubno dolgega operanda oziroma polja, ko imamo; IZPIS:; (HL) Je začetni naslov včzl polja } (C) je dolžina polja (štev zlogov) J register B je aktiven LD B,C NAZA:; LD A,(HL) CALL IZPA INC HI. DJNZ NAZA RET J nastavi B za izpis I vstavi zlog v AKU ; izpisi zlog v heksadee obliki ; nastavi HL na naslednji zlog ; ponovi Izpis do konca ; izstopi pomakni (BC) v desno z ničlo preskoči delni produkt (HL)=([1L) + (DE) 7. Aritmetični, logični in izmenje-valnl ukazi Oglejmo si najprej 8-bitne aritmetične in logične ukaze. Glede na procesor 8080 je ta zaloga ukazov razširjena na registra IX in IY. Vobce velja za te ukaze OPERACIJA A, REGISTER; kjer se A izpušča in se piše okrajšano kar OPKRACIJA REGISTER, REGISTER je A,B,C,D,E,H, L,(HL),(IX+D),(IY+D),n, kjer Je n 8-bitna konstanta. Z logičnimi operacljamo lahko registre tudi preizkušamo in jirn nastavljamo vrednosti. Za preizkus (BC)=0 uporabimo npr. LD A,B ; (B) pride v A OR C ; (A) = (B) OR (C) JR Z,YES ; če (A)=0 pojdi v YES Akumulator anuliramo kratko z XOR A J (A) XOR (A) Je vedno =0 Čeprav so ukazi ® operandi (ICL), (IX+D) In (IY+D) medseboj funkcionalno enakovredni, ol velja zapomniti, da so ukazi z operandom (IIL) enozloSnl, z (IX+D) In (IY+D) pa trizložni. 8-bitna aritmetlCha/loglčna ukazna zaloga je tedaj t ADD, ADC (b prenosom), SUB, SBC (s prenosom), AND, XOR, OR, CP (primerjava), INC, DEC Posebni ukazi pa sot DAA (decimalna nastavitev AKU), CPL (e-nlSkl komplement). NBG (dvojlški komplement, ki Je dodan), CCP (komplementlra-nje zastavice prenosa), SCP (postavitev zastavice prenosa) l6-bltnl aritmetični ukazi imajo obliko ADD REGISTER, REGISTER» in INC/DEC REGISTER; Tu Je register vselej l6-bitni: BC,DE,HL,IX,IY SP. Za seštevanje in odštevanje s prenosom je možna le oblika OPERACIJA m, REGISTER} Niso pa možne vse kombinacije registrov. Odštevanje 16-bltnih registrov je vedno odštevanje 8 prenosom, zato moramo v posameznih primerih anulirati zastavico prenosa. Npr. } (A) se ne spremeni, C-zasta- vlca pa pade ( =0) I (HL)={HLV(DE) OR A } SBC HL,DE Večina l6-bitnih aritmetiSnih ukazov Je glede na procesor 8080 novih (izjema so ukazi INC, DEC in ADD HL, REGISTER}). Zaloga izmenjevalnih ukazov je občutno narasla. Izmenjava se izvaja med registri R in njihovimi dvojniki R'. Npr. EX AP,AP' J AF AP' Najmočnejši izmenjevalni ukaz Je EXX J BC BC'} DE DE'J t HI HL' ki povzroči izmenjavo med dvanajstimi osnovnimi registri. Zanimiva nova izmenjevalna ukaza Bta EX (SP),IXj In EX (SP),IY} ki omogočata Izmenjavo vsebine dveh lokacij sklada z vsebinama registrov IX in IY. Tako je: EX (SP),IX , IXyiBoki (SP+1), ' IWl-^(SP) Vrednost (SP) ostane pri tem nespremenjena. Ta ukaza Je mogoče uporabiti namesto zaporedja PUSH in POP ukazov. Imejmo sklad ABC (C je na vrhu sklada), ko želimo C vzeti Iz sklada v register IY in naložiti D na njegovo mesto, tako da dobimo sklad ABD, D se nahaja tudi v 1Y. Za to izmenjavo je potreben en sam EX ukaz. V PUSH/POP tehniki pa izgleda programski segment takole: POP DE I C pride v DE PUSH IY J D gre v sklad PUSH DE I C gre začasno v sklad in POP IY I In odtod v IY Uporabili smo pomožni register DE. Procesor 8080 ima samo dva izmenjevalna ukaza : EX DE,HL} in EX (SP),HL} 8. Ukazi za vhod in izhod Zaloga teh ukazov Je pri Z80 zares pestra, Najprej imamo tele tipe ukazov: IN A,(n)} IN r,(C)} OUT (n),A} OUT (C),rj. kjer Je r = A,B,...,L, n in (C) pa sta številki vrat (dejansko samo spodnjega dela števil- ke). Za Rornje ukaze velja npr. A (n), r ((C)), n (A), (C) ^ (r) Proceaor Z80 nima svojih vrat. Pri izvedbi IN/ OUT ukazov ne ustrezno nastavi naslovno vodilo in vpliva tako na dekodiranje vrat. Konstanta n in vsebina (C) oblikujeta naslovne bite A0, ...,A7, registra A in B pa dodatno (po potrebi) bite A8.....A15. Tako dobimo z n in (C) 256 naslovov vrat, z dodatnimi osmimi biti pa 64K vrat. Ukazi t INI, INIR, IND, INDR, OUTI, OTIR, OUTD, OTDR. Vsi ti ukazi imajo prenos vsebine med {c) in (HL) torej med periferijo In pomnilnikom. Zadnji ukaz ima tale pomen: (C) ((HL)), B (B)-l, HL — (HL)-l in ae ponavlja do B=0. Tako lahko pošljemo z enim samim ukazom 256 zlogov na zunanjo napravo. Kazalec (HL) se dekrementira ali Inkre-mentira^ ukazi brez končnice R pa so ustrezni enokoracni ukazi (neponavlJalni ukazi, glej poglavje 3). 9. Sklep V sklepne opombe sodi vse tisto, kar Je za programiranje na sistemih z Z80 bistveno, pa tega vsled pomanjkanja prostora nismo obširneje opisali. Prva pomanjkljivost zbirnika za Z80 Je, da je potrebno pri vseh relativnih skokih JR za operand OZNAČITEV pisati izraz OZNAČITEV-? de se relativni prehod (skok) izračuna. V sestavku nismo opisali možnosti programiranja s prekinitvami (npr. generiranje realnega casa v posebnem kanalu)} takšni programi so v sistemih z Z80 možni, če imamo v konfiguraciji element CTC. O tem kaj več drugič. Pri majhnih konfiguracijah so t.l. sistemski programski dodatki osnovnega pomena zlasti za začetni razvoj programske opreme. Prisiljeni smo, da si večkrat naredimo dodatno orodje sami. Monitorji (majhni operacijski sistemi) so dostikrat pomanjkljivi (zaradi štednje s pomnilnim prostorom) in naravnani na širjenje sistema} takšne možnosti pa so v začetni fazi dostikrat brez praktične vrednosti (različni programski vmesniki za pogon periferije) Navadno tako nimamo na voljo niti zbirnika, premestiJIvega nalagalnika in urejevalnika. Torej Je razvoj nekaterih pomožnih sistemskih dodatkov v začetni fazi nujen. To so programi za nazorno ročno (interaktivno) nalaganje (ko trogram prvič vpisujemo v pomnilnik), preizkušnje (npr. po posamičnih ukaznih korakih z indikacijo splošnih registrov) in prikazovanje (npr. strojnega koda v ukaznem formatu). Z80 je najmočnejši mikro procesor in prav je, da ga začnemo uporabljati v procesnih okoljih, Se zlasti tedaj, ko je povezan z dinamičnimi pomnilniki (zaradi visoke zanesljivosti transparentnega osveževanja), ko se zahteva hiter odziv in obdelava prekinitev (osnovna taktna frekvenca procesorja je 4 MHz) in ko' zahtevamo učinkovito in dovolj prožno jedro operacijskega sistema. Sistem z Z80 je pripraven tudi za poučevanje inženirskega programiranja zaradi močnih in raznovrstnih ukazov, ki omogočajo strukturiran pristop (rekurzivno pozivanje) ter časovno/prostorsko optimizacijo programov. Literatura (1) T.Dollhoff, Techniques for the Zilog Z80, Digital Design, Feb.1977,44. (2) M.Shlma, P.Paggin, R.Ungermann, Z-80 Chip Set Heralds Third Microprocessor Generation, Electronics, Aug.1976,89. p) Z80 Technical Manual, Mostek, Aug.1976. (4) Z80-Assembly Language Programming Manual, Zilog, 1977. Informatica št. 2 letnik 1977 primjena monitorskog koncepta u izgradnji operacionog sistema za periodično aktiviranje programa branislav popović matija exe I milan mekinda UDK 681.3.06 Iskra Telekomunikacije, Kranj Institut Jožef Stefan, Ljubljnn." Iskra Telekomunikacije, Kranj U članku je prikazan pristup ka izcradnji operacionog sistema koji omogućava periodično aktiviranje procrnma, pomoću koncepta monitora iz paralelnog programiranja. Takav oporacioni sistem može da poslužuje svaki sistem za otkrivanje i obi-adjivanje velikoE broja đor;,adjaja - si^nala, kao Sto su sistemi za upravljanje procesima, a naročito komutacijski sistemi telekomunikacijskih mreža. Alj-oritam je prikazan u Pascal jeziku za paralelno programiranje (3)= AN APPLICATION OF TlIK KONITOR CONCEPT TO THE OPERATING SUBSiSTEl'i FOR PERIODIC PROGRAl'iS ACTIVATIONS An approach to operatinf-; system design eiiablinc periodic programs nc!;ivaLions is [-ivon in the paper-In the design , the monitor concept of concurrent prosraramint; is used. The described operating system can be used for those real time systems detecting and handling large amounts of events or signals - such as process control systems. But the most representative of such is a stored program controlled switching system treating line and register signalling on enormous numl)er of trunks. Algorithm is shown by Pascal concurrent programming language (5). 1. Uvod 2. I-iBtrica za periodično aktiviranje programa Telelvomunikacijski sistemi poseduju veliki broj priključnih tačaka na kojima otkrivaju dogadjnje - signale iz okoline sistema. Priključne tačke posnntramo pomoću skanirnih programa koje uključujemo u odredjenim periodama, Period skaniranja priključnih tačaka zavisi od učestalosti i/ili od trajanja dogadja-ja - signala. Učestalošću većom od potrebno ne đobijamo bogatiju informaciju o signalima, a trošimo procesoraku sposobnost, dok suviše mala učestalost prouzrokuje (gubitak dogadjaja ili pogrešnu identifikaciju signala. Zato su periodi uključivanja skanir/nih programa date vrednosti aisteina od kojih no sme biti odstupanja za vreme rada niti zbog suviše velikog saobračaja kojeg mora sistem posluživati. U sistemu imamo više tipova priključnih tačaka. Broj tipova jc broj mzličit :i li linijskili i registarskih signalizacija. Za svaki .!:ip priključne tačke postoji poseb/in !;k;ii]i imi i program. Neka u sistemu postoji m skanirnih programa: P^; , Pg . • • •> , • • Pn, koji se moi'aju izvršavati svakih Tj^ , rg , . . ., r^ , . . •, r^ taktijva. Taktovi sn hardverski prekidi koji se dešavaju u stalnim vremenskim razmacima. Razmak izmedju taktova iznosi T vremenskih jedinica. Proi';rnra p^ izvodi se dakle svakih r^ T jedinica vremena, (';de je r^ prirodan broj za svaki indcl doći jednostavnom transformacijom (1). 14 ü prikazanom pristupu upotrebili smo drugi način. Matrika zahteva (označimo je na ovom mestu sa M) sastoji iz zahteva S ^ , gde Je k indeks rada koji Je ujedno broj takta, a i Je indeks kolone, koji Je istovremeno i indeks programa: M i odredjen je sa: k false, ako se program p. ne izvodi u taktu k ^ trUQ, oko se program p. izvodi u taktu k ^ Broj redova u matrici ograničavamo tako da uzimamo cikličnu matricu sa brojem redova n, koji Je najmanji zajednički sadržioc skupa Za primer uzmimo samo dva programa Pj^ i Pg : Pj^ se izvršava svaka dva takta (tj^ = 2), a P2 se izvršava svakih tri taktova " 3). Najmanji zajednički sadržioc Je 6, pa Je matrica dugačka 6 redova. Moguća konfiguracija matrice je (f stoji za false, a t za true) : ft tf ff tt ff tf Ova matrica odredjuje da se u prvom taktu vrši program pg, u drugom p^^, u trećem nijedan program, u četvrtom p^^ i Pg, u petom nijedan, a u Seatom pj^. Zahteve za sedmi takt možemo nači ponovo u prvom redu, za osmi u drugom redu i tnko redom. Zna6i, broj takta k po modulu od 6 Je indeks reda, u kome možemo nači koji programi se moraju izvrSiti u taktu k. Očito važi za elemente matrice sledeča relacija: ako je (J. l:rue. onda je ö = true it (k+r^)mod n - Zato je i - ta kolona u H odredJena sa Bk^< 0, gde je iBkj^l ^ r^ to sa r^^ po jednačinl: ^ i Tfalse za k, (k-sk^) mod r^ / 0 k Itrue za k, (k-sk^) mod r^ - 0 za svaki k •> 1 .. n. U gore pokazanom primeru skj^ «> - 1, dok Je skg = - 3« Tako Je u stvari matrica, M odredjena jednolično faktorima r^^ i sk ^ za sve programe p^ (i = 1 .. m). Pošto su r^ za dati sistem konstante, konfiguracij a matrice zavisi samo od sk^ , koji se mogu odrediti tako da imamo rav-nomerno opterečenje svakog intervala izmedju taktova (1). 3. Glavne crte operacionog sistema U ovom poglavju pokazati ćemo grube obrise operacionog sistema, potrebne za razumevanje algoritma za periodično aktiviranje programa. Detaljnija struktura sistema izložena je u (2).. Dotaći ćemo se samo onih delova operacionog sistema koji poslužuju programe za ispitivanje priključnih tačaka. Sistem Je zamišljen kao skup unutrašnjih sek-ventnih procesa , koji cikliraju beskonačno. Saradjivanje procesa obezbodjeno Je skupom hierarhično uredjenih monitora koji upravljaju sredstvima (hardverskim kolima, procesorskim vremenom i sliČno)(5).. Monitor je sintaksni konstrukt pomoću kojeg definiramo podatkovnu strukturu (pretstavlja-Juču odredjeno sredstvo) i skup operacija (mo-nitorskih procedura) nad podacima te strukture. Monitorske procedure odredjenog monitora implementirane su tako da omogućavaju istodobno pozivanje sa strane različitih procesa. Monitor takodje definiSe početne operacije koje se moraju izvrSiti u svrhu inicializacije podatkovne strukture monitora. Za sve testne procese koji ispituju priključna tačke definiäemo tip testniproces. type testniproces • process (monvreme monitori za upravljanje ostalim sredstvima } ) I deklaracije tipova i promenljivih} cycle repeat {kod za testiranje ispitnih tačaka i za komunikaciju oatnlim procesima } until { sve priključne tačV:e ispitane } ; monvreme .čekati (indeksprocer.n) { monitor mon-vrerae je opison upoKlavju 4 J end testniproces ^ Testniprocea ispituje priključne tačke sve dok nije ispitao sve tačke iutof^ tipa. Inače je u stanju čekpnjn svo dok ga ponovo aktiviramo. Monitor za upravljanje procesorom nazovimo monproc kojec definišemo nn sledeči način: var irionproc { monitor za upravljanje procesorom } : monitor ( { globalni podaci } ) { deklaracije potrebnih tipova i promettijivih} procedure entry dodeliti h er-: in { izabere sledeči proces maksimalnog prioriteta i7, liste "spremnosti", stavlja izabrani proces u ntanje " .viktuelni" end procodurc! ontr;y o(lL';ođitij befin { "aktuelni" proces se zaustavlja i stavlja u listu "čekonja" ođ{;;ovfirajućeg prioriteta } end procecìure entry spremiti (i : indeksprocesa) ben:i n { proces sa indeksom i stavlja se i;', liste •"čekanja" u listu "spremnosti" najvišei;; prioriteta } end :)ei?;in { inicializacija lista "čekanja" i "spremnosti" end { iiionprüc } tionitor za aktiviranje testnih procesa u zavisnosti od vremena Monitor koji aktivira testne procese u zavisnosti od vremena nazovimo monvreme. Ovim monitorom "aktuelni" - tekući - proces se znui:tavlja (pomoću pozivanja procedure "čekati") i aktiviraju se procesi (pomoću pozivanja procedure '.'aktivirati") koji se moraju izvršiti u tekućem taktu. Proceduru "aktivirati" za akl:ivironje prot;ra-nm - procesa - zove proces hardverskih fcakt-nili prekida. var zahtevi : array [l.. n {najmanji ukupni' sadržioc faktora perioda}] of boolvect I to je u stvari matrica za periodično ak- ■ tiviranje programa } dosadzahtevi : boolvekt ; zavTŠeniciklusi : boolvekt J dozvoljenizahtevi : boolvekt i "brojačtaktova : 1 ..n {makoim. dužinj.i matrice } ^ Tirocedure entry čekati (>) : into(-or) J. | zove se iz testnih procesa } beKin monproc. odgoditi ; završeniciklusi (j) : = true ; monproc. dodeliti end ; procedure entry nk l;i vira t'i J { "ovo se iz procesa h? ri3 ver skill tok i-,nih prtKidn j. bef.iii l>ro jaótak'.o va : = ( liroj ač I: Mkl;o va + 1) ino d i) , fur i : - 1 to m >1 > monvreme {vremenski monitor} monitor (monproc { J f-l'^l'filni podaci } ); type boolvekt = nrrfi.y ( 1.. m {jednak broju testnihprocesa} ] of, Balonn dosadzahtevi fi] : = dosadzahtevi fi] or zahtevi [bro jačtakt.o va ] [i] {dosad/.ahtevi sadrži sve zahteve do sada koji se nisu laof.Ji ostvai'iti jer su bili procesi blokirani, pn se njihov ciklus nije iiiopao završiti. Ovim zaostalim Zfihtevima dajemo još zahtjeve za tekući takt.) J dozvol jeiiizHhtev;i [i ] ; - dosad:'ahl:evi [i] ami za vršeni ciklusi [i] {dozvoljenizahtevi sada sadi-že sve dosadašnje zohtove {dosadznhteve} zn procese čiji ciklusi su se završili, pa čekaju no ponovno aktiviranje nakon pi'oV.očenof^ pin-ioda vremena.}! monproc. o end •{for} monproc. dodeliti {izabere proces iz liste "spremnosti" sa najvišim prioritetom i stavlja (ja u stanje "aktuolai") jnd {aktivirati} ; bef.ig {inicializocija monvreme } for i : • 1 ^ m do hoKln znvräeniciklusi [i] : «. fcruo ; doBadzahtevi [ij : « faine end {for} ; brojnilzahteva : - O J { inicializacija matrice zahteva za periodično aktivìj'snje proRrama } end { monvrome } 5. Diskusija Ako uredimo indekse programa - procesa u ras-tufiem redu po opađajućem prioritetu,zbop; zakonitosti for do potlje, aktivirano proemine tnkodje u redu odpadajućeg prioriteta. Na taj način obozbedili smo da kritične priključno tačko obilnzirao u traženom periodu vrenlena, dok za proceGO manje kritičnih priključnih tBČaka dopuštamo odstupanje u granicama toleranci jn. AlKoritnm je prikazan u Pascal jeziku zn paralelno proernrairanje (5, 4-). Medjutim primitivi toc jezika mogu ne roalizovnti i u drugim je- zicima (6), pa se algoritam može izvesti u drugim proßraKskim jezicima pogodnim za programiranje sistema realnog vremena. 6. Literatura 1) Popović B.; Optimizacija programskog monitora kod sistema realnog vremena! V.Jugoslo-vensko eavetovanje o informacionim sistemima; Zbornik radova, raaj 1976. 2) JExel K., Mekinda M., Popović B.;Structura-tion d'un système telephonique informatisel AfCET, Pariz, 1977. 3) Brinch-Hanaen P.J The programming language Concurrent Pascal; IEEE Transactions on Software Engineering, vol. ae-l, no.2, june 1975. Brinch-Hansen P.; Concurrent Pascal Report; Information Sciense; California Institute of Technology; june 1975« 5) Hosre C.A.H.; Konitors : an operating system structuring concept; CACK, vol.l7|no.lO,^97'^. 6) Mc Gownn C.L., Kelly J.R.; Top-down otructu-rod programming techniques; Petrocelli/ Charter; N.Y. 1975- 17 Iriio< üiatica št. 2 letnik 1977 cleaning up unstructured algorithms using invariants suad alagic UDK 681.3.05/. 06 Elektrotehnički fakultet, 71000, Sarajevo-Lukavlca In this paper we attempt to show that the mothod of invariants is often a very good technique for the design of a well-structured algorithm on the basis of an unstructured one. This transformation is based on a careful analysis of the invariants underlying the original solution. The result of the transformation Is an algorithm which is well-structured and whose proof of correctness is immediate from the way this transformation is performed. ČIŠČENJE NESTRUKTURIRANIH ALGORITAMA POMOĆU INVARIANTI - U ovom članku pokušavamo pokazati kako su invarlr-antne metode često vrlo dobra tehnika za projektiranje dobro strukturiranih algoritama na osnovi nestrukturiranih. Ova transformacija je zasnovana na pažljivoj analizi invarianti koje baziraju na originalnim rješenjima. Rezultat transformacije je algoritam koji je dobro strukturiran i čiji dokaz korektnosti sijedi direktno iz postupka transformacije. It has been realised for a while that the method of Invariants Is a powerful technique for the development of well-structured and correct algorithms (Hoare)• However, the majority of well-known and widely used algojMthms in computer science literature were invented before the discovery of the main principles of modern programming methodology. Many of them suffer seriously from all sorts of structural irregularities and obscurities. Because of that it is often very difficult to understand why such algorithms work and whether they are really correct. Problems also arise in modifying such algorithms to satisfy specific needs which may be somewhat different from the ones for which these algorithms were originally designed. So what we need are techniques for restructuring poorely structured algorithms into the well-structurd ones. In this paper we attempt to show that the method of invariants is often a very good technique for the design of a well-structured algorithm on the basis of an unstructured one. This transformation is based on a careful analysis of the invariants underlying the original solution. The result of the transformation is an algorithm which is well-structured and whose proof of correctness is immediate from the way this transformation is performed, This technique is demonstrated here by restructuring the binary algorithm for computing the greatest common divisor of two nonnegative integers. Recall that if x and y are integers, not both zero, then their greatest common divisor,denoted by gcd(x,y), is the largest integer which divides both of them (that is, without remainder). Observe that this definition makes sense, i.e., such an Integer does exist. Indeed, if y^O, then -no integer greater than iy| (the absolute value of y) can divide y. On the other hand, the integer 1 divides bot:h x and y, and so there must be a largest Integer which divides them both. When both x and y are zero, the above definition does not apply, since every integer divides 0. We shall set gcd(0,0)=0 (1) It is obvious that the foilowing properties follow from the above definitions: ' gcd(u,v)=gcđ(v,u) gcd (u,v)=gcđ(-u,v) gcđ(u,0)= u (2) (3) (4) Because of the properties (2) and (3) we can actually concentrate on the problem of finding the greatest common divisor of two non-negative integers a and b. Indeed, If we know how to solve that problem, then in order to find the greatest common divisor of arbitrary integers a and b, we just apply that method to |a| and )b| . A modern version of "the Eucledean algorithm for computing the greatest common divisor of non-negative Integers a and b is given in (5) , begin (a ^0, b^ *:■»«/ y:=b; {god(a,b)=gcd(x,y)J while y^O do begin r:"x mod y; xi=y; y l«>r end ( x«gcd(a,b)l end (rhe binary gcd algorithm (Knuth) given In (10) Is based on the following four further properties of positive Integers u and vt If u and V are both even, then gcđ(u,v)-2gođ(u div 2, v div 2) If u Is even and v Is odd, then gcđ(u,vj^gcdCu dlv 2, v) If VA>V then gcd(u, v)=gcđ(u-v, v) (6) (7) (8) If u and v are both odd, then u-v Is even and iu-vl O then x:=t else ys=-t; t8=x-y; If tj^O then goto 2 else x:=x»k (gcd(u,v)=x} end The structure of the algorithm (10) can be Improvèd in an obvious manner by discovering the while-do and repeat-untll loops in it. This leads to the algorithm (11). The algorithn (11), although much clearer than the algorithm (10), and without any jumps,is still not too easy to understand. A clearer algorithm is obtained if one tries to derive it directly from the properties (6), (7), (8), and (9). Such an algorithm is presented in (12). l^egln x:u; y;=v; k: = l; while even (x) A even(y) do begin x:=x dlv 2; y!=y dlv 2; k:=k*2 end; {(gcđ(u,v)=k*gcđ(x,y)) A(odd(x) V odd(y))l if ođđ(x) then t:=-y else t)=x; repeat while even(t) ^ ti=t dlv 2; ^ t> 0 then x:=t else ys^-t,' toda(x)A odd(y)l t :=x-v unti 1 t=0 ; x!=x*k; {gcd(u,v)=x) end (11) begin x :=u; y:=v; k!=.l; whi le even (x) A even (y) do begin x:=x dlv 2; Y!=y ^v 2; k:=k*~ - end; (gcd (u, v)=k*qcd (x,y)1 repeat (odd (x) V odd (y) 1 whl.lc! uvon(x) do x s^x dlv 2; whl l.f> ovGn(y) ^ yi=y dlv 2," (otld(x)A oad(y)^ ^ X > y then x:=x-y elgp y :=y-x until (K^v y then xs=x-y else y:=y-x x will be o33 and y will be even, or vice versa. This follows from(9) . So whenever, later in the •repeat-until loop in (12), the loops (14) are reached, either x or y will be odd. ill. The step ^ x>y then x:=x-y else y:=y-x Is justified by (8) and (9) and of course (2) . It follows from (8) and (2) that the statement if x>y then x:=x-y else y:=y-x does not affect the value of gcd(x,y).This statement reduces either x or y , but leaves them non-negative, so that after snme number of iterations the condition (x=0)V (y=0> must be satlslfied. A fxirther modification of the algorith« (12) is possible. It la baaed on the substitution of the statement if x > y then x:=x-y else y:=y-x by the loops while X > y do xs=x-y; while y > x 3Ö y;=y-x (15) This is again justified by (8) and (2). And now on the basis of gcd^utui^u we can substitute in (12) the test (x=0)V (y=0) by x=y, to obtain the following algorithm (16) ! begin x:=u; y:=vj k: = l; while even (x) A even (y) do begin x: =x dlv 2,* y : =y c^v 2 k:=k*2 end; (gcd{u,v)=k*gcd(x,y)l repeat while even(x) do xs=x dlv 2; while even(y) 3"ö y:=y div 2; {odd(x)A odd(y7T while x>y do while y > x ^ ys-y-x until x=y {god(u,v)=x*k ) end REFERENCES.. Alaglđ, S. (i976)j Principles of ProqrainnilncT (In Serbo-CroatlanTT Svjetlost - Sarajevo. Gries, D. (1977): On belelvlng programs to be correct. Com-nunlcatlons of the Vol. 20, pp. 49^5p. Hoare, C.A. R. (1971): Proof of IB program:' Find,. Communications Sf ill® ACM, Vol ; ■ 14, pp. 39-45. Hoare, C.A. R. and Wlrth, N. (1973): An axiomatic definition of the programming language Pascal. Acta Informatica 2, pp. 335-355. Knuth, D. E. (1969) I The Art of Computer Programming: Vol. 3/ Sorting and Searching. Ađlson_Wasley. Wlrth, N. (1974): On the composition of well - structured programs. Computing Surveys 6, pp. 247-259. AOKHOVfLEDGMENT Research reported In tbls paper wad supported by Zajednica sa naučni rad SB Bosne i Hercegovine. Informatica št, 2 letnik 1977 monitori za mikno sisteme sa procesorom BBOO m. kovačević d. novak a. p. železnikar UDK 681.3-181.4.06 Institut "Jožef Stefan", Ljubljana U članku se obrađjuju različiti koncepti monitora za mikro računarske sisteme sa prooeaoróra 68ÜÜ. Upisane su ugodnosti koje pruža taj procesor za realizaciju monitora. Članak uključuje dva primjera monitora za istu konfiguraciju sistema od kojih Je Jedan napisan u aeemblerekoni Jeziku 5 drugi u obliku pseudo koda. MONITORS l-'OR MICROSYSTEMS USING 6800 PßUCEßSUH - The article deals with aeveral monitor concepts for microcomputer systems using the 6800 processor. Advantages of monitors for such systems are presented in details. This article includes two monitor examples for the same system configuration, the first one being written in the assembly language and the second one in pseudocode. 1. Uvod Osnovna softverska oprema, koju mikroraču-naroki sistem mora imati da bi mogao izvršavati naredbe korisnika, mora u najjednostavnijem primjeru imati mogućnost pokazivanja i promjene sadrJ.aJa odredjene memorijske lokacije, unošenje objektnog programa u memoriju, ispis sadržaja registara centralne procesno Jedinice (CPU; u trenutku prekida izvodjnja korisničkog programa te prenošenja kontrole nad sistemom na korisnički program. Takav monitor nam već omogućava razvijanje i popravljanje programa iako bi to bio mukotrpan posao jer imamo vrlo ugraničene mogućnosti za testiranje korisničkih programa i manipulaciju po- ■ ilntcima zapamćenim u memoriji. Monitori predstavljaju nadgradnju hardverskog sistema u mikro računarima. I tako dobre hardverske karakteristike nekoga sistema nije moguće dovoljno iskoristiti bez odgovarajućeg monitora. Posebno važno mjesto medju monitorskim naredbama imaju naredbe za testiranje korisničkih programa (breakpoint, ispis registara CPU i heksadecimalna aritmetika koju Često upotrebljavamo pri popravljanju koristničklh programa. U skup monitoi-okih naredbi mikro računara spadaju Još i naredba za ispis sadržaja odredje-nog memoriJskog bloka, naredba za bušenje objektnog koda (maSinskog koda) na papirnoj traki u odgovarajućem formatu, naredbo za kopiranje eardSaJa odredjenog memorijskog bloka na drugu adresu te naredbe za programi-ranjePROH memorija (ukoliko konfiguracija sistema sadrži odgovarajuće hardverske elemente). Pored mogućnosti izvršavanja tih osnovnih naredbi namijenjeniti komuniciranju čovjek-mašina monitor nara često pru?.a i druge nerviae. U korisničkim programima ae vrlo često pojavljuje problem čitanja i izpisivanja podataka na različitim perifernim napravama, fljnltor treba da sadrži podprograme i drajvere za različite periferne naprave čime Je problem čitanja i izpisivanja podataka riješen. Pored podprograma i drajvera za 1/0 komuniciinnje monitor često sadrži i obilje podprograma, namijenjenih za vanjsku iipotrebu, koji obrađjuju üdredjene elemente iz problemskog prostora u kojem djeluje mikro rnčunarski aiatem. 2. Različiti koncepti monitora Minimalni sistem koji je potreban za implementaciju monitora sa opisanim naredbama mora, pored centralne procesne Jedinice, imati najmanje 1 K bajtnu HÜM (ili EPHOM) memoriju, 0,5 K bajtnu RAM memoriju te priključen teleprinter ili tastaturu sa moni to run, za komuniciranje čovJek-maSina. U odvisnosti od odabrane hardverske konfiguracijo odlučujemo se za najpogodniji koncept monitorskog programa. U članku ćemo se ograničiti na monitore pisane za konfiguracije sa ROM ili (EPROM) modulima namijenjenim za pamćenje sistemskih programa, te takvih korisničkih programa koji su često (ili stalno) u upotrebi. Diskovno ili kasetno orientirani monitori zahtijevaju dru- tačiji pristup. azlikujemo dva načina djelovanja monitora s obzirom na način prihvatanja naredbe. U jednom slučaju moJemo Jasno povući granicu izmedju ciklusa prihvatanjn naredbe i ciklusa izvršavanja iste, dok u drugom slučaju ta granica nije • tako Jasna. Naime, svaki znak, koji se prihvati sa tastature, se interpretira na način kojeg odredjuje aintakaa monitorakih naredbi. Drugim rječima svakim na tastaturi natipkanim znakom biramo jedan od puteva kroz monitorski propsra. U prvom slučaju Je neophodno imati rezervisano odgovarajuće područje u RAM memoriJi(buffer) za formiranje unutrašnje alike naredbp koja se skanira pri izvršavanju Jete. Razlike u sintaksi naredbi sa istim ličinkom nam često doprinose prostorskoj optimizaciji monitorskog programa. Pri tome prostorska optimizacija nastaje na uStrb autonatiziranoati i brzini izvodjenja naredbe. Na primjer naredbo za prenos kontrole nad sistemom na korisnički program mo/.e biti sastavljena aamo od jndnog aimbola (GJ. Dodatna, potrebne ini ormaci ja za pravilno izvršenje te naredbe je adresa progra ma na kojeg treba da se prenese kontrola. T\i informaciju posredujemo monitoru odgovarajućom monitorskom naredbom tako da prethodno u odre-djeni registar centralnog procesora ili lokaciju Ju RAM meiiiorij« upiäemo adresu programa. Očito je da moKeino govoriti 0 naredbama potpiiriog oblika i o naredbama kojo zahtijevaju prodhodne monitorake akcije. Naredbe potpunog oblika sadrže sve informacije potrebne za pravilno izvrSenJe naredbe. Tipični oblik monitorske naredbe ima sljedeći oblik: ^mnemonik> ■■ t- »: «: C * »: ». 4 ». ». t- ». » »' »: +■. » HOHITOf ZflUriJEVfl 0.5 K EfiJTNl EPROM Nfl flC'RE * 51 FFÖO. 0.5 t EftJVMl RflH Nfl flCRESl C1OÒ6 TE o flClfl flDRESanfl rE0C I FBiiC * + *. +; ». »: t i: t 4 f. f 1- i »•• i » ».»!+:»•+. »: »' -f »: »; » f » ». » »' ». t: ». » » » »:»:»; ». ». ^ DEFINICIJE ». EST Cl SUE: fi ir IIUHG RTS Fl-F EKORDU »< ». » »^ » » ». » t. ». » » » ti »:»»»».».»;»:»* ». ». ». ». t ».».»».».»»♦;»; » » f » » » » 4 ». »! ^ POt'FRÜGRfin :fì CI TRNJE CHfikfl SEGHEMT tfl UNÜS-EMJE OB'J E k T N Où PRùùPfmfl U RfiH flClflCS EGU rFEec ■ fiCIfI tCCiNTRiJLNI REÜ fiCIflIJfl ECiU tFEOD ftCIfi POt'fiTiCCiVN! RC. REfiO EQU tvi STACK EßU r2S POKftZIVflC JTEKfl ORG teöis * CC RME 1 CPU REGISTRI B RUB 1 fi 1 K H RMg 1 KL RMÈ 1 LORCll r H RUE 1 PL KMEI ■ 1 SH RME: 1 SL RUB 1 » Ct.SM RHli 1 KONTROLtifi SUlIfl I'.HI RUB 1 INDEKSNI REGISTER XLÜU PUB 1 BEGA RME 2 PüCErNi"! flDRESR LOfiDlS »; BUSENJE ENi'fl F:>IE' li KONftCNii RDRESfi rft 4: » BUSENJE LOHC'1? TW f:(ie L TEMP RME 1 LCiR[-£l ncciuNi RME i 4 ' eVTECT RME 1 BRÙJftC ERJTOVH U R L.DR R »r j: ÜKLJÜCIHCI ClTflC TR fi K STR fl R C I R C s LDR R Itll ESR 0 u T C H BSR I NCH CITftHO ZNflC. CMP R 1' S ENE LOftC'; CEKfinO PiiCETfiK REK ORDft BSR INCH CITfinCi TIP REKORDfi CUP fi »'9 BEe LCiflt'21 ZADNJI REKiRC CMP R »'1 BNE LORC'i PRESKOCIND PRfiZNfl MJESTfl CLR CKSM ESR EVTE CI TRMO BROJ Ef.JTùV u REKORDU SUE R »2 STR R b v t e c T ESR BRDCR CI TRMO RDRESU REKO Rt'fl ESR BVTE CITfinO JEDRN ;RJT IZ REKORDA C'E C evtect bec! lciftdi:. pročitali smu r£|.'0 RD str r unsemo procitrni EflOT u rrfi i nx BRR L D fi D11 inc C1.: s M bec! lcihc'i kontrùlnr sota je pravilna lt'fi r 1- ? esr 0 u T C h lcr fi ItBl 1 SKLJUC 1 mo C i 1 AC T RRf^E str fi rcihcs j«f coni f cil CI »- » FOI'FRCiGRflM Zfi GFflDNJU C E T V E P C C I f f I. E HEKStil; » ECIHflLHE FlhREEE KOJfi Ti i'fifflMlI U X FEO >■■ PROCITRNI À: ZNRK JE ZAPAMĆEN U flk.UMULArCiR R EflDDR ESR BVTE V I S I K ESE e CIICVR ADR INCH LDft A AClACi CI TRMO ITfiruS STA R XHI ASR fl ESR E V r C NIZIH 6 BITOVA rtDR BCC INCH ZNRk NIJE SPREMAN ESE f ZA CITRNJE STA A XLCiU LDA R Ad ADR LDX XHI AND R Kf-P RT S CMP fi ItrF ÈECi DUTIH EHO ». FOC'PPCiGRflM CITfiNJE H E K'J fi [■ E C I H li l NE CIFRE rfl je u nizih bita akumulatora a evte bsr inhe>: asl a postavimo bsr inch asl r cmp a • 13 0 asl r emi C 1 NES egulaftin Z li Al asl a cmp fi k11 sf 1 ae el e I N 1H i . 0 9 bsr 1 N f. E Cflf a »»41 AND a » 11' r B M 1 c t N t R i. Ci U :. lì t fi fi It 1. aea CMf A » « 4 e tae ■ ^ PODFRCi&RflM tfl CirfiNJE VHJEDNOSTl ÈVTfl ìftFlS ♦ MNE U FISCI I HFKSftL.ECinflLNOJ NOTftCIJI citfinci he:: cifru C'RUGfl HE.v. CIFRfi Tabela 1. Nadaljevanje JDD E CKSM ODRŽAVAMO KONTROLN U SUMU STA B CKSM RTS * SEGMENT ZA «ONITORSKU »AR-EDBU fl CHANGE BSR BADDR FORillRAMO ADRESU ESR OUT S BSR 0 U T 2 H S ISPIS SADRŽAJA LOK * A C I J E ESR BVTE NOVfVi'f; IJEDNO ST STA A X ERA CONIRL foc'frogrflh sadržane u ZH ISPIS HEKSfiC-ECinfiLNE tlFS'E v'ÌSÌh"4 Ei'iTÄ rtÒuìlLILfirÒfcft fi olithl LSRft .LSRfI LSRR LSR fi «< * PODPROGRAM t: EflDRZAME U ÙUTHR RHC' A ADD A ■ CMP A ELS ADD A ZA ISPIS HEKSADECIMflLNE CIFRE lUZIli i BITA ACUMULATORA A ItfF »tJO K 1- J Ü U T C H »t7 C I F i< H li - S CIFRA A-F PODPROGRAil ZA I SPI S ASCII ZNAiCA IsOJI JE U AKUMULATORU A , ÖUTCH PSHEi OUTCi LDA B fiSR B ASR E ,BCC STA A PUL B RTS A C I A C S outci a c i a c' a C I TAMO STATUS IZLAZ ZAUZET 0UT2H5 BER 0UT2H LDH R »»Ze BRfl OUTCH SEGMENT ZA ISPIS SAC'RZflJA SVIH £ REGISTARA CFLI JEDINICE ZAPAMĆENIH NA VRHU STEKA PRINT TS)'! STX LDA PRIMT2 BSR C'£C t ENE B SM t? [I U T 2 H S P 5:1 U T 2 I NI C I A L I Z A C I J A fi C I A LDR A » f B ; STA A flCIAtS DEC A STA A A C I A C S COHTRL LDS S T fi C K INICIALIZAClJA AZIVACA SiEKA L D A A « rD ESR 0 u T C H I S P 1 £ C R LDft A it A ESR OUT': II I S P I S L F J S R I ;j C: H CI TAMO KOMANDU TRE E S R OUTS 1 C M P B » • L ENE < i 5 J M P L 0 A D • l' CUP B » ■ M EEQ CHANGE , fi CMP E it ■ ?: EEC! F' F: 111 r R C M P B »• Ü ENE C 0 M T R- L RTI END PODPROGRAM ZA ISPIS SflORZINE AKUMULATORA A U HEKADECIMALNOJ NOTACIJI U ASCII KODU 0UT2H LDR A ESR LDA A BSR INK RT S 0, X OUTHL 0, X O U T H R ISPIS V I S I H 4 11 T KI ISPIS NIZIH 4 BITA PODPROGRAM ZA ISPI? SADRZINE AKUMULATORA A U Htl^SfiDECJ HALNOJ NOTACIJI U ASCII KODU 1 PRAZNOG MJESTA aountil (PHOSiTANI ZNAK JE TAČKA (.)) ISFIŠm; ADEBSU SADEZANU U LOKACIJAMA ADDEH i ABDEL; TE SADEZIMJ TE LüKACIJE ; ČITAMO ZHAK; if (PBUCITANI ZNAK JE ZNAK ZA PEAZNÜ MJESTU) then INKEEMENTIEA» ADEESU U ADDH i ADDL; else „ . . "~if (PEOCITANI ZHAK JE 'V ) : then . DEKEEMENTIEAMÜ ADEESU U ADDH I : ADDL : else : FÜEMIEAMÜ NOVU VEIJEDNOST ZA : LOKACIJU SA ISPISANOM ADEESOM : I gADEZAJEM; : UPISE!« NUVÙFOEMIEANU VEIJEDNOST : U ODGQVAEAJUÓU LOKACIJU I : ISPISEMU JE; endif; endif ; enddo U segmentu P bušimo objektni program na papirnu traku u formatu koji je već opisan pri opisu naredbe L. seRment P „ FGŠHTEAMU POČETNU I KONAČNU ADEESU OBJEKTNOG PliuGKAfiA U MmiEIJI TE IH ZAPAMTIMO U LOKACIJE STARTH, STAETL, ENDH I ENDL; IZBUSIMD NULTI EEKOED (SIjOOOOOO); dountil (ADEESA U LOKACIJAMA STAETH I STAETL : -JE JEDNAKA KONAČNUJ ADEESI) if (ENDL-STAETL » 15) then IZBUŠIMJ POČETNE ZNAKE EEK0BDA-S113; (13 je heksadecinalni broj bajtova u rekordu +3) IZBUŠIMJ KEKSADECIMALNU ADEESU PEVOG BAJTA U EEKOEDU SADEŽANU U STAETH I STAETL; IZBUŠItl) SADEŽIIIE 16 BAJTOVA U HEKSA-DECIMALNOJ NOTACIJI POČEVŠI OD ADEE-SE STAETH I STAETL; INKEEMENTIEAMÜ SADEŽAJ LOKACIJA STAETH I STAETL ZA 10 HEKSADECIMALNO; else IZBUSIMÜ POČETNE ZNAKE EEKOEDA-Sl; IZEAČUNArU BEOJ PEEüSTALIH BAJTOVA (EHDL-STAETL+3); IZBUŠIMO BEOJ PEEOSTALIH BAJTOVA IZBUŠIMO KEKSADECIMALNU ADEESU SADfiŽA- NU U LuiaciJAMA STARTH I STAETL; IZBUŠIMO SADEŽINE PHEUSTALIH BAJTOVA; endif enddo IZBUŠIMO KONAČNI ZAPIS-S9; endaeKinent Ostaje nam Još augment za kopiranje memorijs-kog bloka (STAET, END) na odreéjenu adresu (ADDE). segment 0 KJHMIEAMJ POČETNU I KONAČNU ADEESU MEmEIJSKOG BLOKA TE ADEESU LOKACIJE MA KOJU SE KOPIEA, (STAETH, STAETL, EHDH, ADDEH, ADDHL) if (ADDE-STAST < 0 ) then dountil (STAET SADEŽI KONAČNU ADEESU) : KOPIBAMJ SADEŽAJ LOKACIJE SA ADRESOM : U STAETH I STAETL U LOKACIJU SA : ■ ADRESOM ADDEH I ADDEL; : INKEEMENTIEAMO ADEESE STAET I ADDE; enddo ; else (END-STAET )+ADDEADDE dountil (END SADEŽI POČETNU ADEESU) : KOPIEAMD SADEŽAJ LOKACIJE SA ADEESOM : U EHDH I ENDL U LOKACIJU SA ADRESOM ; U ADDEH I ADDEL; : DEKEEMENTIEAMÜ ADRESE END I ADDE; enddo endif endsegment Mogućnosti za optimizaciju monitorskih programa Procesor 6800 ima nekoliko registara koji nam omogućavaju vrlo uspješno programiranje. Posebne ugodnosti pruža mogućnost indekaira-nog adresiranja te hardverski stek. Pored indeksiranog adresiranja vrlo Je korisno direktno adresiranje pri kome upotrebimo samo Jedan bajt za adresiranje lokacije na intervalu 0-255. Organizacija programa mora biti takva da iskoristi sve mogućnosti za optimizaciju ko.Je pruža procesor 6800. Neki od načina kako da racionaliziramo korištenje memorijskog prostora te poboljšamo brzinu izvodjenja programa su sljedeći; - memorijske lokacije 0-255 upotrebljavamo za' variable koje se često pozivaju te pri pozivu podprograma i servisu prekida. Pri torae koristimo direktno adresiranje koje zahtijeva manje prostora za program te manje vremena za izvršavanje. - po mogućnosti, podprograme postavimo tako da su blizu programima koji ih pozivaju. To omogućava upotrebu branch-to-subroutine naredbi namjesto jump-to-aubroutine Sto tako-àer racionalizira upotrebu prostora i vremena. - upotrebljavamo indeksni registar svugdje gdje Je to moguće žto reducira potrebu za extended načinom adresiranja - u svakom programu postavimo vrijednost indeksnog registra tako da pokazuje na odgovarajući blok lokalnih podataka. - Zanimljive eu mogućnosti upotrebe SWI (software interupt) nnredbe. Ta naredba prouzrokuje pamčenje svih registara centralne pj'oceane jedinice u stek i skok na p0dpr0(5ram kojega adresa je u unaprijed ođrei4cnoj lokaciji. Ta rutina vrši servis koji je u OilgovnrBjućem problemskom prostoru često potrebr.n. Tolto sa jednobajtnom naredbom po-aivaiiio pod prop rnm. Koristeći se tim osobinama ßWI naredbe, možemo razviti način pozivanja podprograma zapamćenih u IŽOM ili PEOM memoriji bez upotrebe branc-to-Bubroutina ili jump-to-Hubroutine naredbi. Najprije formiramo tabelu koja sadrži adrese svih podprograma u HuM memoriji. Potreban nam je još i kontrolni program koji se izvrši svakom SWI naredbom i koji na osnovu indeksa podprograma, koji se poziva, zapisanog u bajt neposredno za SWI naredbomj prenese kontrolu nad sistemom na odgovarajući podprogram. Takav sistem pozivanja podprograma Je vrlo koristan u obimnijim programima gdje je vrlo teško izbjeći jump-to-subroutine pozive. Takvi programi su naprimjer obimniji uionitorski programi. 5. 2oključak Poznavanje monitorskih programa je vrlo korisno za korisnika mikro raSunarskih sistema. Monitori su dovoljno kompleksni da zahtijevaju široko i detaljno znanje o organizaciji sistema, o perifernim napravama te o programskim konceptima. Onda kada upoznamo monitor jednog mikro računarskog sistema moći ćemo slijediti svim akcijama koje vršimo na sistemu što nas posebno stimulira pri savlaéivanju nekog problema. literatura 1) M6800 Microprocessor Programming Manual Motorola Inc., 1975 2) MSBuü Microprocessor Applications Manual Motorola Inc., 1975 3) T. Dollhof, ^P software: How to Optimize Timing Memoi-y Usa^e, Digital Design, november 1976 Informatica št. 2 letnik 1977 the preference scoring method for decision making-survey, classification and annotate bibliography j. j. dujmović UDK 681.3.001.1 University of Belgrade, Dept. of Gelectrlcal Engineering 11000 Beograd THE DEVELOPMENT OF SCORING METHODS FOR DECISION MAKING IN THE COURSE OF THE LAST 2S YEARS IS SURVEYEOt VARIOUS VARIANTS OF THIS METHODOLOGY ARE PRESENTEDt CLASSIFIED» AND EVALUATED. BOTH THEORETICAL CONTRIBUTIONS AND MAJOR APPLICATIONS IN THE FIELD OF COMPUTER SYSTEM EVALUATION AND SELECTION ARE INCLUDED^ THE SELECTED ANNOTATED BIBLIOGRAPHY CONTAINING PAPERS PROPOSING THE SCORING METHODOLOGY AND APPLICATIONS. AS WELL AS THE PAPERS CRITICIZING SCORING. IS PRESENTED AT THE END OF THE PAPER. ODLUCIVANJE PRIMENOM METODE BODOVANJA PREFERENCI - PREGLED. KLASIFIKACIJA I KOMENTAR I SANA BIBLIOGRAFIJA. PREZENTIRA SE PREGLED RAZVOJA METODE BODOVANJA PREFERENCI ZA POSLEDNJIH 2S GODINA. RAZNE VARIJANTF OVE METODOLOGIJE SU KLAS IFIKOVANE I VREDNOVANE. UKLJUČUJUĆI KAKO TEORETSKE DOPRINOSE, TAKO I VAŽNIJE PRIMENE U OBLASTI VREDNOVANJA RAČUNARSKIH SISTEMA. NA KRAJU RADA PRILOŽENA JE ODABRANA KOMENTAR I SANA BIBLIOGRAFIJA KOJA OBUHVATA RADOVE KOJI PREDLAŽU METODOLOGIJU BODOVANJA PREFERENCI. A TAKODJE I RADOVE KOJI 0 OVOJ METODOLOGIJI IZRAŽAVAJU KRITIČKE SUDOVE. INTRODUCTION DECISION ANALYSIS CONSISTS OF A NUMBER OF METHODS USED FOR DECISION MAKING. THE PREFERENCE SCORING METHOD IS ONE AMONG THESE METHODS. WE USE THE TERM 'PREFERENCE SCORING METHOD' I'PSM' HENCEFORTH) FOR A METHODOLOGY COMMONLY CALLED 'SCORING SYSTEM'. 'WEIGHTED FACTOR METHOD'. 'WEIGHTED RANKING'. ETC.. IN AN ATTEMPT TO RELATE THE TITLE OF THE METHOD WITH THE TYPE OF DECISION SITUATION IN WHICH THE METHOD CAN BE APPLIED. THIS DECISION SITUATION PERTAINS TO THE DECISION CATEGORY KNOWN AS 'DECISION UNDER CERTAINTY'. AND IS SPECIFIED IN MORE DETAIL BY THE FOLLOWING CHARACTERISTICS 1. there exists a system to be evaluated. and an individual i or a teami. called •evaluator'. being in charge of judging. from a given standpoint, the worth of the system. 2. most frequently. the 'given standpoint' is directly-derived from the request that the system attains some prescribed goals. j. the evaluation process consists of the stfp-hy-step determination of a quantitative global degree of preference. often called •global effectiveness'. associated with the evaluated system. 4. as a consequence of the given evaluation standpoint, associated with The system is a set of variables. called 'performance variables' or 'components for evaluation'. whose values influence the resulting evaluator"s degree of preference for the system. 5. the evaluator must be able to express its evaluation standpoint in the form of the set of requirements imposed to the values of performance variablfs. these requirements are defined as mappings of the values of performance variables into the values of so called 'elementary preferences' (or 'elementary effectivenesses'! - these mappings are called 'elementary criteria'. after the definition of elementary criteria. the evaluator defines a procedure for aggregating the elementary preferences into the unique global degree of preference for the whole system. the mapping of the values of performance variables into The global degree of preference is called the 'global criterion for system evaluation,• the decision process of selecting the best among competitive systems (alternatives. or courses of actioni reduces to the synthesis of a global criterion for evaluation. the calculation of the global degree of preference of each system. ano finally to the selection of the most preferred system. the system is here considered in a general sense. as a set of interacting objects. so that the psm can be applied in a very large number of complex decision situations, if a decision problem is defined as above. one can guarantee that the psm provides the most adequate way for its solution. obviously. if some other decision problem is under consideration. the psm need not to be applied i and this is not a drawback of the psm). unfortunately. this simple fact is often neglected by some authors criticizing the psm. the examples of such a criticism will not be discussed in this paper. there are several theories to which the psm is related. the psm appertains to multiple criteria dfcision methods. and is closely RFLATEO to various economic decision methods. especially to the utility theory. because of tht use of psm to recognize systems satisfying the evaluator's criterion in some prescribed extent. the psm is also related to the pattern recognition methods. finally. since preferences are concerned. the psm is also related to the logic of preference. the applications of the psm are indeed numerous. all evaluation and/or selection problems having preference as its natural result, lead to the use of the psm. evaluation and selection of computers and other technical devices, evaluation and selection of research and development projects. and consumer selection of goods and services. are few of such examples. even in the situations involving risk and uncertainty, the psm can be successfully used as a first step toward solution. the history of the psm use is very long and some authors quote examples of its use which are mope than hundred years old, since fifties untill now the most promoting fields of the psm theory and applications were the evaluation and selection of computers and the evaluation and selection of research and development projects. the scope of this paper will be concentrated on the development of the psm in the course of the last 25 years. and on the psm applications in the field of computer system evaluation and selection. however., some important works in the fields related to psm, as well as some important. applications different from computer selection, will be also presented. n - n B. ^ o i the essential and serious drawback of both the aritmetic mean approach and the geometric mean approach is the complete lack of possibility to express the necessary logic relationships among elementary preferences and their groups. in fact. arithmetic and geometric mean permit only the 'fixed logic polarization' of a complex criterion. this can cause a number of absurd conclusions. for example. using the arithmetic mean. if the most important preference. say the preference of the thruput of a computer, is zero, this will not automatically cause the zero global preference (what is absolutely necessary)« and even it will be possible to compensate the unacceptable thruput by a simple increasing of. say, the number of tapes or the training of personel, in a similar way. using the geometric meam, if some unimportant preference (e.g. the preference of the integer devide time) is zero. this will automatically cause the zero preference of the whole system. without any possibility of compensation, the drawbacks of weighted arithmetic mean and weighted geometric mean can be overcomed by introducing the multi-level logic aggregation of elementary preferences! -i = survey of the basic psm concepts let be given the vector X - (xjL.'.'.Xn^ , min *imax ' . containing all performance variables of the evaluated" system, determination of the corresponding vector of elementary preferences (effectivenesses): can be organized either by some informal. intuitive scoring. or (what is better) by the use of a set of elementary criteria which can be defined in analytical or tabular formj the oldest way for aggregating elementary preferences in order to calculate the global preference of a system, is by the use of the weighted arithmetic meanj u S W. Vi . the vector of weights 0 • the multi-level additive criteria aggregation structure (based on the weighted arithmetic mean) 7 • the one- or multi-level multiplicative (or geometric mean) criteria aggregation structure 8 ■ The multi-level criteria aggregation structure based on the use of the extended continuous logic functions 9 • special aggregation' structures le.g. figures of merit. special utility functions. etc.) a ■ survey paper or book including the presentation of the psm X, *•»•••«•»•••••• BEFORE 1962 von neumann. j. and 0. morgenstern, «theory of games and economic behavior' revisfd edition (princeton. n.j. / princeton university press. 1947). (code-ux) 2. thrall. r.m.. coombs . c.h. anu uavi:>. p.l.. 'decision processes*. wiley and chapman and hall. new york 195235BC t KELLER. R.F., AND DENHAM» C.R.» 'COMPUTER SELECTION PROCEDURES'. PROCEEDINGS - 1968 ACM NATIONAL CONFERENCE, PP. 679=683. — THE PAPER PRESENTS A CASE STUDY OF COMPUTER SELECTION FOR AN UNIVERSITY USER. THE SELECTION IS REALIZED USING THE AODIT VE VARIANT OF THE PSM» NUMERICAL RESULTS ARE ALSO PRESENTED. ! CODE-1345EC1 30 37. KFFNY» R.L». «QUASI - SEPARABLE UTILITY FÜNCtlONS." NAVAL RESEARCH LOGISTICS QUARTERLY 1». 1968« — THE UTILITY FUNCTIONS OF THE FORM U(XtYl ■ Ui(X) ♦ U2(Y) ♦ lC*UllXl«U2tYI« K-CONST,. ARE PROPOSfO ANO TMEIR PROPERTIES INVESTIGATEO. 1C00E-9MUX1 38. •••••••••••••••••• 1969 STEFFY, W.. DARBY. D.t 'PERFORMANCE EVALUATION SYSTEMS.« THE UNIVERSITY OF MICMIGAN« 1969. — THE BOOK IS IMPORTANT FOR THE USE OF psm in general industrial example - - - - - ENV example of a buyer fvaluation RONMENT. AN S PRESENTED -OLOGTCAL ISSUES 3<.6AEYWRT 39, SEILER« ISif MNTRODUCTION TO SYSTEMS COST-EFFFCTIVENESS,• WILEY - INTERSCIENCE. NEW YORK, 1969. (CODE-QX) 40. MITRINOVICf D.S.« VASIC« P.Mg« «MEANS' (IN SFRBO-CROATIANI. BELGRADE« 1969, --- THE BOOK PRESENTS WEIGHTED POWER MEANS ano gentfialized means« with the special emphasis on inequalities related to means. (cope-mi 'preferences for alternatives', (santa «1. RAIFFA» H.» MULTI-ATTHIBUTED _ _ ........., MONICA. CALIF. / RAND« RM-5868i Ì969). ---THE EVALUATION PROCEDURE (5EFEL0PE0 BY J.fi. mIlLER Til IS CRITICALLY REVIEWED. VARIOUS UTILITY THEORY APPROACHES ARE ALSO PRFSENTFD. (CODE-UftMUZI «2. SHARPE. W.F.. 'THE ECONOMICS OF COMPUTERS'. A RAND CORPORATION RESEARCH STUDY. COLUMBIA UNIVERSITY PRFS5. NEW YORK 1969o --- AMONG TMF OTHER TOPICS« THIS IMPORTANT oooif presents the ME ThoDS FQR COMPUTER SFLFCTION. ADDITIVF AND MULTIPLICATIVE SCORING SYSTEMS ARE DISCUSSED IN DETAIL. ThF PPOBLCM OF INCLUDING COST INTO the SCORING SYSTEM IS ALSO CONSIDERED. (C0DF«357AE()STT 43. HILLEGASS« J.R.. 'SYSTEMATIC TECHNIQUES FOR COMPUTER rVALUATlON AND SELECTION'. MANAGEMFNT SCI.s JULY-AUGUST 1969.. 36-40. -— VARIOUS COMPUTER EVALUATION METHODS ARE RFVIEWFD. THE ADDITIVE VARIANT OF THE PSM IS CRITICIZED RECAUSE OF SUBJECTIVITY WHEN DEFINING WEIGHTS AMD SCORES. (CO0E«3SAZI . W.G.« 'SELECTION CRITERIA FOR COMPÙTER SYSTEM ADOPTION'« EDUCATIONAL TFCMNOLOGY« OCTOBER 1969.« 71-75. --- A LIST OF COMPUTER SYSTEM PERFORMANCE VARIABLES IS PROPOSED. ICODF-135CI . SCHARF, T., 'WEIGHTFD HANKING RY LEVELS.' TAG QUARTERLY JOURNAL. PP. 7-22« VOL. 2« NO. 2« 1969. MILLFR. - 3ÙTE --- SECOND METHOD DEVE COMPUTER EV TCOOE«236EY) presentation of the popular loped |n 1968. a sample from valuation study is included. 46. moore BAKER. N.R.. TO _ SCORING^ _ MODEL 'AN ANALYTICAL DESIGN _______ J.R APPOOAfH - ____,.................... APPLICATION TO RFÌFARCH ANB OEVFLOPMENT PROJECT SELECTION.' lEEE/TEM NO.3. AUGUST 1969. — RATIONALE FOR THE PSM USE WHEN SELECTING RESEARCH AND DEVELOPMENT PROJECTS Is PRESENTED. STATISTICAL TECHNIQUE IS Introduced in psm models, icode-bdri 47. SCHWARTZ. M,H.» 'COMPUTER PROJECT SELECTION IN THF BUSINESS ENTFRPRISE.' JOURNAL OF ACCOUNTANCY. NO. 4. APRIL 1969. PP. 33-43. tC0DE>3b) 48. OUJMOVIČ. J.J.. PJEVIČ. N.. 'AN ALGORITHM FOR COMPARISON ANO SELECTION OF OTG TAL COMPUTFRS' (IN serbo - CROAtlANI, ??ocFfb!NG§._gF_ THE^ FIRST YUQOSLAV AOP -- -OOR DISTANCE congress. zagreb 1969. paper 34£; rr- IHE.proposed algoriTHM ^S based.on IVANOVIC'S imi'r NiNT ANALYSISt WEIGH ed automatically Ton matrix of on. ic00e>9wi ?eE S^actors FROM COMPONENTS the are the PO« 44. •••••••••••••••••• 1970 MiLLrP III. J.R.. 'PROFESSIONAL OFCtSION-MAKlNC.' PRAEGER PURLISHERS. NFW YORK. 1970« --- FXTENOEO VERSION OF THE AUTHOR'S DOCTORAL THESIS. ELFMENTARY CRITERIA AND tS? IVE^^Ä ÌSVROSSSS'- For^EcVIiSfi making is beSCRIBEO. 3»c0) clercq. h. de« 'choosing a computer i a methoo_ for oyantifylng..pata.__pr9cfssjng _ _ _ _ . no. 1« 1970. 97, REQuIREMFNTS and evaluation criteria.' u quarterly journal« pp. 1-21. vol. 3. ' 1970. — the psm model for computer evaluat on is prfsenteü. performance evaluat on results are included in the psm model. (code-2346c1 kanter. j.. 'management guide to computer system selection AND usf.» prentice - hall. inc.. fnglewood cliffs. new jersey. l»70. pp. ì3h- lib. --- The author considers the psm To he A standard method for evaluation and select on of computfr systems. and exempl fiks its use. (c0de"26ct 96. oujmo j.j.t ratave for digital c iss analysis' algori EFFFCTlVENEi. _____ CROATIAN). PROCEtTINGS OF THC StCOND ljif. p.. omputer cost (in sehso •an YUGOSLAV AOP CONGRFSS. ____________ . . B20 --- A PROCEDURE FOR SCORING FFFFCT AND COST-EFFECTIVENfSS OF a COMPU PROPQSFO. AN ANALYSIS OF COST-EFFECT OF COMPUTER INPUT AND OUTPUT UN PRESENTED. (COOE.Q) 1970. pp. B2Q - H27, ----- ----- vene; fr ^FNE J9, •••••««»••••••a••« 1971 ••••••••••••••••t«» LINDLEY, D,. 'MAKING DECISIONS'. WILEY -TNTERSCIENCE. LONDON 1971. ICO5E«UXI «0 SYSTEMS.« . gllb. t.t 'reliable data sy univfrsitftsforlagft. oslo. 1971. — The BOOK INCLubES.tmr AUTHOR'S PAPFRS PRESENTING THF ^WEIGHTED RANKÌNG BY LEVELS' METHOD. (C00E'23(.AC) 61. VAN QORSCHOT. j.m.. AND HOFTIJZER. W.O.. 'somf rfmarks on computer choice.' proc edings - adp seminar. zagreb. 1971. — iHE I'ROCEDURF of computer sflectlon BY The dutch GOVFRNMEnT centre for office machines is dcscribfo. an abstract from tmF OyrstlONNAlPE containing an extensive list of components for evaluation is ncluoeo. (cndf«26y) inofpfndence ano multiattrìbuteo ons resfarch. 62. KFENFY. R.L.. 'UTILKTY PREFtRENCES FOR CONSfOUFNČES'. operations 19.1971. 875-893. (CODE'muxl 61. oemoody h.c.. bassler. r«af. «computcs system fvaluation AND selection«, college reaoings INC.. arlington. u.s.a. 1971. SYSTEM f reaoings inc.. arlington. u.s.a. ì971. — an extensive hìbliogpaphIc research including an annotated bibliography and keyword index. various aspects of computer fvaluation are prfsentfd. the six psm r^f^ren^es are included and annotated. 64« kreibel. con swfoen. PP. .h. . 'the FERENCE. ||yOENT^|TTERATUR..r. AgERRAČH. 1971. (c00e«2t 69. DwORATSCMEK. S.. 'MANAOEMFNT SYSTEMS' IN GFPMANI. WAlTeR 6E ---- • and new YORK 1971, CO.. flFRL Chapter j| of th his ter tìvi FXFMPLIFtFS a COMPy BASFD ON AN ADOl OfTgOMlNATION OF ELfMENTARYpRfFfR THI IVx'Al OOOK PROPOSES ANO SELECTION PROCEDURE ve psm müoel. the fNCFS rTrOMjf^AT ION OF ELfMFNTARY PRfFfRfNCFS IS JSCUSSFD ANf> A PooCEDURE FOR OfRlVlNG IIGHTFO FACTOPS DIRECTLY FROM THE GOALS OF ■- AN EXTENSIVE SURVEY OF COMPUTER EVALUATION AND SELECTION METHODS IS PRESENTED. THF ARTICLE REVIEW AND COMPARE INFORMAL METHODS» FIGURES OF MERIT, KERNEL TIMING ESTIMATES» INSTRUCTION MIXES» BENCHMARKS» THRUPUT MEASUREMENTS» HARDWARE ----- - ---------- --------• UF ND ............ _ ____ , _ THE COMPARISON OF THESE METHODS SHOWED THAT only THE SCORING METHODS CAN SUPPLY THE USFR WITH A COMPLETE ANSWER TO THE PRACTICALLY FORMULATED COMPUTER SELECTION PROBLEM. (CODE'AB) DUJMQVIS» J.J.e 'SOME CORRELATIONAL ASPECTS of The compensation of errors when SELECTING DATA PROCESSING SYSTEMS BY THE WEIGHTED SCORING METHOD' (IN SERBO CROATIAN). PROCEEDINGS OF THE 7-TH INFORMATICA CONGRESS» 1972. — MOST FREOUENTLY. THE PERFORMANCE VARIABLES USED FOR THE EVALUATION Or COMPUTERS ARF POSITIVELY CORRELATED. THF PAPER PRESENTS AN ANALYTICAL PROOF THAT THIS FACT CAUSE THE CORRESPONDING COMPENSATION OF ERRORS IN ESTIMATING WFir.HJS WITHIN THE SCORING MODELS. bwM) 83, «««•«»»«OK»««»«»«» 1973 ««»iia«««*«««««««»«» hanssmann» f.» (editor) 'operational research in the design of electronic data process ng systfms.' thf english univfrs -ties prfss, 1973. --- tmTs book rfprfsfnts the proceedings of a nato conference and contains numerous contributions in the field of computer performance evaluation and cost effectiveness analysis. (codf'ob) (i*. beshelfv. s.d.. gurevich» f.g.. 'expert judgements' (in russian). published by 'nau.. pp. 174-193. NICAL PMENT N M. EMS'. --- all COMPETITIVE SYSTEMS are Through thf 'cost filter'» 'FILTERED' ____ . 'TECHNICAL FILTER' ANO 'SUPPLIER- FILTER'. THE TECHNICAL FILTER CONSISTS OF 62 'TECHNICAL' COMPONENTS FOR EVALUATION OF A CLINICAL LABORATOUY COMPUTER. IN ADDITION. TEN SUPPLIER COMPONENTS FOR EVALUATION ARE PROPOSFO. THF WFIGHTING IS CONSIDERED ARBITRARY. ONF SMALL 10 - COMPONENT POINT -AOOITIVF ExaMPLF IS INCLUDED, PURCHASE PROCEOURF AND CONTRACTUAL AGREEMENTS ARE ALSO CONSIDERED, (COOE»?35EY) 101. RAKOV» G.K.» 'METHODS FOR THE OPTIMIZATI OF COMPUTER SYSTEM STRUCTURE' (IN RUSSIAN PURI l<^HFr) Rv iPMPRnlAi. Mn»•••»•••• 197S ••*•••••••••••••«•• KITAEV. N.N.. 'EXPERT GROUP JUDGEMENTS' I IN RU^|IAN), PUBLISHED BY 'ZNANIE'» MOSCOW» --- *THF BOOK DISCUSSES USEFULNESS AND TECHNIOUES OF FORCASTING USING EXPERT JUDGEMENTS, PROCEDURES FOR ACOUISITION AND PROCESSING OF EXPERT INFORMATION ARE PRESENTED, ICODE-W) science 111. BAKER. N,. FREELAND. J. 'RECENT ADVANCES R AND D BENEFIT MEASUREMENT AND PROJF SELECTION METHODS.' MANAGEMEN 10(1975) 1164-1175. — AN EXTENSIVE SURVEY INCLUDING THE ROLE OF PSM IN R AND D BENEFIT MEASUREMENT IS PRFSENTEO. (COOE-ABD) VmF AC0U?S?TI0N OF HARDWARE» SÓPtWÀRE SYSTEMS'. PP, 280 - 285 IN 'ECONOMICS OP INFORMATICS' EDITED BY A,B, FRIELINK, NORTH - HOLLAND 1975. — COMPUTER EVALUATION PROCESS PRACTICED BY The dutch government office for --------»... MECHANIìXtION (KMC) Ts THE PSM Is USED FfiR MEDIUM AND ........ , (CODE" - J,M,. 'national riON OF HARDWARE. FOR AN^ AUTOMA!ION PRFSENTEO, . .. large computer SYSTEM EVALUATION, • Y) 113. FRIFLINK, A,B, (EDITOR)» »ECONOMICS OF INFORMATICS.» NORTH - HOLLAND» 1975, • (CODE'OUX) ZANRfMEISTER« -------%CNE5S Of C«o «MfASUREWENT OF CpMBUTEBlZEO.^JNFORWATION effectiv______ _ _ _ ____ . _ systems from a management POINt of ytEW tmrounm utIliTy analysis*, pp. <.40 - in 'economics of informatics* edited by friellnk. north - holland 19755 — - ------ed and software system for evaluation )itcd by a.b. 11». kurzban. s.a.. heines. t.s.. aip«!-_ 'qpefa^j^q^ systems 116. and SAYERS» . PRINCIPLES*. . .. - ENtlTLEO 'operating system functions^ oescripes an extensive hierarchically organized list of components for evaluation of a «odern operating system, representing useful . basis for comparing different systems in a consistent way, )co0e«2t CHURCHMAN. C.w.. WFSNER» r.w.. lEDITQRSt 'SYSTEMS ano management ANUAL 1975.' PETIÌOCELLI» NEW YORKs 1975. — Chapter t presents some relations among PATTERN R^gOONlTloN METHODS AND PSM. Chapter presents review OF multi-atriayre vi'i-''* models, multiplicative utility Functions are ..t-------- .. ----------------(code-mux) introduced In chapter 12. 117 thf RELFvAnćE TMtORYf' nair. r... 'decision analysis g of nuclear power pla^ ' - of multiatrlbute ul proceedings of tme ieee 3( (cooe-9ue) lity 97si llf. white. o.j.. 'decision methodology'. j, wiley. london. 1975. icode-buxi 119. kahnc. s.t 'a contribution to making in environmental proceedings of the ifee 3(19751 5.. ____ --- a fu22y set orientfd psm model. and t 5e study of ts applìcatton ìn the si lEction for an urban Institution a -----(CODEoSFRI decision design.' »ie-5l8. the te re 170. Utìciu PRESENtED. KAMNf. S.t 'a procedure for qptimizino development decisions.' automat CA. völ. ii. pp. j6ì-j69. pergamoy prgss. 975. introduces the theory in weighted scoring. accü The author. 'in any realistic formulation. Thè criteria are not defined. They . ______ importance of each criterion ^loujn'............. " are fuizy. 121. l?2, Fuzzy set rdinc to problem . - precisely is^al riiNiouE" PROPošEb "IN ^ THP I^APES s for this uncertainty in all aspects of the proplem and yields probabilistic answers'. (c0de-5fri OUJMOylf. j.j.» 'graphic approach to weighted conjunctive and disjunctive means calculation* publikacije ELEKTROTEMNICKOG fakulteta beograd. |£sl...........fc..» v fizika. no. <.9fl-5«i ic00e»m1 isjunc1 , , ELEKTROtEMNIČKOG ija matematika i <19791. 191-196. DUJMOVIČ. J. J.i 'EXTENDED AND THE TMÈORY OF COMPLEX Publikacije elektrotehničkog CO,TINUOj^S^^^OG|C II. 197-2 --- the exttnded'cnnt generalization of THE con introduction of conjunction "AND disjunct conjunctive - - fAkultetÀ . fizika, no. nuous logic (ecli. a inuous logic based on var I ^ ' --- 12Si able degree of - _____.. on in complex and disjunctive statements. Is proposed In ThIS paper, The properties OF ecl . as an alcifbcaìc sthucture. are analysp and various ecl functions ar| defined anu Classified. flmi OUJMOylé. J.Jo 'EVALUATION OF DIGITAL usIng^ The system evalwaTIon computers METHOO mal»' (in serbo^ - croatiani, PROCffOiNGS 0f_ the Informatica congress ocfeoings , (ble&. yugoslavia). ■ cp terion for d gital 6R - and lar " " - ON HEP Computer SUPPLÌ TO SOFTWARE, ic 1975. paper 6.9. Evaluation Of computers is 111 ^ohìtfCì - -fER iNCLUOt III ELEMENIARY F fcì ARE RELATED TO tq hardware, - medium proposed. AND 12*. oujmovi^. j.j.e "items' (in strbo •evaluation of complex - - ...... croatian), unpublished toral dissertation. university of belqranf. ^^partmfnt of electrical dujv roh £N(iTNEt«ING. ICODE"2*8CMOPS) 125. »«••••••«•aavovoos 1976 o « s «sa «ssoveo •saiiet» ITOR). ^^MULJ|PLE_ CRITERIA virlag. 1976. KYOTO 1<(1 ipringfr - THE PHOCEEDINGS C Tnf KYOTO CONGRESS CONTAIN A NUMBER OF IMPORTANT CONTRIBUTIONS TO The DicjsiON analysis. espfcially INTERtSTING li tue fuTENSIvd RIBUOGRAPhIC research e» M. /ELFNV Pt>F;SENTtD AT THE END of The book, (ccde-bum) l?6. keency. r.l.. ano raiffa. h,. 'dfcisions with multiple objectives ! preferences and value tradeoffso' wiley. new york. 1976, icode'fcsutx) 127. GILB. GILB. T.. 'SOFTWARE shjDENTLlTTERATuR. L'UNO. 1976. — The USE OF The psm FOR ev 12S. metrics.* . ... .. .... ._ ... £val(jating the complex software systems is presented. Included are thE samples from the psm "odfls related to The evaluation and comparison of operating systems, data base management systems, programming languages. etc. icode-236ec) zionts. s. wallfniu8. j, o 'an interactive programming method for solving the KULTÌPLE mljfs management science -i- l near''ad6itive utility models and their optimization are presented. (COPE'MUXÜE) 129. thiriez. h.. and zionts. s., (editors) 'multiple criteria decision makìngo» springer verlag. berlin. 1976. (code-uxl selection of computer systems,' paper presented at the oecd ankara meeting. march ..........---- in GREEK IN THE al directorate of _____ _ , .. 3« pp. »1-70. ...hens 19761. survey of a complete procedure for computfr system acquisition using the preference scoring approach (method mali is presented. (code='.0a) dujmovič. j.j.. 'system evaluation language" isfll - programming language for evaluation. comparison and optimization of complex systems' (in serbo - croatian). proceedings of the informatica congress (bled. yugoslavia), 1976, paper 1/121. --- the syntax and ThE basic semant cs of The programming language SEL are üfscribed, sel is a problem - ORIfNTED lan(ìuage ............ compare and optimize ng Thf mal method. on of this language IS he sel Interpreter 1976 ipublisheo also bulletin of thf gener _ PuRlIC administration, no. AT 131, ocsignfo to fvaluat! complex systems u| c0"puter implimentai made POSSIULE by ^ ___ written In basic Fortran iv. (Code-p 132< mnih j.j., toma system dj.. 'criteria (In serbo Croatian); proceedings of the informatica congress (bled. yugoslavia!. 1976. paper 1/122, — The PAPER PRESENTS COBS an interactive programming system designed FOR crfatlng. updating and editing of the DATA base containing (I) elementary criteria FOR system, evaluation, and (21 the related criteria aggregation structure. cdbs AND Tm£ System fvaluation language (SFlT are Two complementary basIc software I(30lS designed for complex systems evaluation, comparison, and optimization using the mal method. i code«p) 133. DUJMOVlČi 'A oétermInIng opt 1 mal,confi gurat ions procedure pp. for of the ng units of analog ano ,_mpuT{bs' i In sfrbo - crqa . PROCEEDINGS of The EUn congress 1976. 11^1 - lise. ---a proceduri: for determining optimal numrfps (?f Integrators, track-stores, summers. Inverters« digItal coefficient units, manual f'otentlómeters. universal function generators. fIxEO GfNFRATOWS, multipliers, d/a functional relays, comparators. ____ parallel logic units for an ANA(.0G or HYBRID COMPUTER IS PROPOSED, OPTIMIZATION IS CARRIED OUT USING THE SYSTEM EVALUATION mfthon mal. And programming languAge Sel. (code«2*9co) 13A. ~ - -- ex criteria." in 'simulation tfu BY l. OEKKER. NORTH - Theory of compl of systems' edi holland. 1976. — TMF CRMERI co^putfjs Eva OPTiMIŽAtlON I INCLUDES SueCR analog CCPUTCP hyp.pid I'jtfufac IC00E»2*»CE0T) pp. 553 - »66. ON FOR MEDIUM-SIZED HYBRID LUATION. COMPARISON. ANO S PROPOSt'D, The CRITERION MERIA FOR EVALUATION OF . DIGITAL COMPUTER HARDWARE» E UNlf. AND HYBRID SOFTWARE» 13). «•»•«••«.•••«•a,,. 19TT oovassosse«»»»»»»** hfnn, R.» mofsrhljn. 0.» (FOITORS) •MATME^ATICAL ECONOMICS AND GAME tHEORY,' SPRINGER - ve»LAG. BERLIN. 1977. PP. 3A6 -369. (code-^mui t aas« s.m.i and kwakernaakt h.» 'rating ANO ANKtNG of multiple-aspect alternatives using fuzzy sets.' automattcAi vol. 13« pp. 47-58. per&amon press. 1977. — a method for solving the multiple -............- ---isYc --------- ----- alternative decision PROBLEMS under UNCERTAINTY IS PROPOSED. THE RATINGS AND WEIGHTS ARE CONSIDERED AS FUZZY QUANTITIES. tC0DE-6F» 137. ME THODS J KLEIJNEN. J.P.C.. 'SCOR NG MULTIPLE CRITERIA AND UTIL TY CHAPTER 4 IN THE AUTHOR'S BOOK AND PROFIT' «TO APPEAR). --- various scoring methods are _ . __ reviewed. the relations of scoring method with multiple criteria decision methods and utility analysis are presented. the possibilities for computer selection using These methods are analyzed. (code=abrutz) analysis.' 'computers critically 138. 0ujm0vič. j.j.« and selection evaluation systems.' congress. 'professional of computer proceedings of the informatica bled (yugoslavia)« 1977. --- the paper presents a condensed survey of a multj-step procedurf for computer system Evaluation. optimization and selection. the proposed technique represents a part of an integral procedure for realization of adp centers. and has been particularly designed for professional usf by organizations specialized for systems and computers evaluation and selection. 1c0de"48abc) classification of bibliographic entries sasaass3Bs«sas«ssaaSBca&KB«6BBB«B««saBa code . 1 8 36 code • 7 15 16 57 60 109 115 : code - 3 3 a 36 30 ■ 60 65 93 96 code • 4 16 17 56 65 130 133 code ■ 5 3 8 43 44 119 120 code « 6 1? 15 45 47 69 73 126 127 code ■ 7 16 42 code ■ 8 92 106 134 138 code • 9 33 37 41 44 24 26 lì 42 43 67 68 100 127 24 26 77 92 134 138 10 11 50 55 135 136 18 23 49 54 78 80 68 80 107 loa 48 72 67 103 32 35 45 49 54 56 ,80 92 93 100 127 133 134 19 18 22 25 28 35 44 45 47 54 55 56 69 73 78 80 85 8s 3P= O, pri drugem pa A'fji 0. Izhod 1 Izhod 2 Izhod 3 / X \ tp - tn L- tp tn-- Sest Sliko 1. Nalogo krmiljenja izhodov objekta lahko razdelimo v dva dela. Prvi del predstavlja določanje izhoda, to je nastavljanje posameznih analognih Izhodov na določeno vrednost, določanje vrstnega reda izhodov, ter časov naraščanje In padanja le-teh. Drugi del predstavlja avtomatično ali ročno krmiljenje izhodov v določenem vrstnem redu, izvajanje prehodov, to je naraičanje in padanje izhodov, ter meionje več izhodov. Napravo, ki je nomenjena reševanju teh nalog, lahko prikožemo s posplošeno shemo na sliki 2. masovni prikazo- ukazni pomnilnik valniki del mikro računalnik krmiljeni objekt vmesniki XIT I vmesnik 2 Slika 2. Vidimo, da v našem primeru periferne naprave mikro računalnika sestavljajo: krmiljeni objekt, dodatni masovni pomnilnik, prikazovalniki (indikatorji) in ukazni del naprave. Iz slike je razvidno, da te naprave glede na smer komuniciranja z mikro računalnikom pripadajo vsem trem možnim tipom. Probleme komuniciranja teh enot prištevamo k bistvenim problemom krmiljenja objekta v realnem času. V naslednjem poglavju bomo zato z vidika organizacije tej problematiki posvetili nekaj več pozornosti. 3. KOMUNICIRANJE PROCESORJA S PERIFERIJO Večirta digitalnih sistemov komunicira med sistemskimi enotami tako, do na sprejeto informacijo odgovarja z ustreznim Izhodom. Obstajajo zelo preprosti sistemi, pri katerih pro-grom v zanki periodično testira vhod, medtem ko ga pričakuje (npr. pritisk na tipko). Procesor med odtipavonjem vhodov ne more opravljati nobeno drugo koristno delo. Taka tehnika je zato potratna.Vendar obstajajo specifični primeri, kjer je opravičljivo. Doiga tehnika, to je tehnika programske prekinitve, omogoča vhodno/izhodnim ali drugim sistemskim enotam, da prekinjajo glavni program le, kadar je to potrebno. Prekinitev je možno, če je procesor na to pripravljen. Prav tako, procesor more komunicirati z ostalimi enotami le, če so tudi'te pripravljene na prenos Informacij. Programska prekinitev (INT) povzroči, da se trenutna adresa v programskem števniku vloži v sklad, medtem ko se v pro-gromski števnik vnese specifična lokacija. Pred tem se tekočo instrukcijo še normalno Izvrši. Novo lokacijo se Imenuje lokacijo programske prekinitve In običajno vsebuje brezpogojno rozvejltev no servisno rutino programske prekinitve (INSR). To rutina Izvrši želerto nalogo. Novadno je I« virašonje ali Izpisovanje podatkov In omenjeni rutini ustrezno procesiranje. Po opravljeni servisni rutini te z Instrukcijo RETURN nadaljuje Izvojanje glovnego progromo. Tako je poslednja Instrukcija vsake INTSR vedno RETURN. Pri tabi INT pa nastopa vrsta problemov. INTSR mora biti toka, da se vsi parametri glavnega programa, ki so pomembni za nadaljno Izvajanje glavnega opravila, ohranijo. Zato mora INTSR najpreje shraniti vsebine vseh uporabljenih registrov, vključno z zastavicami (kot so prenosi, predznaki, parnost, ničle In dr.). Na koncu INTSR se vsa stanja registrov In zastavice zapišejo v prvotne lokacije, ie predno »e prične Izvajanje glavnega programa. Rabo sklada "prvi v -zadnji Iz" (push-down stack) je v ta namen Idealna. Operacije reševanja vsebin posameznih registrov niso potrebne, če so uporabljeni registri v INTSR zo to posebej rezervirani in neuporabljeni v drugih delih programa. Operacije v zvezi » shranjevanjem zastavic po so še vedno por trebne, ker je program lahko prekinjen med aritmetično operacijo. Razvejitve v programu aritmetične operacije so namreč odvisne od pogojev, ki se generirajo med izvajanjem operacij. Enaki problemi morejo nastopati tudi pri rabi sub-rutin. Ker pa se subrutine ne kličejo naključno, je odstranjevanje možnih tovrstnih napak veliko lažje. Iz gornjega sledi, da moramo INT programirati zelo skrbno. Morebitna napaka v programu se namreč lahko pokaže le pri določeni lokaciji in pri določenih kombinacijah podatkov. Taki primeri so včasih možni le enkrat no mesec ali celo no leto. Če, na primer, pozabimo shraniti in ponovno restovri-rati zastavico, se napaka pokaže, kadar nastopi INT med aritmetično operacijo. Tedaj namreč zavisi pogojno rozvejltev od trenutnega rezultata operacije. Kljub temu pa ostane taka napaka prekrita, če je stanje (prenosov, ničel, itd.) po zadnji aritmetični operaciji isto, kot je bilo ob prekinitvi glavnega programa. Problem obstoja tudi v tem, da so simptom i takšnih napak vsakokrat različni. Zato je skrbno pisanje prekinitvenih programov edino rešitev. Pri programiranju programskih prekinitev so možne tudi druge napake. Če INTSR spremeni pomnilniško lokacijo, ki jo uporablja tudi glavni program, se lahko le-to povrne no začetek. Pri možnem INT v programu ne smemo uporobiti zo-kosnitveno zanko. Sicer pa, če jo uporabimo, se čas izvrševanja INT rutine doda programirani zakasnitvi. Včasih po se INT v zakosnitveni zanki mora dopuščati. Tedaj obstaja rešitev v štetju Impulzov zunanje ure. Pri krmiljenju časovno odvisnih operacij v sistemu se pogosto uporoblja programska prekinitev z uro v realnem čosu (Reol-Time Clock Interrupt oli RTCINT). No primer, INT moremo generirati s frekvenco 50Hz, to je vsakih 20msek. Rutina INT po lahko med štetjem impulzov RTC hrani kritične informacije no določenih pomnilniških lokacijah ali registrih toliko časa, kolikor je potrebno za izvajanje posameznih operacij med programsko prekinitvijo. Če s posebno subrutino shranimo trenutno stanje števniko RTC impulzov, moremo kasneje določiti čas izvajanja operacije. Določimo go preprosto z odštevanjem shranjenega časa od časa, ki je določen s koncem operacije. Na ta nočin lahko v glavnem programu upoštevamo izgubo časa, ki jo doprinese vsakokratno prekinitvena rutina. Včasih se morajo nekatere operocije izvrševati periodično no vsak urin INT ali morda na vsakih deset urinih prekinitvenih Impulzov. Rutina RTC INT shranjuje štete Impulze in pravočasno, periodično opravlja določena opravilo. Sistem po lahko zahtevo tudi informacijo o absolutnem času in periodično dostavljanje podotkov. Navadno je frekvenca omrežja dovolj natančno in visoko, da je takšen tip ure primeren tudi zo štetje daljših period. Drug problem programske prekinitve se pojavlja pri določenih operacijah, ki se morojo Izvršiti neprekinjeno z veliko hitrostjo, čim se enkrat že prično Izvojatl, Na primer, če zapisujemo no magnetni trak ali disk, bi bile posledice programske prekinitve med takšnim Izhodom nepopravljive. Problem rešimo t posebnim bUtobllnlm elementom ( Interrupt enable flip-flop), kl omogoči INT. Navadno |e to zasta- vica (flog). .Pred operacijo oziroma delom programa, kl ne ime bUl prekinjen,vitovlmo posebno instrukcijo. Ta prepreii programsko prekinitev dokler takina kritična operacija ni U-vriena, nokor se prekinitev ponovno omogoči. Bol] kompleksni sistemi uporabljojo prioritetne programske prekinitve. Najbolj kritičnim opravilom dajemo nojvlìjo prioriteto. Kadar se pojavi zahteva po takinem oprovilu, more leta prekiniti Izvajanje rutine I NT z nižjo prioriteto. Hkrati se med tem onemogoči kakrienkoli INT z nitjo prioriteto. To se ponovno omogoči, kadar je rutina INT z viijo prioriteto kon-čono. S prioritetnimi preklnitvomi lahko mehaniziramo vhod in Izhod vmesnikov glavnega pomnilnika. Glavni program upravlja prenos vhodnih podatkov Iz polja vmesniikih registrov v glavni pomnilnik. Zapis v vmesnik poteka avtomatično z rutino INT vsakokrat, ko se le-to pojavi. Obo procesa: vpis in izpis Iz vmesnika lahko potekota neodvisno drug od drugega. Posebni registri ali pomnilniike lokacije hranijo vsokokrotno naslednjo adreso informacije, ki se zapisuje ali čita Iz vmesnika. Podobno lahko Izhodne prekinitvene rutine čitajo pomniški vmesnik neodvisno od glavnega programa, kadorkoll je tudi Izhodna napravo pripravljena rw takšno opravilo. Sposobnosti progromskih prekinitev so pri posameznih mikro procesorjih zelo različne. Pri INTEL 8008 in 8080 je potreben dodaten, zunanji hardware, ki omogoča INT. Dosi obstoja poseben prekinitveni vhod, ki se v primeru uporabe po stanju HALT ponovno rejtovriro, ne omogoča programsko prekinitev v pravem pomenu besede. Med stanjem, ki je določeno s tem vhodom, namreč ni možno nikakršno procesiranje. Resnični INT generiramo pri INT£L-ovem procesorju no tak način, da nojpreje sinhroniziramo signal zahteve zo prekinitev oziroma z uro procesorja tako, do je prekinitev možna le ob pravem času. Pri naslednjem dostavnem ciklu instrukcije onemogočimo delovanje pomnilnika in pošljemo no podatkovno vodilo instrukcijo RESTART (00AAA101). To vstavi (push) trenutno vsebino programskega števniko v sklad in preide no tekočo prekinitveno adreso: AAAOOO . Dočim mora biti INT pri 8008 omogočen od zunaj z INTEN (interrupt enable), je le-to v 8080 že vključen. Za prioritetne prekinitvene verige, posomezne dvojčke, ki omogočo{0 INT In za identifikacijo vira prioritetnih prekinitev moramo poskrbeti preko I/O kanala od zunaj. V prekinitvenih sposobnostih je INTEL 8008 popolnomo omejen, soj ne omogoča shranitev in ponovno restovrironje zaznambnih bitov (zastavic). INTEL 8080 po ie razpologa z instrukcijomi PUSH A In POPA, skupaj z instrukcijami za manipuliranje z zastavicami. IMP-16C ima večje prekinitvene sposobnosti. Te dosega z ovtomotičnim vstovljanjem vsebine programskego števniko v sklad, rozvejonjem no lokacijo 1 in preprečevanjem ponovnega INT, ko je le-ta ie prisoten. ìesfnajst statusnih zastavic (ki se lahko avtomatično vstavljajo in odvzemajo iz sklada) je namenjenih za to, do omogočijo programsko prekinitev (ali drugo opravilo za bitni Izhod). Tudi v tem primeru se mora preko I/O kanalov Identifici roti napravo, ki povzroči INT, pri pogoju, da zahtevek po prekinitvi Izvira od ene some noprove. instrukcija RETURN FORM INTERRUPT prepiše povratno adreso (In kontrolno polje) iz sklada v programski itevnik in om^oči prekinitve ovtomatično. Večji računalniki uporabljajo načine, ki Je povečujejo učinkovitost obravnavanja prekinitev. Dosežejo jo z rabo in-strukcij, ki omogočajo avtomatično razvejltev no rozlične lokacije. Te lokacije zavise od posameznih naprav, ki povzroče INT. Včosih uporobljojo tudi posebne instrukcije, kl ihro-nijo ter no to način rešijo In ponovno restavrirajo stanja vieh pomembnih registrov. Nastopojo primeri, ko lahko postone prekinitveni čos ( Interrupt response time ) kritičen, ker morojo biti nekatere naprave'dovolj hitro servisirane (na primer, sprejeti podatke) zo tem, ko povzroče INT. Tako je pri nekoterih mikroprocesorjih čos, ki go porabijo za iskanje preklnltvenega vira In reievanja «tanj posameznih registrov 20 nekotere vhodno-izhodne rvaprove ie vodno prevelik. V naiem primeru pripada k perifernim napravam prvega tipa kaseta (ali disk ). Ta p'redstovlja dodatni, masovni pomnilnik k tako Imenovanem delovnem pomnilniku mIkro računalnika. Slednji je sestavljen Iz petih strani pomnilnika RAM, ki sestovljd vmesnik krmiljenega objekta. Zoto bomo nadalje govorili o petih delovnih pomnilnikih, ki lahko istočasno hranijo podatke o petih izhodih objekta. PodotkI o časih tn in tp teh delovnih strani so shranjeni v posebnih registrih, medtem ko so na magnetnem traku pridruženi ostalim podatkom posameznih Izhodov. Komuniciranje mikro računalnika s periferno napravo takinego lipo je običajno realizirano s programsko prekinitvijo. To je po- • drobneje obravnavano no primeru v delu [11. Periferne naprave tipa 2 so prikozovolniki. To so lohko signalne lučke, svetleče diode ali katodno cev. K takinim napravam prištevamo tudi dojolnike zvočnih signolov. Prikazovalne naprave krmilimo preko vmesnikov. Bistveni elementi le-teh so pomnilniki, preko katerih aktiviramo svetlobni ali zvočni signal z mikro računalnikom. Na enak no-člh ga tudi prekinemo. Med drugim so prikazovalniki pogosto pomožni elementi ukoznego delo. Take uporabljamo tudi v rašem primeru In jih bomo podrobno opisali v naslednjem poglavju. Naprave tipa 3 so vhodne naprave, ki so namenjene ročnemu krmiljenju sistema. Te predstavljajo ukazni del naprave in jih sestavljajo tipke, stikalo in potenciometrl. Organizacija komuniciranja teh noprov z mikro račurxjlnikom je lahko preprosta s testiranjem posebnih dvojčkov (skip Flipflop) oli s programsko prekinitvijo. V naslednjem poglavju se bomo srečali s preprostejšo organizacijo ukazne enote, kakršno je uporabljena v našem primeru. 4. ORGANIZACIJA NAPRAVE Opisali bomo organizacijo enot mikro računalnika In perifernih naprav. Med prvimi bomo obravnavali centralno procesno enoto, krmilni pomnilnik in krmilnik vhodno-izhodnih enot, ojočevolnik izhodnih In multipleks vhodnih vodil, pomnilnika tipa PROM in RAM, adresno, dvosmerno izhodno vodilo ter podatkovno vodilo pomniIniko. Med drugimi enotami po bomo obravnavoli ukozno enoto s prikazovalniki, masovni pomnilnik In krmiljeni objekt . 4.1. Mikro računolnik INTEL 8080 Računalnik sestavlja pet enot: 1. Centralna procesna enoto (CPU) je osembitni paralelni procesor s šestimi 8-bitnimi delovnimi registri: 8(0-7), C(0-7), D(0-7), E(0-7), H(0-7), L(0-7), 8-bitnim akumulotorjem A(0-7) In 16-bitnim kozolcem SP(0-15) vrha sklada. Poleg teh Imamo še ukazni register UR(0-7), programski števnik PC(0-15) ter adresni AR(0-Ì5) In podotkovni register PRP(0-7). Poleg večbitnih registrov Imamo Se enobitne registre zastavic prenoso CARRY (ali krajše CY), ničle ZERO In parnosti PARITY. Med temi registri lahko definiramo še podregister AR(SP) = AR(0-7) adrese zlogov in register AR(ZG) => AR(0-15) adrese strani. Stik registrov B in C je delovni register BC(0-15) ° = B-C, ki je tudi register zo naslavljanje. Podobno sto definirano tudi registra DE In HL, medtem ko slednji.rabi tudi za seštevanje. Centralno enoto krmili dvofazna uro « frekvenco 2 MHz. Povprečni čas, v koterem te Izvrii en ukaz, |e od 5,5 ^sek do 7 ^sek. 2. Krmilnik pomnilnika In vhodno-izhodnih «not vsebuje dvofazno uro frekvence 2MHz In pomnilnik. ki hrani informacije o shinju centralne enote. Ta informacija določa, kaferi podatki se vnesejo v CPU, oziroma, če |e CPU izvor podatkov, kam se le-tl prenesejo. V krmilnem delu je Se logično vezje, ki vsklajuje hitrost CPU s hitrostjo pomnilnika in hitrostjo vmesnikov zunanjih enot. 3. Ojačevalnik izhodnih vodil in multipleks vhodnih vodil . Multipleks vhodnih vodil prepuSča podatke v CPU iz zunanjih enot oli iz pomnilnika. 4. Pomnilnik tipa PROM je M(AR) = M(0-17377(8), 0-7), torej kapacitete 4K osembitnih zlogov. Vonj se vpi^e program. 5. Pomnilnik tipa RAM je M(AR) = M(20 000 -27 377(8), i® kapacitete 1K osembitnih zlogov. Vonj se vpisujejo podatki, ki se med izvajanjem programa spreminjajo. Povezave med temi elementi podajo slika 3. phjkljuCki vhodnih enot priključki izhoonih enot Slika 3. Vodila, ki povezujejo računalniške enote so: 1. Adresno vodilo, ki ima 16 bitov. Izvira iz AR v centralni enoti. Običajno se po tem vodilu pri pomnilniških ukazih prenašajo adrese posameznih zlogov, pri vhodno-iz-hodnih ukazih pa adrese, ki pripadajo vhodnim oziroma izhodnim enotam. 2. Dvosmerno vodilo centralne enote prenaša podatke iz CPU no izhodna vodila in podatke iz vhodnega vodila ali vodila pomnilnika v CPU. 3. Izhodno vodilo prenaša podatke iz centralne enote v pomnilnik in v izhodne enote. Po njem se prenaša tudi podatek o stanju centralne enote v register krmilnika. 4. Podotkovno vodilo pomnilnika prenaša podatke iz pomnilniške lokacije, katere adresa se nahojo na adres-nem vodilu, v CPU. 5. Vhodno vodilo prenaša podatke iz vhodnih enot v CPU. 4.2. Periferne naprave Poleg ukazne enote s prikazovalniki in mosovnego pomnilnika lahko med periferne naprave prištevamo tudi krmiljeni objekt. Slednjemu smo posvetili že nekaj pozornosti. Na tem mestu bomo dodali le Se nekotere nadrobnosti, ki ss nanoiajo na vmesnik krmiljenego objekta. Te to {« posebej pomembne za razumevanje časovnega generatorja. 1. Vmesnik krmiljenega objekta sestavlja pet delovnih strani: DSi{PAR) = DSiCóiOOOm - 6i 377(8), 0-7), kjer je i€ {!,...,5} in PAR = PAR(0-!S) = P -AR(ZG), adresni register petih delovnih strani. V registru P je spodnji, v registru AR(ZG) po gornji del adrese. Delovne strani se razlikujejo od strani računalniškega pomnilnika po tem, do so izhodi delovnih strani vezani le no digitalno-anologni pretvornik (DAP). Zaradi tega je možno v delovni strani podatke le vpisovati, čitati po jih ni mogoče. Vsoki od prvih štirih strani pripada po en potenciometer. Poleg teh potenciometrov XI, X2, X3 in X4 obstaja še glavni potenciometer Z, ki paralelno napaja vse štiri potenciometre. Delovnim stranem pripadajoči potenciometri rabijo za prehajanje izhoda krmiljenega objekta iz enega stanja v drugo, medtem ko omogoča potenciometer Z nastavljanje posameznih analognih izhodov izhodnega stanja objekta. Vsi našteti potenciometri imajo servosistem. Vmesnik vsebuje poleg že omenjenih petih digitalno-onalognih pretvornikov Se enoto za onalogno množenje in seštevanje, multipleksor in dva demultipleksorja. Ker te enote nimajo pomembnejše vloge pri generiranju časovne funkcije, nadolje ne bodo deležni noše pozornosti. 2. Masovni pomnilnik je lohko različnega tipa. Izbira zavisi od zahtev krmiljenega objekta. V našem primeru je uporabljen magnetni trak - kaseto, ki ustreza po ceni, hitrosti In zanesljivosti. Problemi komuniciranja te naprave z mikro procesorjem, ki zajemajo zlasti probleme kasetnega vmesnika in vključevanja kasetnih progromov v glavni program, so bile že podrobneje opisani v delu 3. Ukazno enoto sestavljajo stikalo, signalne lučke in prikazovalniki. Prikazovalniki so običajno kotodne cevi ali polvodniške svetleče diode. V naši napravi so uporabljene slednje z dekoderjem (HP-5082-7300). Poltg stikalo POWER (ON, OFF) z dvema položojemo za vklop in izklop naprave nahajamo tipko kot enopoložajno stikalo za generiranje Impulza, ki postavi programski Stev-nik v začetno stanje O, in pol jo stikal, s katerimi določamo posamezno opravila. Polje stikal lahko zapišemo kot stik stikol. Eno tokSnih polj je stik: Casswitch, SSS(AV,R,0-4) = SSZ-SSX1-SSX2 -55X3-55X4 5tikalo 5SX podoja stanje potenciometra servosistema X, ki pripada X-ti delovni stroni. Polje numeričnih tipk NT sestavljojo tipke, s katerim zopi-Semo v prikozovalnik PNT numeričnih tipk števila od 0-9: Cossvvitch, POLNT(ON,0-9) = NTl -NT2-NT3-NT4-^,T5- -NT6 - NT7 - NT8 - NT9 Stanje tipk enego polja lohko dobimo v akumulator z enim ukazom. Zato pravimo, da tvorijo takšne tipke polje tipk, ki ga določimo kot stik. Naj omenimo še nekatero tokšna poljo: Casswitch, POLB(ON,0-6) = SCN-ŽAR - TN-TP - BNT--SSCN-BFT Polje tipk B tvorijo torej tipke: 5CN(ON), preko kate,o zahtevamo vnoSonje izhoda iz perifernega (masovnega ) pomnilnika v mikro računalnik in pove, do je število v PNT Številko izhodnega stanja, ki ga želimo. S tipko ŽAR(ON) zahtevamo nastavljanje analognego izhoda, katerega številko je zapisano v PNT. TN(ON) oziromo TP(ON) pove, da je Število v PNT čas naroSčanja oziroma padanja. BNT(ON) zbriše število PNT, BFT(ON) pa vse funkcijske tipke. SSCN(ON) pa zahteva vnaSonje izhodnega stanja objekta. Številko tega itonja |e v PNT in se zapiše v delovno »tran DS5. Couwitch, POLD(ON,0-5) = CRS-ZPl-ZP2-ZP3-ZP4-BS CRS(ON) zahtevo ilmetričen prehod, medtem ko zahtevalo (tikalo ZP(ON) prohod no izhodno stanje objekta, ki je zapisano v določeni delovni strani DSl do DS4. No tipko BS(ON) pritisnemo, kadar hočemo sprostiti eno od DS za vnoionje novega izhoda. Poleg omenjenih polj imamo ie polja tipk PPl(ON) do PP5(ON), ki odresirajo ustrezne delovne strani. V posebna polja so vključene tudi tipke drugih opravil, ki jih v članku ne bomo obrovnavoli. To opravilo namreč ne dotikajo problematike, kateri je članek posvečen, ali pa so bilo že obravnavana v delu 111 . Omenim noj le 5e tipko IZV(ON), ki zahteva izvršitev opravilo, ki |e določeno s poprej priti-snjenimi tipkomi. Večini zgoraj opisanih tipk pripadajo ustrezne signalne lučke. Tako pripišemo polju B funkcijskih tipk polje signalnih lučk LUCB : Coslight, LUCB(ON,OFF,0-4) = LSCN - LŽAR - UN - LTP -, - LSSCN- Za lučke enega polja je značilno, da so pri prižiganju (npr. LTN(ON) in ugašanju (npr. LTN(OFF) dostopne vse hkrati. Prikazovalnik popišemo kot stik signalnih lučk z devetimi različnimi signoli: Coslight, PNT(0,1,2,3,4,5,6,7,8,9, 0-2) PNT je torej stik treh devetjignolnih lučk za vpis tromestne-ga število. Delovnim stranem DSl do DS4 pripadajo vsoki po dva prikazovalnika. Zoto jih popišemo kot dve polji, katerih elementi so razvrstitve prikazovalnikov. Array - Coslight, PTDS( 0,1,2,3,4,5,6,7, 8,9,0-2, 0-3) Stavek popisuje polje, ki ga tvorijo štirje prikazovalniki, komor vpisujemo čose prehodov izhodnih stanj, zapisane v pripadajoči delovni strani. Array - Coslight, PSSDS (0,1,2,3,4,5,6,7,8,9,0-2,0-3) To je polje, kamor vpisujemo številko izhodnega stanja, ki je trenutno zapisano v pripodojoči delovni strani. 4.3. Nekatere povezave med elementi sistema Vsakemu polju tipk, ki ima nojveč sedem tipk, pripado en enobitni register. Imenovali ga bomo SKIPpl, kjer je pl oznako polja (B,C,...). Ta dvojček zasedo osmi bit zloga. Vsakemu polju pripodo ustrezno polje signalnih lučk, polju numeričnlh tipk po tromestni, desehrednostni prikozovolnik za vsako številčno mesto. sukala, tignalne lučke, prikazovalniki in ADP >o povezan! z akumulatorjem preko vhodnih in izhodnih vodil podatkov. Prenos Iz vhodne enote preko vhodnega vodilo v akumulator dosežemo z ukazom INPo, kjer je o adreso vhodne enote, ki se vstavi v AR. Pri tem ukazu se pojavi signal INP = 1 . Prenos iz okumulatorjo do Izhodne enote se Izvrši z ukazom OUTo, kjer je o adreso izhodne enote, ki se pojavi v AR. Pri tem ukozu le generira tignai OUT = 1. Te prenose opisujejo sledeči stovki: IF(INP=t AND AR(0-7) = 25(8) THEN(IF(POLB(l) = ON) THEN(A(I) -1) ELSE(A(I)- 0)), A(7) ► SKIPB) , kjer je 25(8 adreso polja B in 1=0,1,...,6. Na enak način se z nas ovijanjem drugih polj prenesejo stanja ostalih tipk. V AR(8-15) je pri INP in OUT okozih enako vsebina kot v AR(0-7). Ker so vhodi v prikozovolnike kodirani v BCD kodu, se stanje tipk numerične tastature prenaša v akumulator takole: IF(INP = 1 AND AR(0-7) = 20(8)) THEN(IF(PLNT(I) = ON) THEN(A(0-3)-l(2), A(4-7)-0) ELSE(A(I)- 0)), A(7)- SKIPNT), kjer je 20(0) adresa polja NT in I(10) = 0,1,...,9. Stanje stikal ser/osistemov v akumulator preko dekoderja poteka takole: IF(INP = 1 AND AR(0-7) = 61 (8))THEN(IF(SSX(I) = AV) THEN(A(I)- 1) ELSE(A(I) -0)), A(5-7)- 0) , kjer je l = Z,l,2,3,4 in 61(8) odreso polja stikal servo-sistemov. Brisanje enobitnih registrov SKIPpl dosežemo z ukazi OUT. Na primer za SKIPNT z adreso 21(8) velja: IF(0UT = 1 AND AR(0-7) = 21 (8) THEN(SKIPNT - 0). Lučke v tipkah prižigomo in ugašamo tako, da vsebino akumulatorja prenesemo preko vodil izhodnih podatkov do pomnilnika lučk. Sledeči stavek opisuje prižiganje in ugošonje stika lučk LUCB. IF(OUT=l AND AR(0-7) = 27(8)) THEN(IF(A(I) = 1) THEN(LUCB(J) - ON) ELSE(LUCB(J ) - OFF)). kjer je (l,J)= (0,0), (1,1), (2,2), (3,3), (5,4) In vred-, nost poro (I,J) zavisi od razmestitve tipk in njim ustreznih lučk po bitih. Kot primer zapisovanja v prikazovalnik vzemimo prikazovalnik enic numeričnih tipk, ki ima odreso 22(8). IF(OUT=l AND AR(0-7) = 22(8))THEN(PNT(0) - A(0-3)) Analogno velja za ostale prikazovalnike. Pri tem upoštevamo, da podregistor A(0-3) hrani enice, A(4-7) desetica, pod-register A(0-3) naslednjega zloga po stotice. Pri prikozovol--niku čoso so v prvem zlogu zakodirone sekunde, v drugem zlogu na pn/ih štirih bitih po minute. 5. IZRAČUN ČASOVNE FUNKCIJE Časovni generator generira binarno zokodirone amplitude do vnaprej predpisane vrednosti Z, kot lineorne funkcije čoso. Avtomatsko prehajanje izhoda krmiljenega objekta iz enego stanja v drugo je izvedeno tako, do se pri naraščanju po-tenciometrov v "enakih" časovnih intervalih At prišteva k vsebini lokacije, ki krmili seri^osistem potenciometra, prirastek Ap. To trojo, dokler vsebino lokacije ne doseže vrednost potenciometro Z. Pri tem doseže krmiljeni potenciome-ter skrajno zgornjo lego. Kadar vrednost potenciometro poda, je postopek enak, le da se A p odšteva od vsebine lokacije, dokler nI njeno vrednost nič. No to način je realizirano stopničosto funkcija, ki je približek linearne funkcije. Čas prehajanja je določen s časom naraščanja pri noroščanju scene in s čosom padanja pri upadanju scene. Časovni Interval, v koferem se izvrši eno prištevanje oziroma odštevanje, je enok povprečnemu času, v katerem se enkrat Izvede program ZANK. Ta znaša približno 20msek. Prirastek Ap izračuna podprogram CZP pred začetkom prehoda na sledeči način: p = At , oziroma p = At , In tp ' (1,2) če gre za naraščanje oziromo padanje potenciometro (si .4). Čosa tn in tp določa operater. Podatka vnese za vsak Izhod posebej preko tostolure ukaznega delo sistema. Ko CZP izračuna Ap uredi še spremenljivko M(20117^8)' 0-7) = ZP(0-7). Posamezni biti v ZP(l-4) pripodo jo zopore-domo potenciometromo XI, .. .,X4. V tiste bite v ZP(l-4), ki pripadajo potenciometrom, zo kotere je CZP Izročunola Ap,se zapišejo enice. Prehajanje potenciometrov po krmili rutina TSCG. Kadar hoče operater izvesti simetričen prehod dveh potencio-metrov (eden narašča, drugi upada in je tn = tp), potem pritisne tipko CRS in še tisti dve tipki Izmed ZP1,...,ZP4, ki pripadata omenjenima potenciometromo. S tipko IZV te spro- 40 / / \ At At ----te 1 —^ t Slika 4. ii IZS in s ^em CZP. Ta ugotovi, da je bila pritisniena Kpka CRS, zato pregleda, kateri dve tipki izmed ZP1,...,ZP4 5ta bili pritisnjeni in lego obeh pripadajočih pofenciometrov. Pri fem moro biti eden v skrajni zgornji, drugi pa v skrajni spodnji legi. CZP iz časa naraSčanja, ki pripada potenciometru v spodnji legi, izračuna Ap. Za tolikšno vrednost po vsakim At lega potenciometra korakoma, narašča, drugega pa pada. CZP nato postavi še ustrezne bite v ZP(l-4) no 1. INIT nastavi no začetku ZP = 0. 5.1. Podprogrami za generiranje časovne funkcije Algoritem je osnovan na enačbah 1 in 2. Realiziran je s programom CZP, ki uporablja pri izračunu p podprograma za deljenje in množenje. Podprogram DELI deli vsebino no lokaciji Z z vsebino registrov HL. Registra DE hranita deljitelja, HL deljenco, BC po delne kvociente. Lokacijo SK rabi kot števnik pomikov deljenca, CK pa kot števnik celih mest kvo-cienta. Rezultat se nahaja: v A celi del, ki se prepiše iz pomožnega registra ZAC, v HL pa ulomljeni del kvocienta, ki se prepiše iz BC. Podprogram DELI poteka po diagramu na sliki 5. Vanj vstopajo rutine INIT, COMP, SLDE, SLBC in SUB. Te so podane na sliki 8. V DELI se rutino C1 izvaja, dokler ni HL monjši od DE, ciki v rutini C02 se izvaja 16-krat, rutina C4 pa 4-krat. Deljenje po programu DELI se no mikro procesorju INTEL 8080 Izvrši v 5 do 8 nsek. Rutina COMP primerja vsebini registrov HL in DE. Če je vsebina v HL manjšo od vsebine v DE, potem postavi zastavico CARRY. Rutina SLBC pomakne vsebino v BC za en bit v levo. No najnižji bit ( najbolj desni bit) zavzame vrednost O, najvišji bit po se pomakne v CARRY. Rutino SCDE rc <0 o <6 M CARBY*-1 DE «-♦ HL HL ihl HL DE «-♦ HL © SKLAD Ht HL - BC CAHRV-HL iM CAHHY-HL BC ML HL - SKLAD CAL CDE HL HL • OB CAL eoe Slika 6. C ■«- CU K NE J CAL SUS CAL SLBC HL<-ilil HL SK -^SK-l -Nt ^ZERRO- ŽA^ CK ■ O y: A ■«-ZAC CAL SLBC CARRY-A ■•— eli CARRY-A CK CK - 1 -b^ck. 0 y A «-ZAC HL - BC h-e Slika 5. pomakne vsebino v DE za en bit v levo. Najnižji bit prevzame O, najvišji po se pomokne v CARRY. Rutina SUB odšteje vsebino v DE od vsebine v HL. Vsebino v DE ostane nespremenjena. Podrutina CDE izračuna k vsebini v DE dvo-|ISk! komplement In ga postavi v DE. Rutina MNO množi podatek v registru DE s podatkom na lokaciji DT. Rezultat se noračuno v HL. Register C je uporabljen kot števnik pomikov množiteljo. Vanj vstavimo 11. V DE naložimo množenec. Množenje se Izvrši v času ~ 676 ;j$ek + 12,5 x število enic množitelja, kar znaša 676 do 776 ^sek. 5.2. Povezava časovnega generotorja z glavnim programom Glavni program sestavljata dva podprograma INIT In ZANK. Diagram poteka podaja slika 10. Ob vklopu naprave se programski števnik postavi no nič in začne se izvajati podprogram INIT, ki Inicializira napravo. Noto se ciklično izvaja podprogrom ZANK, ki teče, dokler naprave ne izklopimo. Z besedo CAL, kl jI sledi ime podprograma,so označeni klici podprogramov. Povrotek v program iz klicanego podprograma je v podprogramu podan z ukazom RET. Podprogram INIT vzpostavi začetno stanje naprave. Nojpreje nastovi kazalec sklada. Ker sklod narašča od višje adrese proti nižjim odresam, postov! dno tkioda no nojvlijo loka- Slika 8.a cifo: SP 27 377(8)- Nato nasfavi izhodno stanje na vrednost O tako, da vpiše ničle v vse delovne strani, in nastavi lokacije, ki krmilijo servosisteme potenciometrov XI, X2, X3 in X4. INIT nadalje ugasne signalne lučke v tipkalu ukaznega dela, ugasne numerične prikazovalnike, briJe "skip" registre, prečita prve podatke iz masovnega pomnilnika ter nastavi začetno vrednost ?e nekaterim spremenljivkam, ki zasedajo en ali več zlogov v pomnilniku (RAM). Podprogram ZANK na sliki 8b lahko v grobem razdelimo na dva dela. Razmejitev pojasnjuje sliko 9. Podprogram OSNC krmili Izhod 1 s tem, da donaiSa in obnavlja podatke o izhodnem stanju v analognem pomnilniku. To obnavljanje se mora ponoviti najkasneje v 20 msek. CAL OSNC - CAL OPR 1 T CAL TSCG ZI CAHHY CAL IZS T OPERATER O S > M 1 NAPRAVA ZA KRMIUENJE i ANALOGNI ' POMNILNIK IZHOD 24B lihodtilh iponk Slika 8.b Sliko 9. OSNC troja 10 msek, zato imajo preostali podprogrami v ZANK največ 10 msek časo za svoje izvajanje. Potem moro ponovno priti no vrjto OSNC. Ti preoostall podprogrami tvorijo drugi del ZANK, ki uravnava komuniciranje z operaterjem. Od operaterja «prejme ukaze (VHOD), jih rozpoznovo, Izvriluje/ter jovljo svoje stanje operaterju (IZHOD 2). Med podprograme opravil OPRI do OPRn štejemo npr. podprogrom. ki pregleduje stanje servoslstemov in opravi dela v zvezi s potenciometri, podprogram, k! omogoča nastavljanje posameznih analognih izhodov, ter tiste, ki skrbe za komuniciranje z masovnim pomnilnikom (npr. kaseto, diskom, ipd.). Operater daje napravi ukaze tako, da pritisne določeno kombinacijo tipk na ukaznem delu. Ukoz zaključi s pritiskom na tipko IZV, ki pove, naj se opravilo, ki ga zahteva kombinacijo tipk, iz-vrli. Podprogram BCDE pregleduje polja tipk ukaznega dela in si zapomni pritisnjeno kombinacijo. Ob pritisku na tipko IZV postovi O v CARRY, s čemer sproži izvajanje podprograma IZŠ. IZŠ prevzame kombinocijo tipk, ki jo shrani podprogram BCDE, ugotovi kakšno opravilo je zahtevano Inga izvrši. Postavi po tudi ustrezen signol, če se opravilo izvaja dlje časa. Eno tokih opravil, ki trajajo dlje časa je komuniciranje s počosnimi perifernimi naprovomi - masovnimi pomnilniki, drugo tokšno opravilo po je avtomatski prehod potencio-metrov. TSCG pregleduje, če je prisoten signal (postavi ga IZŠ), ki zohteva prehod potenciometro. Če najde tak signal, izračuna novo lego pripodojočego potenciometro in jo javi servosistemu. Med izvajanjem takšnih počasnih opravil se podprogram ZANK večkrat izvaja. OSNC obnovijo podotke o izhodih tako, do postavlja ciklično v register P adrese analognih Izhodov med O in 245. Adreso posameznega izhoda moro biti prisotno v registru P vsaj 40jjsek, da se lahko obnovi analogni pomnilnik. To dosežemo z zakasnitvijo, pri kateri računalnik izvaja ukaz NOP. Diagram poteka kaže slika 10. Podprogram BCDE sestavljajo podprogrami PLB, PLC, ..., od katerih vsak ustreza določenemu polju tipk (B,C,itd.). Ti podprogrami pregledujejo polja tipk POLB, POLC,... in ugotavljajo, če je v pregledovanem polju pritisnjeno katero od tipk, potem postavijo 1 v CARRY, sicer pa O v CARRY, in skočijo iz podprograma BCDE. Vonj se vračajo v naslednji zanki, če je CARRY = 1 . Na ta način se v enem ciklu lahko obdelo največ ena pritisnjeno tipko. Tipko IZV postovi O v CARRY. Med podprogrami programa BCDE noj omenim le podprogram PLB, ki urejuje poleg tipk POLB tudi tipke numerične tastature PLNT in pripadajoči prikozovalriik PNT. Tipke SCN, ŽAR, TN, TP in SSCN določajo namen numerične tostature. Toko pomeni število PNT: številko Izhodnega stanja, če gori lučko v tipki SCN, številko posameznega onolognego izhoda, če gori lučko v tipki ŽAR, ter čas naraščanja oziroma po-danjo, če gori lučka v tipki TN oziroma TP. Številka v PNT pomeni številko Izhodnega stanja objekto tudi v primeru, ko gori lučka v tipki SSCN. Omenjene tipke se med seboj izključujejo, kar pomeni, da lahko gori vedno le ena od signalnih lučk, ki pripada tem tipkam In to tista, ki je bilo zodnja pritisnjeno. Ta funkcijska tipko tudi določo namen numerične tostature. NumeriŽno tastaturo in prikazovalnik urejamo le, kadar je določen namen numerične tostature. P 268 - 1 ' ♦-P-1 J ZAKASNITEV ZIZT ^ p.o Vi GH |< ^CARRY - 1 -1 0i. Slika 10. 42 Tedaj te ilevllo, ki je odtipkano na njej^vpiSe v prikazovalnik In v pomnilnijko lokacijo, ki je prirejena funkcijikl Hpki. Omenjeno lokacijo Imenujemo tudi register tipke. TI registri le brišejo t podprogramom INIT. Vtak podprogram v IZŠ pripada enemu od opravil, ki jih zahteva operater. Med te podprograme sto vključena tudi podprograma CZP in TNTP, ki »to tesno povezana z generiranjem časovne funkcije. Vsak od podprogramov v IZS najprej preveri, če kombinacijo tipk zahtevo opravilo, kateremu podprogram pripada. Če kombinacijo razpozna, opravilo IzvrjI In pred vrnitvijo v GP zapiSe ničle v spremenljivke. Iz katerih je razbral kombinacijo tipk, ugasne lučke v odgovarjajočih tipkah, CARRY pa postavi v 1. Podprogram KZAS pogleda v posebnem registru SKAS, če je vhodno-Izhodna naprava zasedeno s kakSnIm opravilom. Če je, izvrši CARRY - 1, sicer po CARRY «- O in se vrne. V primeru zasedenosti rioprove IZŠ Ignorira zahteve za delo z njo In preskoči programe PVI. Dlagrom poteka IZŠ kaže sliko 11. €h pNL/cARHV - o Vi» ' CAL . . . 0 Slika II. Podprogram TNTP preveri, ali hoče operater predpisati čas noroičanja ali čas podonja Izhodo, koterego podatki se no-hojajo v eni od delovnih strani. Operater postovi to zahtevo toko, do pritisne tipko TN oli TP, noto odtipka čas prehoda no numerični tastaturi. S pritiskom no eno od tipk PP1,..., PP5 pove, kateri strani noj pripadajo podatki o Izhodu, k! določajo čos naraičonjo oil čas padanja Izhoda. S pritiskom na tlpl 1 —KD CARRY. I CAL KONC I* © Sliko 12. enak način Izvaja TPR padanje tako, do odšteva Ap. Oba podprograma pregledujeta, če je prehod končan (potenclometer ja v eni od skrajnih leg). Če je, javita to toko, da izvršita CARRY - 1. To pa sproii podprogrom KONC, ki ob končanem prehodu potenclometra postavi ustrezni bit v ZP na 0. KONC postavi še 1 v določeni bit registra SPR, če je potenclometer dosegel skrojno zgornjo lego, oziroma O, če je dosegel skrajno spodnjo lego. Podprogram TSCG »e vrne v GP, ko pregleda vse potenciometre. V diagramu poteka je z I oznočen indeks, ki ga hranimo v registru C. 6. ZAKLJUČEK Programiranje opisanega primero krmiljenega objekta v realnem času je potekalo v zbirnem jeziku rio mlkra računalniku INTEL 8080. Pri testiranju sto bilo uporabljena dva ročunol-nlka. Prvi,.ki je bil kasneje vgrajen v vmesnik krmiljenega objekta, je Imel priključeno kot vhodno-Izhodno enoto ukazni del noprove (funkcijske tipke In numerično tastaturo). DrugI mikro računalnik po je imel kot vhodno-izhodni enoti priključen tiskalnik z luknjačem TELETYPE ASR 33 in kaseto MFE 250. To je omogočalo hitrejše vnošonje programov, zbirnike In ODT programov. Vnašanje le-teh preko čitolniko tro-ku ASR 33 je namreč mnogo počasnejše, ne le zarodi čitolniko samega, ompok tudi zaradi zbirnika, ki je tro-prehoden in zahtevo trikratno čitanje. (Vogromiranje bi bilo ie hitrejše z rabo kritnega zbirnika. Grodnjo olgorltmokrmiljenja objekta je potekalo z novzdol-njlm razvijanjem programa, kar omogoča dober pregled nad celotnim sistemom. Pri tem so bilo predvsem no zgornjih nivojih v veliki meri upoitevona pravila strukturiranega programiranja. Toko programiranje in navzdolnjl razvoj programa sto omogočala enostavno preizkušanje in povezovanje enot, ki tvorijo program. Univerzalni mikro računalnik INTEL 8080 la je Izkazal kot primaren za reševanje zgoraj opisanih nalog. Tam, kjer ja proces dovolj počasen, je bil uporabljen način ugotavljanja sprememb s cikličnim odtlpovonjem. Programsko prekinitev, ki jo 8080 omogoča, jo bila uporabljena le pri komuniciranju s kaseto. 7. LITERATURA fi] B.Mihovllovlč, R.Murn, T.PIsonskl, Z.MIlavc, P.Kolbazan, Komuniciranje mikro računalnika s kaseto v raalnam času. Zbornik rodova Juremo 1977, svezak II, Zagreb, 1977. (2) J.Polajnor, Krmiljenje objekta z mikro računalnikom v realnem času. Diplomsko delo, FE v Ljubljani, 1976. 43 Informatica št. 2 letnik 1977 a prognamming system for editing annotated bibliographies j. j. dujmović UDK 6H1.3.06:[02 + 002] University of BeUjrade, Dept. of Eelectrical Engineering 11000 Beograd abstract, a programming system for editing, classifying ano printing of simple or annotated bibliographies and similar texts is presented. the system is primarily designed for the individual use by researchers and is simple for manipulation. it can be used in the following applications -m editing and printing general purpose texts, 12) producing lists of references to be published at the eno of papfrs, (3( producing annotated bibliographies, and («) producing classified bibliographies. all fortran programs and the corresponding user manual are included in the paper. programski sistem za eoitiranje komentar i san ih bibliografija. u radu je prikazan programski sistem za eoitiranje. klasifikaciju I štampanje prostih ili komentarisan1h bibliografija 1 sličnih tekstova, sistem je prvenstveno PREDVIDJEN za INDIVlDyALNO koriščenje OD STRANE ISTRAŽIVAČA i jednostavan je za rukovanje. MOEe se koristiti u sledečim primenama - (D eoitiranje i štampanje proizvoljnih tekstova. (2) formiranje lista referenci za publikovanje na krajevima radova, 13) realizacija komentar i san i h bibliografija i (4) realizacija klas i f i kovan ih bibliografija. u radu su priloženi svi potrebni fortran programi i odgovarajući priručnu za korisnika, INTRODUCTION bibliographic research is regularly an importamt part of fach research effort. during research in some field, researchers often maintain and update comprehensive lists of references, in a number of cases it is NECFS5ARY TO SUPPLY REFERENCES WITH ABSTRACTS AND/OR COMMENTS. MOREOVER, SOMETIMES IT IS ESSENTIAL TO CLUSTER BIBLIOGRAPHIC ENTRIES FORMlNr, CLASSES OF RELATED ITEMS, AND TO PROVIDE THE POSSIBILITY FOR AN ITEM TO BELONG SIMULTANEOUSLY TO SEVERAL CLASSES. THE AUTOMATIZATION OF THESE ACTIVITIES IS DOUBTLESSLY AN USEFUL AND TIME-SAVING JOB. C the basic problem associated with the realization of bibliographic data base systems designed for personal use, is to properly measure out the degree of sophistication of such systems considerring both the scope and complexity. systems for personal use differ considerably from the systems designed for public use (e.g. library information retrieval systems etc.), since the later are as a rule very sophisticated. all experiences with bibliographic systems for personal use showed that the essential prereüuisite for the applicability of such systems is to keep them simple, POTH for understanding and use. THF system presented in this paper is partially related to systems describfd in references 1, 2» AND 3. IT IS DESIGNED IN VIEW OF THE FACT THAT IN A RELATIVELY NARROW FIELD OF RESEARCH, A RESEARCHER DOES NOT NEED MORE THAN SEVERAL HUNORErS OF 'ACTIVE' BIBLIOGRAPHIC RCCORDS. BECAUSE OF THE LIMITED NUMBER OF RECORDS AND THE NEED FOR THEIR OFF-LINE ACCESSIBILITY AND READABILITY, IN THIS CASE IT IS CONVENIENT TO KEEP BIBLIOGRAPHIC RECORDS ON PUNCHED CARDS. ACCORDING TO THE GIVEN SPECIFIC NEEDS, VARIOUS SETS OF RECORDS TAKEN FROM THE BIBLIOGRAPHIC RECORD DATA BASE CAN BE READ, PROCESSED, EDITED, AND PRINTED IN REQUIRED FORM BY A COMPUTER» USING THE 'AB' PROGRAMMING SYSTEM DESCRIBED IN THE SEQUEL. the 'ab' programming system ALL TEXTS PRODUCED BY THE 'AB' PROGRAMMING SYSTEM HAVE ADJUSTABLE WIDTH IN ORDER TO FIT THF AVAILABLE SPACE FOR PRINTING, AND ARE BOTH LEFT AND RIGHT JUSTIFIED. BEFORE PROCESSING, THESE TEXTS MUST DF PREPARED ON PUNCHED CARDS IN A NON-EDITED FORM WITH ARBITRARY SPACING BETWEEN WORDS. THEREFORE, THE POSSIBILITIES FOR EASY COMBINING VARIOUS SEGMENTS OF THE TEXT, AND FOR THE TEXT MODIFICATION AND UPDATING ARE SUFFICIENTLY PROVIDED. FOLLOWING ARE THE FOUR BASIC OUTPUTS OF THF 'AB' SYSTEMI (1) ARBITRARY SEGMENTS OF THE TEXT SEPARATED BY BLANK LINFS. THF PRESENT PAPEii IS AN EXAMPLE OF SUCH A TEXT. 12} LISTS OF REFERENCES, THE USER MUST PREPARE THE DESIRED INPUT SEQUENCE OF REFERENCES ON PUNCHED CARDS. REFERENCES AT THE END OF THIS PAPFR CAN SERVF AS AN EXAMPLE OF SUCH AN OUTPUT, (J) ANNOTATED BIBLIOGRAPHIES. EACH RECORD IN AN ANNOTATED BIBLIOGRAPHY MAY BE FOLLOWED BY AN ARBITRARY TEXT SERVING USUALLY AS ABSTRACT, COMMfNTc OR CRITICISM. AN EXAMPLE OF ANNOTATED BIBLIOGRAPHY CAN BE FOUND IN REFERENCE 4. (4) CLASSIFIED BIBLIOGRAPHIES. IF THE USER DEFINES A SET OF CLASSES AND ASSIGNS THE ONF-CHARACTER CLASSIFICATION CODE TO EACH CLASS. IT IS POSSIBLE TO ASSOCIATE THE CORRESPONDING MULTI-CHARACTER RECORD CLASSIFICATION CODE TO EACH RECORD ACCORDING TO ITS APPURTENANCE TO VARIOUS CLASSES. FOR EACH GIVEN INPUT CLASSIFICATION CODE THE EXISTING RECORDS CAN BE TESTED IN ORDER TO ESTABLISH THE LIST OF RECORDS WHOSE RECORD CLASSIFICATION CODE CONTAINS THE INPUT CLASSIFICATION CODE. AN EXAMPLE OF THE USE OF CLASSIFIED BIBL lOGRAP«.! ES IS PRESENTED IN REFERENCE 4. THE 'AR' PROGRAMMING SYSTEM CONSISTS OF FOUR SUBROUTINES I INPUT. REDUC. CODE. AND ROW) AND THF MAIN PROGRAM. SUFFICIENTLY COMMENTED TEXTS OF ALL PROGRAt-'S FOLLOWED BY THE CORRESPONDING USER MANUAL ARE PRESENTED IN THE SEQUEL. c»»* c — c — c c — c c c — C---- SUBROUTINE INPUT(L.NL.LDI M) INITIALIZATION OF THE CHARACTER-VECTOR L NL " INDEX OF THE LAST NON-BLANK CHARACTER WITHIN THE VECTOR L IF L CONTAINS ONLY BLANKS. THEN NL-0. AND NL»-1 IF 'END' IS DETECTED AT THE 6ND OF VECTOR L LDIM = DIMENSION OF VECTOR L DIMENSION L(1).IEND(3) COMMON KIN.KOUT • DATA IBL/' '/.lEND/'E'.'N'.'D'/ DO 10 I - 1.LDIM.80 NL"I+79 RrAD(KlN.5)(L(J I.J"I.NL) '5 FORMAT (80A1) IF(L(NL)-ItìL) 15.10.16 10 CONTINUE WRITEIKOUT.15) 16 FORMATI' »♦• RECORD LENGHT ERROR'///) PAUSE 16 IF(L(NL1-IEN0(3II 21.17.21 17 IF(L(NL-1)-IEND(2l ) 21.18.21 Ifl IF(L-1EN0(11I 21.19.21 19 NL--1 20 RETURN 21 NL«NL-1 IF(ML) 20.20.25 25 IF(LINLI-IBLI 20.21.20 END C»*»»*»«•**»***•»«»**»»**»**»»»»*»♦»»*»•*#» SUBROUTINE REDUCIL.NL) ---REDUCTION OF THE NL-DI MENS I ONAL character-VECTOR L by REDUCING THE number of blanks uetkeen words to one DIKENSIC!) nil data IBL/' '/ INDEX.-0 INDICI DO 30 I«1.NL IFtLII)-II3L) 20.5.20 5 IF(INOIC) 30.10.30 10 1NDIC«! GO TO 25 20 INDIC-O 25 IN0EX«IN0EX+1 L(INDEX)>L I 1 I 30 CONTINUE NL»INDEX RETURN END SUBROUT J NE ROW ( L .NL .NCHAR .L1N1 »K . ICENO ) SELECTION OF NCHAR CHARACTERS FROM THE INPUT VECTOR L. STARTING WITH L(LINI). ANO THEIR TRANSFER IN THE OUTPUT VECTOR K . DURING THE TRANSFER BLANKS ARE INSERTED BETWEEN WORDS. SO THAT THE TEXT IN VECTOR K IS BOTH LEFT AND RIGHT JUSTIFIED. AND -^EADY FOR PRINTING. THE LAST NON-BLANK CHARACTER IN VECTOR L IS L(NL). IF THE OUTPUT INDICATOR KEND-l. THEN THE VECTOR K CONTAINS THE LAST SEQUENCE OF CHARACTERS FROM THE VECTOR L (OTHERWISE. )CEND«0). AFTER THE TRANSFER OF CHARACTERS THE POINTER LINI IS AUTOMATICALLY INCREMENTED. INITIALIZATION LlNl-1 MUST BE DONE IN THE PROGRAM WHICH CALLS SUBROUTINE ROW. DIMENSION LID.KIl) DATA IBL/' '/ IFINCHAR-(NL-LINI + 1I 1 25.5.5 C--- LAST ROW 5 IND-1 DO 10 I«LINI,NL K IIND)»L(I) 10 lND«IND+a IFI INO-NCHAR> 15.15.20 15 00 19 I»ÌNO.NCHAR 19 K( I l-IBL 20 KEN0"1 RETURN C— NON-LAST ROW 25 LEND-LINI+NCHAR-1 . IF(L{LEND+1)-IBL) 30.26.30 C--- NO MODIFICATION 26 IND-O DO 28 I«L1NI.LEND IND"lND+1 28 K(IND)*L(I) GO TO 160 c--- searching the last word in a row 30 do 50 i"l.nchar leno-leno-i ifil(lend+1i-ibli 50.70.50 50 continue write(3.60) 60 format(' text lenght error'///) return c--- nbl ■ number of blanks to he inserted c--- mbl • number of blanks between words 70 nbl=i mbl-o do 80 i-lini.uend iftlin-ibl) 80 .75.80 75 mbl-mrl+l 80 continue numr»nbl/mbl ken0-mbl-nbl»numb«m8L c--- blanks insertion jb-0 ink»0 00 150 i-lini.lend if(l(i)-ibl) 90.95.90 90 ink-lnk+1 k(ink)»l(1) go to 150 95 jb-jb+1 if1jb-kend) lOO.lOOtflOb 100 mmm-numb+1 GO tp 106 105 mmm-numb+2 106 do 110 j-l.mmm ink"ink»1 110 k(inki»ibl 150 continue 160 llnl"lendf2 kend-o return end SUBROUTINE CODE (L tNL ilCODiNKOOi ID) ---DETECTION OF THE TEXT ............... WITHIN THE NON-EMPTY CHARACTER-VECTOR L — NL " INDEX OF THE LAST NON-BLANK COMPONENT OF VECTOR L --- KOD " OUTPUT VECTOR CONTAINING THE CLASSIFICATION CODE A...,,.H --- NKOD ■ INDEX OF THE LAST NON-BLANK COMPONENT OF VECTOR KOD -— ID " 1 IF ICODE-A......H) IS THE ONLY CONTENT OF VECTOR L ---ID • 2 IF .............HI IS PLACED AFTER SOME TEXT AT THE END OF VECTOR L --- ID » 3 IF THE TEXT DOES NOT CONTAIN THE CODE DIMENSION L(n*K0D(8ltITI6) DATA IT.IPAR/' ('t'C't'0>»'D't'E'»'«'.'»'/ C --- SEARCHING THE BEGINNING OF VECTOR L DO 10 1=1.6 IF(L(I)-IT(I I ) 32»10»32 10 CONTINUE NKOD-O 00 20 1-7.14 IF(L(II-IPAR) 15.25.15 15 NKOD-NKOD+1 20 KOD(NKOD)-L(n 25 ID-1 RETURN C --- SEARCHING THE END OF VECTOR L 32 IF(L(NL)-1PAR) 46.35.45 35 IP-NL-1 DO 40 1*1.S lP-IP-1 IF(L(IPI-IT(6)) 40.50.40 40 CONTINUE 45 ID-3 RETURN 50 IP»IP-5 DO 55 1-1.5 IF(L(IP)-ITlo79) 25 F0RMAT(5X.79A1) IF(Llt80) - IBL) 30.15(30 30 WRITE(K0UT.35I 35 FORMATI//) C --- RECORD PROCESSING CYCLE DO 180 NREC"1.MXREC C — READING OF THE FIRST HALF-RECORD 40 CALL INPUTlLl.NLl.LOIM) IF(NLl) 200.45.55 45 WRITE1KOUT.50) 50 FORMATi' «•« EMPTY RECORD'///) PAUSE GO TO 40 55 CALL REDUC(Ll.NLl) C — READING OF THE SECOND HALF-RECORD CALL INPUTtL2.NL2.LDIM) IF(NL2I 85.85.60 60 CALL REDUCIL2.NL2) CALL COOEIL2.NL2.KOD.NKOO.IDENT) GO T0(65.75.85).IDENT C --- ADDITION OF THE CODE AT THE END C OF VECTOR Ll 65 NL1«NL1+1 LllNLD'IBL DO 70 I-1.NL2 NL1"NL1*1 70 Ll(NLll»L2(I) NL2-0 C --- INITIALIZATION OF THE CODE MATRIX 75 DO no I-l.NKOD 80 MAKOD(NREC.I)-KOD(I) . C --- PRINTING OF THE FIRST HALF-RECORD 85 IFiLINEl) 90.110.90 90 WRiTEIKOUT.lOOl, 100 FORMATllX) 110 LBEGI-1 INDIC»0 111 CALL R0W{L1.NL1.NCHAR.LBEGI«IR0W.LASTI IFdNOIC) 135.120.135 120 IN0IC"1 IF(NUMB) 125.135.125 125 WRITEIKOUT.ISO) NREC.(I ROW I I).I>1»NCHAR) 130 FORMATI15.'. ' .103A1) GO TO 145 135 WRITEtKOUT.140) (IROW1 I).I"1.NCHAR) 140 FORMAT(7X.103A1) 145 IF(LASTI 150.111.150 C --- PRINTING OF THE SECOND HALF-RECORD 150 IF(NL2» 200.180.155 155 IF(LINE2I 160.170.160 160 WRITE(KOUT.IOO) 170 LBECI'l 171 CALL ROWtL2.NL2.NCHAR.LBEGI.IROW.LAST) WRITE(KOUT.140 I(I ROW(I).1-1eNCHAR) 1F(LASTI 180.171.180 180 CONTINUE . _ C"--- CLASSIFICATION 200 NREC-NREC-1 WRITE(K0UT.202I 202 FORMAT«IHI.'CLASSIFICATION OF .'BIBLIOGRAPHIC ENTRlES'/40(•B•)/) IF IIĆLASI 203.208.203 203 WRITEIK0UT.204) 204 FORMATI//' LIST OF RECORD '» .'CLASSIFICATION CODES'/) WRIT£(KOUT»205I . I I.IMAKODII.J)« Jal«8l. I>1«NREC) , 205 FORMATISI 15.IX.8A1)) 208 WRITE(KOUTilOO) C --- READING THE CLASSIFICATION CODE PEADIKIN.20) »tODt 11R0W( 1 ) il»li72» IR0W(70I-IEND(1I) 230.210.230 210 IF(IROW(71)-IENDt2l) 230.220,230 220 IF(IROW(72l-IEND(3J) 230.222.230 222 CALL exit 230 LAST-72 235 IF(IR0W(LASTI-IBLI 244.240.244 240 LAST-LAST-1 IF(LASTI 290,250.235 244 WRITE!1<0UT»246» ( IROW ( 11 » I • 1 .L AST I 246 FORMATC CLASS • •.72AI) 250 NKOO-8 255 IF(KODINKOO)-IBL) 265.260.265 260 NKOD-NKOO-1 IF(NKOD) 208,208,255 265 WRlTEtKOUT,268) KOO 268 FORMATC CODE - ',8A1J C --- SEARCHING THE RECORDS BELONGING TO C THE GIVEN CLASS NH-0 L1(1I«0 DO 300 I-l.NREC LAST-8 270 IF(MAK0D(I.LAST)-IBL) 280.275.280 275 LAST-LAST-1 IF(LAST) 300,300.270 280 DO 290 UOO»1,NKOD DO 285 J-l.LAST IFtK0D(IKODl-MAKODII,J)) 28 5,290,28 5 285 CONTINUE GO TO 300 290 CONTINUE NLl-NLl+1 Ll(NLl»»l 300 CONTINUE WRITEIKOUT.310)1ent must be omitted. if the rfcord classification code is the only content of the second half-record. it will be automatically added to the first half-record. if the second half-record is empty. the blank card having a non-blank character in the 80-th column must be inserted after the first half-record. the second half-record is printed beginning at a new row. all records will be edited and printed immediately after reading', forming a column of the requested width. the fnd of a seouence of bibliographic records must be denoted by the card having characters 'end' punched in columns 78-80. (4) data for classified bibliographies consist of a number of data cards ended by the card having characters 'end' punched in columns 78-80. each data card may have an arbitrapy input classification code punched in columns 1-8, left justified. columns 9-80 may be used for the title of the class associated with the input classification code. after the reading of a data card, referent numbers of all records whose record classification cooes contain the given input classification code will be printed on a line printer. references 1. bassler, r.a., demoody, h.c., 'computer system evaluation and selection - an annotated bibliography and keyword index.' college readings inc., arlington, virginia, u.s.a., 1971. 2.' miller. e.fo jr., 'bibliography on techniques of computer performance analysis,' computer, september - october 1972. pp. 39-47. 3. kraus. l.l.. 'private information system for literature cataloging." part ii in the author's unpublished b.s. thesis. university of belgrade. department of electrical engineering, 1973. un serbo - croatian) 4. dujmović, j.j., «the preference scoring method for decision making - survey, classification ano annotated bibliography'. ' informatica (yugoslav journal), no. 2, 1977. Informatica «t. 2 letnik 1977 upis kontinuiranih signala u mikroračunalo V. zgaga UnK (ÌHI .3-181.4:615.84 Elektroteliničiti f.ikultet, 41000 Zarjreb Z« potrsbe obmđe bloalaktrlGnih slgn&la (£KO,EEO} u roalnoa irreiaenu Bnpravljen je uradjaj AS (bnalogitl sub-»l«t«a), predTldo» aa r«d sa prooeooroi» 8080. Paranatrl analogiio-digitalne prstTorbe (period uzorlto»aiija, mjerni opaeg) eadaju Be progranon. Poatoje 1 ló-kanalnl ulazni aultlpleksor 1 T>/k pretvarafi, talcoder kontrolirani progranom. Oein pod kontrolom radunala uredjaj nože raditi i autononno i kao digitalni voltmetar, generator zadane frekvencije, te programirani lE»fcr referentnog »apona - tada ae podaol unose ruSno, preko daclaalna tastature. THE INPUT OF XNAlßO SIGNALS INTO MICROCOMPUTER! Hardware realization of the prograoiraablo a/D oonverter, designed as a part of the 8080 mioroooraputor sistem, is described. The aim of this unit la to make possible real-time EEO and EKO analysis. Conrerslon parameters, suoh as oonTerslon period. Input voltage range and number of Input ohannals (up to 16), oo/ be modified by a program. In addition, the unit oould ba used autonomically as a digital voltmeter. In this case, it is programmed through its onn keyboard. 1. UVOD Ovdje opisani uređaj, AS (Analogni Subsistem), nastao je u teinjl ta reaUaaoijom sistema za obradu EKO 1 EEO signala u realnora vremenu. Obrada u realnom vremenu moZe zabtjevatl 1 promjenu parametara a/D pretvorbe (period uzorkovanja, pojafianje signala prije pretvorbe, broj kanala koji se uäitavaju) sa vrijeme rađa. Sto znaöi da se navedeni parametri trebaju mo^i kontrolirati programom. as zadovoljava taj uvjet, U nedostatku rafiunala uredjaj mote raditi 1 samostalno - tada se programiranje rada vrSl malom tastaturom na prednjoj ploOl, Za obradu signala je predviđeno mlkrorafiunalo sa prooesorcm 8080, pa je a3 predviden M direktno spajanje na sablmloe tog sistema, U slljedsösn poglavlju opisani'su glavni sklopovi uredjaja, a na kraju je dan 1 pojednostavljeni primjer programa koji prvo zadajo period uzorkovonja, a zatim u prekidnom modu (interrupt) udi tava resultate a/d pretvorbe. 2. opis lireiaja Blok shema uređaja prikazana ja na sl.l. Kontrolni sklop povezuje AS sa nlkroraCunarsklo sistemom. Raredbe 1 podaci koji stieu iz mikroračunala primaju a«, po potrebi dekodlraju 1 prepaklraju, te Šalju u AS Internim kontrolnim sablrnioama. Preko tih sa-birnloa zadaje se period uzorkovanja, definira se rad analognog multipleksora, pojaCanje pretpojaöala, mod rada A/C pretvarafia, te kod C/A pretvorbe mod rada i binarna ili NBCD vrijednost napona za D/k pretvaraš. Izlaz iz kontrolnog sklopa na interne kontrolne oabirnloe može ss doveatl u "tređo stanje", tj. odspojlti od sabirnica. Kontrolu tada preuzima tastatura aa prednje plo&e uredjaja. Na taj naSln mo2« se rufino upravljati avlm funkcijama uredjaja. Analogni multipleksor (l6il) spaja, prema Instrukcijama koje doblja, jedan od 16 ulaznih kanala na pretpojafialo za a/D pretvorbu, ìloì.9 biti izabran bilo koji od ulaza, ill se sekvenoljalno mogu oCltavati ulazi od prvog do izabranog. Pretpojafialo mo£e biti spojeno na izlaz iz multipleksora 111 na zasebni ulaa (kad AS radi kao digitalni voltmetar), a pojafianje se moSe zadati u opeegu 10^ (za van jeki ulaz do ^mV). Postoji mogućnost automatskog namještanja nule, te mjerenja vrSne 1 srednje vrljednoetl za iznje-nlSni signal (kad radi kao SVU). Izlaz pretpojafiala vodi ae na ulaz a/S pretvarafia, Upotrebljen je modularni pretvarafi ( ^o^a, 10 bita). Izlaz iz pretvarafia (lO bita, paralelno) vodi se preko internih A/D sabirnica u kontrolni sklop, koji pođatks proalijsđuje u mlkrorafiunalo. Serijski Izlaz l'z pretvarafia vodi ae u blnarno/NBCD pretvornik. 48 ___podaci 8080 • •birnica__kontrola. , ..... IT" ini ručno programiranja kontrola tastatura A r mux ■ 16 . ____ pratpoi. 11 a/d bin/bcd n; .j A 31.1. Blok shema uredjaja na: d/. iT ill C' i-' Itoji binarnu vrijednoot mjerenog napona pretvara u tri BCD znamenke. Tako je u avakom trenutku dostupan rezultat pretvorbe (na prednjoj ploöl su 7-aegmentnl indikatori). Period konverzije odredjuje oe programabilnim NBCD brojilom. Brojilo sadrSi tri znamenke ( od 000 do 999 )i a jedna znamenka definira eksponent (O do 6). Sve 4 znamenke prikazuju ee indikatorima na prednjoj ploöi ( 001-(lo)°;ua do 9J9-(lo)^ ^e ). Ako ae sek-venoljalno oöltava vlfie kanala, onda se brojilom zadaje period iamedju dva oSltanja istog kanala. Uz naponom kontrolirani osoilator i petlju zatvorene fazo (PLL) moie se realizirati generator programom zadano frekvencije. Za potrebe simulacija analognih signala AS-u je dodan 1 1)/A pretvarač (modularni 12-bitni, 5 /'s)» Napon se može numerički zadati prograraomi 8 bita binarno, ili u NBCD kodu sa 4 anamenke. Zadani napon prikazuje se na 7-seg. indikatorima na prednjoj ploči. 2.1. KONTROLNI SKLOP I TASTATURA Na slloi 2.1. Je prikazcui kontrolni sklop. Razmjena podataka sa mikroračunalom vrBi sé pomoću Intelovlh integriranih krugova 8212 (8-bltni ulazno izlazni sklop). Svaki 8212 adresira se zasebno. Ulaz prvoga i izlaz drugoga spajaju se na sabirnice podataka procesora, tj. na mikroračunalo. Prvog 8212 procesor aktivira ulazno/izlaznom naredbom l/O WRITE (w), us odgovarajuću adresu. prakid I 11 ___ 6212/ ff 8212/2 kontrolna o. a/žl a. SI, 2,1. Kontrolni sklop Tom naredbom se sadriaj akumulatora (u procesoru) pojavljuje na sabirnicama podataka. Impulsi dekodirane adrese i "W" upisuju taj podatak u 8212/j , gdje on ostaje saSuvan do slijedeće izlazne naredbe na istoj adresi. Izlaz iz 8212/^ spojen je direktno na interne kontrolne sabirnice. Taj izlaz se prskidaSem sa prednje ploSe mo2e "odspojiti" od sabirnica. Time se ujedno na sabirnice spaja dekoder tastature. Tastatura je decimalna, a izlaz iz dekodera u BCD kodu. 8212/^ procesor aktivira ulazno/izlaznom naredbom I/o HEAD (R), opet uz odgovarajuću adresu. Tom naredbom ue izlaz 8212/2 priklJuSuje na sabirnice podataka procesora, a procesor taj podatak sprema u akumulator. Ulaz u 8212/2 BU A/p sabirnice, koje sadrže rezultat posljednje A/D pretvorbe. Od tri osnovna načina razmjene podataka sa računalom (ispitivanjem statusa A/D pretvarača, prekidne, te direktni pristup memoriji{DMA)), izabran Je prekidni (interrupt) naSln riđa. Po zavrSetku pojedine l/D prntvorbe postavlja se blstaiiH "zahtjev za prekid" (unutar 8212/,^). Procesor zavrfiava tekuću instrukciju, ta prelazi u prekidni potprogram (npr. uči tavanje rezultata A/D pretvorbe iz 8212/^ instrukcijom IN (e), te spremanje tog podatka u neku memorijsku lokaciju). 2.2. OENERATOB TAKTA 2A UZORKOVANJB Blok ehema generatora takta d&na Je na si.2.2. Četiri 4-bltna registra (4035) primaju preko kontrolnih sa-bimioa 4 BCD znamenke koje definiraju period osolla-olja. Sadržaj sva 4 registra ae preko BCD/7-seg, dekodera prikazuje na četiri 7-seg. LED indikatora. Prva tri registra upravljaju programabilnioi 4-bitnim BCD brojilima (4029), a četvrti, koji sadrži eksponent, upravlja multipleksorom Bil. Sa ulaze multlple-ksora vodi se osnovni takt od Iyus podijeljen sa lo (N>0,1,..6), Impulsi na izlazu multipleksora traju 1 ^s, 10 yjs, .. 1 sekundu - ovisno o sadržaju zadnjeg registra. Ti impulsi ue u brojilima dijele sa sadržajem prva 3 registra (il do 1999). Tako se na izlazu zadnjeg brojila dobiju Impulsi od 1 ^s do 999 sekundi. 3.1. SAMOSTAUfl RAD 4035 4035 <= 4035 c" 4035 --- kontrolne sab. 4029 —-- 4029 --- 4029 ------- mux 8:1 hio| -1 na a/d SI. 2.2. Generator takta Ako uređaj nije prikljuSen na mikroraSunalo, Internim kontrolnim Babirnloana upravlja vlastita tastatura. Tastaturom treba samo definirati vrijeme konverzije, pa se uređaj mo2e koristiti kao automatski digitalni voltmetar. Može se Izabriti la mjerenje bilo koji od 16 priključenih napona. Istovremeno se mogu koristiti i programabilni izvor referentnog napona i programa-bilnl oscilator, Sto uređaj Cini vrlo pogodnim zn razna mjerenja 1 ispitivanja. ì.2. rad n mikhoraCunarskom sistemu 2.3. A/D PRJSTVARAC Za kontrolu pojačanja pretpojaCala koristi^ se binarno "up-dovm" brojilo 1 BCD/deoimalno dekoder. Početni mjerni opseg zada ae preko kontrolnih subirnioa tako da se brojilo postavi na željenu vrijednost. Ako tokom rada A/D pretvarač poprimi maksimalnu vrijednost, brojilo će se dekrementirati (time ae pojačanje smanjuje 10 puta) .Obrnuto, ako je izlaz manji od lOJž maksimalnog, brojilo čo oo inkremontirati. Ova auto-matika se naredbom mo2e isključiti. Za pretpojačalo je upotrebljeno diferencijalno Inotrumentaciono pojačalo AD 521, a faktor pojačanja se bira uključivanjem odgovarajućih otpornika ovisno o sadržaju brojila i stanju dekodera, a pomoću CMOS sklopki. ulai 521 hontr<^nQ. sab. \ brojilo A prorTi], poj. Incr/decr a/d 4113 a/d -----f^sab. —-V bin/bcd SI. 2.3. a/d pretvarač Za a/d pretvarač iskorišten jo modul Teledyne PUilbriok-a 1113 (ulazni raspon lO bita, vrijeme jedne konverzije 30 }3b) , Izlaz iz pretvarača je preko "three state" logike spojen n« interne A/D sabirnice. 2.4. ANALOOHI MULTIPLEKSOR Kako bi ae direktno mogli upisivati izlazi iz l6-kanalnog EEO-a, uredjaj sadrži i l6il analogni multipleksor, Programabilno brojilo može adreslratl bilo koji od 16 ulaza, 111 redom od prvog do W-tog. Modovl rada prikazani su na sllol 2.4. < Kod rada u ^H sistemu sve funkcije ured jaja mogu se definirati programom. Npr. kod zadavanja vremena između dvije konverzije (period uzorkovanja) potrebno je na izlaznu adresu za 8212/^^ poslati prvo internu adrssu programabilnog osollatora ( ), zatim četiri BCD znaka. To se postiže slijedećim programskim isječkom (assembler za 8080): M VI A, 80 OUT 01 MVI A,02 • OUT 01 MVI out avi OUT KVI OUT A,05 Ol A,00 Ol A,03 Ol 3 3 3 3 1 2 3 1 J 3 Naredba MVI a,XX upiuuje 8-bitni broj XX^^^ u akumulator, a naredba OUT NN taj isti broj ispisuje u izlaznu jedinicu čijsi je adresa NN. Ako je adresa od 8212/j baS 01, po izvrfienju ovog programskog odsječka programabilni oscilator óe oscilirati su periodom 25o-lo^^s. Upis rezultata konverzije obično se vrSi periodički (a/d pretvarač se aktivira oscilatorom - npr. svakih 25o ms, a po zavrfletku pojedine pretvorbe postavi se "zahtjev /.a prekid" procesoru). Kod obrade zahtjeva z za prekid koristi se posebna call instrukcija, RST ("restart"). Ta instrukcija je realizirana hardwareski, tako di procesor automatski prelazi na početak prekidnog potprograraa. Primjer za upis rezultata a/d pretvorbe (nakon Sto Je definiran period uzorkovanja) izgledao bi ovako i IN 03 MOV M,A XNX H,L I - — RET IN 03 upisuje rezultat konverzije iz 8212/^ u akumulator, a sa MOV M,A ne taj podatak eprema u memoriju (adresa je u registrima h,l). INX h,l inkro- mentira taj par registara. Slijedi EI (enable Int.) kako bi se ponovo dozvolio prekid, te RET (return), povratak u glavni prof;raai. 12 3 12 3 1 Inforniai-ica št. 2 letnik 1977 komunikacija med sekvencnimi procesi-pregled del II. m. exe I UDK 681.3.01 Institut ".lo/.of Stefan", LJiil)! Jana Članek obravnava probleme, ki jih zastavlja orcanižaci.ja niedprocesnih komunikacij. Podane so definicije osnovnih pojmov nakar sledi opis (s primeri) obstoječih jezikovnih konstrulctov za medprocosno komunikacijo: semaforjev,(pocojno) kritičnih delov, monitorjev in procesnih poti. C0MI1UHICATI0NS AHONG SEQUENTIAL PROCESSES - A SURVEY (PART II.). The problems arisinc from the oreanisation of intei-proceas communication are briefly sruveyed. The definitions of basic concepts are given. Descriptions (v;ith examples') of the following primitives and languace constructs for interprocess communication are presented: semaphores,(conditional ) critical regions, monitors and path expressions. V prvem delu (glej px'vo številko Informatico) smo si ogledali nekatere sploSne pojme ^zadevajoče medprocesno komunikacijo ih semaforje. V tem delu bomo opisali 5e druge jezikovne konstrukte za medprocesno komunikacijo. 'I-.2. (Pofi:ojno) kritični del procesa Prvo notacijo za kritične delo procesa je predlagal lloare (1). Za sočasnost izvajanja procesov Pl, ... Pn predlaga notacijo /P2 ...//Pni ; (P1//I odvisnost procesov od skupnega vira r pa opiše z: J resource r;Pl// ...//Pn J . Pri tem je hardverski ali pa logični vir r definiran oz. deklariran izven konatruk-ta J ... i oz. implicitno (npr. rezervirano ime za čitalnik, luknjalnik ipd.). V pi-ocesih Pl, ... Pn se kritični deli, ki iiadevajo vir r opisujejo s konstruktom with r ^ kritični -del; Konstrukt za pogojno kritični del je: with r when pogoj kritični - del; Pri tej obliki moramo paziti na iraplemai-tacljo (primerjaj s ^i-.l.). Če pogoj ni izpolnjena» proces postavi v vrsto vezano na vir r; če je pogoj izpolnjen se iavr ŠLkritiSnl del in ob koncu tega dela se pogoj na novo preverja za vsak proces v vrsti vezani na vir r. Kadar kritični del procesi Pi znrtcvr, le kPko komponento virn r,bomo znplanil: with komponenta-vira-r.. Icrit.-del; Uporabo zgornjih konstruktev bomo ilustrirali s Iloare-jevo rešitvijo za problem petih filozofov (glej 4.1,5. o sliko). Ce je Pi proces,ki opluuje dejavnost filo^ zofa Ijbo sistem petin procesov zapisan takole: ^resource r; P0//Pl//P2//^3//P'^ J ; vir r bo definiran takole (Pascal): r: record vilice-na-razpolago: array O..'t of O..2; vilica-A, vilica-B,viIića-C, vlTToa-D, vilica-E: tip-vilica end; Prva tabela v viru r daje Informacijo o stanju procesov: vllice-na-razpolago (i) " število vilic, ki so na razpolago filozofu i; začetna vi-ednost bo za vsb filozofe 2. Elementi vrillca-A do vllic&-E pa označujejo vilice kot posamezne dolno kritične vire, ki sestavljajo vir r. lieSitev za filozofski proces P3, na primer, bo sledeča: PJ: cycle misliti; with r. vilice-na-razpolago when r. vllice-na-razpolago(3)"2do Fčgin r. villce-na-razpolago''-'' r. vllice-na-razpolago r. vllice-na-razpolago r. vllice-na-razpolago end; with r. vltica-D do with r. viHca-T"do jeafil; with r. vl3ico-na-rnzpolago do Fegln r. vi] ice-na-r^azpolago r. vllice-na-razpolago r. vllice-na-razpolago r. vllice-na-razpolago end end cycle. Drugo notacijo za kritiSne delo procesov Je predlagal Brinch Hansen (14). Viri se pri njemu deklarirajo kot deljena informacija: var v: shared tip. KritiSni deli imajo naslednje oblike: reKion v do S; region v ^en B do Sj in reKion v do S avzält B; V svojem članku (14) Brinch Hansen tudi natančnej-e nakazuje (po Hoare-ju v 1) princip dokazovanja pravilnosti rešitve " danega problema sinhronizacije procesov. Dokazovanje bazira na takozvanih invari-jantih ali nespremenljivih trditvah. In-varijanti so trditve, ki izražajo kriterije pravilnosti dane rešitve. Brinch Hansen omenja štiri kriterije izražajoče:. - pravilnost reaktiviranja (skedjuliranja) čakajočih procesov, -, spoštovanje zahtevanih sočasnih izkljur čitev procesov, - odsotnost mrtve točke ("deadlock-a) in - spoštovanje zahtevanih relativnih prioritet procesov. Ob primerjavi semaforjev s predlaganimi konstrukti za (pogojne) kritične dele zaključuje naslednje: - s programskega stališča je uporaba đecJi^jih preglednejša in jasnejaa, - s stališča dokazovanja s pomočjo inva-rijantov je stvar s slednjimi enostavnejša, - pri uporabi kritičnih delov se programerju ni treba ukvarjati eksplicitno z "obujanjem" čakajočih procesov, -•s stališča implementacije je pri kons-truktih za kritične dele možna določena . neučinkovitost zaradi potrebe ponovnega preračunavanja pogojev (glej zgoraj opombo o implementaciji konstrukta with). Kar se tiče zadnjega zaključka je nedavno Schmid (15) pokazal, da se lahko statično določi invarijantne relacije med (pogojno) kritičnimi deli procesov glede na dani vir v. Te relacije so neodvisne od poteka sistema procesov in so dveh vrst : - usposabljajoče: izvedba (pogojnega) kritičnega dela ki .lahko izpolni pogoj za izvedbo pogojnega kritičnega dela k2, - neusposabljajoče : analogno definirane. Določitev teh relacij se nato uporabi za učinkovitejšo implementacijo pogojnih kritičnih delov procesov. Stvar si bomo pobliže ogledali: Schmid (15) definira skupne vire takole: var v shared record v,...v : en^ri--^ kjer so V. spremenljivke stanj sistema procesov Cglej 4.1.5.); ■ pogojno kritični del pa ima naslednjo splošno obliko: region v ^ begin await pogoj^^; opj^; end; await pogoj J op_ Opisana implementacija zgornjih pogojnih kritičnih delov daje tudi možnost eksplicitnega skedjuliranja čakajočih procesov. Pri tem se uporabljajo spremenljivke tipa vrste: . var r: vrsta in nekatere standardne procedure nad vrstami: enter(r): postavi proces v -vrsto r, unblook-one(r), jnblock-all(r): reaktiviraj enega ali vse procese čakajoče v vrsti r. Oglejmo si sedaj primer čiteloev in piscev, ki si delijo skupen vir: čitalci lahko dosegajo vir sočasno, pisci pa seveda samo sekvenčno; pri tem imajo pisci prioriteto (ta primer je bil opisan.že v 14). Stanje sistema procesov je opisano v naslednji skupni informaci.ii; var v: shared record ap,rp,rč: integer end, kjer je ap število piscev, ki želijo doseči vir, rp in rč pa število piscev oz. čitalcev, ki razpolagajo z virom. Rešitev za čitalce je sledeča: region v ^ fbegin await ap 4 O; rč:=rč•^l čl i end; čitaj; region v do 52 :1 : =rč-l end; • * • rešitev za pisce pa je; ... region v do pl: bep;in ^ ap:°ap-fl; p2: end; await rč 4 O and rp i O; rp : =rp-»-l pisi; region v do. p5: ^ begin rp:=rp-l;ap:»ap-l ena; Statično lahko ugotovimo naslednje usposabljajoče relacije: (č2,p2), (p5,čl), (p5,p2) in naslednjo neusposabljajočo relacijo: (p2,p2). Na primer (Č2,p2) pomeni, da z zmanjšanjem rč za 1 v č2 lahko izpolnimo pogoj rč ^ O kritičnega dola p2 in da torej lahko omogočimo izvedbo p2. V implementaciji bomo potrebovali dve vrsti za čakanje: var včit, vpis:vrsta; Implementacija s skedjuliranjem bo za čitalca naslednja: region v do rlieKln if not ap 0 začir;^en enter(veit); kjer so pi, torda in vl. pn deljene procedure moni-vm skupne informacije mo- 1, rč:=r5+l cTFaj; region v in rö:=r5-l{ com skedjuliraj ; koč.it : ir"rg 4 0 and rp 0 Wen unblock-one ( vpis ) fUSl t V-end; • • • za pisca pa sledeSa: • • • region v do rbsKin ap:=ap+lj if not (rg^O and rp4 0) zaSpis: ■ Wen enter (vpis7~ rp:=rp+l • end; pisii region v do 'beKin rp:=rp-lj ap:=ap-lj com skedjuliraj; kopis: iF'ap^O Wen untilock-all (včit) else if rč^O and rpio Wen unblock-one(vpié) end; • • • Uporaba relacije (Č2,p2), na primer, se odraža v implementaciji čitalca (glej del kočit) z retestiranjem pogoja kritiS-nega^dela p2 ob koncu kritičnega dd. a Č2. Ce relacij ne bi statično ugotovili, bi bili prisiljeni testirati oba pogoja kritičnih delov čl, p2.ob koncu vsakega od kritičnih delov cl,č2,pl,p2 in p5. ^•3. Monitorji in hierarhija monitorjev Intuitivno smo se s pojmom tajnika (Dij-kstra: "secretary") oz. monitorja (glej 5 in 4) seznanili že v 4.1.3, Ugotovili smo, da nek skupek procesov medsebojno komunicira v (pogojnih) kritičnih delih in pri tem uporablja določene skupne informacije (spremenljivke stanj). Pojem monitorja bomo konkretizirali z uvedbo programskega konstrukta monitor.ki bo vseboval lokalne spremenljivke predstav-1jajoče vse informacije, ki so skupne danemu skupku procesov in pa procedure pred stavljajoče vse kritične dele tega skupka procesov. V samih procesih bodo kritični deli nadomeščeni s klici odgovarjajočih monitorskih procedur. Programski konstrukt monitor bo imel naslednjo obliko (glej 471— — monitor var vliti;... vk:tk; com skupne informacije procesov com; shared procedure pl(...')j. begin ... end; • • • òhared procedure pm(...); begin ... enTì deklaracija lok.proc.; inicijalizacija spremenljivk vl,...vk} end. Vsak od procesov, ki medsebojno komunicirajo preko zgornjBga monitorja pa bo imel naslednjo obliko: process environment pi. ... pn, vi, ... vm; • • • ••• pi(.»«»)i ••• Pj(«»»)j com klici monitorskih proč. com; end; nltorja, ki jih dani proces uporablja. Stvar bomo ilustrirali s primerom fiital-cev in piscev iz 4.2. Monitor bo izgledal takole : ■onltor var ap, rp, rži int«gor{ as vòlt, vpis:vrsta; iiared procedure zažitteom gl«j 4-, 2. com; šEared procedure kočiticom glej 4.2. com; sEäred procedure aagpÌB;com glej 4.2. com; aEäred procedur» kopis;com glej 4.2. £2£» , ^ procedur« unblock-one(vrsta;{..i procedure «nterCvrsta);...( com ta s^edjuliranj« com; procedure unblock-allQvrsta);..; |g|=rp:-r5!=0; 8italni proces bo zapisan: process environment začit,ko0it, ..ap.rp,r6T zaČit;com monitorski klici som; 6itaj- koCit; • * • end; pisalni proces pa: process environment začpis, kopis, ap, rp, rč; ... začpis; piši; kopis; ... end; Pri tem mora biti implementacija tako urejena, da: - je v določenem trenutku možna izvedba le ene od shared procedures monitorja (pri tem lahko uporabimo binarne semaforje); ^ ^ - ob izvedbi klica énter(vrsta) v proce-■duri začit ali začpis, ki jo kliče proces p, se proces p postavi v "vrsto", nakar so monitorske procedure na razpolago ostalim procesom; - ob izvedbi klica unblock-one(vrsta) ali unblock-all(vrsta) v proceduri kočit ali kopis, ki jo kliče proces p, se proces p vrne iz monitorske procedure In nadaljuje z izvedbo;obenem pa procesi, ki so na ta način "prebujeni" nadaljujejo z iz-., vedbo instrukcije, ki sledi inštrukciji (v tem primeru "enter"), s katero so bili "uspavani". Naslednji primer je par procesov proizva-jalec-uporabnik (glej 4.1.2.), ki si pošiljata "sporočila" preko buferja. ki lahko vsebuje samo eno sporočilo (primer je iz 4): proizvajalec : process environment pošljil, sporočilo; var s: sporočilo; begin .. proizvedi s ; pošlji (s) end; uporabnik : procest environment sprejmi,sporočilo; var r: sporočilo; begin ... sprejmi (r); uporabi r... end; monitor: monitor type sporočilo - array (l..a) a£ integer, var bufer: sporočilo; poln:booloanj proizv, upor:vrsta; shared procediiro po51>Ji Cm: sporočilo) ; beF:ln If po3n' then- onter proizv; T^fer:.<=in; poilin; »true; unblock-one upor; and; shared procedure apro\jmli (m: sporoSilo) ; boRln If not "poln then- enter upor; m::=Eürer; polnv-failise ; unblock-one proi'zw;, end; inicijaiiizacijajpoln: ofalae: end monitor; Programski konstrukt monitor nnmitorej dovoljuje-,, da. v visokem procramskem: Jeziku pregledno opinemo konunikaclijfl! medi procesi in skedjuliranje procesov. Brinch ilansen C^) Je pokazal!,, d'a Je uporaba monitorskega konstrukt» primerna, zat opis in zcradbo operacijskih' sistemov s-stalifičai - dokazljivosti pravilnega sodelovanja-procesov sistema; - dokazljivosti določenih lastnosti sistema (npr, odsotnost mrtvih točk)| - učinkovitosti uporabe virov In - možnosti postopnega izgrajevanja sistema. Z uporabo konstruktov za pojem procesa in monitorja lahko strukturo danega operacijskega sistema opišemo kot hierarhijo procesov in monitorjev. Tako bi del nekega operacijskega sistema lahko prikazali z naslednjo strukturo monitorjev, procesov in virov; naj TP označuje teleprinter, Č čit§lnik kartic, TK tiskalnik ("printer"), CP, UP, TKP in TPP čitalnifiki, uporabniški, tis-kaLniSki in teleprinterski proces, Ml do M't pa mon-ltorje: V zgornjem acikličnera grafu krogi predatavi Ja Jo procese in monitorje, puhčioe pn roo;''ne dosege. Monitor M}, npr., \ireja delovanje para procesov CP, UP tipa proizvajalec-uporab-nik, monitor M'^ pa ureja delovanje dveh "proizvajalcev" sporočil CP, TKP in "uporabnika" sporočil TPP oziroma enega "proizvajalca" sporpčil TPP in dveh "uporabnikov" sporočil CP in TKP. 5. PliOGESIlB POTI Campbell in Ilabermann (10) predlagata mehanizem za opisovanje sinhronizacije in komunikacije med procesi, ki so precej razlikuje od pristopa opisanega v poglavju A. V tem poglavju bomo nn kratko opisali ta raehaniznm. Proces Je pojmovan kot sekvenčno zaporedje osnovnih dejanj, pri čemer Je osnovno dejanje izvedba neke procedure. Opis sinhronizacije procesov Je podan s procesnimi potmi. Neka procesna pot Je izraz, ki predstavlja množico dovoljenih zaporedij osnovnih dejanj. Sinhronizacija Je torej podana na nivoju izvedbe procedure. Glede implementacije tega opisa sinhronizacije se predlaga po en kontrolor za vsako procesno pot: kadar proces želi Izvesti neko proceduro r, vsebovano v procesni poti p, potem o izvedbi procedure r odloča kontrolor vezan na procesno pot p. Zaradi enostavnosti kontrolorja se zahteva-, da se dana procedura pojavi samo enkrat v samo eni procesni poti. Za opis procesnih poti so uvedene naslednje oznake (kjer so p,q,r,., imena procedur) : - sekvenčna izvedba: PiHr pomeni, da morajo biti procedure izvedene v tem vrstnem redu, ena za drugo. Pri tem ni va/.na identiteta procesov oz. procesa, ki izvaja(jo) posamezne procedure; - selektivna izvedba: p.q.r pomeni, da se lahko izvede ena od naSte-tih procedur; dokler so izvaja npr. q, ne moremo začeti izvajanja procedure p ali r; - ponavljanje: path P end i P;P;Pv.., kjer Je P procesna pot; - sočasna izvedba: , kjor Jo P procesna pot pomeni, da se lahko poti P sočasno izvajajo B strani različnih procesov. Dokler Je vsaj ena izvedba poti P v teku, lahko neki nov proces začne z novo izvedbo poti P. Izvedba poti iPj Je končana v trenutku, ko so končane vse izvedbe poti P. Razne načine izvedb lahko kombiniramo z uporabo oklepajev npr.: path p,(qi \r) ; s) end. Konstrukti procesnih poti bo kombinirani z naslednjim pojmom oz. konstruktom tipa i definicija tipa opisuje - strukturo podatka danega tipa in - operacije nad podatki danega tipa. Podatke tipa t lahko manipuliramo snrao s pomočjo operacij definiranih v definiciji tipa t. Uporabo procesnih poti kot sinhronizacij-skega konstrukta bomo opisali e primerom piscev in čltalcev, ki komunicirajo s pomočjo kror-nega buferj«. Element ii(i) krožnega buferja R bo opisan z naslednjim tipom: tjija bufelj se vsebina; com »atn« komponenta neke spremenljivke tipa bufel Je spremenljivka vsebina com; path pl8i; Čitaj yndt operations procedure iitaj (returns messane m): m:» vsebina; procedure piSi (accepts message a): vsebina:« m; endtype; Procesna pot path piši; čitaj end pomeni, za dano spremenljivko tipa bufel. naslednje: - vsaki izvedbi "piši" sledi izvedba "čitaj", - vsaki izvedbi "čitaj" sledi izvedba "piši" in - izvedbi "piSi" in "čitaj" ne moreta biti sočasni. Krožni bufer bo opisan z naslednjim tipom: type kbuf; array O to N-1 bufel fi; com prvaTompononta spremenljivk tipa kbuf com; type kazalec; com lokalna definicija tipa com; inteRer PpO; path naalednji end; com, kar pomeni za dano spremenljivko tipa kazalec, da izvedb« "naslednji" ne morejo biti sočasne com; operations procedure naslednji (returns Inteser bep:ln P:=(P+l)mođ N; Ì:=P end; endtype; kuzaloc zaplsanje, začitanje; com druga in tretja komponenta spremenljivk tipakbuf com; operations procedure pošlji (accepts-messane m): bop:in Tntep:er J; J: = zaplsanje. naslednji; R(J).piBlCm) endi procedure sprejmi (returns messapie m): bepiln integer J ; J:<» začitanje. naslednji; m:= R(J).čitaj; ■ endtype ; S temi definicijami lahko uporablja neki krožni bufer KB: kbuf KB; kakrfinokoll število čitalnih procesov: process mensapie M; M: =ICD.sprejmi; uporabi M end ; in pisalnih procesov: proccss meaaap;e M; ustviaJri M ; KB.poSlji (M) end; in tO v principu na kakrSenkoli način, kajti procesne poti opisane v tipih bufel in kazalec skrbijo za pravilno sinhronizacijo. 6. ZAKLJUČEK Za zaključek lahko rečemo, da obseR recentne literature s področja orp;nnizaci-je medprocesne sinhronizacije in komunikacij kaže na zelo živahen razvoj raziskav, ki se bavijo s to problematiko. Ro-znolikost pristopov pa med drugim doka« zuje, da zadnja beseda na tem področju še dolgo ne bo izrečena. 7. BIBLIOGRAFIJA (1) Hoare C.A.R.: Towards a theory of parallel programming, in Operating systems techniques,Academic press 19?2 (2) Wegner P.: Programming languages, information structures, and machine organization, MCGraw-Hlll 1%8. (3) Dijkstra E.W.: Cooperating sequential processes, in Programming languages, ed. Genuya, Academic press 1968. Brlnch-Hansen P.: A programming methodology for OS design, IFIP 1974,2. (5) ••• : Monitors (special discussion), in OS techniques, Academic press, 1972. (6) Owlcki S., Gries D.: An axiomatic proof technique for parallel programs I, Acta informatica v.6, pp 319-'^0., 1976. (7) Peterson J.L., Bredt T.H.: A comparison of models of parallel coa^juta-tion. IPIP 197^, 3. (8) Kahn G.: The semantics of a simple language for parallel programming, IFIP 197^, 5. (9) Dijkstra E.W.: Hierarchical ordering of sequential processes, in OS techniques, Academic press, 1972. (10) Campbell R.H., Habermann A.N.: The specification of process synchronization by path expressions, in O.S., Lecture notes on computer science 16, 1974. (11) Lauor P.E., Campbell R.H.: Formal semantics of a class of high level primitives for coordinating concurrent processes. Acta Informatloa, V.5.PP. 297-552, 1975. (12) ... : Algol 68 report, Hermann, 1972. (13) Dijkstra E.W.: The structure of the THE multiproßramming system, CACM 11, pp. 341-5'+7, 1968. (14) Bclndi-Hansen P.: A comparison of twc synchronizing concepts. Acta informatica, v.l., pp. 190-199, 1972. (15) Schmid H.A.: On the efficient implementation of conditional critical regions and the construction of monitors. Acta informatica, v. 6, pp. 2.?7-250, 1976. (16) Hoare C.A.R.: An axiomatic basis for computer programming, CACM 12, pp. 576-580, 1969. (1?) Lautenbach K., Schmid H.A.,: Ose of Petri nets for proving correctness of concurrent process systems, IFIP 1974, 2. ss Informatica št. 2 letnik 1977 dinamični mos pomnilniki r. trobec j. korenini f. novak udk 621.377.622.25 Institut "Jožef Stefan", Ljubljana ■ V članku želimo seznaniti bralca z natančnejšim opisom izvedbe in delovanja dinamičnih MÜS pomnilnikov. Najprej Je opisane, tehnologiju, ki dopušča veliko gostoto podatkov, sleda opis osnovnih funkcij pomnilnikov (Čitanje, pieanje), končno pa so predstavljene sheme važnejših funkcionalnih blokov na nivoju tranzistorjev. Oi^isane oo pomnilne lokacije, ojačevalniki informacije (sense amplifier) in vhodno-izhodni vmesniki (buffer), ki so specificno zasnovani zaradi TTL kompatibilnosti in optimalnep;a razmerja poraba moči/hitrost. , Na koncu podajamo časovne"diagrame za tipične pomnilniške cikle (citanje, pisanje, nacin zapored-nepin vpisovanja (čitanja) v vrstice (page mode), osvežitev informacije (refresh i, s poudarkom na važnih časovnih parametrih. , ^ ^^ j DIMAMIC KG3 MEMORIEÜ The aim of this article is to infoim the reader with a detailed description of the architecture and the performance of dynamic memoi-ies. At first we desoriba the technology that permits so much information Eathered on a sine;le chip. The description includes basical memory functions (read, write) and some diagrams of important functional blocks on transistor level. Basic memory cell and its environment (sense amplifiers, decoder and I/O buffers necessary for TTL compatibility) is described as well as internal timing; and problems of power dissipation and access time. Finally timing diagrams for typical memory cycle (read, write, page mode, refresh! are given and attention is paied to important timing parameters. 1. Pregled osnovnih tehnologij, ki se uporabljajo pri izdelavi dinamičnih MOG pomnilnikov Pri izdelavi dinamičnih pomnilnikov se danes zaradi razvoja tehnologije večinoma uporabljajo tranzistorji z n-kanalom. Ti imajo zai-adi boljše gibljivosti elektronov večjo hitrost (2x) in manjšo površino kot tranzistorji s p--knnalom. Nova silikonska vrata (gate) vse bolj nadomeščajo metalno elektrodo. ponor vrata izvor ) Al r p-substrot ülika 1. MOS Xi'ET'^z metalnimi vrati in n-indu-ciranim kanalom. Če Je na vratih pozitiven potencial, se inducira pod njimi prevodni n-kanal, sl:ozi katerega teče tok, odvisen od napetosti med ponorom (drain) in izvorom (source). Za izdelavo so potrebne A maske. Ponor in izvor lahko izvedemo z difuzijo ali ionsko impiantacijo. Silikon blika 2. FET s silikonskimi vrati in induciranim p-kanalom. Bistvena prednost to izvedbe Je v nizki napetosti pra(;a, kar Je posledica velike dielek-tričnosti kombinacije plasti SiOg - üi^N^. Iz enačbe za prayovno napetost (V,p) : - + ug + 2(v, toks V,n - ^Fi) Je neposredno viden vpliv £oknida na v,p. Tipične vrednosti bo 1,5 - 2V. Taka napetost Jo potr(3bna za majhno porabo moči in za kompatibilnost n TTL logiko. Tranj'.istor na sliki 2. ima silikonska vrata.♦♦ 2. Princip delovanja dinamične pomnilne celice. V pomnilni colici nn r.li.ki J. Ro nhrflni naboj na lcnpoclt;ivno.'iti med vrntl in ponorom transi p tor J n Tj. MÜS'*' FET metal oksid polprevodnik (Motal Üxid Semiconductor) tranzistor, ki deluje zaradi polj/i y polprevodniku (Field Efect Trancistoi') **■ lolcg metalne in f.i.l ikonsko povezavo obstaja. So trotjn možnost - rtifundirana povezava. Vsa-);n ima .■ivojc; prcflnor^ti in pomanjkljivosti, ki odločajo Ü spoci fi.čnor.ti njihove uporabe. 56 Krmilna linija /pisanie/ Infortnacijslia linija /bit lin«/ Krmilno linija /titanje/ ki so dnneE že večinoma izvedeni z enotranzis-tornko pomnilno celico. Majhne signale Je potrebno ojačevati in obnavljati (refresh) vsaki 2 ms B posebnimi ojačevalniki informacije (sense amplifier), o katerih bomo še govorili. 3- Telinološke izvedbe enotranzistorske pomnilne celice -Prva zelo široko uporabljena izvedba je tehnologija z eno plastjo silikona (single-level polysilicon), ki potrebuje pet standardnih mask.'*' Slika 5. Ti'itranzistorska pomnilna lokacija. Pri taki zasnovi služita tranzistorja T, in T-le kot stikali pri čitanju oziroma pisanju informacije, ki se hrani na kapacitivnosti Kadarkoli želimo spremeniti naboj (informacijo), je potrebno aktivirati eno ali drugo stikalo (T- ali Tb ) glede na zahtevano operacijo (pisanje, čitanje). Hezultat se odčita . ali spremeni s stanjem na informacijski liniji (bit line) - (slika 4). ditonje..ir Slikà Principielni časovni diacram tri-tranzistorske celice. Ponuja se ekstremna poenostavitev pomnilne celice. Uporabljen je le en tranzistor (stikalo) in en kondenzator (spominski element). Informacijska linija T Krmilna Unija / word line/ Cm Uj I.L. pisanje „1" r' pisanje .0" iitanje „V litanje„0" Slika 5. Enotranzistorska pomnilna lokacija in pripadajoči časovni diacram čitanje in .pisanje je omogočeno s krmilno linijo Word line), ki odpira vrata tranzistorja, ütanje celice pa sledi stanju informacijske linije (bit line) - (slika 5). Ta celica ima Številne pomanjkljivoett: - čitanje povzroči izgubo informacije - hitrost je omejena - signali so zaradi majhnih dimenzij kondenzatorja zelo majhni; po drugi strani pa je celica: - enostavna - zahteva malo povezav (odpridn ena lini,ja) - zavzema malo prostora. Sodobni dinamični O- K"*" in le K bitni pomnilni- ^ metal Slika 6. Prerez pomnilne celico, izvedene z eno plastjo silikona. Električna shema Je predstavljena na sliki 5. Tranzistor e silikonskimi vrati služi kot stikalo, drugi del silikona (v isti plasti) pa je uporabljen za kondenzator, ki hrani nt-boj. Tipične velikosti pomnilnih celic, ki jih dobimo na ta način,r.o 800yUm2, kar dopuSča izvedbe 4 K in celo 16 K pomnilnikov. Pi-imeri BO pomnilniki: KGSTEK hK.4096, rji 4027, oba 4 K in TI 4070 firme Texas Insti'uments, ki je primer 16 K pomnilnika (tako velikost so dosegli z racionalnejšo razporeditvijo, manjšim kondenzatorjem in kontaktom). - Tehnoloi',ija, ki 16 K pomnilnikov. e resnično odprla pot do , „e izvedba z dvojno plastjo silikona (double-level polysilicon). Osvojili so jo že vsi vodilni proizvajalci pomnilnikov. Postopek omogoča mnnjee pomnilne coline, ker je kondenzator, ki hrani informacijo o stanju pod priključkom zn preklopni tranzistor. 1'rva silikonska plast je uporabljena za spominski kondenzator, drur.a pa za vrata preklopnof;;a tranzistorja. Dodatna prednost Je tudi v tem, ker je pri tej izvedbi infoimacijska linija difundirana. S tem pa ee zmanjSajo parazitne kapacitivnosti in otevilo povezav. Na povröini ostane le še krmilna linija, ki pa se ìahko uporabi za dve sosednji celici. Po drugi strani pa je ta tehnologija bolj komplicirana. Potrebni ata dve dodatni maski (skupaj 7 mask; difuzija za izvor in ponor, opitaksij-ska plast, obe silikonski plasti, kontakti in metal ^ k v ^ v v v v I. kiil^ ^ n* Ivrata tnnd*nin>or V.'V'.V■•.■■■'. ' p -substrat Slika 7. Prerez pomnilne celico, izvedene z dvema plastema silikona + 4 K bit - 4.2^^ = 4096 pomnilnih celic + maske določajo aktivni del substrata, na katernni i-.e izvršujejo posamezni tehnoloäki postopki. Primer 16 K bitnega pomnilnika, izvedenega s tem tehnološkim postopkom de MOSTEK KK 4116. - Pokažimo še zamisel celice, -s katero bi bilo možno realizirati 64 K bitne pomnilnike. Za tak pomnilnik Je potrebna celica velikosti 100 -200/tm2, ki Jo Je mogoče izvesti s CCD {char- ge-coupled) tehnologi Taka celica (slika 8. nima tranzistorja am- pak le preklopno kondenzatorsko področje, ki je pod CCD vrati. Ta zelo kompaktna celica Je hitra kot posamezni tranzistor. Za shranjevanje naboja .je dovolj prostora, potrebni sta le dve liniji (krmilna in informacijska linija). 9* pomnilnd prenos 0m implantaclja J «- Inf. Unija p-subs trat j Kontrolna linija SÌO2 Slika a. Prerez pomnilne celice, izvedene s CCD tehnologijo Oba nivoja informacije sta dobljena z ionsko implantacijo. Podatek Je spravljen v enem od nivojev. Aktivna krmilna linija odpira vrata, ki omogočajo pretok informacije v obe smeri (čitanje in pisanje). Informacijska linija pa določa stanje celice. Preostala vezja v pomnilniku Večino površine aktivnega silikom zavzema matrika pomnilnih celic. Najboljše razmerje poraba moči/hitrost in zahteve po odčitavanju majhnih signalov, narekujejo simetrično zgradbo pomnilne matrike. Med obema polovicama so ojačevalniki informacije (sense amplifier) in vhodnb^izhodne linije, ki vodijo od vsakega oJačevalnika do vhodno-izhodnih vmesnikov (buf--fer). - Ojačevalniki informacije so dinamično aktivni tako, da se ne troši nobena enosmerna moč. Zaradi take zasnove so podatki v eni polovici pomnilnih lokacij invertirani, kar pa Je internega značaja, ker dobijo pri izpisu zopet pravo vrednost. V pomnilni matriki najdemo še posebne celice (dummy cell), ki dajejo pri detekciji signala referenčne napetosti za logično "1" in "O". Pri 4 K bitnem pomnilniku Je na vsako stran ojačevalnika informacije vezano 32 pomnilnih JokaciJ in ena referenčna celica (slika 9). Zeljena lokacija se izbere preko krmilne linije za dostop do lokacije (word line), ki vodi iz dekoderja. Celotna vrstica se prenese v ojačevalnike informacije, kjer povzroči naboj iz pomnilnega kondenzatorja prehod le-teh v nestabilno stanje, ki Je določeno z diferenco tokov I in I- skozi tranzistorja T in T- , Ta dva tokova pa sta odvisna od diference nivojev v pomnilniški lokaciji in referenčni celici. Zaradi omejenih dimenzij kondenzatorja Je signal, ki ga Je potrebno zaznati, zelo majhen (200 mV). Za detektiranje tako majhnih signalov Je potrebna velika gbčutljivost diferencialnih ojačevalnikov. Ce vzamemo za merilo občutljivosti: ■ S/ = 'ob času delovanja ° ^ Z ( V K (V3 - V^ - DS - V kjer Je K odvisna od tehnologije in velikosti tranzistorja (dolžina in širina kanala), V^ pa Je napetost praga, ki Je za določeno tehnologijo konstanta, sledi ° CV-V -VT). Vidimo, da Je občutljivost večja, čim večja Je napetost V , oziroma čim manjša Je napetost V^j^. Isti pogoj ustreza tudi minimalni porabi raoči, saj Je v prvi aproksimaciji moč Po Zaradi navedenih vzrokov tranzistor T« često spremljajo še paralelni tranzistorji (multigrountlj.ng path), s katerimi se doseže višja napetost V . Med odčitavanjem Je aktivirana le ena pot. p8 določeni zakasnitvi, ko Je stanje ojačevalnika informacije definirano, pa se aktivirajo še druge poti, ki znižajo V in Jasno določijo izhod ojačevalnika. -Za pravilno delovanje dinamičnega pomnilnika Je potrebna množica internih signalov, ki Jih dobimo s krmilnimi in urinimi vezji. Na teh vezjih se generirajo določene zakasnitve za zunanjimi signali, ki krmilijo pomnilnik: rIS, gIb, ČS, write. Njihovo vlogo bomo še opisali. .'' - Dekoder Je standarden, ima pa dodatne novosti, ki Jih zahteva moderna arhitektura dinamičnega pomnilnika (RAM). Uporabljen Je le en dekoder za dekodiranje vrstic-in stolpcev. Adre-siranje Je razdeljeno (časovno multipleksira-no) tako, da se o"o prvem signalu RAS (Row address select) izbere preko dekoderja odgovarjajoča vrstica v pomnilni matriki. Nato pa se ista vezja ob nastopu zunanjega signala CAS (Column address select) uporabijo za izbiro zahtevanega stolpca (na križišču stolpca in vrstice Je željena pomnilna lokacija). - Vhodni vmesniki (buffer) sprejemajo adreso in druge krmilne signale s standardnim TTL nivojem. Zato Je potrebna posebna zgradba teh vezij (slika 10.), ki omogočajo enostavno uporabo dinamičnih MOS pomnilnikov v standardnih sistemih. M. VHOO h' h h in Slika 10. Vhodni vmesnik dinamičnega pomnilnika 58 O t il ' CS' K». Izbira stolpco -1 , ' Ch Tm» C„' JLf3 '«»O Ch. "H» -1 aiika 9. Shematični prikaz pomnilniške matrike Kanala tranzistorjev T, in Tp imata razlifine dimenzija. To^omogoSa aetekcfjo logične "1" oziroma "O". Ce Je na vhodu logični nivo "1", dobi točka A potencial mase, kar določi stanje hietabllnega vezja. Ob vhodnem nivoju "O" pa Je stanje določeno z razliko v velikosti kanalov. Kanal tranzistorja Tg Je večji (tok čez tranzistor Je odvisen oa dimenzij), zato se Tp odpre in točka B dobi potencial mase. Preostali del vezja služi za invertiranje signalov, ker dekoder potrebuje tudi inverzne vrednosti. - Pomembno vlogo v pomnilniku imajo tudi izhodni ojačevalniki, ki detektirajo in ojačijo informacije iz dinamičnega pomnilnika. Njihova hitrost Je odločilnega pomena pri skupnem času dosega (access time) celotnega pomnilnika. Osnova izhodnega ojačevalnika Je podobno kot pri ojačevalniku informacije (sense amplifier) balansirani dvojček (flip-flop) z razliko, da Je tu smer preklopa določena s potencialom na vratih brcmencikih tranzistorjev. - Jidino vezje, ki stalnotroši moč,Je vhodna stopnja za prvi signal iUC, s katerim se zač- ne pomniln v MOÜ (12V cikel. To vezje pretvori m (5V) nivo in s tem naznači začetek za kakršno koli aktivnost pomnilnika. 5. Funkcionalni opis delovanja dinamičnega pomnilnika Zunanji sigpal označi začetek vsakega pomnilnega cikla. rE se na HOS nivo prilagodi in generira več internih urinih signalov, ki pripravijo pomnilnik za nadaljnje operacije. Prvi signal aktivira vhodni register za prvo polovico adres. Po dekodiranju in izbiri željene vrstice v pomnilni matriki se aktivirajo Se referenčne (dummy) celice na nasprotni polovici pomnilnika. Vhodni register ee resetira. Zadnji signal v prvi sekvenci pa aktivira So ojačevalnike informacij, ki se postavijo v + RAM (Random Access Memory) - ta izraz pomeni, da Je možno ob vsakem trenutku adresirati katerokoli pomnilno lokacijo. I pravilna stanja in a tem osvežijo (refresh) vsebino celotne vrstice. Medtem Je potrebno zunaj pomnilnika z dodatnim multipleksorjem pripeljati na vhod drugi del adres, ki bodo izbrale zahtevani stolpec. Drugi zunanji signal CIS resetira izhodni register in povzorči visoko impedanco na izhodi (prekine povezavo med pomnilnikom in zunanjim svetom). Zopet se aktivira zaporedje urinih impulzov, ki povežejo zahtevano pomnilno celico z vhodno/izhodno linijo. Zadnji zunanji signal <3S (chip select) izbere del pomnilnika, na katerem se bo izvrSilo či-tinje ali pisanje. Ce tega signala ni, se nadaljnje operacije v pomnilniku onemogočijo,Do te časovne točke Je torej aktiven ceioten pomnilnik. Zato dekodirenj« CS, ki izbere željeni del pomnilnika ne vpliva na skupni čas designai WHITE izbira med Čitanjem ali pisanjem pomnilno lokacijo. e gre za pisanje, se sproži paralelno zaporedje signalov, ki resetira in aktivira vhodne vmesnike in sprejme podatke, kateri se preko ojačevalnikov infonnacijo (sense amplifier) zapišejo v izbrano lokacijo na križiSču stolpca in vrstice. Pri čitanju Je smer pietoka podatkov obratna. Ko Je na izhodni liniji prava vrednost, Jo izhodni ojačevalnik sprejme in po določeni zakasnibvi prezentira zunanjemu svotu. Konec cikla označuje neaktivni RAS ne glede na stanje c23. - Poleg navedenih običajnih operacij Je možno pri sodobnih pomnilnikih Se zaporedno pisanje (čitanje) v isto vrstico. To Je izvedljivo zato, ker 5133 po končani operaciji Inicializi-ra vhodni vmesni register in pri tem ne vpliva na izbrano vrstico, ki Je določena s stanji oja^valnikov informacij, kar omogoča ponovni CE cikel (page mode). - V določfinih časovnih intervalih obnavljamo vsebino pomnilnika z aktivnim 1ÌAS, ki Je edino potreben pri tej operaciji. NovejSi mikroračunalniki (Z-PO) interno generirajo ta signal, tako da v tak sletem lahko brez dodatnih logičnih vezij vključimo velike pomnilnike. Pomnilnik se osvežuje v času dekodiranja operacijske kode instrukcije (to je v dostavnem ciklu mikroraSunalnika), tako da se zaporedoma obnavljajo vsebine celih vrstic. Za ta proces jjapetost V (+5V) ni potrebna. Ce želimo, aa nam pomnilnik opravlja samo funkcijo ohranjevanja informacije, lahko napetost izključimo. cc 6. časovni diagrami za dinamični pomnilnik Za konec poglejmo Se tipične časovne diagrame, ki so potrebni za pravilno delovanje pomnilnika. To poglavje naj nam približa in uskladi prejšnje opise, zato jih podajamo brez dodatnih pojasnil. V časovne diagrame so vnešeni le važnejši časovni intervali. Natančne opise diagramov pa je mogoče najti v priročnikih za dinamične pomnilnike. i MB m fllS Caš .tAiH. ±& M. JL&u- .Um. a m .tfH. § ictA , tl«N ygmmmm^m tate. mmm^. mmmsmm mmmmmm^mmmmsmm >PIU TOTE m l>m časovni diagram II : A) zaporedno čitanje b) zaporedno pisanje mI _ÌAA1L •4 časovni diagram III : Osvežitveni cikel Časovni diagram I ; A) čitanje B) pisanje 7. Zaključek Razumevanje delovanja dinamičnih MOS pomnilnikov je v pomoč vsakemu načrtovalcu, predvsem pa tistemu, ki se ukvarja s posebnimi načini uporabe pomnilnikov (testiranje, DMA, itd...). V članku je podana osnova, ki je potrebna za dobro projektiranje in razumevanje delovanja dinamičnih pomnilnikov. 8. Literatura 1. C. Kuo, K, Kitagawa, D. Ogden, J. Hewkin: 16-K IlAM bullt with proven process may offer higl start-up reliability. Electronics, Maj 1976, str. ei-86 2. G. Landers: Choosing among 4-K MOS RAM . , Electronic Design, Junij 1976, str. IJg-l'tS oemiconductor Memories (edited by David A. Hodgoa), Port III, str. 69-1^6 MOSTEK 1977 Memory products catalog. Copyright 1977 by Mostek Corporation. 60 Informatica št. 2 letnik 1977 linking fortnan and assembly language programs henvé tirefond UDK 681.3.06 Motorola Ine. 1211 Geneve 20, Switzerland »lis article dencribes three methods of solution of procrajti linkflce for programs written in Fortran and in assembly lanciioce.ij^ch problema arise when control prograjns for peripherals (A/D converters,line prWiters.eto.) are to be writton.These progrnuro are usually written in an assembly lanGuaße.This article eives a method of culline a Fortran proeram from fai assembly loncuace program,two methods of callinc an assembly routine from a Portrnn program are described.Besides,the way of data (arguments ) exchange between the two types of program is explained. POVEZAVA TOUTRAHSKI.n IN ZBTRNlIt PROGRAMOV. V članku so opisane tri. metode za reSevanJe problema povezovanja pro -gramov,zapisanih v ptortranu in v zbirnem jeziku.3 takimi problemi se srečujemo,ko moramo sami pisati kontrolne pro -grome za periferne naprave (A/D pretvomike,vr3ti5ne tiskalnike ipd.).Te programe piSemo običajno v zbirnem jez?ku. Opisana metoda klicanja fortranskega programa iz programa napisanega v zbirnem jozllm in dvo metodi klicanja zbirnih rutin iz fortranskega programa.Poleg tega je opisan način izmenjave podatkov( arGumentov)mod obema vrstama progrEt-mov. 1. PROBLEM DEFINITION Since the Fortran language i8 not al\way3 suited to handle the nriany tasks to be perrormed in a program. It te orien desirable to use ono or several assembly language routines to implement them. This Is especially the case when dealing with peripherals whose drivers ore not included in the compiler (peripherals other than the console, line printer, disk). The user is then required to write his own assembly program which nnust make provision for initializing the I/O adapters specific for this application and for exchanging data through them. Furthermore, in order to keep consistent with the data types defined in the M6000 Fortran (ie-bit integers and 3a-bit real nunnbers), the assembly routine Is also required to format the data exchanged with the peripherals. Therefore, the linkage Implies that a technic be used which, on one hand, allows for one program to be called by the other, and on the other hand, which permits the mutual exchango of data (arguments) between each other. This paper describes three solutions which may be usod to cope with the linkage problemi 'wo of them explain how to call for an assembly routine from a Fortran program, while ti^e third solution presents how to face the inverse situation, I.e. how to call for a Fortran program from an assembly language calling program. I3ue to the fact that one of the problems Involved in the linkage is to make provision for formatting data. It looks uselVjl to recoil the data structures which agree to the computer. FORTRAN DATA TYPES The M6800 Fortran connpller handles two types of numbers: - Integers. - real or floating-point numbers. Each data la Implicitly defined «e «n Integer or as a real depending on the first character of the aymtwllc name attached to It. By convention, any symbol starting with I, K, J, t_, M, or N defines the data It represents as an Integer which consequently is internally stored as a 16-blt quantity In the S's complement form. Any other symbol defines a data as being a real number which is stored on 4 bytes according to the floating-point representation illustrated below (note that the compiler makes use of the noatlng-point math package listed In program No. SB of the User Group Library). MSB LSB n. 2'B complement exporwnl sign of rriantlssa Mantissa (magnitude form) Floating-point representation The base being used is hexadecinrial, hence any real number X may be expressed as a equal toj X - <+/-• XIX2X3X4X5X6)-^'6^ where X stands for an hexadecimal digit and E for the signed exponent of X. The actual value represented ist 3. CALLING AN ASSEMBLY ROUTINE FROM A FORTRAN PROGRAM._:_ This method utllzes the Fortran "CALL" statement to call for the assembly language routine from a Fortran calling program unit (main program or subprogram); consequently, the assembly segment is regarded as a subroutine and must terminate with the RTS Instruction (Return from Subroutine). The argwnrventa (data needed to the assembly program or returned by it) may be passed in either of two ways. 3.1. Passing the arguments in the ar^nrwnt I let The general form of the CALL statement la aa rollows; CALL NAME (Arg-ßl, Arg./2.....Arg*J where NAME Is the label used In the latMl fiel d of the first Instruction In the PSCT (Program section) of the assembly language program, and Arg.jt^ 1 are the actual arguments needed to or returned by the assembly subprogram. This latter has the followlng structure; - LABEL 1 L^BEL a UVBEL n NAM opt xdef xref osct RMB 2 Rft^B a rms a file rel name run optional reservation In this section for the temporary storage of data, if required psct jsr fob fob run+1b label 1 label a FDB FD8 LABEL N O The IMO modulea may be written as followsi Instructlona to perform the desired task and to pass arguments RTS END The rules wihlch apply are listed below: 1. The assennbly routine is to be processed by the macro- assembler since the generation or a relocatable object, code is required (OPT REL). 8. The programmer must indicate to the assembler that the label NAME Is derined within the assembly segment so that It may be referenced In the Fortran module (XDEF NAME). 3. The RUN package of the Fortran library being used during the execution of the final program, one must Indicate to the assembler that this package is external to the assembly segment (XREF RUN). 4. The programmer must. In the data section (DSCT), reserve two bytes per argument, that will hold the address of the argument at the time of execution (and not the argument itselO. . B. The starting address of the program section (PSCT) must be identified with a label which Is the same as the one used as subroutine name in the Fortran calling statenr^nt (name)i 6. Right after the JSR RUN+15 instruction, the programmer must reserve and initialize (FDB LABEL 1,..., LABEL N) two bytes per argument to indicate where the address of the argument may be found. The list ends with an FDB O directive. , , , Appendix F of the M6BFTN resident Fortran manual shows an example where this method is utilized. 3.2._Passing the arguments via the common section. Declaring an array by the COMMON statement causes the compiler to reserve the corresponding amount of bytes In the common section (CSCT;). a straight forward fashion of getting hold of the arguments in the assembly language subroutine Is thus to provide, within the assembly module, a CSCT directive to direct the nriacro-assembler to reserve the same amount of bytes as the one needed in the Fortran calling program. It should be noted that, this time, the reservation applies to the arguments themselves and not to their address as previously (see 3.1)." Therefore 2 bytes will be reserved, for integer, whereas 4 bytes are needed to code an argument defined as real In the Fortran section. The general form of the calling sequence Is as follows: COMMON A, N, rrEM(S), REAL(2) CALL ASSEM 10 COMMON ICOUNTT DIMENSION ITEM (10) DO 10 I - 1,10 CALL COUNTR ITEM_(I) - ICOUhfT sort routine Fortran caning program ; PIADA PIACA PlADB PIACB ICOUNT NAM ASMBLV OPT REL XDEF COUNTR EQU $ 8004 EQU $ 8005 EQU $ 8006 EQU $ 8007 CSCT RMB 2 PSCT > assembly language subroutine initialize pia read MSB read LSB COUNTR LDA A 4 STA A PIACA STA A PIACB LDA A PIADA LDA B PlADB STA A icour-rr STA B ICOUNT + RTS END 4. CALLING A FORTRAN SUBROUTINE FROM AN _ASSEMBLY LANGUAGE PROGRAM. _ The arguments. If needed, are again passed via the common section, the Fortran program unit is a subroutine. ' The general forms of the modules are the following; a) Assembly language program; NAM PGM OPT REL XREF FORSUB CSCT optional reservation If required PSCT START LDS STACK put argument if any In CSCT JSR FORSUB retrieve arguments If any In CSCT END b) Fortren sutTOuttne; SUBROUTINE FORSUB COMMON -, -, -, return end (declare arguments Involved In 1 Inkage) Where ASSEM Is the label used In the label field of the first instruction In the PSCT of the assembly language subroutine and A, N, ITEM (2), REAL (2) are the arguments that may be shared among the assembly and the Fortran modules. Assuming that all of them are shared between the two modules, the assembly subroutine will be written as indicated below: NAM FILE OPT REL XDEF ASSEM DSCT optional reservation If required within this module As an example consider a program In which the assembly language main routine reads a 16-bit value from a PIA and calls for a Fortran subroutine which prints out the message "OVERFLCW" whenever the data Just read Is greater than a reference value. A. As&eimtjìy lanpuape program; CSCT A RMB 4 real argument N RMS 2 integer argument ITEM RMB 4 2-integer table REAL RMB e 2rreal table PSCT ASSEM Get or return argumente and perform the required task RTS END As an example, consider an application In which 10 le-blt values are read from a counter connected to a PlAand processed by the Fortran section which, for instance, stores them in a table to be sorted later on. NAM PGM OPT REL XREF TEST PIADA EQU $ B004 PIACA EQU $ 8005 PlADB EQU % 0006 PIACB EQU t B007 CSCT ITEM RIWB 2 DSCT RMB 40 STACK EQU • PSCT START LDS STACK LDA A »4 STA A PIACA bj f STA A PlAca LOOP LDA A PIADA LDA 8 PlADB STA A ITEM STA B ITEM + 1 2 JSR TEST S DRA LOOP 1 END Fortran subroutine SUBROUTINE TEST COMMON ITEM IF (ITEM - BOOO) 1, 2, 2 PRINT 9 FORMAT CCVERFLOW) RETURN END 62 Informatica št. 2 letnik 1977 fonction de tri croissant et de tri decroissant api mitra 15 d. davčev UDK 681.327 Elektrotehnički fakultet , 91000 Skopje Le but de oet article est de presenter I« rialisatlon d*opérateura de tri orolaaant et de tri dSorolasant APL Mitra 15. dans les conditions d'tme mémoire virtuelle implantée sur un petit calculateur (52K mots-Oll-Mltra 15).Nous avons utillsé un algorithme de tri interne.Les mesures qui oaraotérieent les opérateurs de tri croissant et de tri dScjroissant sent résumées sur la fig.9 et 10. FUNKCIJA NA RASTJiČKO I NAMALUVAČKO SORTIRANJji APL MITRA 15» Celta na ovoj trud e da ja opiše re-alizaoijata na operatorite na rasteSko 1 namaluvačko sortiranje APL Mitra 15 ,vo uslovi na vir-tuelna memorija implantirana na eden mal kalkulator (3ÜK zbora<-OIl-Mitra 15).Pri toa e upotreben eden algoritam na interno sortiranje.Merenjata koi gi karakteriziraat operatorite na raateSko i namaluvačko sortiranje se rezimirani na 81.9 i 10. INTRODUCa?ION Si X ost un vecteur, reprSsente un v«cteur d*indices de la méme dimension qua X, Les valeurs du vecteur Z sont dea indices des éléments de X dans un ordre croissant, Soit ,par exemple i z* -5 8 1 100 Z 1 5 5 Si X oontlent des éléments identiques. les Indices de ces iléments sont determines selon la position de ces éléments dans X. Par example i X4-2 ^ ü 8 13 2 4 La fonction de tri décroissant fait un classement dana un ordre descendant.Sans l*exemple précedent, on a s 4 2 1 3 Sono, le résultat de ces opérateurs repré-sente toujours une permutation dont les éléments sont des Indices des éléments de l*opé-rande droit, Puisqu'on travaille dans les conditions a*une mémoire virtuelle, nous aliens utlliser un algorithme de tri interne qui dolt avoir les caractéristiques suivantes i 1.La seule variable APL construite qui sera utilisée pour toutes les transformations dolt étre la variable du résultat. 2.Le nombre de comparaisons dolt étre minimal 3.L«opérande droit doit étre sauvegardé sans aucun changement de ses éléments. ^^.L•o^d^e originai des éléments Identiques dolt étre préservé. 5.Le nombre de défauts de pages dolt ètra minimal. Brawn et Guatavson (B,3,,B,4,) ont montré qu*un programme de tri doit avoir le plus petit "Working set" (D,3.,D.4.) possible , pour obtenir des performances satlsfaisanres dans une mémoire virtuelle.La fusion de la liste d'indices peut eatisfaire les exigences qui ont été posées pour la réalisation d*opérateurs de tri croissant et de tri décroissant. Tous les échanges sont effeotués dans la liste, l'ordre originai des éléments est préservé et l'espace supplémentaire utillsé est égal à n+ 2 ,ce qui est le minimum possible. Après avoir obtenu la liste d*indioes, il faut résoudre le problème inverse d'une permutation.Nous montrerons un algorithms qui fait l'inverse d'une permutation avec la méme varlable.Le temps d'oxécution de cet algo -rlthme est proportionnel 4 "n*. Pour évlter le plus grand nombre de défaut de pages, on va transférer l'opérande droit et ses pages sur disque car on n'a plus besoln de cette variable t toutes lea transformations aeront effectuées stir la variable du résultat, L'ALGORITHMK La première partie du programme contlent un sous-programme qui va déterminer les parcours qui existent dans l'opérande droit (sequences dans l'ordre croissant),De cette manière, il va fixer le nombre de séquences pour la fusion,Si les éléments sont déji dans un ordre croissant (par exemple un J-vecteur APL), la sortie du programme est immediate (il n»y a pas de séquenoes à fusionner), Soit JL^) t i > 0,1-2,...,N,N + 1 l'ensemble des éléments de la liste qui sera construite sur la variable du résultat t(Cj^) ; i - 1,2, l'ensemble des éléments i trier de l'opérande droit. liste est obtenue de la maniere suivante i Ä f^^l^Lj^*- i + 1 on « la fin d«un paLrooura;on va atooker dana L^ une valeur negative dont la valeur abaolue va ditarmlner la tište du par-coura suivant.On va constituer dou* liste« d*élimanta dont 'la fin est marquée par un ziro, cbaque liste contenant pluaieura parooura qui finiesent par un pointeur nÄgatif.Le boub programme utilise deux pointeurs p Ét t.Le pointeur t determine la fin de cheque paroours, le pointeur p passe la liste entière.L et Lj, . oontiennent les tStes de deux listes dont löi-^parcours seront fusiomiéa.Soit t S^a, L'organigramne de oe programme est prisenté wxc la fig.l. 3oit, par exemple t e 4- ? 20J1CX) 49 75 J5 :J7 } 65 7.1,30 A'/ 35 ") 0 21 Ji 50 20 l. 03 21 58 yj Le résultat du programme préoédent est presenti sur le fig.JL» On a obtenu doux listes de quatre parooura qui seront fusionnis entre eux t Proiatòira liato 1,2 5, G a,9 12,13,1-1 10,17,0 Dcuxlòr.io liste 3,4 7 10,11 1 5 1Ö, 19,20,0 L*étape sulvante aera la fusion de oes parooura.L'éohange sera effeotuie «vec les élé-ments do la liste, en fonotion de la fusion dea parcours.L'organiCTamme de oe programme est présente sur la fig.^.11 utilise quatre pointeura p,t,B et q.l,e8 pointeura p et q ppintent sur les deux parooura qui abnt en ooura de fusion, Dana notre exemple le diveloppement eat pré-senté ejp la fig. 3 Après L. on a les paroours suivants pour la fusion t l'rcniii'iro liato 3 , , 1 , 2 a , 1 0 , 1 1 , 9 Hi,13,19,17,20,0 Ilouxliirao liato 5,7,6 15, 12,13,14,0 Lj^ repréaente les deux liates qui doivent fitre fusionnies 5 , 1 5 , 1 2 , a , 1 3 , 3 , 1 0 , .1 , 11 , 9 , 1 , 1 , 7 , 2 , (>, 0 • ■ If,, 1 «, I V, I 7, ;:i), O Maintonant, il faut tracer la chalne du dibut Juaqu'a la fin en renpla^ant lea pointeurs par leurs positions relatives dans la liste (le premier élrfaent de la liste èst remplacé par 1 ,le deuxieme nar 2, eto,),I« résultat est une permutation F .11 faùt réaliser ausai l'inveree de cette permutation.Four obtenir oat inverae, on a besoin de mettre des va-leura nigativea au lieu des valaurs poaitivea dans tous lee eaa ofi i »< P^. L'organigraame de oe prografime eat prieenti Bur la fig.e. Dans notre exemple ,on va obtenir la permutation P^ (fig. 5.). ' Dono,on a obtenu une permutation P telle que €'(P) - C (1) ofi e' contient les ilénents de C dana l'ordse croissant.il faut obtenir une permutation F* telle que i C(P')-€' (2) Soit ivPV l'inverse de P» .où P»(ivP*) reprisente une permutation identique (1,2,^,... •to).Alora,e'(ivP') " C .Puiaque noua avons trouvi uno permutation P telle que t*(P) » C . la relation (2) aera satiafaüe.si P' - ivP. Dono, il faut rialiaerl*inverae du riaultat actual.Les valeura nigativea vont indiquer les oomposantes des cycles qui ne sont paa encore inversis.Dans tous lea cas où 1 • P. 11 n'y amra auoun ohangement.L'organigr^amme de cet aigoritbme est priaenti sur la fig.S* Dans notre exemnle on va obtenir le resultat qui eat prisente sur la fig. 7. On a obtenu una liste d'indicea d'iliments de I'opirande droit dana I'ordra croissant i 16.5,15,12,18,8,13,3,10,4,11,9,1,1^,19,7,2,17, 6,20 Pour iliminer lea premiers (i-0) et dernier (i>N4-l) ilimenta de oette liate, on a modifii le descripteur (voir D,2,) de i'opirande droit NBüL.RVJiO*—N ABASÄ <— 1 Le mSme programme a iti utiliai. rour l»opi-rataur de tri dicroiasant | son resultat eat le -miroir" du risultat du tri croissant , aauf povir lea iliments igaux, qui doivent reater dana laura positions originalea« pour oela, on fait un teat de I'opirateur event la oomparaiaon des iliments de ^I'opirande droit.Pour le tri dicroiasant, à la fin du programme, le deacripteur de i'opirande droit est modifii da la manière auivante i UKL< -UtL AMiiU*-!t Lea mesxires qui oaraotiriaent lea opirateura de tri croissant et de tri dicroiasant sont risumies sur les fig. 9 et|0. CONCLUSION On a vu que le nombre de oomparaisOns nioes-saires pour trier n iliments n'eet paa un aeul oritžre de l'efficaciti d'une mithode de tri. Le nombre d'iéhanges ou de diplaoements d'iliments ou d'indices et l'espaoe nicesaaire aont igalement dea meaurea de l'efficeoiti d'une mithode.D»autre part, dans les oonditions d'une mimoire virtuelle^le taux de difaut de pagea eat une mesure très importante qui caractirise un algorithme de tri.Ui dana un intervalle de temps virtuel, l*enaemble dea pages rifirencies n'est pas trop grand,o'est--Ä-dire le "Working set" n'est paa grand, lea difauta de pagea aeront moina nombreux. Le taux de difauto de pagea a raontri qu'il exiflte une taille de memoire en deaaoua de laouelle le nombre de difauta de page est tres ilevi par uniti de temps{la taille de la mémoire eat un critére plus important que l'algoritbme choisi. BIBLIOGRAraiB A.l.ACM Sort symponium,PrincetonjNew Jersey, Sorting on Computer,Comm.of the ACM 6,n 5 , May 1965 B.l.Belady,L,A.,l'alermo,P.P.,On line Measwe-ment of Peging Behavior by the Multivalued MIN Algorithm,™ J.Rea.Develop.,Jan.l974 B.2.BoBe,R.C.,Nelson,H.J.,A aorting problem, Journal Sf thè ACH T^ü .April 1952 B.3.Brawn,l.8.,0uataTaon,7.a.,N«akln,£.S., Sorting In a Faging JsiavlroniMnt.Coui.of tha ACM 13, n®8.1970 B.4.BrawB,B.S.,0uataTaon,?.0..Frogram baba-Tior in a paging «nvlronmaut.ffall Joint Oo»-putar fontaranoa. 1968 I>.X.SaTČav,D.,Th4aa da dootaur ing4niaur i Intmpritaur AFL «ur Hitra l^.Onivaraiti da Paria,1975 D.2.DavSaT,D.,Mémoira virtualla at la teohni« qua d'optimiaation adaptie 4 l*interprétaur APL Bur Mitra 15,Informatika n°l,1977 Đ.3.Denning,P.J.,Tba Working eat nodal for progranuning behavior,Comm.of the AOM 11,1968 Đ.4.Đanning,P.J.,Sohwartz,S.C.,Fropertlea of the Working sat Hödel,Com«.of the ACM 15,3, non 7«1•Flora■,X•,Computer Sorting,Prentioa-Hall, Ino.j^lewooi Cllffa,H.J.,l%9 aortls O.l.Gl Ding,Tol.3,Add-We8le7 pub.Ooapany, 1993 L.l.lArin,B.,A guided bibliography to ao ting.IBM ayat.Journal 10,n"'3,1971 P.l.Frleve,B.G.,Uaing Page Reaidenoy to Seleot the Working aet ParaBeter,Coma.of the AOM 16,n®10 ,1973 W,l.Woodrun,L.J..Internal aortlng with minimal oomparing,IBH Byat.J,, n°3,1969 7«2.?lorea,I.,Analy8ls of internal ooaputer aortlng,Journal of the ACM 8,n 1,1961 0.1.Gliokaman,S.,Conoernlng the merging of ~ iia^^lan|th tape filea,Journal of the AOM K.i.KnuthjĐ.E.,The_art of computer prograi»- aor- WArr 1 i-o t N+1 n u p +1 < P -- N > oul Lj -,_ 0 LN — 0 l-N + l" l-N+l (HO Plg.2. 1 0! 1! 2! JI-I' 5! 6 7 ' 8 9 ' 10 11 1 12 |i3'i4'i5'ir,'- .40 ' 75 i 35 1 37 i 3 1 85 74 .30 ! 47 35 40 1 21 31 i 50 20 ; 1 I < 1.1 1 ; 2 ! -5 1 4 1 -7 1 6^-8 -10 , 9 t-l2 1 11 1 14 -16 rl8 1 17 ; 1 ! 63 I 21 58 10"I 20 'j'J "oi »18.3 C 0 A h 3 5 G 1 a 10 VI u Vi Iv 15 1 1/ 17 20 1« il 'A 75 yj Ö7 5 -l'i- hi II ■•Jl 'iü ZO .1 n n LL .( I "5 h "7- C — u lo II "l'j 1 "13 -Vò 17 0 n lo 0 I "r* 0 4 7 -Vj s .10 II Vù IV 0 12. IO lo l'i n 0 5 5 7 6 h '1 "ic 1 \'t l\ f> 0 IO 0 \Z 13 lo n w 0 15 tr 1'/ C IO II IO 0 1 13 A •t 7 IZ 13 LO n ir 0 « cr I'r 17 IO II 15 10 z lù A 9 13 "i IQ 12 5 G 7 0 0 GljJiüD • ©,U— s --J- - 0 t - - N -I-I p - - Ls q - Ut . (Ttn ) ® L 1 I- '■si s I ' ■* p Q P Lp non —q s - t t -a— — P p <1— -Lp .non non. oul 0 )> oul X -p ; q-J— q r non < q = 0 Figuro 4 > L.. -- p ; Pig.5. 1 O 1 t 3 h 5 G 7 a S iO 11 12. 13 \5 13 ■ 17 13 ■A r \c> 14 17 10 11 15 zo 2. 15 A 10 0 >q \l G u 7 0 0 '-"i. !5 ■|3 ■17 -3 -io -1 -n -(3 S ■11 II 7 1'/ "Ù -/i "i: ■5 ■IS 20 0 66 (Dr£['ArtT } 1 Q - 1 1 T,ABASE-<-L(, / P, ABAS 1 » premiera lecUrt « Iccturo OUI Q-J--O E LT -O- O «stockaga non oui C P ' M ) Pig.e. (fpiiPAriT^ N --0 AOASE 1 ■ N N + 1 1 (A) L(ABASE) out M02, ABASE --(A) M01 — N -L (ABASE) L (ABASE)-«!— M01 < M02 = N non M01, ABASE- P Q. -, -L (A3ASE) L(ABASE)-a-M02 > < M01 = N > non M02, ABASE — - 0 Pig.8. Fig.7. 1 0 -1 I 3 4 5 S 7 0 1 IO II 13 l'» 15 IG :7 13 l'I 20 il Pi IS "13 -17 "8 -[0 ■2, 1« "o -12, -q II -1 li- -la "5 "in ?.o £ IS 15 /1 7 5 IG Z 17 15 a 3 l'i Ö IZ 10 er • : ■ ; I ' I. ,, • v; àc'ioontìjvi C...) - ilifl iiri" ^i'i 'iil jii t:','.'. liiii iiiii:':: ixüJÜU. cU! 2a. MAWhivOv«. : renos Cartrldijo Spule ovitek, saržer, nabojnica. punjenje Channel Kanal kanal kanal Chip Chip tableta, tabletka, gossre