IskraDelta I' r u _ ' ' IVI I PO s - UČINKOVIT, SODOBNO ZASNOVAN, STANDARDEN PAKET APLIKACIJ, KI REŠUJE NAJOBČUTLJIVEJŠE PROBLEME OBDELAVE POSLOVNIH PODATKOV, KOT STA AŽURNOST IN DOSEGLJIVOST INFORMACIJ ZA TAKOJŠNJE POSLOVNE ODLOČITVE, KI JIH NAREKUJE GOSPODARSKI TRENUTEK. NEMENJEN JE MANJŠIM DELOVNIM ORGANIZACIJAM, ORGANIZACIJSKIM ENOTAM, KJER LAHKO KOMPLEKSNO ZADOVOLJI POTREBE PO OBDELAVI POSLOVNIH PODATKOV. VSE NADALJNJE INFORMACIJE VAM NUDI: ISKRA DELTA Tržno komuniciranje 61000 Ljubljana, Titova 52 ® računaknishi sistemi deHa %đ info • • I d \ IL d Published by INFORMATIKA , Slovene Society for Informatics, 61000 Ljubljana, Parmova 41, Yugoslavia EDITORIAL BOARD: T, Aleksić, Beograd, D. Bitrakov, Skopje, P. Dra-gojlović, Rijeka, S. Hodžar, Ljubljana, B. Horvat, Maribor, A. Mandžić, Sarajevo, S. Mihalić, Varaždin, S. Turk, Zagreb. EDITOR-IN-CHIEF : A nton P. Železnikar TECHNICAL DEPARTMENTS EDITORS: V. Batagelj, D. Vitas - Programming I. Bratko - Artificial Intelligence D. Ćećez-Kecmanović - Information Systems M . Exel - Operating Systems A . Jerman-Blažič - Publishers News B. Džonova-Jerman-Blažič - Literature and Meetings L. Lenart - Process Informatics D , Novak - Microcomputers Neda Papié - Editor's Assistant L. Pipan - Terminology B. Popović - News V. Rajkovič - Education M. Špegel, M . Vukobratović - Robotics P. Tancig - Computing in Humanities and Social Sciences S. Turk - Hardware A . Gorup - Editor in SOZD Gorenje EXECUTIVE EDITOR: Rudi Murn PUBLISHING COUNCIL T. Banovec, Zavod SR Slovenije za družbeno planiranje, Ljubljana A . Jerman-Blažič , Republiški komite za družbeno planiranje in informacijski sistem, Ljubljana B. Klemenčič, ISKRA, Elektromehanika, Kranj S. Saksida, Insitut za sociologijo pri Univerzi v Ljubljani J. Virant, Fakulteta za elektrotehniko, Univerza v Ljubljani Headguarters : Informatica, Parmova 41, 61000 Ljubljana, Phone: (061) 312-988, Telex: 31366 Delta Annual subscription rate for abroad is US fi 22 for companies, and US 5? 7,5 for individuals. Opinions expressed in the contributions aro not necessarily shared by the Editorial Board. Printed by: Tiskarna KRESiJA , Ljubljana DESIGN: Rasto Kirn JOURNAL OF COMPUTING AND INFORMATICS YU ISSN 0350-5596 VOLUME 6, 1982 - No. 4 CONTENTS s. Ribarić 3 Data Flow Computers D. Čuk 12 Intel 16-Bit Microcomputer E. Germadnik Family Characteristics A. P. Železnikar 19 Programming in Ada II M. Jelavić 30 Multiprocessor SysteiRS L'sinp, IM 6100 Microprocessors Z. Dolenec 36 VMDP - A Software Monitor for On-Line Display of CDC 3170 Computer System Activity A. Žižek .42 A Software Reliability Anoronch D. Hlhajlović 45 An Algorithm 'for Serbo-Croatian D. Obradovič Words Compression D. .Garaberger 48 Residue Number System Applica- tion in Computer Signal Proce- ssing D. Miljan 57 Software Simulator -.A Step J. Šlic toward Development of uC Appli- P. Kolbezen cation Programs P. Kolbezen 64 Mathematical Models of Magnetic B. Mihovilovič Bubble Logic J. Šile R. Trobec 70 A Control Panel of uC Control I. Lesjak System M. Šubelj I. Tvrdy 74 Sixth Slovene Computer Science M. Martinec ■Contest for High-School Stu- dents 79 News in for m a tic a časopis izda.ia Slovensko društvo INFORM7\TIK^ , 61000 Ljubljana, Parmova 41, Jugoslavija UREDNIŠKI 0DBOR: Člani ; T. Aleksić, Beograd, D. Bitrakov, Skopje, P. Dra-gojlović, Rijeka, S, Hodžar, Ljubljana, B. Horvat, Maribor, A. Mandžić, Sarajevo, S. Mihalić, Varaždin, S. Turk, Zagreb. Glavni in odgovorni urednik: Anton P. Železnikar TEHNIČNI ODBOR: Uredniki področij : V. Batagelj, D. Vitas - programiranje I. Bratkp - umetna inteligenca D. Ćećez-Kecmanović - informacijski sistemi M. Exel - operacijski sistemi A . Jerman-Blažič - novice založništva B. Džonova-Jerman-Blažič - literatura in srečanja L. Lenart - procesna informatika D. Novak - mikro računalniki Neda Papié - pomočnik glavnega urednika L. Pipan - terminologija B. Popović - novice in zanimivosti V. Rajkovič - vzgoja in izobraževanje M. Špegel, M. Vukobratović - robotika P. Tancig - računalništvo v humanističnih in družbenih vedah S. Turk - materialna oprema A . Gorup - urednik v SOZD Gorenje Tehnični urednik: Rudi Murn ZALOŽNIŠKI SVET T. Banovec, Zavod SR Slovenije za družbeno planiranje, Ljubljana A . Jerman-Blažič, Republiški komite za družbeno planiranje in informacijski sistem, Ljubljana B. Klemenčič, Iskra, Elektromehanika, Kranj S. Saksida, Institut za sociologijo pii Univerzi v Ljubljani, Ljubljana J. Virant, Fakulteta za elektrotehniko, Univerza v Ljubljani, Ljubljana Uredništvo in uprava: Informatica, Parmova 41, 61000 Ljubljana, telefon (061) 312-988, teleks: 31366 YU DELTA Letna naročnina za delovne organizacije je 500,00 din, za redne člane 200,00 din, za študente 100,00/50,00 din, posamezne številke 100,00 din Žiro račun .šf. : 50101-678-51841 Stališče uredništva se lahko razlikuje od mnenja avtorjev. Pri financiranju revije sodelujo tudi Raziskovalna skupnost Slovenijo. Na podlagi mnenja Repulsiiškega sekretariata za piosvrto in kulturo št. 4210-44/79 z dno 1 .2.1979, jo časopis oproščen temeljnega davka od prorncla pro/zvodo\'. Tisk: Tiskarna KRESI JA, Ljubljana Grafična onrotna: Rasto Kirn Č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 INFORMATI KATA YU ISSN 0350-5596 LETNIK 6, 1982-St. 4 v s E B I ti A S. Ribarič 3 Računari upravljani tokom poda- taka D. Čuk 12 ZnaiSllnosti Intelovih 16-bltnlh E. Germadnik mikroračunalnikov A. P. Železnikar 19 Programiranje v Adi II M. Jelavić 30 Višeprocesorski sistemi s mikroprocesorima IM 6100 Z. Doleneo 36 VMDP - Softverski monitor za on-line prikaz aktivnosti raču- nara CDC 3170 A. Žižek 42 Zasnova zanesljivosti program- skih sistemov D. Mihajlovič 45 Jedan algoritam sažimanja srp- D. Obradović skohrvatskih reči D. Gambe ri>er 48 Korišt'enje sustava brojeva re- sidna u obradi signala računa- lima D. Mlljan 57 Programski simulator - korak k J. Šile razvoju mikroračunalniških apli- P. Kolbezen kacijskih programov P. Kolbezen 64 Matematični modeli mehurčnih B. Mihovilovič preklopnih vezij J. Šile R. Trobec 70 Sinoptika mikroračunalniško vo- I. Lesjak denega sistema M. Šubelj I. Tvrdy 74 Sesto republiško tekmovanje H. Hartinec srednješolcev s področja raču- nalništva 1981/82 79 Novice in zanimivosti raCunarj upravljani tokom podataka slobodan ribarić UDK: 681.3:519.685 TEHNIČKA VOJNA AKADEMIJA KoV JNA, ZAGREB U ovom članku opisane su dvije arhitekture računarskih sistema: konvencionalna arhitektura raSunara s upravljadkiir. tokom (control-flow computer) ili von Neumannova arhitektura i arhitektura raäunara upravljanog tokom podataka (data-flou computer). Računarski s-^stem na bazi von Neumannovog modela (i njegovih modifikacija) zbog svoje sekvencijalne prirode ne može efikasno iskoristiti inherentni paralelizam prisutan u problemu i postidi perfomansu koja se zahtijeva na području umjetne inteligencije, obrade i raspoznavanja slika, globalnih vremenskih modela i si. U radu je prikazan 'Adamsov model paralelne, obrade koji predstavlja osnovu na kojoj še temelji arhitektura računara upravljanog tokom podataka. Računarski sistemi upravljani tokom podataka svojom koncepcijom omogućuju efikasno korištenje inherentnog paralelizma, a uz korištenje svih prednosti koje pruža LSI tehnologija omoguóit de i dostizanje perfomasi iznad 1000 MFLOPS. DATA-FLOW COMPUTERS. - In this paper are described two computer system architectures : a conventional control-flow ■computer architecture or von Neumann architecture and data-flou computer architecture. Due to its sequential nature, the computer system based on von Neumann model (and its modifications) cannot make effective use of inherent parallelism present in the problem and, in this way, achieve the performance required for the field of artificial intelligence, picture processing and recognition, global weather models, etc. Futkermore, in this work is presented Adams 's model of parallel processing on which a data-flow computer architecture is based. The conception of data-flow computer systems makes possible the effective use of inherent parallelism, and together with all the advantages offered by LSI technology it will be possible to achieve performance above 1000 MFLOPS. 1. UVOD Sve šira primjena računarskih sistema u ovom desetljeću na slijedećim područjima: • područje vrlo složenih obrada (npr. globalni vremenski modeli, problemi s područja atomske fizike, kriptografije, složeni hidrodinamički problemi), • problemi s područja koja sadrže visok stupanj inherentnog paralelizma u podacima ili u postupcima obrade (ili u jednom i drugom). Na primjer, područje umjetne inteligencije, obrada i raspoznavanje slika, obrada radarskih signala i si. , • područje visoko pouzdanih sistema za upravljanje i nadgledavanje npr. , vojni sistemi protivprojekti-Ine zaštite , uvjetuje [ 1] : • visoku performansu takvih računarskih sistema, naravno, uz prihvatljivu cijenu (npr. performansa iznad ^ 1000 MFLOPS Million Floating-Point Operations Per Second), • iskorištenje svih prednosti koje nude tehnologije visokog (LSI) i vrlo visokog (VLSI) stupnja integracije - upotrebu velikog broja, ali samo nekoliko ra- zličitih tipova građevnih blokova, , od kojih svaki ima vrlo visok omjer logika/broj izvoda (logic-to-pin ratio), • korištenje inherentnog paralelizma u cilju brže obrade, • postojanje takve programske opreme koja će omogućiti efikasno korištenje računarskih resursa i iskorištenje svih potencijalnih mogućnosti takvih velikih računarskih sistema. Ispunjenjem gornjih uvjeta postići će se visok kvalitet odgovora računarskog sistema koji je proporcionalan količini izvršenih izračuna [2]. Za ilustraciju zahtijevanog kvaliteta odgovora, ocijenimo performansu računarskog sistema za obradu slike u realnom vremenu. Uzmimo primjer jedne tipične obrade: Neka je slika rezolucije 512x512 slikovnih elemenata (pixel), a vrijednost slikovnog elementa neka je kvantizirana u 256 razina (8 bita X 3 za boju). U ovom kontekstu pod obradom slike n realnom vremenu podrazumijevamo obradu u vremenu manjem od vremena potrebnog za obnavljanje slike na TV zaslonu (data acqusition time of TV frame) i ono iznosi Tipična obrada slike, npr., filtriranje uz pomod maske dimenzija 3^3 slikovnih elemenata ili ortogonalna transformacija slike, zahtijeva od deset do stotinu instrukcija po slikovnom elementu. Potrebna performansa računarskog sistema (izražena u MIPS - Million Instruction Per Second) je: BSEXBISEXBSLXIO'®, gdje je: BSE - broj slikovnih elemenata, BISE— broj instrukcija za slikovni element, BS L - broj slika u sekundi. Za naS slučaj zahtjevana performansa iznosi: ( 512 X 512) X (10 -r 100) X (1 /(4 X 10"^)) x 10"^, odnosno 65,636 656,36 MlPS-a.. Tako visoka performansa za velike računarske sisteme na osnovi von Neumannovog modela (i njegovih modifikacija) predstavlja nedostižan san. Na primjer, veliki računarski sistem kao Sto je IBM-ov 3081 iz tzv, novog vala H ima performansu 10,4 MlPS-a, Amdahlov računarski sistem 5860 ima 13.9 MlPS-a, a Hitachijev AS/9000 DPC ima 15,9 MlPS-a (31. U ovom radu opisane su dvije arhitekture računarskih sistema: konvencionalna arhitektura računara s upravljačkim tokom (control-flow computer) ili von Neumannova arhitektura računara i arhitektura računara upravljanog tokom podataka (data-flow computer). Računarski sistemi na bazi von Neumannovog modela (i njegovih modifikacija) zbog svojih karakteristika ne mogu ispuniti navedene uvjete (visoka performansa, iskorištenje inherentnog paralelizma i si.). Računarski sistemi upravljani tokom podataka svojom koncepcijom omogućuju efikasno korištenje inherentnog paralelizma prisutnog u algoritmu, a uz koristenje svih prednosti koje donosi LSI i VLSI tehnologija omogućit će i dostizanje zahtijevanih performansi (>1000 MFLOPS), U prvom dijelu članka, osim opisa arhitekture von Neumannovog računara, dana je i kritika takve arhitekture. U drugom dijelu članka prikazan je model paralelne obrade i arhitektura računara upravljanog tokom podataka. 2. RAČUNAR S UPRAVLJAČKIM TOKOM (CONTROL-FLOW COMPUTER) 1 KRITIKA VON NEUMANNOVE ARHITEKTURE Konvencionalna arhitektura računara je ona s upravljačkim tokom ili von Neumannova .arhitektura. U jednom od najznačajnijih radova na području arhitektu- re računara (autori Burks, Goldstine i von Neumann [41) koji je nastao nekih petnaestak godina prije pojave samog pojma arhitektura računara* [ 5l, detaljno je razrađena koncepcija računara sa pohranjivanjem programa (stored-program computer). Taj rad je imao jak utjecaj ne samo na prvu generaciju računara, već i na sve naredne. ■. Von Neumannov model (SI SD-Single Instruction Stream-Single Data Stream kategorije arhitekture / prema Flynnu [6]/) s izvjesnim modifikacijama, suvereno vlada već u četiri generacije računara. OpiSimo, ukratko, osnovne značajke te arhitekture: • von Neumannov model računara čine četiri funkcionalne komponente (aritmetičko-logička jedinica, upravljačka jedinica, U/I jedinica, memorija (si. 1). __ itarovidóit 'ai^nk^i SI. 1. Von Neumannov model računara • primjenjuje koncepciju pohranjivanja instrukcija i podataka u istoj memoriji, • memorija je jednodimenzionalna (pojavljuje se kao vektor sastavljen od riječi) sa sekvencijalnim načinom adresiranja (koncept linearnog adresiranja - me-morijske lokacije imaju adrese 0000 , 0001, 0002, ...), • nema eksplicitne razlike između instrukcija i podataka. Instrukcije se mogu smatrati kao podaci i biti modificirane (npr, adresni dijelovi instrukcijske riječi), • značenje pojedinih podataka nije sadržano u samim podacima, na primjer, ni u čemu se ne razlikuje (eksplicitno) skup bitova koji predstavlja broj sa pomičnim zarezom od skupa bitova koji predstavljaju niz znakova (character string), • posljednje i najvažnije, izvođenje programa ja sekvencijalno, odnosno to je računar sa upravljačkim ^ Izraz „arhitektura računara" uveli su IBM-ovi konstrulctori za opisivanje računarskih sistcina serije IBM 360. tokom (control-flow computer), U von Neumannovom modelu računara program se Izvodi točno prema uređenju (nizu) instrukcija u programu. Dakle, tok izračuna je odreden slijedom Instrukcija koje se pojavljuju u programu - äto znači da je izračun odreden upravljačkim tokom u programu. Taj upravljački tok je sekve-nc i jalni: Instrukcijo adresirane programskim brojilom slijedno se pribavljaju iz memorije i izvode. Sadržaj programskog brojilu se u fazi PlilUAVl (Fetch) inkre-mentira i pokazuje na slijedeću instrukciju,' Za viäe od tri decenije, von Neumannov model računara doživljavao je promjene I poboljäanja koje su se odrazile na performansu računara, ali su još uvijek ostala poboljäanja u implementaciji dotične arhitekture, a ne poboljäanja u arhitekturi [71: o uvođenje indeksnih registara kao dodatnih adresnih registara (rnčunar Datatron, tvrtka Electro Data Corp., 1953. godine), e mikroprogramirana upravljačka jedinica (M.V. Wilkes, 1951.; računar IBM 360, tvrtka 4BM, 1964. godine), « primjena registara opće namjene (general-purpose register), taj koncept uveden je po prvi put u računaru Pegasus, tvrtke Verranti L.t.d, 1956. godine, o uvođenje priručne (cache) memorije (računar IBM 360 model 85, tvrtka IBM, 1968. godine), « virtualna memorija - koncept koji omogućuje da se memorija sastavljena iz tri hijerarhijska nivoa pojavljuje u odnosu na program kao jedinstvena velika memorija čija je brzina skoro jednaka brzini memorije u prvom hijerarhijskom nivou (računor ATLAS, razvijen na Manchester University, 1959. godine), G primjena prekidnog sistema (interrupt system) (Univac 1103, tvrtke Univac, / ERA, 1954. godine), o aritmetika s brojevima sa pomičnim zarezom (IBM NORC, lUM 704, tvrtka IBM, 1954. godine), o koncept asinhronog U/l, primjena funkcionalno nezavisnih jedinica - U/I kanala (LARC, tvrtka Reml-nglon Rand, 1956, godine), e primjena protočne I pipeline) organizacije arit-metičko-logičke jedinice i viäe istovrsnih aritmetičkih sklopova (CDC 6600, tvrtka Control Data Corporation, 1964. godine). Von Neumannov rad, nastao daleke 1946. godine, mnogi autori nazivaju genijalnim i najznačajnijim [5], [8] (u radu su prisutna razmatranja prekrivanja V/l aktivnosti sa aktivnosti procesora, hijerarhija memo-rljskog sistema i si.). U novije vrijeme von Neumannov model doživljava i oštre kritike [7], [9] koje ne umanjuju značaj rada, već su vise samo posljedica promjena koje su nastale u posljednjih trideset i pet godina. Cen/rcf/na procoanof Jec/*n/CQ /icmorj/a (cr-c/) ~~ - 7- /^yvWXOO 51. 2. Pojednostavnjeni model von Neumannovog računara po J. Backusu Model von Neumannovog računara, j. Backus predstavlja u pojednostavnjenom obliku (si. 2) kao centralnu procesnu jedinicu (CPU) koja je pomoću prijenosne povezne cijevi (connecting tube) spojena sa memorijom [9]. Zadatak programa je da ulazne podatke transformira u izlazne, odnosno da mijenja sadržaj memorije u kojoj su pohranjeni ulazni podaci. To se u von Neumannovom modelu izvodi stalnim slanjem riječi naprijed-natrag riječ po riječ kroz povezanu cijev. Veliki dio prometa riječi u cijevi nisu korisni podaci već instrukcije i adrese. Očito da u takvom modelu, veza između memorija i centralne procesne jedinice predstavlja kritičnu komponentu. Tu poveznu cijev J. Backus naziva "von Ncumannovo usUo grlo". J. Baciata tvrdi da sigurno mora postojati "... manje primitivan način ..." stvaranja velikih promjena u memoriji od onog sa slanjem ogromnog broju riječi naprijed-natrag kroz cijev. Ne samo to, koncept von Neumunna on naziva "intelektualnim uskim grlom" jer primorava na način razmišljanja; jedna riječ u vremenu (word-at-a--tlme thinking), umjesto da upućuje na rješavanje većih cjelina, odnosno paralelno rjeäavanje problema. lako je arhitektura von Neumannovog računara snažno utjecala i na programske jezike tvoreći razred von Neumannovlh jezika (npr. Fortran, Algol 68 i dr.), između koncepcije arhitekture takvog računara i koncepcije viäih programskih jezika postoji veliki tzv. semantički jaz (semantic gap [7]), koji se ogleda u neprilagođenosti arhitekture strukturi viših programskih jezika (tipovi podataka, obrada nizova, blok strukture, procedure), što ima za posljedicu nepouzdanost programske opreme (software unreliability), složenost prevodilaca i postojanje zahtjeva za prekomjernom veličinom memorije. Taj semantički jaz je sve veći što su viši programski jezici funkcionalnije orijentirani (npr. APL, FFP - Formal Functional Programming System (9l). Pokušaji da se ostvare uvjeti (postavljeni u uvodu) primjenom konvencionalne arhitekture računara (ra-čunarl sa upravljačkim tokom ili von Neumannovl raču-nari) su bezuspjeSnl U slijedećih razloga: e sekvencijalna priroda konvencionalnog računarskog sistema onemogućuje iskorištenje inherentnog paralelizma prisutnog u problemu, • metode poboljšanja performanse na sve četiri razine (sklopovi i uređaji, algoritmi u funkcionalnim jedinicama, organizacija sistema, sistemska programska oprema [10]) su u velikoj mjeri iscrpljene, štovt-Se, takva arhitektura se u izvjesnoj mjeri udaljuje od mogućnosti iskorištenja prednosti koje nudi noviji razvoj LSI 1 VLSI tehnologije [1], • prisustvo semantičkog jaza [7). Konvencionalna von Neumannova arhitektura ne zadovoljava, kakva arhitektura računarskog sistema treba biti? Odgovor na ovo pitanje traži se u paralelnim računarskim sistemima: multiprocesori (lOl, matrični procesori (array processor) (il), asocijativni procesori [12], sistollčna polja (131. Kao jedna od alternativa nudi se arhitektura koja predstavlja korjenitu promjenu u odnosu na von Neumannovu arhitekturu - računarl upravljani tokom podataka (data-flow computer). 3. MODEL PARALELNE OBRADE Modeli paralelne obrade u kojima se usmjereni grafovi upotrebljavaju za prikaz izračuna predstavljaju osnovu na kojoj se temelji koncepcija arhitekture računara upravljanog tokom podataka (radovi R.M. Karpa I R.E. Millera; J.E. Rodrlgueza (ll, D.A. Adamsa [Ul). D,A, Adams predlaže model M koji se sastoji iz primitivnih čvorova (primitive nodes), proceduralnih čvorova i usmjerenih grana kojima je dodijeljena funkcija privremenog pohranjivanja podataka (FIFO* struktura memorije), koji čine usmjereni graf. Primitivni čvorovi pj, p^, ... p^ predstavljaju izračiinske korake I definirani au na slijedeći način: Svaki primitivni čvor p., 1 $ I n ima uređen skup od I ulaza podataka: d^^, d.2, ..., d.j, i skup od m Izlaza podataka: d.^^^, d.^^2' ''m' Svaki čvor ima jedno;cnačnu funkciju .....- ./im>' gdje je V.j ulazni podatak - element iz skupa podataka * FIFO First.In-Fifsl-Oul Ili y-nul element, a v^^ izlazni podatak Iz Čvora. Primitivni čvor predstavlja građevni blok Iz kojih se sastavlja program. Funkcije f koje izvodi primitivni čvor mogu u zavisnosti od klase izračuna, biti u opsegu od logičkih operacija pa sve do složenih operacija (na primjer, množenje matrica ili množenje matrice s vektorom), Svakom ulazu čvora p^, k i S n može se dođi-jelltl binarna varijabla koja se naziva ulazni status Sjj, koji poprima vrijednost L ill U. Čvor p^ ima tada definiranu jednoznačnu funkciju: Si ' .....s^r Vu- .....- - (S',,. ... , s;^), gdje u slučaju S^^ = L V^^^ poprima vrijednost ^-nul elementa. Nije dozvoljeno da sve vrijednosti V^j, j -= 1,2, ...i Istovremeno poprime vrijednost tf. Čvorovi koji su definirani samo sa funkcijom f nazivaju se r-čvorovl, dok se oni definirani sa f i g nazivaju s-čvorovi. Ulazni status postavljen za s-Čvor može biti ill L (locked - zaključan) Ili U (unlocked - otključan). Vrijednost na zaključnom ulazu ostaje i ne koristi se u Izračunu sve dok taj ulaz ne postane otključan. Funkcija g u s-čvoru, pomoću L I U ulaznih statusa, izabire podatke Iz međusobno nezavisnih Izvora. Proceduralni čvor je čvor čija operacija može biti opisana drugim grafom. Slika 3 prikazuje pojedine vrste čvorova u modelu M, aiTKrčo^m yoaafo/À» pratsfisAyv P^t ' skupa usmjerenih grana £ »(e^, 021 ••• , e^} pri čemu svaka usmjerena grana e^ef. mora zadovoljavati jedan od slijedeća tri . uvjeta (si. 4): 1) mora biti usmjerena Iz Izlaza čvora NjG ;; u ulaz čvora N^^c »j , . 2) usmjerena samo prema ulazu čvora Nj^e ^ a tim da se tireden skup ■ usmjerenih grana zove ulazni skup od G I različit je od praznog skupa, 3) usmjerena samo Iz Izlaza čvora N^c • Uređen skup usmjerenih grana naziva se Izlazni skup G 1 različit Je od praznog skupa. znakom \il (si. 5). O .—.(/fCM ö. -Woz SI. 4.. Uvjeti za grane u graf prvjcedurl Graf program ^definiran je kao uređen par (G, gdje Je G graf procedura, a X skup svih graf procedura. Uvjeti koje graf program mora zadovoljavati dani su u (I4l. Osnovna značajka modela M je da bilo koji Izra-čunskl korak (aktiviranje čvora pj) može započeti u onom trenutku kada usmjerene grane koje ulaze u taj čvor sadrže podatke koji su potrebni za Izračun. Broj Izračunskih koraka koji mogu bltl IzvrSenl u danom trenutku dinamički je određen samo raspoloživim podacima. ' Kažemo da je uvjetovan tokom podataka (data-flow). Model M ima jedno važno svojstvo; programi IZr raženi pomoću graf programa su deterministički, odnosno rezultati konačnog Izračuna ne zavise od broja upotrebljenlh procesora, njihove relativne brzine 111 od Izabranog slijeda aktiviranja pojedinih čvorova (naravno, onih koji imaju .raspoložive sve potrebne podar tke). Slika 5. prikazuje graf program (data-flow program) za Izračun korijena kvadratne Jednadžbe, r-čvor sa funkcijom kopiraj opisan je na si. 6. Početni uvjeti su na usmjerenim granama označeni sa SI. 5. Data-flow program zu izračun korijena kvadratne jednadžbe f- v« Mi 3 2 SI.. 6. r-čvor, sa funkcijom KOPIRAJ Razmotrimo Izvođenje programa sa slike 5. S obzirom na osnovnu značajku modela M, u prvom trenutku raspoloživi su podaci za čvorove A i B,. Izračunskl koraci (funkcija KOPIRAJ) se u njima izvode Istovremeno. Nakon toga, postupak Izračuna može biti prikazan slijedećom sekvencom (u Istom redu označeni čvOt rovi izvode Istovremeno specificirane operacije): D - C - G - L E - H F . ■ 1 . ' ■ ■ ^ . - ■ . J ■ ■ ^ ■ . " N - K M - P. Iz primjera programa vidimo da priroda problema uvjetuje raspoloživost operanada, 1 ukoliko je problem takav da ima visok stupanj paralelizma prisutan u podacima 1 operacijama, tada je omogućeno istovremeno, izvođenje velikog broja operacija. Odnosno, pri takvom Izvođenju Izračunaklh koraka aačuvan je inherentni paralelizam prisutan u problemu. 4. RAČUNARl UPRAVLJANI TOKOM PODATAKA (DATA-FLOW COMPUTER) Računari upravljani tokom podataka predstavljaju korjenitu promjenu u odnosu na von Neumannovu arhitekturu. Osnovna razlika leži u tome na koji se način odlučuje o pribavljanju slijedeće instrukcije za izvr-Senje. U konvencionalhom von Neumahnovom računaru (ratunaru sa upravljačkim tokom) izvođenje programa Je određeno prema uređenom slijedu instrukcija u programu (control-flow). Kod računara upravljanih tokom podataka pribavlja se ona instrukcija (ili instrukcije) koja u danom trenutku ima sve potrebne podatke raspoložive (u skladu s modelom M). Dakle, izvođenje programa je upravljano aa raspoloživosti podataka. Takav računar ne treba konvencionalnu upravljačku jedinicu, ne treba programsko brojilo, a ni upravljački tok ugrađen u program u obliku slijeda instrukcija. S obzirom na gornja svojstva takav računar omogućava IskoriStenje prirodnog i inherentnog paralelizma koji je prisutan u algoritmima. Računar upravljan tokom podataka ima slijedeće četiri bitne karakteristike {15]: • operacija se izvodi u trenutku raspoloživosti svih potrebnih ulaznih podataka (activation by availability), e nakon što je operacija izvršena, ulazni podatak koji je sudjelovao u toj operaciji nije više raspoloživ kao ulazni podatak za neku drugu operaciju (FIFO--struktura podataka u modelu M) , • ne primjenjuje se koncept pohranjivanja podataka poput onog u konvencionalnom računaru, Inpr. oznaka i pohranjivanje varijabli), e nema ograničenja u pogledu upravljanja slijedom izvođenja; izuzev onih koja su dana lokom podataka (nema elemenata upravljanja tokom instrukcija). Pored mogućnosti iskorištenja inhereniriog paralelizma prisutnog u algoritmu, računar upravljan tokom podataka ima mogućnost dinamičkog prilagodavanja svoje strukture strukturi algoritma. U stvari, inkav računar se može smatrati kao oblik arhitekture zasnovan na jeziku (language - based architecture) (1) u kojom je graf program taj osnovni jezik, odnosno graf program (data-flow program graph) služi kao međustupanj između višeg programskog jezika korisnika i arhitck- JezJi korisnika Graf program Sl. 7. Graf program kao međustupanj između jezika i arhitekture [li ture računara (si. 7). Viši programski jezik (textual data-flow programming language) ima neka svojstva konvencionalnih von Neumannovih jezika i svojstava funkcionalnih jezika. Na primjer, program u višem jeziku (sličnom PASCAL-u) za izračun korijena kvadratne jednadžbe ima oblik [15]: FUNCTION quad-roots INPUT (a,b,c: REAL) OUTPUT (xl, x2: REAL) var temp: real begin temp : = sqrt (b»»2-4,f,a • c) xl : = (-b + temp)/(2* a) x2 : = (-b - temp)/(2 »a) END var il, i2, 13 : real n, ra, : real begin 11 : = ... ; i2 : . ... ; i3 : (ri, r2) : - quad-roots (il, i2, i3) ; END Prevodioci za više programske jezike za raču-nare upravljane tokom podataka, na osnovi zavisnosti podataka i operacija, generiraju graf programe. Primjeri viših programskih jezika za taj tip računara su ID jezik razvijen na University of California i VAL nastao na MlT-u {l6]. Od arhitekture računara upravljanog tokom podataka traži se da omogući efikasnu implementaciju tako dobivenih graf programa. Očito da dinamičko prilago-đavanje strukture strukturi algoritma postavlja velika zahtjeve, koji su i inače prisutni u visoko paralelnim računskim strukturama, u pogledu prospojne mreže (communication network) koja usmjerava rezultate od/ /pre^a procesnim elementima i Instrukcljskim riječima. Naime, instrukcijska; riječ tzv. kalup aktivnosti (activity template) ima slijedeću strukturu: « polje operacijskog koda koji specificira operaciju koja će biti izvršena, • dva ili vtäe i)rijemna polja operanada, koja če« kaju vrijednosti operanada, » jedno 111 više polja koje odredu ju odredište rezultata operacija Izvedenih nad operandlma. fiUl [ ] O/serandi [ ] Šl. 9. Struktura kalupa aktivnosti za detalj graf programa Instrukcijska riječ, odnosno kalup aktivnosti može biti pribavljen za izvršenje u onom trenutku kada je kalup popunjen potrebnim operandima. Razmotrimo sada mehanizam djelovanja računara upravljanog tokom podataka. Strukturu takvog računara prikazuje slika 10. Upravljačka jedinica ima zadatak da na temelju parcijalnih rezultata I polja koji određuje odredište rezultata (paketi rezultata) tvori skupove parcijalnih rezultata. „ Polje koje odredujo odrediäle rezultata sadrži i informaciju o broju potrebnih operanda za kalup aktivnosti. Na osnovi te informacije upravljačka jedinica odreduje kada je skup operanada (ulaza) kompletiran. Tako kompletiran skup operanada prosljeđuje se memo- Sl. 8. Struktura kalupa aktivnosti activity template Slika 8 prikazuje strukturu kalupa aktivnosti (activity template). Slika 9 prikazuje detalj graf programa za Izračun korijena kvadratne jednadžbe prikazanog pomoću kalupa aktivnosti. SI. 10. Struktura računara upravljanog tokom podataka rljl za pohranjivanje kalupa aktivnosti. Upotpunjeni kalupi aktivnosti (nazivaju se operacijski paketi (si. 11)) skupom operanada' šalju se prema procesnoj jedinici koja Izvodi operacije specificirane poljem operacijskog koda I generira pakete rezultata (result packet, si. 11) za svako odredišno polje. . yooÀo/. SI. 11. Struktura operacijskog paketa I paket rezultata Memorija za pohranjivanje kalupa aktivnosti (prema graf programu) realizirana je pomoću memorije s ■ izravnim pristupom. Upravljačka jedinica pored upravljačke logike Ima asocijativnu memoriju za pohranjivanje parcijalnih rezultata. Procesna Jedinica se, obično, sastoji Iz većeg broja identičnih procesora razine složenosti mikroprocesora [l7]. SI, 12. Struktura računara upravljanog tokom podataka razvijenog na MIT-u Slika 12 prikazuje strukturu računara upravljanog tokom podataka koji je razvijen na MIT-u ti). Graf program koji je opisan skuiwm kalupa aktivnosti pohranjen je u memoriji. Svaki kalup aktivnosti Ima adresu koja ulazi u rep čekanja instrukcija u trenutku kada je Instrukcija spremna za Izvräenje, Jedinica za pribavljanje instrukcija uzima iz repa čekanja adresu spremne Instrukcije 1 čita kalup aktivnosti iz memorije, tvori operacijski paket I prosljeđuje ga procesnoj jedinici. Procesna jedinica izvodi operaciju odredenu s operacijskim kodom 1 pakete rezultati äalje u jedinicu za obnavljanje stanja (update). Ona proslijeduje parcijalne rezultate prema kalupima aktivnosti (oni su određeni odredišnom adresom) 1 Ispituje da 11 su svi zahtijevani operandi za pojedine kalupe aktivnosti prispjeli. Ako jesu, sklop za obnavljanje stanja prenosi adresu takvog kalupa u rep čekanja instrukcija. Očito da broj adresa koje čekaju u repu čekanja instrukcija označava i stupanj paralelnosti prlmjenjenog algoritma. Primjenom većeg broja procesora (npr. polja procesora) u procesnoj jedinici koji su preko prospojne mreže (communication network) spojeni sa jedinicom za pribavljanje instrukcija postiže se efikasno iskorištenje paralelnosti algoritma. U ovom slučaju paralelno izvođenje Je uslovljeno veličinom I složenoSću prospojne mreže. Multlprocesor upravljan tokom podataka (l), [l8l pruža još veće mogućnosti u iskorištenju Inherentnog paralelizma. U takvom računaru graf program Je razdijeljen na dijelove koji su distribuirani pojedinim procesnim elementima. Procesni elementi imaju svoje lokalne memorije za pohranjivanje kalupa aktivnosti. U tom slučaju razlikuju se dva tipa paketa rezultata; • lokalni, koji ostaju unutar procesnog elementa, • globalni; paket rezultata koji u odredišnom polju nema adresu lokalne memorije vlastitog procesnog elementa već mora,preko prospojne mreže,biti usmjeren u neki drugi procesni element. Slika 13 prikazuje strukturu multiprocesora upravljanog tokom podataka (l). Opis multiprocesora upravljanog tokom podataka dan je u lit. [l81, a u radu [19l razmatra se primjena funkcionalnih memorija (20) u Jednom takvom sistemu. Analize performansi računara upravljanog tokom podataka su pokazale da je postignuto povećanje brzine 40 : 1 u odnosu na konvencionalne visoko perfonnansne računare (high-speed computer) u rješavanju problema metodom mreža i Izračuna FFT (Fast Fourier Transform) (151. SI. 13. Struktura multiprocesora upravljanog tokom podataka Računar upravljan tokom podataka specijalno namijenjen za obradu GCM (General Circulation Model) modela za prognozu vremena ima performansu veću za dva reda veličine u odnosu na IBM 360/95 [2ll. 5. ZAKLJUČAK Primjena računarskih sistema na područjima meteorologije, krlptograflje, umjetne Inteligencije, obrade slika, obrade radarskih signala 1 si. uvjetuje njihovu visoku performansu. Uprkos posezima na sve četiri razine (sklopovi, algoritmi, organizacija, programska oprema) u cilju poboljšanja performansi, računar rski sistemi konvencionalne arhitekture ne mogu postići zahtijevane performanse. Jedan od glavnih ograničavajućih faktora je njihova serijska priroda izvođenja izračuna. Razvoj tehnologije LSI 1 VLSI omogućio je korjenite zaokrete u odnosu na von Neumannovu arhitekturu. Jedan takav zaokret predstavlja arhitektura računara upravljanog tokom podataka. Ona omogućuje efikasno Iskorištenje inherentnog paralelizma prisutnog u pro-, blemu, odnosno algoritmu, omogućuje korištenje VLSI komponenti i razvoj programske opreme koja će omoguv-ćiti efikasno koristenje računarskih resursa. Rezultati koji potvrđuju gornje pretpostavke predstavljaju plodove istraživanja na području graf-programa, viših programskih jezika za opisivanje graf-programa i arhitekture računara upravljanog tokom podataka. Ta istraživanja se odvijaju na MIT-u (J.B. Dennis), University of California (K.P. Gostelow, Arviud), University of Utah (A.L. Devis), University of Manchester (J.R. Gurd) i u CERT-DERI.u Toulouse (J.C. Syre) u Francuskoj. LITERATURA [I] J.B. Dennis, Data Flow Supercomputers, Computer, Vol. 13. No'. 11., novembar 1980, str. 48-56. [2l L. S. Haynes, Highly Parallel Computing, Computer, Vol. 15, No. 1., januar 1982, str. 7-8. [3] D. F. Farmer, IBM-Compatible Giants Datamation, Vol. 27, No. 13, str. 92-104. [4.] A.W. Burks, H.H. Goldstine, J. Neumann, Preliminary Discussion of the Logical Design of an Electronic Computing Instrument, u C.G. Bell, A. Newell, Computer Structures: Readings and Examples, McGraw-HiU, New York 1971. [5] G.J. Lipovski, K.L. Doty, Developments and Directions in Computer Architecture, Computer, Vol. 11, No. 8, august 1978, str. 54-57. [6] M.J. Flynn, Some Computer Organizations and Their Effectivenes, IEEE Trans, on Comput. , Vol C-21, No. 9, septembar 1972, str. 948-96u. [7] G.J. Myers, Advances in Computer Architecture, J. Wiley, New York, 1978. [8] E.E. Swartzlander editor , Computer Design Development, Hayden Book Co., New Jersey, 1976. str. 219. [9] J. Backus, Can Programming Be Liberated from Neumann Style and Its Algebra of Programs, Com. of the ACM, Vol. 21, No. 8, august 1978., str, 6X3-641. [lOl P.H. Enslow Jr. , Multiprocessors and Other Parallel Systems, An Introduction and Overview, u Computer Architecture, Workshop of the Gesellechaft für Infortnatik, Erlangen, May 1975,. Springer-Verlag, Berlin, 1976. [II] K.J. Thurber, L.D. Wald, Associative and Parallel Processors, ACM Comp. Surveys, Vol. 7, No. 4, decembar 1975, str. 215-255. [12] S.S. Yau, H. S. Fung, Associative Processor Architecture - A Survey, ACM Comp.' Surveys," Vol. 9, No. 1, mart 1977, str. 3-27. [13] H.T. Kung, Why Systolic Architectures?, Computer, Vol. 15, No. 1, januar 1982, str. 37-46. [14] D.A. Adams, A Model for Parallel Computations, u Parallel Processor Systems, Technologies and Applications, ed. L.C. Hobbs et al.. Spartan Books, New York, 1970. [15] P.C. Treleaven, Exploiting Program Concurrency in Computing Systems, Computer, Vol. 12, No. 1., januar 1979, str. 42.-50, [16] L. S. Haynes, et al., A Survey of Highly Parallel Computing, Computer, Vol. 15, No. 1, januar 1982, str. 9-24. [17] S. Ribarić, Arhitektura mikroprocesora, Tehnička knjiga, Zagreb 1982. [18] J. Rumbaugh, A Data Flow Multiprocessor, IEEE Trans, on Comp. , Vol. C-26, No. 2, februar 1977, str. 138-146. '' [19] Jan Chudik, Architecture of the Data Flow Computer Based on Functional Memories, VI bosansko--hercegovački simpozij iz informatike, Jahorina 1982. [20] P. L. Gardner, Functional Memory and Its Microprogramming Implications, IEEE Trans, on Comp. , Vol. C-20, No. 7, juli 1971, str. 764-775. [21] J.B. Dennis, K. K. S. Weng, Application of Data Flow Computation to the Weather Problem, u High Speed Computer and Algorithm Organization, ed. D.J. Kuck et al, Academic Press, Inc., New York, 1977. značilnosti intelovih 16-b itnih mikroračunalnikov david cuk, edogermadnik UDK: 681.3.06 INTEL INSTITU „JOŽEF STEFAN", LJUBLJANA V članku so opisane znaCilnosti Intel-ovs družine 16-bitnih mikrorafiunalnikov 8D86. Namen Članka je seznaniti bralca z Intel-ovim principom gradnje ib-bUnega m ikroraSunaInika in glavnimi komponentami družine 8086. Kratko so opisani tudi operacijski sistemii ki podpirajo družino 8086 v rarliCnih podroCjih njihove uporabe. Navedeni so tudi rezultati primerjave družine 8086 z mikroračunalnikom MC68000 in miniraCunalnikom PDP 11/4'». THE INTEL 16-BIT MICROCOMPUTER FAMILY CHARACTERISTICS. In this paper the Intel 16-bit microcomputer family 6086 is described. A purpose of this article is to introduce the reader to the Intel 16-bit microcomputer philosophy and the main 8086 family components. Available 8086 family operating systems for different types of applications are presented. Results of the benchmark test of the 8086 family uith the m icrocomputer MC68000 and the m inioomputer PDP 11/44 are also discussed. 0. UVOD Po podatkih iz literature (npr. Electronicsi maj 1982) so Intel-ovi m ikroraSunalni k i dalefi najbolj uporabljeni na svetui saj presegajo tri četrtine vseh prodanih m ikroraBunaIni kov. Dejstvo jei da je Intel v Jugoslaviji» pa tudi v Slovenijii zelo razSirjen. Predvsem gre za uporabo 8-bi tn ih m ikroraSunaIn ikovi v posameznih institutih in delovnih organizacijah pa tudi že razvijajo 16-bitne mikroraBunalnike1 drugi pa se odloCajo o nadalj n i pot i. Namen tega filanka je strnjen prikaz Intel-ovEga načina gradnje 16-bitnih mikroračunalnikov in prikaz obstojeCe sistemske programske opreme zanje. V Članku je predvsem prikazana zgradba družine 8O861 katere glavne značilnosti so /1/: - posamezne sistemske naloge so distribuirane med razUCne spec i al i z i rane komponente« - zmožnost mu 11iprocesiranj a je vgrajena že v sama vezja. 1. ÌAPX 86 ÌAPX 86 je sklop enega ali ve6 vezij iz družine 8os61 ki predstavljajo funkcionalno celoto. Sestavni deli so naslednja vezja: 8086 - centralna procesna enotai 8087 - arltaietiCni koprocesori 8089 - procesor vhodno/izhodnih enoti 80130 - procesor operacijskega sistema. Imamo naslednje oznake: ÌAPX 86/10 = 8086 ÌAPX 86/11 = 8086 + 8089 ÌAPX 86/20 = 8086 + 8087 ÌAPX 86/21 = 8086 + 8087 + 8089 ÌAPX 86/30 = 8086 + 80130 1.1. Multiprocesiranje Mu 11 i procesiranj e ima< predvsem pri srednjih in vefijih sistemih veliko prednosti pred pristopom z eno samo zmogljivo centralno procesno enoto: - procesna opravila so porazdeljena med vefi specializiranih procesorjevi ki so optimizirani za izvajanje doloSenih tipov opravi 11 - možnost paralelnega procesiranj ai - okvara enega dela sistema le delno vpliva na delovanje celotnega sistemai - razdelitev celotne naloge na veC enostavnih opravili ki jih lahko razvijamo paralelnoi skraj£a Cas razvoja in olajSa kasnijSa spremembe posameznih opravil. Družina 8086 je grajena za mul t iprootsiranj ei to pomeni« da ima že vgrajene elemente za medprocesorsko povezavo in koordinacijo. Gradnja ppdplrc dv^ ttpa proovsorjivi - nkodvisnt proo9«orj«i - koprooisorjf. Neodvisni proo«sor]1 so tistli 1(1 ixva]a]o vsak svojo lastno zapored]« InstrukolJ (npr. aoatii 8089) I msd^iA ko koprooasorjl dobijo svoje instrukcije od drugega prooasorja (npr. 8087). Povezava med posameznimi moduli J« preko sistemskega vodila. Intel je. te za 8-b1tno družino « 1kroraBunàIni kov razvil VBfiprooBsorsko vodilo HULTIBUS-/*/• kasneje pa ga je razširil «e za 16-bHne mlkroraBunalnlke, Vodilo Je v svetu zelo raiKtrjeno In je postalo tudi IEEE standard. 1,2. Centralna procesna enota 8086 Koprooesor paralelno razpoznava Instrukcije drugega procesorja In de je dolofiena instrukcija zanji jo tudi IzvrfI. Koprooesor pravzaprav razSIrje nabor Instrukolj dolpSenega procesorja. Drutine 8086 reiuja problem nedprocesorske koordinacija zi - mahanlzmom dodeljevanja vodila preko vgrajene logike ali zunanjega vezja In je nevidno za prograasko opremoi - vsak procesor vkljufiuje signal LOCK In se ga lahko programsko aktivira. 8 tea prepreölao drugim procesor j era dostop do skupnih virov sistema (spomin? vhodno/1zhodne enote). Vsak procesor vsebuje Instrukcijoi ki testira In poveOa vsebino pomniInlike besede pri blokiranem vodilu. Ta Instrukolja oisogofia izvedbo mehanizma semaforja za krmiljenje dosega vefijega Števila procesorjev do skupnih. raflunalniSkih virov, (ve8 o D1Jkstra-ovBm semaforju npr. v lltaraturi /2/). BploSna struktura vodil za medsebojno povezavo posameznih procesorjev drutine 8086 je prikazana na sliki 1. Osnovo druJlne 8086 predstavlja centralna procesna enota (CPU) 8086. Funkcionalno enaka je tudi CPU 8o881 le da ima ta samo B-b1tno podatkovno vodilo za povezavo s pomnilnikom In vhodno/Izhodnimi enotami. Shema CPU 8086 je na sliki 2. V sistemu Imamoi Slika 21 Blok diagram CPU B086 pomnIlnISke module) procesne module« skupni so za vse vhodno/izhodne modulai ti so skupni za vse procesne modulei prav tako OetajlnejSI opis CPU 8086 je npr. v literaturi /1/1 tu pa bi navedli le nekatere najpomembnejše znafillnostli procesne modulei ti vsebujejo snega ali ve6 procesorjev povezanih preko lokalnega vodilai lahko pa vsebujejo tudi privatan pomnilnik in vhodno/Izhodne enotel te niso dostopne ostalla procesnim (Bodulotn v sistemu. - CPU 8086 lahko efektivno uporabimo v razUBno zahtevnih apUkaoljahi kar ji omogoBata dva razUfina nafiina delovanja. Tako vsebujejo pri minimalnem nafilnu delovanja nekateri kontakti procesorja signalBi ki direktno krmilijo pomnilnik In r — — — 1 I I I PMIVATe I, j UEMonv 1' i i r- —-1 Sj ii i » i i 'To"' {• ii i I l---4 «----1 ( I BUS I tNICRf ACII i aaouf i 8U8 PAOCfSSOK INTERFACE OftOUP -1^'ToCAi. BUS M I PnOCGMOft' ,1 I paocissoa i li l----( l---- Slika 11 Struktura vodil druline 8086 u vhodno/Ixhodnt tnolt (« tiM ti xnanjl* ItavUe viz in enoto za povazavo na vodilo (BIU). Tako EU izvaja instrukoijai BIU pa skrbi za pranos instrukolj in podatkov Iz pomnilnika In za zapis rszuUatov. Izvajanja obeh enot se veSji det vr£i paralelnoi CPU BOBb je grajena za delo s prooasorjan vhodno Izhodnih .enot (lOP) 80fl9i in drugimi neodvisnimi procesor j i in koprooesorj ii CPU 8086 direktno podpira programiran j e v vitjenivojskih jezikih (npr. PL/M-86). Nabor instrukoij je simetriOeni to omogoBa direktne operacije nad operandi v spominu ali na skladu. Mehanizem naslavljanja direktno podpira poljai strukture in druge vISjenivojske programske podatkovna strukture! CPU 8086 lahko naslavlja Ih zlogov pomnilnikai ki je razdeljen v logiBne segmente z do 64 K zlogov. CPU lahko Istofiasno dosega Stiri tskfne segmente (programskii podatkovnii skladovni In dodatni segment). Segmentacija pomnilnika« skupaj z instrukoljami za- sanipulaoijo z nizii omogofia enostavno Izvedbo dInamIOnega relociranja programov in podatkov. 1.3. Procesor vhodno/izhodnih enot 808? Procesor vhodno/izhodnih enot 8089 (lOP) je neodvisen procesor družine 8086. Uporabljamo ga v sistemih« kjer so Intenzivne vhodno/izhodne operacije. lOP 8089 je mikroprocesor z dvema DMA kanaloma« katerega nabor Instrukcij je prilagojen vhodno/Izhodni« operacijam. lOP 806? je Izraz sploSnega trenda odnosa nad CPU In vhodno/izhodnimi enotami pri prvih treh generacijah mikroprocesorjev (glej sliko 3). V prvi generaciji so bile povezave z vhodno/izhodnimi enotami narejene s TTL komponentami« prenosi so bili na nivoju bitov« obseg enot pa Je bil majhen« In Se te so bile poSasne. V drugI generaciji so bili razviti krmilniki enot na enem vezju« ki so razbremenjevali CPU najnitjega nivoja« tako da je CPU prenaSala oele zloge. Razvoj DMA krmilnika je omogoBIl uporabo zelo hitrih enot« prenos pa se Je Izvreil na nivoju blokov podatkov. Krmilniki pa so fs vedno zahtevali dolofieno akcijo CPU ob zaSetku in koncu prenosa« pa tudi med DMA ciklom je bil CPU zaustavljen. lOP BÓB? predstavlja tretjo generacijo procesiranja vhodno/1zhodnIh enot. Ta razbremenjuje CPU Se zgoraj navedenih opravil. CPU sedaj samo pripravi v pomnilniku sporofillo z vpisom zahtevane vhodno/Izhodne operacije (slika 4). lOP prebere sporoBIlo« IzvrJti vhodno/Izhodno operacijo in obvesti CPU« da je operacija zakljuBena. Med izvrSevanjem le te lahko CPU vril druga opravila. lOP 808? lahko vr3l istoBasno povezavo z dvema perifernima enotama. CHANNEL ATTENTION MESSAGES IN MEMORY INTERRUPT Slika 41 Povezava med CPU in lOP Slika 3i Odnos CPU - t.A. NumerIBnI koprooesor 8087 8087 je numerIBni komprocesor drullne 8086 in Izvaja operacije v standardnem IEEE formatu realnih Števil (80-bitnl). Koprooesor 8087 uporabljamo v numerlBno Intenzivnih aplikacijah. Hitrost livrSevanja operacij je približno 100 krat veBja« kot Be Iste vrSimo s programom za CPU 8086. Tako je približni Bas za IzvrSitev množenja dveh realnih Števil 18 mikro sac.« deljenja 39 «ikro seo.« kvadratnega korena pa 36 mikro seo. 1.3. Procesor operacIjskega sistema 80130 Vemo« da predstavlja razvoj programske opreme poglavitnih del cene doloBene aplikacije. Zato se ie dlje Basa pojavlja misel o vgraditvi standardnih funkcij v Integrirano vezje. Vezje 80130 Je 16 K stestirane sistemske programske opreme (jedro operacijskega sistema la dtlo v realnem Basu IfiMX 86) skupaj s krmilnikom prekinitev in tremi Basovniki« ki podpirajo programsko opremo. 80130 riSu)« 33 zahttvkov la dalo v rtalnva easui kt obravnavajo! - dsjavnoatIi - tionunlkaol jo dtjavnostml• In «Inhronliaoljo nad - prtkinitva« - raiporajanja pomnilnika. Vezja B0130 valikokrat zado<«a za Izvedbo «noslavneji svoj In optraoljsklm sifttmom ali pa uporabi Intal-ov oparaoljBkI ilitaml IRMX Bb. 1.6. Zmogljivost 1APX 86 < 1.6.1. Primerjava z HC68000 Dejstvo jei da se danes plfe vefilna programov v vitjih programskih jezikih. Za 16-b1tnt mikroračunalnike velja ooenai da je 80 X aplikacij pisanih v visokih programskih jezikih. Iz tega razloga so v tej toBkI na kratko povzeti rezultati porofilla /3/ za vliji programski jezik P8Soal-86 ver. 1.0« ki teše na Intel-ovem razvojenem sistemu Intelleo (1APX86/20 ,z 3 MHz uro) ter Pasoalom firme Motorola (Motorola Pascal ver. 1.2)« ki teBe na razvojnem sistemu EXORHAC (MC6a000 z 8 HHz uro) , V poroBIlu je primerjanih A4 programov glade na velikost generlranlh strojnih kod. Od teh Je primerjanih 8 programov is glede na hitrost Izvajanja. Vsi programi Imajo enako Izvorno obliko za oba sistema. Izmerjeni rezultati so prikazani na slikah 3i 6 In 7. . MTIOOMXtCUrtONTIMC W«|utl««> ' MO« 1 IM« 1 «U 1 tIMJ 1 1I0< • •• IIQOTMI RCAL MPATH mmultolv Slika 6i Rezultat testa za nenumerlBne programe Slika 71 Rezultat testa za numerlBne programe Obseg strojnih kod je za vse programe v mejah 0.9 - 2.5.- Le pri enem programu Je razmerje 0.?f kar pomeni da pri tem primeru generira Pasoal Hotorole manj kod kot Intel-ov Pascal-86. V vseh drugih primerih pa Motorola Pasoal generira večje Število strojnih kod (glej siIko 5). Izvajalni Basi Instrukolj so korigirani na nifi Bakalnih stanj. (Intel-ov in Motorol-1n razvojni sistem uporabljata fiakalna stanja v strojnih ciklih procesorja)« Cas pa je korigiran za 8 MHz delovanje procesorja 8086. IzraBunano razmerje je podano na slikah 6 in 7. Program v Pascal-86 teBe najmanj dvakrat hitreje kot Motorola Pasoal. Pri numerifinih programih kjer poleg procesorja 8086 sodeluje »e koprocesor 8087 je PaEoal-86 oca 230 krat hitrejji od Motorola Pascal-a. Vzroke za zgoraj navedene podatke lahko KBemo v arhitekturni zasnovi procesorja« njegovi ortogonalnost1 i s ime tri finest i in zgradbi« ki podpira visoke programske jezike. Posebno je treba prouBItl moinosti za naslavljanje operanda« pozivanje in izstopanje iz procedur« uBinkovito kodiranje instrukcij in podobno. T ""<1' im Je pri dvojno indeksnem naslavljanju potrebno pri veBJIh zapisih uporabiti dodatni naslovni register in dodatno instrukcijo LEA In/all ADD. obmofije naslavljanja) 2dl se« da veliko obfflot e kontinuiranega nastavljanja MC6B000 dopuSfla ve8 fleksibilnosti, kot segmentna arhitektura procesorja 8066. Vendar J« ta prednost zmanJSana zaradi omejenega 8 ali t6-bitnoga zamika. Motorola Pascal uporablja register AS za kazalec podatkov. Zaradi poman j kan J a Instrukcije za 32-bltni zamik Je zato tudi za MC68000 «oüna ufilnkovita generacija kod te za podatke znotraj območja 6^ K. vstop In izstop iz proceduri Visoki programski jeziki uporabljajo principe modularnosti in uporabljajo procedure (funkcijo! podprograme). Zgradba CPU-ja mora biti takai da ufiinkovito podpira urejanje dlnamfflnih podatkovnih struktur pri vstopu In Izstopu iz procedura. 68000 uporablja instrukciji LINK in UNLK. vendar so za celotno pripravo vseh parametrov potrebne Se dodatne instrukcije. Ker 68000 nima Instrukcije RETURN in POPi ki poBisti sklad po izstopu iz procedure) je potrebno urejevati sklad ekspllcitnoi za izstop iz procedura pa ja potrebtii indirekten skok. Instrukcija RETURN in POP procesorja 8086 omogoßata uBinkovito generacijo kodi ker z eno instrukcijo poBisti sklad in prenese kontrolo na instrukcijoi ki stedi klicu procedure, kodiranja instrukciji Ker je to obsežno podroBjei je tukaj naveden samo en primer. Pri 8086 je dolSina neposradnega operanda neodvisna od velikosti operandai kar je dokaj pomembno saj prevajalnik pogosto uporablja neposredna operande majhne /eltkosti. Pri l - krmilje za upravljanja pomnilnika« - veBnivojska zaSfilta programov« - podp-ira 1 6 zlogov logifinega adresnega prostora in 16 M zlogov flzifinega« - programska kompatibilnost z iAPX 86. 3. SISTEMSKA PROGRAMSKA OPREMA DRUŽINE 8086 Dejstvo Je« da predstavlja programska oprema veBji del stroSkov pri raalizaoiji doloBene aplikacija. Programsko opremo sestavlja tako sistemska kot aplikativna programska oprema. RazUBne aplikacije mikrorafiunaln ikov« tu so predvsem miSlJeni 16-bitni« zahtevajo dokaj razUBno programsko opremo« tako glede obsega« kot tudi glede karakter istike. Namen te toBke je prikaz obstojeöih najvažnejših operacijskih sistemov (O.S.) za druZino 8086« z grobo navedbo karakt er ist1 k posameznih sistemov« medtem ko detaJlneJSa analiza posameznih O.S.« ki je potrebna pri realizaciji konkretne aplikacije« presega obseg tega Blanka« In bo podana kdaj kasneje. Izbira 0.8. In druge sistemske programske opreme predstavlja naorefi zelo pomembno odločitev« saj oblBsJno zahteva zamenjava O.S. tudi veliko sprememb v aplikativni programski opremi'. Velik korak k poenotenju aplikativne programske oprema Je naredil Intel /7/ t definicijo standardnega programskega vmesnika med operacijskim sistemom in ostalimi sistemskimi oz. api i kat 1 vn iei 1 programi (universal development interface - UDI). Ta vmesnik se sestoji iz definicije standardnih sistemskih zahtevkov <27) In formatov podatkov. UDI lahko uporabimo za katerikoli raflunalnik« ker se ne veže na nabor ukazov. Tabela 3 prikazuje sistemsko programsko opremo za IAPX 86« ki Je l SUBTYPE delovnl_dan IS dan RANGE po .. pe» Tip karakterjev (znakov) (CHARACTER) je preddefinlran in označuje polno množico 128 ASCII znakov. Znakovne konstante so tega tipa. Preddefiniranl prešteven: boolovskl tip je TYPE Boolean IS (false, true)» Logični in relacijski operatorji vračajo rezultate tega tipa. Preddeflnlrani celoStevllskl tip vsebuje cela števila v območju -32768 .. 32767, Drugi celoštevilski tipi se oblikujejo z območnimi deklaracijami. Npr. TYPE štev_vrstlce IS RANGE 1,.5000; Tudi tip zlog je v Janus Adi preddefinlran In ustreza strojnemu zlogu procesorjev 8080A in ZBO, To ni celoštevilski tip, je pa z njim združljiv v območju O ,, 255. Uporaba Ada območij ni stanovitna, saj ima tri vrste območij, ki so znana kot "subtype indications", "integer type definitions" in "discrete range". Del teh konceptov je tudi "range constraint". V Adi se najpogosteje uporablja "subtype indication", ko imamo npr,. koncept iOO» SUBTYPE Indeks IS Integer RANGE O TYPE prevod IS ARRAY (character) OF character RANGE 'A' ., 'Z'» — Tu je 'subtype indication' del, kl se nahaja za besedo OF Diskretno območje se uporablja v zvezi s tipskim imenom ali brez njega, in sicer v deklaracijah indeksov polja, v FOR zankah ter v območjih CASE označitev, npr, FOR i iN O .. 10 LOOP TYPE tabela IS ARRAY ('A'..'Z') OF integer» WHEN Integer RANGE 0..200 => Primera območnih omejitev (range constraint) pa stai TYPE nasi IS RANGE 0 .. 201» kar je ekvivalentno TYPE nasi IS NEW Integer RANGE 0 .. 201» in TYPE realno IS DIGITS 10 RANGE -1.0E30 .. 1.0E30> Pridevki diskretnega pa T 80 določeni takolut t 1 - onim v Pascalu, Npr. Zapisi zapisov niso dopusutni. T'POS(X) X mora biti tipa T. Rezultat ?,a POS je pozicijsko Število vrednosti X v tipu T. Ta rezultat je kar X, če je T celoätevilaki tip oziroma je položaj pri preàtevnem tipu. N mora biti coloStevilskega tipa. Rezultat je vrednost tipa T pri položaju N. Ta pridevek vrne naslednika vrednosti X. Napaka nastopi, če X nima naslednika (X » T'LAST). Ta pridevek vrne predhodnika vrednosti X. Pri X = T'FIRST nastopi napaka. T'VAL(N) T'SÜCC(X) T 'PRED (X ) Dva načina realnega tipa sta tip s fiksno In tip s plavajočo vejico. Pri poslovnih uporabah so priporočljivi tipi s fiksno vejico, pri znanstvenih pa tipi s plavajočo vejico (majhne in velike vrednosti). Dva tipa s plavajočo vejico sta preddeflnlrana: "float" in "long_float". Plavajoči tip ima približno 6,5 mest in eksponentno območje med -38 in 38. Dolgi plavajoči tip ima 12 mest in eksponentno območje med 1440 in -1440. Tako imamo npr. TYPE plavajoče IS DIGITS 6 RANGE -1.0E38 , TYPE dolgo plavajoče IS DIGITS 12> 1.0E38| Polje je sestavljeno iz liste elementov enakega tipa. Posamezen element je izbran z u-pòrabo indeksne vrednosti. Polje se lahko obdeluje kot skupni predmet ali pa kot zaporedje elementov. Indeks je diskretnega tipa, njegove vrednosti so v določenem območju. Dinamična polja imajo nestatičrie meje območij, vendar se ne smejo uporabljati v obliki zaplsnlh (record) ■polj ali kot elementnl tipi drugih polj. Npr. TYPE tabela IS ARRAY (character) OF integer» TYPE lista IS ARRAY (1 .. 100) OF tabela» — To je polje polj - TYPE dva IS ARRAY (barva RANGE belo ,. modro, O ., 20) OF dan» — To je dvorazsežno polje Nizi v Janus Adi so posebne vrste in niz je enorazsežno pplje znakov. Obseg polja je določen z deklaracijo. Elementi niza so dosegljivi z indeksi (tako kot pri poljih), vendar ima niz še dodatne lastnosti: dolžina I niz ima dolžino trenutno vsebujočih znakov v njem priredijIvostJ tipska pravila ne veljajo za nize in različni, niznl tipi se lahko medsebojno prirejajo, dokler rezul-tatni niz ne preseže dolžine primerljivost: nizi se lahko primerjajo z uporabo operator jev =, < = , < , > , > = nlzne konstantes nizna konstanta se lahko uporablja kot niz Npr. lme_zblrke: string(20)» — V imenu je lahko ~ — db 20 znakov odgovori string(SO)» Največje število zriakov je 255; Z a p 1 s n 1 (record) pi«-Imet je struktura s poimenovanimi polji, ki so lahko tar.ličnih tipov. Zapis se lahko uporablja kot en sam predmet ali po delih. Zapisi v Janus Adi so enaki TYPE datum IS RECORD dan: integer RANGE 1 .. 31» mesec: ime meseca» leto: integer RANGE 1850 2200» END RECORD» TYPE sekljanje IS RECORD niz: string (30)» kazalec: Integer RANGE 0..dolžina simbola» END RECORD» ~ . . Variantni zapisi so posebnost ■jezika Janus Ada. Variantni deli v zapisih določajo alternativne liste polj v odvisnosti od vrednosti posebnega polja, ki ga imenujemo privesek (tag). Na ta način je moč prihraniti pomnilni prostor (neuporabljena polja ne zasedejo' prostor) in povečati nazornost zaplsne struktu-, re. Variantni privesek mora imeti pravilno vrednost, da se omogoči dostop na specifično polje. Sintaksa variantnega zapisa je enaka sintaksi' CASE stavka, le da je tipsko ime dano pri imenu priveska. Npr.: TYPE oseba IS RECORD starost: Integer RANGE p .. 120» narodnost: nar_tlp» CASE spol : mo_zen IS WHEN moskl = ' last avta; boolean» poroden: boolean» WHEN ženski = otroci: integer RANGE O .. 20» zaposlena: boolean» WHEN OTHERS = NULL» END CASE» END RECORD » Izbira primera OTHERS določa vrednost, ki ni pokrita z ostalima izbirama. Variantni deli so lahko vgnezdeni, vendar je dovoljena le ena varianta na komponentno listo. Torej je neveljavno tole: TYPE neveljavno IS RECORD — nekaj polj CASE a: integer IS — variantni del END CASE» CASE b: boolean IS — variantni del END CASE» END RECORD» Tipi dostopa (dostopni tipi) in tipi pascalskih kazalcev so si podobni ter omogočajo dinamično oblikovanje predmetov. Predmeti, ki so bili oblikovani z deklaracijami ali alokatorji, se lahko navajajo z imeni» pri dostopnih tipih te možnosti ni. Dostopni tip kaže le na tisti tip predmetov, za katerega je bil dostopno opredeljen. Ta strogost ohranja lastnost doslednega preizkušanja tipov v Adi. Dostopna vrednost NULL označuje, da ni mogoče dostopiti k nobenemu predmetu, vendar se dostopne spremenljivke implicitno (avtomatično) ne iniciallzirajo na vrednost NULL. Dostopna vrednost se lahko svobodno prireja dostopnim spremenljivkam enakega tipa. Vse dostopne spremenljivke, ki imajo enako vrednost, navajajo enak predmet (tudi pri spremembi predmeta). Npr.: TYPE kazal IS ACCESS integer» a, b: kazal» BEGIN a :=■ NEW integer» — to je alokator, -- glej_ kasneje a.ALL 6> b I» a; b.ALL := 10> — tu postane a.ALL = 10 (ne ostane 6) Deli predmeta, na katerega kaže dostopni tip, lahko vsebujejo dostopne tipe enakega ali različnega tipa. To omogoča oblikovanje rekurziv-nih in medsebojno odvisnih dostopnih predmetov. Ker morajo biti vsi tipi deklarirani pred uporabo, se lahko vzčune nepopolna tipska deklaracija le tedaj, ko imamo deklaracije dostopnega tipa. Npr.: TYPE 8tev_vrstice» ~ nepopolna tipska deklaracija TYPE kazal vrst IS ACCESS stev vrstice; TYPE stev_vrstice is RECORD vrstTca: integer; naslednja: kazal vrst; END RECORD) TYPE beseda? — nepopolna tipska deklaracija TYPE kazalec IS ACCESS beseda; TYPE beseda IS RECORD vrednost: string (20); levo, desno: kazalec; vrst_stev: kazal vrst; END RECORD; Deklarativni del je lista deklaracij, ki se nanašajo na določen del programa. Deklarativni deli se pojavljajo v blokih, podprogramih in paketih. Predmeti morajo biti deklarirani pred njihovo uporabo. Če se podprogramska deklaracija pojavi v deklarativnem delu, se mora podprogramsko telo pojaviti v istem deklarativnem delu. Janus Ada ne zahteva posebnega vrstnega reda deklaracij v deklaracijskem delu. V Adi morajo podprogramska telesa slediti vsem drugim deklaracijam. 4.3. Imena in izrazi s piko in identifikatorjem. Če je ime pred piko zapis, določa identifikator za piko polje zapisa. Ce je zapis variantni zapis, lahko identifikator polja predstavlja polje v variantnem delu. Vsako dostopljeno polje v variantnem delu naj bi obstajalo skladno s trenutno vrednostjo prlvesnega (tag) polja. Vendar prevajalnik za Janus Ado nima variantnega preizkusa in nelegalne variante ne povzročajo signalov napake. Kadar je ime pred piko paket, določa identifikator za piko predmet v paketu. Primeri izbranih komponent so tile: oseba.priimek — komponenta zapisa oseba.kraj.populacija — komponenta zapisa tabela_3ekljanja(simbol).dolžina — kom— ponenta zapisa sklad.vrh — spremenljivka paketa sklad.prazno O — poziv funkcije v paketu Za zapisno strukturo z vgnezdenimi zapisnimi strukturami mora biti navedeno ime za vsako ravnino, ko se poimenuje vgnezdena komponenta. Izbrana komponenta se lahko uporabi za dostop k zapisnim poljem In/all za dostop k celotnemu predmetu, na katerega kaže dostopna vrednost, Z obliko identifikator.ALL je določen celoten predmet, na katerega kaže dostopna spremenljivka. V času poteka se pojavi sporočilo o napaki, če je imela dostopna spremenljivka vrednost NULL. Atributi določajo lastnosti poimenovanih predmetov. Atribut je ime, ki mu sledi apostrof in identifikator brez ali z argumenti. Atributi niso rezervirani, uporabnik jih ne more deklarirati. Npr.: barva'pred(i) — vrednost prod vrednostjo 'i ' v tipu barva tip_kazalec'first — najmanjša vrednost v tipu tipskega območja integer'size — število bitov v predsta-— vitvi celega števila Atributi jezika Janus Ada so tile: Imena predstavljajo predmete, ki jih je deklariral uporabnik ali sistem. Imena so spremenljivke, tipi, podprogrami in paketi. Druga imena predstavljajo predmetne komponente, atribute (pridevke) in označitve. Imena, ki so funkcijski pozivi, so opisana kasneje. Najenostavnejša oblika imena je identifikator, ki je bil določen z deklaracijo. Npr.: indeks — ime skalarne spremenljivke mreža — ime poljske spremenljivke pomično — ime tipa abs — ime funkcije Indeksna komponenta je lahko element polja le v Janus Adi in je ime z listo izrazov v oklepajih. Ime je določeno z imenom polja, izrazi pa so indeksi komponent. Indeksi morajo biti enakega tipa, kot so oni v polju. Npr.: tabela (i) — element enorazsežnccja polja mreža(l,j+l) — element dvorazsežnega polja polje_polj(x)(y) — element tega polja je sam polje Vendar Janus Ada ne dopušča dostopa do predmetov polja (kazalec kot dostopni tip) prok indeksnih komponent. Rezine ne. v Janus Adi Se niso implementIra- Izbrane komponente se uporabljajo pri izbiri zapisnlh polj In za Izbiro predmetov v paketih. Izbrana komponenta je ime X'address, T'size, T'first, T'last, T'pos(Xl), T'val(Z), T'pred(Xl), T'succ(Xl), P'location Tu je X predmet ali podprogram, T je tip ali podtip, XI je tipa T, Z je tipa celo število in P je ime trenutnega paketa. Literal označuje eksplicitno vrednost danega tipa. Število ali preštevni literal označuje vrednost skalarnega tipa. Primeri so: 10 — celoštevilski literal rdeče — preštevni literal (barva) byte(11) — konverzija celoštevilskega li— terala v tip BYTE 'a' — znakovni literal Agregati nus Adi, Še niso implementirani v Ja- Izraz je formula, ki določa izračun vrednosti; ta je numerična ali nenumerična. Izraz je sestavljen iz operandov in operatorjev. Operandi imajo vrednost določenega tipa. Dovoljeni operandi so imena, literal!, tipske konverzije in izrazi v oklepajih. Če je operand ime, mora biti spremenljivka, konstanta, funkcijski poziv, atribut ali komponenta polja ali zapisa; ne more pa biti procedurno, tipsko ali paketno ime. Tip izraza je odvisen od tipov operandov in operatorjev. Tip, ki ga producira operator, je odvisen od tipov operandov. Primeri operandov so: 4.0 -- Število giobina — vrednost spremenljivke dolžina(x) — funkcijski poziv (Stevnik + 10) — izraz v oklepajih Primeri izrazov so; globina — operand dolžina(x)**3 — potenciranje obseg_tabele MOD obseg_odseka ~ multipll- ~ -- kativni operator -5.1 — unarni minus NOT globalno — unarni operator kljuò = "JANUS" -- relacijski operator i IN 1 10 — operator pripadnosti (a AND b) OR C ~ logični izraz x**2 - 5.2*u*v —. sestavljen izraz Operatorji, ki se uporabljajo v izrazih, so zbrani v dodatku A (v prvem delu članka) in njihove uporabe ne bomo posebej opisovali. Tipska, konverzija je dovoljena med nekaterimi tipi, in sicer med vsemi nu-meričnimi in med tipi, ki imajo skupen starševski tip. Primeri so: svetla_barva(črno) — napaka območja float (i) — "i" je celo število integer(pi) — dobimo vrednost 3 Janus Ada ne dovoljuje tipske konverzije IN OUT in OUT parametrov. Kvalificirani izrazi povzročijo, da postane tip izraza enak določenemu tipu ali podtipu. Tu ni konverzije. Npr.i barva'(modro) pomnas ' (1000) tip za modro je iDarva — tip za 1000 je pomnil-nlški naslov Alokator (dodeljevalnik) oblikuje nov predmet, ko je izvršen in vrne dostopno vrednost za navajanje predmeta. Janus Ada ne pozna iniciallzacije dodeljenega (alociranega) predmeta. Npr.: a := NEW znakJ bolek 1= NEW beseda( ;Alokator dodeli pomnilnik za novi predmet iz podatkovne strukture, imenovane kup (gomila, angl. heap). Kup ni urejen, kot sta sklad in polje. Kup se uporablja v sistemu za različne namene, npr, pri vračanju velikih predmetov iz funkcij, zbirk, kot začasni pomnilnik za različne tipe parametrov. Pri tem se lahko pojavi prestop obsega kupa. Kup in sklad rasteta v pomnilniku eden proti drugemu. Dò prestopa obsega kupa lahko pride pri preobsežni rekurziji, Janus prevajalnik ima proceduro 'dispose' (odpravi), ki vrne uporabljeni pomnilni prostor v kup. Ta procedura se mora poklicati za vsak od-prevljeai predmet. Velja: PROCEDURE dispose (kazalec: IN OUT določen_dostopni_tip)i 'dispose' postavi kazalec na NULL po vrnitvi. Statične oziroma literalne izraze izračuna že kompilatorj v njih so dovoljeni tile predmeti! - številske in znakovne konstante - imenovane konstante in preštevni literali - unarna operatorja + in - ter binarni operatorji +, -, *, /, MOD in REM - atributske lokacije, obseg in naslov (če je predmet statično dodeljen) - atributi pos, val, succ in pred, če je argument statičen izraz - tipske konverzije in kvalificirani izrazi statičnih izrazov - relacijski operatorji <,<=,>,> = , = ,/ = V statičnih izrazih ni dovoljena uporaba logičnih operatorjev NOT, AND, OR, XOR in operatorja pripadnosti. Bilo bi povsem neobičajno, če bi se ti operatorji pojavili v popolnoma konstantnih Izrazih. Primeri statičnih izrazov so: 13+29 (člen + l)/obseg - člen > 200 obseg*množica'size integer(člen) naslov'(16#110#) character'val(11) tu sta člen in obseg poimenovani konstanti - obseg je poimenovana - konstànta 4.4. Stavki Programi so sestavljeni iz stavkov. Stavki so enostavni (prireditveni) in kompleksni (IF stavek). Kompleksen stavek vsebuje več stavkov. Stavki bo lahko označeni in označitev je zaprta v dvojne kotne oklepaje, npr.: «označitev» Označitve se uporabljajo samo v povezavi z GOTO stavki in morajo biti enkratne (enoumne). NULL stavek je brez učinka ter . se ga vstavlja namesto nekega drugega stavka, ki naj bi se tam pojavil. Takšna mesta so IF veje, CASE udi in LOOP telesa. NULL stavek lahko uporabimo tudi ob označitvi. Prireditveni stavek nadomé-sti trenutno vrednost spremenljivke z novo vrednostjo, določeno z desnim izrazom. Spremen-; Ijivka in izraz morata biti enakega tipa in vrednost izraza mora biti v območju podobmočja spremenljivke. Npr.: i, j: k, m: integer RANGE integer RANGE 6j 23; j := i> — identični območji k := j{ — združljivi območji j := k> — preizkus je možen le v času • — izvajanja ter lahko povzroči napako območja Prireditve polja so enake drugim prireditvam, tipi se morajo natanko ujemati. Nizne prireditve so dopustne le v Janus Adi. Namenska spremenljivka mora imeti dovolj prostora. (V Adi so dolžine enake.) IF stavek omogoča izbiro zaporedja stavkov v odvisnosti od vrednosti enega ali več pogojev. Izraz v pogoju mora biti boolovski. Imamo navadni THEN, ELSE in ELSEIF del. Npr.: IF akcija = redukcija THEN reduciraj? ELSEIF akcija = pomik THEN pomakni} ELSE reduciraj delno» END IF) IF (indeks < maks) AND (si (Indeks) = ' ') THEN indeks := indeks+1; ELSE napaka(1)} -- prestop END IF} IF niz = "" then IF program = janus THEN — vgnezdeni IF piši(test)J — stavek ELSEIF znak <= 'A' THEN beri(test)j END IF» END IF» CASE stavek izbere eno od več alternativnih stavčnih zaporedij. Izbira jo odvisna od vrednosti Izraza na začetku CASE stavka, CASE stavek se uporablja namesto zaporedja IF stavkov oziroma njihovih delov. Npr,j CASE znak IS WHEN 'A WHEN 'a WHEN 'O WHEN WHEN WHEN OTHERS END CASE» ,. 'Z ' => NULL) ,,'z ' => veliko (znak) J ..'9' => Število (znak) > = > konec programa» I -, ' f > ločilo (znak) i = > posebno (znak), Ta CASE stavek je okrajšava zai THEN THEN THEN OR znak = ') THEN IF znak IN 'A'.. 'Z' THEN NULL J ELSEIF znak IN 'a'. veliko(znak), ELSEIF znak IN '0', število(znak); ELSEIF znak = ' konec programa, ELSEIF Tznak = ' ločilo(znak), ELSE posebno(znak), ENO IF, Izraz mora biti diskretnega tipa. CASE označitve morajo biti konstante, lahko so iz diskretnega območja, kjer so meje statični izrazi. Če se ne uporabi OTHERS za nenavedene možnosti, se v času izvajanja pojavi napaka. Če pa se OTHERS uporabi, mora biti zadnje in le samo v CASE stavku. LOOP stavek ima tri stavčne oblike. Osnovna zanka se konča z uporabo EXIT stavka, ki je kjerkoli v zanki. Npr,: LOOP — repeat stavek v Pascalu IF znak IN 'a',.'z' THEN — spremeni v — velike črke znak != character'val (character 'pos(znak)-32), ENO IF, znak != naslednji_znakO, EXIT WHEN NOT (znak IN 'O. 'z') ; — until v Pascalu END LOOP, SUBTYPE malo IS Integer RANGE 1 .. 10 — deklaracije In stavki FOR Stevnik IN malo LOOP — števnik teče od 1 do 10 ~ sledijo stavki END LOOP, Ce se zančni Identifikator uporablja, kot npr. 'vsota', potem mora ta identifikator slediti 'END LOOP'. Tretja oblika osnovne zanke je WHILE zanka, WHILE pogoj se preizkusi pred izvršitvijo zanke. Npr.i WHILE a(1).dell /= vrednost LOOP IF i < maka THEN i := 1 + 1, ELSE EXIT, END IF, END LOOP, Uporaba zančnih identifikatorjev sicer ni potrebna, je pa zlasti pri vgnezdenih zankah koristna, ko izstopamo iz notranjih zank v zunanje. Npr. I zunanja: FOR i IN 4.. 13 LOOP srednja: FOR i IN 0..99 LOOP notranja: LOOP k := zunanja.i + i, EXIT notranja WHEN k > = zunanja.i * i, EXIT zunanja, END LOOP notranja, EXIT, END LOOP srednja, END LOOP zunanja, Z bloki lahko ločimo zaporedje stavkov in deklaracij od glavnega programskega poteka brez uporabe posebne procedure. V primeru uporabe bločnega identifikatorja na začetku bloka, moramo tega uporabiti tudi za besedo 'END', ki blok končuje. Blok se lahko pojavi na mestu stavka. Blok lahko nadomesti enkratno uporabo procedure in tako časa izvajanja ne povečuje a procedurnim pozivom. Vendar v bloku deklarirane spremenljivke niso dosegljive prek blokovnega imena. EXIT stavek povzroči končanje (njega) obdajajoče zanke. Izstop se nanaša na najbolj notranjo zanko, ki ta EXIT stavek obdaja, če seveda ni drugače določeno (npr. za EXIT stavkom v prejšnjem primeru ali s pogojem). Npr. : FOR zanka je osnovna zanka z iteraci j skim delom, ki določa število ponovitev. Pri navadni obliki se zančni števnik povečuje, lahko pa ga tudi dekrementiramo z uporabo besede REVERSE. Parameter zanke je bralna spremenljivka in ne more biti IN OUT ali OUT parameter. Npr.« preizkus: LOOP J «= j + IJ IF i = j THEN EXIT preizkus, END IF, EXIT preizkus WHEN i END LOOP preizkus, j? i, j: integer, BEGIN j := O, vsota: FOR i IN 1 .. 179 LOOP j «= j + 1» END LOOP vsota} END, FOR i IN REVERSE 1..13 LOOP ~ dekrement. FOR zn IN character RANGE 'A'..'Z' LOOP — inkrementiranje 'zn' je tipa character, 'i' tipa integer — sledijo stavki zanke END LOOP, END LOOP, IF stavek v gornjem primeru ima enak učinek kot EXIT stavek pod njim. RETURN stavek povzroči takojšnje končanje obdajajoče funkcije ali procedure. Funkcija mora vrniti vrednost, proceduri pa je ni treba. Vrnitev ne more prenesti krmiljenja izven paketnega telesa. Funkcija se mora končati z RETURN stavkom, proceduri pa tega ni treba. Npr.: PROCEDURE zapusti IS BEGIN IF pravilno THEN RETURN, END IF, END zapusti, FUNCTION je (tipi kazalec) RETURN boolean IS &EGIN RETURN bazni tip (tip) =• If END jei GOTO stavek ima za posledico takoj-Snjl prenos krmiljenja na označeni stavek. Ta stavek in pripadajoči GOTO stavek morata biti v istem podprogramu. Npr.i <<8pet» IF vozliSčed) C ime THEN IF levo(i) /= O THEN i 1= levo (i) J GOTO spet» END IF> — dodatni stavki . END IF; ■ Označitev se tu lahko pojavi samo pred stavkom {ne pred delom stavka). Nepriporočljivo je skakanje v bloke, IF, CASE in LOOP stavke z uporabo GOTO stavkov. Janus Ada ne omogoča skokov v bloke in zanke. ASM stavki so posebnost Janus Ade in omogočajo medvrstično vstavitev binarnih podatkov (v kodni del objektnega izhoda). Tako se lahko vstavijo podatkovne tabele in strojni kod v Janus Ada program. Pravilo ASM stavka je s asm_statement ;;= ASM static_expression {, static_expression)■ f Izraz celoštevilskega tipa mora Izračunati prevajalnik in podatki se vstavijo v kodni tok brez interpretacije. Pri podatku z vrednostjo ;med O in 255 se generira en sam zlog. Npr.: ASM Ihld, nasi'address; — 'Ihld' je opera-~ torski kod 2A^(procesor 8080A) ASM 0,1,2,3; — vstavi zloge 0, 1, 2, 3 Najbolj uporabljana atributa sta "address" in "location". V X'address je X vobče predmet ali podprogram. Ta pridevek vrne začetni strojni naslov predmeta X. Rezultatni tip je celo Število. Za address pridevek v ASM stavku morajo biti izpolnjeni tile pogoji: če je X predmet, mora biti X deklariran kot paketni predmet. Naslov (X) mora biti deklariran kot paketna spremenljivka na najbolj zunanji ravnini programa. Če je X podprogram, mora ASM stavek slediti ali biti vključen v podprogramsko telo. Podprogram-ski naslov še lahko uporabi le, če je podprogramsko telo že bilo prevedeno in vnaprejSnje deklaracije so tu brez učinka. V P'location je P ime trenutnega paketa. P'lo'^ cation vrne trenutni lokacijski števnik za izhodni izvirni kod. V ASM stavku omogoča ta pridevek "relativne" skoke in je v grobem ekvivalenten pomenu '0' v zbirnem jeziku. Skoki na Janus Ada označitve niso implementirani (možna je uporaba GOTO stavkov med ASM stavki). ASM stavki se uporabljajo le za krajša kodna zaporedja. Daljše rutine v zbirnem jeziku lahko oblikujejo zbirni paket in se uporabijo na zbirni ravnini. 4.5. Podprogrami Podprogram je procedura ali funkcija. Procedur-nl poziv je stavek, funkcija pa vrne vrednost in se uporablja kot ime v izrazih. Pod programska deklaracl-j a določa proceduro ali funkcijo in je ekvivalentna vnaprejšnji procedurni deklaraciji v Pascalu. S to deklaracijo se določi ime podprograma, njegovi formalni parametri (če obstaja- jo) in tip vrnjene vrednosti (če ta možnost obstaja) . Dejanski kod, ki temu podprogramu pripada, se deklarira v podprogramskem telesu. Podprogramska deklaracija je potrebna le tedaj, ko se podprogram uporabi, preden je bilo njegovo telo definirano (npr. v paketu ali v rekur-zivnih programih). Primeri podprogramskih deklaracij so: PROCEDURE preišči drevo; PROCEDURE vejitevTlist: OUT vozlišče); FUNCTION skup_imenovalec (m,n: integer) RETURN integer; FUNCTION križni produkt (x,y: matrika) RETURN real; Identifikator za formalni parameter se lahko uporabi le enkrat. Zaradi tega je PROCEDURE napaka (dobro, alaboi IN boolean; slabo: OUT integer)» nepravilno, ker se "slabo" pojavi dvakrat. Janus Ada podprogrami se lahko kličejo rekur-zivno in imajo lastnost ponovnega vstopa (v zbirnem jeziku ta druga lastnost vobče ne velja za subrutine in jo moramo programsko zagotoviti) . Formalni parametri podprograma so lokalne spremenljivke ali konstante. Ti parametri lahko imajo tri načine: IN, OUT in IN OUT. IN parameter dobi vrednost z dejanskim parametrom; OUT parametru, ki ustreza dejanskemu parametru, se priredi rezultatna vrednost. IN OUT parameter ima lastnost IN in OUT parametra. Podprogramsko telo določa izvršljivi kod podprograma. Pri uporabi vnaprejšnje deklaracije mora biti v celoti ponovljena podprogramska specifikacija. Npr.: PROCEDURE vnaprej(i: integer); PROCEDURE primer IS BEGIN vnaprej(1); — nadaInj i stavki END; —nimamo opcijskega identifikatorja PROCEDURE vnaprej(1: integer) IS BEGIN — stavki procedure END vnaprej ; Pri vsakem podprogramskem pozivu se oblikuje povezava med formalnimi in dejanskimi parametri, nakar se izvršijo stavki telesa. Podprogram se konča z RETURN stavkom ali s končnim stavkom podprograma. Po izvršitvi telesa se parametri načina OUT in IN OUT kopirajo v dejanske parametre in krmiljenje se vrne v točko, iz katere je klicajočl program pozval podprogram. Podprogramski poziv se nanaša na proceduro ali funkcijo. Ta poziv določa korespondenco med dejanskimi in formalnimi parametri. Dejanski parameter je spremenljivka, konstanta ali vrednost izraza. Poziv brezpara-metrične funkcije ima prazen del v oklepajih. Npr. : procedurni_poziv; — ni parametrov proc_s_parametri(indeks, 1, ab); odgovor 1= vprašanje(stavek!, stavek2); — "vprašanje" je funkcija vozlišče := nasl_vozlišča(); — ni pa- ~ — rametrov vsota seštej(delna_vsota)»2; Dejanski parameter IN OUT in OUT naöina mora biti spremenljivka (navadna, indeksirana, izbràna) In ne sme biti tipska konverzija kake spremenljivke. Izrazi s tipsko konverzijo so dovoljeni kot dejanski parametri za IN način. Izraz se Izračuna pred dejanskim pozivom. Dejanski in' formalni parametri morajo biti enakega tipa. Funkcija je podprogram, ki vrne vrednost. Funkcijski parametri so lahko le IN načina. Funkcija se konča z RETURN stavkom, ki vrne vrednost funkcije. Če se funkcija konča s svojim koncem, njena vrednost ni določena. To možnost funkcijskega končanja moramo preprečiti. Npr. s FUNCTION prazno (znaks IN character) RETURN boolean IS BEGIN RETURN znak 1= ' '» END prazno; Vrnjena vrednost funkcije je lahko poljubnega tipa in vračajo se lahko tudi neskalarne vred-r.oatl (npr. nizne) . 4.6. Paketi Paketi se uporabljajo za združevanje podatkov in operacij, ki logično spadajo skupaj. Uporabimo pa jih lahko tudi za prikrivanje (zasebnost) tiste informacije, ki je za programerja nebistvena; ta način uporabe imenujemo podatkovna abstrakcija. Paketi se uporabljajo Ipri realizaciji ločenega prevajanja v Janus Adi. Zaradi ustreznih Ada deklaracij lahko prevajalnik za Janus Ado avtomatično naloži in uporablja predmete paketa. Tako obstaja varnost tipskega preizkušanja tudi pri ločenem prevajanju. Pri vrsti pascalskih prevajalnikov te lastnosti pri ločenem prevajanju paketov nimamo. Paket ima dva delaš specifikacijo in telo. Paketno ime telesa in specifikacije se morata ujemati z imenom pripadajočih zbirk. Vgnezdenja paketov niso dovoljena. Le eno paketno telo ali specifikacija se lahko nahaja v zbirki izvirnega teksta. Paketna specifikacija je del paketa, ki je viden za druge pakete, ločeno prevedene. Specifikacija obkroži podatkovne definicije in podprogrčime za obdelavo, hkrati pa skrije implementacijske (programske) podrobnosti v paketnem telesu. Prevod paketne specifikacije generira v Janus Adi informacijsko zbirko za uporabo v drugih paketih; ta zbirka ima poseben sufiks '.SYM' . Paketno telo (če obstaja) ima sufiks '.PKG' . Specifikacij ska zbirka naj bi imela sufiks '.LIB' , tako da je ne bi zamenjevali s SYM zbirko. Informacijo paketne specifikacije lahko uporablja več programov. Specifikaciji ni treba ' določevati podprogr^ov, določuje pa lahko množico konstant, tipov in spremenljivk, kot to narekujejo potrebe drugih paketov. V tem primeru ni potreben obstoj paketnega telesa, saj izvršljivi kod ni specificiran. Paketna specifikacija, ki določa podprograme za druge pakete, mora imeti paketno telo in obe imeni se morata ujemati, tako da prevajalnik lahko avtomatično naveže paketno telo na specifikacijo. Zaradi tega mora biti specifikacija prevedena pred pripadajočim telesom. Paketna specifikacija lahko definira največ 255 imen. Primeri PACKAGE specif IS — nI besedo BODY — ta specifikacija nima paketnega telesa maks obsegi CONSTANT j- 101; TYPE~ob8 IS integer RANGE O .. maks_obseg; TYPE spr IS (nič, ena, dve, tri)» ~ ' točka, temei obs; EMO specif; WITH specif; — vzemi "specif" informacijo PACKAGE spec IS " ta specifikacija mora imeti telo maks celo: CONSTANT 32767; TyPE~zapiS IS RECORD poljelj specif.obs» polje2i integer; END RECORD; PROCEDURE naj_zap(a_obsi specif.obs; a_celos integer); FUNCTION glej Obs(zap v: zapis) ~ ~ RETURN specif.obs» END spec ; Paketno telo je del paketa z deklariranimi Izvršljivimi stavki. Glavni programi v Janus Adi morajo biti paketna telesa. Pomnilni prostor se paketnim predmetom dodeljuje statično, tako da se njihove vrednosti ne zgubijo med klicanjem paketnih funkcij in procedur. Ime paketa se mora ujemati z imenom zbirke, tako da prevajalnik in povezovalnlk lahko delujeta avtomatično, če vsebuje paketno telo paketno specifikacijo, potem mora biti ta specifikacija prevedena pred telesom. Primer: WITH obratno, prenosno» — Tu imamo omejitev — dolžine imen na 8 znakov (CP/M zbirke) PACKAGE BODY preizkus IS — Primer glavnega programa TYPE tabela IS ARRAY (1 .. 10, 1 10) OF integer» mult tab: tabela; BEGIN ~ FOR 1 IN 1 .. 10 LOOP FOR j IN 1 .. 10 LOOP mult_tab(i,j) j*i» END LOOP; END LOOP; — Dodatni stavki END preizkus; Paketno telo ne potrebuje stavčnega zaporedja in tako zaporedje se največkrat uporabi za Ini-ciallzacijo glavnega programa. Uporabnik lahko oblikuje podprogramski paket v obliki knjižnice. Zasebni tipi se uporabljajo za podatke podprogramov, za prikrivanje predmetnih podrobnosti uporabniku. Cilj tega je zaščita ali abstrakcija. Deklaracija zasebnega tipa se lahko pojavi le v paketni specifikaciji. Imamo dve obliki zasebnih deklaracij: PRIVATE in LIMITED PRIVATE. Deklaracija zasebnega tipa povzroči, da postane tipsko ime dosegljivo za druge pakete, vidljivost pa ostane ohranjena le v paketu s to deklaracijo. Zasebni tipi se lahko uporabljajo le za deklaracijo, prireditev in primerjavo na enakost in neenakost. Zunaj določujočega paketa je zaseben tip le zaseben. Drugi paketi ne poznajo dejanskega tipa, kar pa ni pomembno. Drugi paketi tako ne morejo uporabljati te informacije. Ni pa dopustna uporaba zasebnega tipa v paketih, kot je npr.i - deklariranje imenovane konstante zasebnega tipa - inicializacija spremenljivke ali parametra 2 literalom - dereferenciranje zasebnega tipa kot zapisa Omejeni zasebnltlpiso podobni zasebnim, le da so bolj omejeni pri u-porabl. Veljal - prireditve In primerjave niso dopustne - deklaracija spremenljivke tega tipa ne sme Imeti Inlclallzaclje - konstante tega tipa ne morejo biti deklarirane Te omejitve ae razSlrjajo äe na polja in zapise, če ti vsebujejo elemente ali polja omejenega zasebnega tipa. Npr.i ■ PACKAGE osebje IS . — Ta paket predstavlja varen način pre-~ gledovanja kandidatov za zaposlitev. ~ Dejansko ime in biografski podatki so — za pregledovaloa maskirani, TYPE oseba IS LIMITED PRIVATE j TYPE delodajalec IS LIMITED PRIVATE» TYPE izkušnje IS LIMITED PRIVATE; TYPE zdravje IS- (trdno, netrdno) ; TYPE poklic IS (teh,e_inž,s_inž,kem,fiz)> FUNCTION poišči_0sebo (delo: poklic) RETURN oseba; — Vrni potencialnega kandidata za do— ločeno delo PROCEDURE natlsni_pregled (kdo: oseba)» — Natisni pregled podatkov za zaposli-—■ tvenega kandidata PRIVATE TYPE oseba IS integer; TYPE delodajalec IS NEW oseba; SUBTYPE izkušnje IS niz(255); END osebje; 4.7. Pravila vidljivosti ve s piko. Zapisi s piko so zelo pripravni za dobivanje enoumnih imen sicer maskiranih predmetov, postanejo pa zelo obsežni pri ločenem prevajanju. Zaradi te neprimernosti se uporablja s t a v-č n i člen USE. Ta člen omogoča uporabniku dostop do predmetov iz paketa z USE deklaracijo, kot da bi bili ti predmeti lokalni. USE člen ima le nekaj omejitev. USE člen ne maskira drugih definicij v trenutno kompilirani enoti; to velja za imena iz drugih paketov z^ USE členi. USE člen se obnaša kot deklaracija na najbolj zunanji ravnini: ničesar ne skriva, toda je lahko sama maskirana z deklaracijami obdajajočih območij. USE člen se lahko pojavi v vsakem vgnezdenem podprogramu ali v osnovnem bloku; moč teh deklaracij pa bo izginila, ko bomo izstopili iz območja deklaracij. Zapisi s piko pa obdržijo svojo moč neglede na veljavnost območja USE deklaracije. To je pomembno pri lokalni definiciji imena, ki je v USE paketu, Npr. : USE kup; USE blt_llb, io, utility; Paket z imenom STANDARD vsebuje definicije za preddefinlrane tipe in podprograme. Uporabniku je ta paket brez nadaljnega dosegljiv in rutine se nalagajo avtomatično v program. Znanje o tem paketu je potrebno uporabniku le tedaj, ko so preddefiniranl predmeti maskirani z drugimi deklaracijami v programu. V takih primerih bo uporabljen zapia s piko za dbstopanje v predde-finirano okolico, ki je zbrana . v zbirki STANDARD.SYM; te zbirke uporabnik ne sme modir ficlratl. Paketi z WITH členi so implicitno definirani v paketu STANDARD. To omogoča uporabniku dostop v paket tudi pri njegovem skritem imenu, dokler je paket STANDARD viden. S posebnimi pravili je določeno območje, v katerem se identifikator lahko uporablja. Zamisli različnih vidljivosti v sodobnih programirnih jezikih predstavljajo spekter, ki ga lahko ponazorimo s tole shemo: -spekter vldljlvosti- zblrnlk C , Pascal Ada 7 BASIC Algol COBOL FORTRAN PL/I f. Ta spekter se razprostira od enostavnega do zapletenega, kjer enostavno pomeni eno samo definicijo Identifikatorja, kompleksno pa dopušča več načinov za več pomenov identifikatorja. Koncepta območja in vidljivosti sta v bistvu enaka. To, kar je v območju podprograma lokalno, je vidno samo zanj; globalno je po definiciji vidno tudi izven območja procedure. V novem ob-mcžju lahko ima identifikator drug (lokalen, globalen) pomen. Podobno kot za procedure velja tudi za bloke. Pri zapisih lahko uporabljamo še operacije s piko, ko dostopamo k poljem zapisa. Npr.: A_zapis.notr := 1; A_zapis.znak := 'i','; A_zapis.zastavica := A_zapis.notr > malo; Zapis je območje in podobno velja tudi za paket. Imena s piko lahko t?>o razširip-.o od napisa na poimenovane pakete, podprog ame, bloke, zanke (vse te možnosti v Janus Adi äe niso implementirane) . Na ta nai^in postane Jokalna spremenljivka tudi globalno dostopna. Ta nafiln dostopanja k maskircinim (Ic)]'.-J.nimi itritìnom omogoči nazadnje tudi ločeno prevajanje paketov. Tudi WITH stavek omogoča uporabniku dostop do imen Iz paketne specifikacije z uporabo izraža- Slovstvo k drugemu delu ((10)) S.Patchen: A Preview of Supersoft's Ada Compiler. Lifelines 3 (1982) , No.4, 29 -30. ((11)) J.G.P.Barnes: Programming in Ada. Addi-son-Wesley, 1982. ((12)) Janus Package User Manuals, 8080 Version 3. July 1982. RR Software, P.O.Box 1512, Madison, Wisconsin 53701. Dodatek B Ta dodatek prikazuje sintakso jezika Janus Ada; ta sintaksa se seveda razlikuje od sintakse uradnega jezika Ada. Rezervirane besede so izpisane z velikimi črkami zaradi boljše pregledno-! sti. Ta sintaksa velja za verzijo 1.4.3, popravki za verzijo 1.4.5 (verzija 1.4.4 se ni pojavila) bodo dani kasneje, številke na levem robu se nanašajo na podpoglavja priročnika v članku (poglavje.4). SINTAKSA JEZIKA Janus Ada (verzija L'I.3) A. 1 idantiflar ii" lattar lattBr_or_dlglt ii- latter I digit latter 11" uppor_ci»aa_lBtter I 1OMer_case_1at t er nunieric_lIterai m» deciinal_number I based_nuniber deeimal.number ti» integer Č. integer] CE exponent] integer n" digit exponent ii» t+3 integer I - integer ba6ed_integer ii» base 4) e>(tended_digit •C CunderscoreD extendod_diglt> » base II" integer BMtended.digit uà digit I letter character_literals ' character ' charactBr_Btring i«» " {character} " pragma ii« PRflGMfl identifier C(argument <, argument>>]| argument ti" identifier I character_Btring I number A. 2 declaration n» objBCt_declaration I type_declaration I eubtype_declaration I number_declaration I Bubprograin_declaration I package_dec1arat i on objBct declaration 11= identifier_lÌBt s CCONSTONT] subtype indication C := expression! | I identifier.llBt « CCONSTftNTJ array_dBfinition 5 number_declaration •«= identifier_list a CONSTRNT 1 iteral_expression | identifier_list 11= identifier <, identifier} type_deelaration 11= TYPE identifier IS typB_definition g type_definition I8= enutnBration_type_dBf init ion I integer_type_definition I real_type_definition I array_type_definition I record_type_definition I derived_type_definition I pr i vat e_t ype_de f i n i t i on BubtypB_declaration 1SUBTYPE identifier 18 subtype_indication g subtype_indication is= type_mark Cconstrainti type_mark 11= type-name I subtype_name constraint n= range_conBtraint derived_typB_dsfinition 11= NEU subtype_indication g rangB_conBtraint ii«= RANGE range range 1■» Bimple_expression .. simple.expresBion enumsrat ion_typB_def init ion »;■> < BnurnBr at i on_T iterai {.enumerati on_ lit era 1 > ) anumoration_llteral 11= identifier I character_literai integBr_typB_definition u= range.constraint rBal_type_dBfinition accuracy_constraint accuracy_conBtraint ii= ~ DELTA simplB_expression Crange_conBtraint3 array_typB_dafinition «t«= ftRRftY indBX_conBtraint OF subtype_indicat ion ind0x_constraint 11= (dÌBcrote_rangB {, dÌBcrete_r«nge» di6crete_range n" type_mart< CrangB_conBtraintJ I range racord_typB_dBfinition « 1= RECORD rBcord body END RECORD record_body 11- compon6nt_list variant I component list t variant l~NULL j coniponsnt_liBt ii" {componant.daclaration> component _dec1arat i on 11" idBntifiBr_liBt I BubtypB_indicatlon | I identifier^list 1 array_typs_definition | variant 11= CASE discriminant name 1 subtype.indication IS {WHEN choicB {I choice} -> component-list} END COSEg choice »a«" BimplB_expression . I diBcrete_rangB I OTHERS daclarative_part aa= {dsclarativB_item} {repressnt at i on-s pecification> {program_componBnt} program_component n= package_declaration I packagB_body declarative item is= declaration I usB_clauBe A. 3 name a a" identifisr I indexed_component I sBl6ct6d_componant I attribute I function_caH indexed_component 31= name (expression {, expression}) ■BBlscted_componBnt a»= name . identifier 1 name . ALL attribute ai= namB ' identifier C< expression literal a«» numeric.literai I enumsration_literai I character_string I NULL expreseion a a" relation {AND relation) I relation {OR relation} I relation {XOR relation} I relation -CflND THEN relation} I relation {OR ELSE relation} relation aa= Bimple_Bxpression Crslational_operator simple_expresBÌon3 I simple_Bxpression [NOT] IN ranga I simple_expression CNOT] IN subtype_indicat ion eimplB^exprBssion 8S=> Cunary_operator3 term {adding_operator term} term a«"" factor {multiplying_operator factor} factor sa"" primary C«» primary] primary a a™ literal I name I function_cal1 I ■^ype.convereion I qualified_expreBsion I ( BxprBssion ) loglcal_operator s 8= AND I OR 1 XOR relational.opsrator 8 8= = I /= I < I <= i > I ) = adding_operator 8 8= + I - I & unary_opBrator 8j= +1-1 NOT multiplying_opBrator ss= * I / I MOD I REM exponentiating_operator 8t= *«■ typa_convor6ion a a" type_inarU < expression ) qualified_exprBSBÌon 8 8= type mark ' < bxprassion ) A. A BBquencB_of_BtatBmentB s«^ statement {statemsnt} statement a a« {label} siraple_Etatement I {label} compourid_statement eimpls^statement 8 8*° assignment_statemant I procedure_cal1 I exit_statement I return_etateriient I goto_Btatement I nul l_etateraent I asm.etatement I i nout _Bt atement compound_statement a 8«" if_statBment I caEe_Btatetnent I loop statement I block label a8<° < (identifisr) ) null_statement 8 a« NULL g assignment _st at ement a 1 variablegname a" expression g If Btatomont ii» . IF condition THEN BBquenco_of_st«tBment« CEUBE BBquonco of.BtatomtsntB^ END IF I condition ii" BoolB«n_e*preBBlon ca*B_statBinent «1« "CPSE oxpression IS => sequence of statements} END CASE 1 loop_otatBfnBnt u= (;ioop_idBntlfiei» i3 CitB>"ation_clause3 baslc_loop Cloop_idontiflorü | booic_loop n" LOOP Bsquence of statementa END LOOP " ~ : Itaration clauBD ii«» FOR loop parameter IN CREVERSE] diBcretB.range I WHILE condition loop_paramBter >i«" Identifier block II« Cblock_idBntifier i] ■ CDECLfiRE declarative part3 BEGIN aequencB of stateniBntB CEXCEPTION~ | lnout_Btat.ement ii= , OUT Bxpression <, expression} j I IN variable name <, variable name> | A.S Bubprogram_dBclaration s:-» Bubprogram_Bpecification | eubprograrn specification st = "procedure 1dent ifisr Cformal part3 I FUNCTION identifier Cformal_part3 RETURN BUbtype_indicat ion formal_part ii" < parameter_declaration ' {) parameter_dećlaratlon> ) parameter_declaration ir= identifier_list i mode subtype indication Ci= expresBlon} modB 11= CIN] I OUT I IN OUT Bubprograin_body ii= Bubprogram_BpBCl f Icat ion 19 declarative_part BEGIN sequence_of statements [EXCEPTION ) 4.6 packaga_d6claration i)= packagB_Ep8clfication |. package specification «i= POCKPGE identifier IB ■tdacl arat i ve item} tPRIVflTE < represent at 1 on_Bpec ific«tion>]' END C identifier] ' package body s!= "package body identifier IS declarative part CBEBIN ~ . sequencB_of_statementB [EXCEPTION Cexceptiòn_handler>l ] END Cldentifier] j private type definition n>= PRIVATE 4.7 use_clauEB USE packagB_name <, packagB_name> | A.8 compilation ii> contBxt_sp8clfication package_dBelaration \l - eontext_speclfication package_body context_spBcrfication ■Cwith_clause> with clausa ii= WITH unit_namB <, unit_nariiB> | 4.9 " exception declaration it" Identifier.liBt i EXCEPTION | 'exception_handler ii= WHEN exception_choice <1 exception_choice> ■"> BequenCB_of_Btatemente exception choice ii" exception_namB I OTHERS 4. 10 ~ repr6BBntation_Bpecification ii" ~ addresB_Bpecification addreBB_Bpecification ii= FOR name USE AT Btatic_BÌmple_oxpreBBÌon | SINTAKSNE SPREMEMBE jezika Janus Ada (verzija 1.4.5) Nova verzija jezika Janus Ada se približuje standardu Ade in zato ukinja nekatere sintaksne kategorije verzije 1.4.3, uvaja pa tudi nove. Določene sintaksne kategorije se zaradi tega spremenijo. Nove sintaksne kategorije soi access_type_definitlon, incoinplete_type_declaration, allocator Ukinjajo se: inout_statement, reprešentation_specification, addres9_speclfication Modificirane so tele kategorije: argument, declaration, object_declaration, number_declaratlon, type_đefinitlon, constraint, . , accuracy_constraint, ' . declaratlve_part, primary, simple_statement, parameter_declaration, package_Bpecification, prlvate_type_defInition Nove sintaksne kategorijo imajo tele definicije: aocess_type_definitlon ;i= ~ ACCESS Bubtype_lndicatIon incomplete type declaration ::■= TYPE identifier ; allocator ::= NEW type_mark > Nekatere modifikacije definicij so: declaration :;= ... I lncomplete_type_declaratlon type_definition ::= ~ ~ ... I accoäs_type definition constraint :«=... | (static expression) primary ::= .... | allocator ~ simple_statement ii= '('brez input_statement') ' private typa_dofInition ::= ... I LIMITED PRIVATE ... pomeni dodatek v obstoječem pravilu. v i še pro c e s o rs k i sistemi s mikroprocesorima im6100 UDK: 681.3.06.IM6100 m. jelavić INSTITUT „RUDJER BOŠKOVIĆ", ZAGREB U ovom radu razmatraju se dvije jednostavnije sistemske organizacije višeprocesorskih siste-mei s mikroprocesorima IM6100. Dan je opis i blok shema sistemskih organizacija sa višesabir-ničkim direktnim i posrednim pristupom sklopovskim globalnim sredstvima. Razradjene su osnovne programske strukture za isključivo dodjeljivanje globalnih sklopovskih sredstava i manipulacije sa globalnim varijablama - semaforima. Na temelju zahtijeva da vrijeme arbitraže za globalno sredstvo mora biti puno kraće od zauzeća i upotrebe globalnog sredstva izveden je zaključak o nivou paralelizma pogodnim za implementaciju na takvim organizacijama. MULTIPROCESSOR SYSTEMS WITH MICROPROCESSORS IM6100 In this paper two simple multiprocessor organizations with microproeessors 1116100 are considered. Discriptions of multibus with direct and indirect access to global resources are given. Program structures for mutual exclusion at hardware level and for manipulation with global variables semaphores are developed. Following the requirement that the time for global resource arbitration must be much shorter than the time the global resource is used a concluison about convenient level of parallelism for implementation on particular organization is made. 1.ÜY0D Općeniti cilj razvoja digitalnih računala uz povećanje pouzdanosti rada je i smanjenje odzivnog vremena. Jedan od puteva da se to postigne je smanjenje vremena osnovnog ciklusa instrukcije. U tehnološkom smislu to se može postići većom gustoćom pakiranja elemenata na čipu. No sve veća gustoća pakiranja praćena je sve većim problemima oko realizacije te posebnog problema oko efikasnog odvoda topline. Iako je poluvodička tehnologija na^ pravila veliki kvantitativni i kvalitativni skok što se tiče pakiranja elemenata, jasno je da se takav razvoj neće moći nastaviti istim tempom /1/. Kako su zahtijevi za većom brzinom i pouzdanošću računala sve veći paralelno sa tehnološkom evolucijom razvija se takva organizacija i programska podrška računarskih sistema koja bi mogla podržavati i iskorištavati paralelne aktivnosti unutar sistema. Kao rezultat toga pojavljuju se računarski sistemi sa više procesnih jedinica - višeprocesorskl sistemi. Unatoč podosta neriješenih problema, organizacija funkcijskih jedinica kao što su mikroprocesori^ memorije, ulazno—izlazne jedinice itd. u višeprocesorske sisteme kada se želi veća pouzdanost i bolja propusna moć sistema danas je postala opće prihvaćena tehnika /2/ Razvoj komercijalnih višeprocesorskih sistema ovisan je i općenito diktiran dostup-nošću pojedinih komponenata na tržištu. Iako danas najnovije generacije mikroprocesora sadrže sve potrebne uvjete za uspješno i efikasno projektiranje višeprocesorskih sistema opravdano je razmotriti mogućnosti organizacije višeprocesorskih "sistema sa mikroprocesorima koji nemaju ugradjena ta svojstva, a sa kojima se ima iskustva u gradnji standardnih mikroprocesorskih sistema. Naročito je to opravdano u uvjetima jugoslavenskog tržišta gdje je dostupnost i mogućnost nabave takvih, a naročito novijih komponenti mala. Takav pokušaj je napravljen u ovom radu, a odnosi se na razmatranje dvije jednostavnije sistemske organizacije višeprocesorskih Slika 1. Organizacija sa direktnim pristupom Bi8tema b mikroprocesorima IM6100. g.ststv-vlhka ■'■ organizacija ga višesabirničkim DIREKTNIM PRISTUPOM Takav oblik organizacije prikazan je slikom 1. Standardnim konfiguracijama mikroprocesorskih sistema.Ml.....MM dodani su medjusklopovi koji omogućuju zajedničku upotrebu globalnih sredstava*. Medjusklopovi se sastoje od sklopova za riješavanje konflikta oko dodjele sklopovskih globalnih sredstava- arbitara i dvosmjernih sklopova sa 3 stanja koji povezuju sabirnice globalnih sredstava sa lokalnim sabirnicama pojedinih konfiguracija Ml....MM. Sklop za arbitražu prihvaća zahtijeva za globalnim sredstvima ZH i po unaprijed utvrđjenom kriteriju odredjuje kojem od zahtijeva će globalno sredstvo biti dodijeljeno /5/i/V. Svaka konfigurncija M generira signale za kontrolu i upravljanje medjusklopova preko veznog elementa IKGIDI PIE (Peripheral Interface Element). Na temelju kontrolnih i upravljačkih signala mikro— * Pod globalnim sredstvima podrazumjevamo sklopovske i programske struktura kojo mogu biti korištene od više konfiguracija. procesora IM6100 vezani element generira A-zastavico Pl, F2, F3, i F4 od kojih se Fl i P5 generiraju direktno (posebne instrukcije), a P2 i P'l- posredno (mijenjajući a registar veznog elementa) /5/. Zahtijevi za globalnim sredstvima generiraju se preko zastavica Fl i F5. Zahti-jev se proslijedjuje arbitru koji generiranjem jednog od DO signala jednoznačno odre-djuje kojem od zahtijeva će biti udovoljeno. Isti.taj signal preko S linije (SENSE) veznog elementa signalizira da je pristup sklopovskom globalnom sredstvu slobodan, a ujedno i povezuje sabirnice dodijeljenog globalnog sredstva aa sabirnicama konfiguracije M koja je generirala zahtjev. Jednoznačnost dodjeljivanja globalnog sredstva osigurana je samom građom arbitra Svakom glo- balnom sredstvu pridjeljen je sklop za arbitražu, pa takvu konfiguraciju nazivamo više-sabirničkom sa direktnim pristupom. Prestan-; kom zahtjeva tj. skidanjem zastavice P onemogućuje se pristup globalnom sredstvu koje LOK LOK ROMI - RAM 1 - GLOBALNA ULA2N0/IZLAZNA JEDINICA Slika 2. Organizacija aa posrednim pristupom sada može biti dodijeljeno slijedećoj konfiguraciji M.ZahtlJev za globalnim.sredstvom realiziran Je slijedećim programskim odsječ- broj stanja instrukcije ( 17 ) kom: SFLGx SKIPx /postavi zastavicu Fx /globalno sredstvo Je /dodijeljeno ? D0=17 ( 17 ) JMP .-1 / nel / dal a oelobadjanje globalnog sredstva, instrukcijom: CFLGx /oslobodi globalno /sredstvo I resetiraj Fx ( 17 ) Zahtijev za globalnim sredstvom odvija se u vječitoj petlji čekanja, zamjenom instrukcije JMP .-1 sa JUP WAIT može se realizirati eventualna Usta čekanja za konkretno globala, no sredstvo ali to ovisi o vrsti programske podrške implementirane na đatom eistemu. S SISTEMSKA ORGANIZACIJA SA VI.^ESABIRNIČKIM POSREDNIM pnisa?irpoM Karakteristika te organizacije (Sl.2) Je da posjeduje samo Jedan sklop za arbitražu koji Je pridjeljen globalnom RAM-u. Logika za riješavanje konflikta oko dodijele glo- balnog HAM-a rlješava se u Jednom nivou isto kao 1 za sva globalna sredstva u organizaciji sa višesabirničkim direktnim pristupom i to postavljanjem zastavice i ispitivanjem DO signala arbitra, Medjutim u ovoj organizaciji za sva ostala globalna sredstva postupak rl-Ješavanja konflikta odvija se u dva nivoa. Prvi Je kao žto Je već spomenuto sklopovska arbitraža za globalni RAM preko zastavice Pl, a drugi Je ispitivanje rezervirane memoriJake lokacije RAM-a koju nazivamo semaforom S. Za svako globalno sredstvo postoji po Jedna rezervirana lokacija u RAM-u koja indicira zauzeće globalnog sredstva ako Je S=0 ili da Je sredstvo slobodno ako Je G-l. Nakon ispitivanja semafora S ako Je globalno sredstvo slobodno, postavljamo zastavicu F koja povezuje lokalne sabirnice konfiguracije M sa sabirni, čama traženog sredstva. I ovdje je osigurana Jednoznačnost pristupa globalnom sredstvu. Za globalni RAM to je osigurano sklopovskom arbitražom, a za ostala globalna sredstva indikacijom zabrane preko semafora. Kako je sklopovskom arbitražom za globalni RAK omogućen 1 Jednoznačan pristup semaforima to Je uvjet Jednoznačnosti dodjele globalnog sredstva samo jednoj konfiguraciji M zadovoljen. Nakon oslobadjanja globalnog RAM-a pristup aemafo- rima J« omogućen oetalim konfiguracijama U kojo 6« naći da je globalno sredstvo zauzeto, što u stvari znafii zabranu postavljanja zastavice P za povezivanje sabirnica,Programski odsječci za zauzeće i oslobadjanje globalnog sredstva na gore opisani način su slijedeći: • ■ broj 'stanja instrukcije lOP spiai SKIPl JMP'.-I OLA CLL 'TADS ßZA OLA JMP .+3 CPLGl JHP —10 DCA 8 CPLGx OFLGl ION / onemogući prekid (17) / Fl-ll generiranja zahtijeva / za pristup globalnom RAM-u (17) / DOl-17 globalni RAM Je /dodijeljen? (17) / ne l / dal očisti akumulator , (10) /Su akumulator (10) / S>=0? globalno sredstvo Je / zauzeto 7 (lo) / nel (10) /dal oslobodi pristup / globalnom RAM-u / S-OI indikacija zauzeća / globalnog sredstva (11) / dozvoli pristup globalnom / sredstvu (17) / oslobodi pristup globalnom / RAM-u (17): / omogući prekid (17) slijed instrukcija za zauzeće globalnog sredstva lOP / onemogući prekid (17) SPI,Gl / generiranje zahtijeva za / pristup globalnom RAM-u (17) SKIPl / globalni RAM Je dodiJelJen?(17) JMP .-1 /nel OLA IAO / dal akumulator - 1 (10) DCA S / S-ll indiciraj da Je / globalno sredstvo slobodno (11) SFLGx / oslobodi globalno sredstvo (17) CPLGl / oslobodi pristup globalnom / RAM-u (17) ION / omogući prekid (17) slijed instrukcija za oslobađanje globalnog sredstva OriEI/OGUĆI PREKID GENERIRAJ ZAHTIJEV ZA PRISTUP GLOBALNOM RAM-u DA GIX)BALNI RAM JE DODIJEUEN? > NE ire ^ GLOBAI,NO SREDSTVO JE ZAUZETO ? DA indiciraj zauzeće globalnog sredstva i dozvoli pristup globalnom sredstvu i oslobodi pristup globalnom iìam-U i [omogući prekid OSLOBODI PRISTUP GLOBAL -NOM RAM-u IDI NA CEKA -NJE GLOBALNOG SREDSTVA T Dijagram toka programskog odsječka za lause-. 60 globalnog sredstva Dijagram toka programskog odsječka za oslobad đanje globalnog sredstva 34 Na leti način kao 1 u prethodnoj organizaciji eauzoSe globalnog sredstva ne mora ae odvijati u vjsčpoj petlji čekanja, Unjoato naredbe Jlffi-10 može ee upotrebiti JMP WAIT i na taj način postaviti odredjenu konfiguraciju M u listu čekanja na dotično globalno sredstvo. Jasno Je da Je uvjet da se to može napraviti da Jezgro operecionog sistema ima mogućnost manipuliranja sa listama čekanja za pojedina globalna sredstva. ANALIZA VIŠEFROCKSORSKIH SISTEMSKIH ORGANIZACIJA Sistemske organizacije na SI. 1 i SI. 2 zahtijevaju eksplicitno traženje pristupa globalnim sredstvima (preko zastavica i semafora). Razlog leži u tome žto instrukcij-ski repertuar mikroprocesora IliSlOO sa kojima su realizirane spomenute organizacije više-» procesorskih sistema ne sadrži instrukcije koje omogućuju ispitivanje i promjenu memorir-Jskih lokacija RAM-a u Jednom ciklusu instru-; kcije u toku kojega bi zadržavali isključivi pristup toj memorijskoj lokaciji. Zbog toga se isključivi pristup globalnim sredstvima postiže eksplicitnim metodama koje su općenito gledano neefikasne ali Jedine moguće u ovom slučaju. Eksplicitne metode zahtijevaju viče vremena, Jer podrazumijevaju izvršavanje instrukcija rezerviranih za postavljanje zahtjeva za sklopovskim globalnim sredstvima i manipuliranje sa semaforima. Da bi sistem bio efikasan, vrijeme potrebno za arbitražu za nekim globalnim sredstvom mora biti puno manja (za red veličine) od vremena korištenja globalnog sredstva. Ako sa t^ označimo vrijeme arbitraže za globalno sredstvo (izvršavanje instrukcija rezerviranih za zauzeće globalnog sredstva), sa t^ vrijeme oslobađanja globalni nog sredstva (izvršenje instrukcija rezerviranih za oslobađanje globalnog sredstva), sa tj^ vrijeme u kojem arbitar odluči kojem od zahtijeva će pridjeliti globalno sredstvo i povezati sabirnice-, sa tg vrijeme koje Je potrebno arbitru za resetiranje DO signala nakon prestanka zahtijeva ZH i sa t^j, vrijeme zauzeća globalnog sredstva možemo napisati relaciju: t^^ 10 [(t^+t^) + t^+tj Kako Je,j i ^d^^o možemo pisati: Ako t^ i tg izrazimo sa brojem stanja instrukcija za slijed instrukcija za zauzeće i oslobađanje globalnog sredstva za obadvije organizacije dobijemo slijedeće rezultate**, t^ - 34 stanja za org. sa direktnim pristup, t^ » 17 stanja za org. sa direktnim pristup. t^ « 153 stanja za org. sa posrednim pris. t^ ■ 123 stanja za org. sa posrednim pris. Konačno dobijamo rezultat: t-pj^JlO stanja za organizaciju sa direktnim pristupom i tl»à2760 stanja za organizaciju sa posrednim pristupom Trajanje stanja instrukcije ovisi o taktu os-cilatora mikroprocesora, pa Je: Jednog gdje Je Tjj trajanje Tb 'zGd stanja mikroprocesora IM6100 (tab. 1) IM6100 VCC-5.0V fc- 4KHz 500 ns ^255 ^s IM6100A Vcc=10.0V fc= 81,3 z 250 ns >127,5 Ais *Z5E_ 2 0.69 ms >1.656 ms I1Ì6100C Vcc-5.0 fc- 3.3MHz 600 ns > 306 ps tab. 1 tj,(j određuje zapravo najmanje vrijeme korištenja globalnog sredstva da bi bio zadovoljen prije navedeni zahtij'ev o efikasnosti tistema, a implicitno i nivo paralelizma pogodan za implementaciju na spomenutim sistemskim organizacijama, t^j, podijeljen sa prosječnim brojem stanja po instrukciji koji iznosi 12,2 /6/ daje približan broj instrukcija koje bi se trebale izvršiti između dvije uzastopne dodjele globalnog sredstva. Broj instrukcija za organizaciju sa direktnim pris— tupom iznosi 42, a za organizaciju sa posred-' nim pristupom 227. To sugerira implementaciju paralelizma /7/ na nivou logičkih cijelina zadatka za organizaciju sa direktnim pristupom i na nivou zadataka za organizaciju sa posrednim pristupom. * za opravdanost tih uvjeta vidjeti /3/ u kojem se pokazuje da Je vrijeme t, u realiziranim arbitrimaveličine par stotina nano-sekundi, ovisno od broja zahtijeva ZH koje arbitar može poslužiti, a t-^ t, dok Je prosječno izvršavanje instrokcije IM6100 sa prosječnim brojem stanja 12,2 kod 41£Hfc više od 6 ffB, ** uzet Je slijed instrukcija kod slučaja da Je globalno sredstvo slobodno. Nalaženje da Je sredstvo zauzeto i problem zagušeno--sti cjelokupnog sistema spada u kategoriju problema interferencije u višeprocesorskim sistemima. 5. ZAKUUČAK Dvije opisane konfiguracije sistema pokazuju relativno jednostavan način reallzacl-' je vlšeprocesorsklh sistema sa mikroprocesorima koji nisu pređvldjenl za takve namjene 1 sa međusklopovlina koji su relativno lako dostupni, 4 vrste arbitara detaljno su obrađeni u literaturi /3/, a realizirani su sklopovima srednjeg 1 malog stupnja Integra-: clje. Broj konfiguracija standardnih mikroprocesorskih sistema M nije ograničen iako će se odraziti na efikasnost sistema posebno u slučaju organizacije sa posrednim pristupom. Uočava se da implementiranje većeg nivoa paralelizma povlači za sobom kompleksnija sklopovska riješenja. Daljnji korak u rlje-šavanju implementacije većeg paralelizma bio bi implementacija rezerviranih instrukcija koje bi mogle osiguravati čitanje sa isključivim pristupom memoriji i pisanje. To bi se moglo postici normalnim instrukcijama ograničenim na odredj eni adresni prostor uz asi- , stenclju kompleksnijeg međusklopovskog riješenja. To bi nadalje omogućilo implementaciju 'Dljkstrinlh algoritama /8/ za ulazak u krir tičnl odsječak. Treba napomenuti da ovako koncipirane organizacije dopuštaju paralelan rad onoliko konfiguracija mikroprocesorskih sistema koliko ih je uključeno u organizaciju 1 da nisu ograničene samo na realizaciju sa mikroprocesorom IM6100. Osiguravanjem isključivog pristupa globalnim sredstvima kao 1 uvođenjem globalnih varijabli - semafora stvorene su pretpostavke za efikasnu implementaciju jezgre vlše-procesorskog aistema, koja bi osiguravala komunikaciju i koordinaciju između raznih zadataka nekog kompleksnog programa te efikasno korištenje skupih ulazno-izlaznih Jedinica. LITERATURAi /1/ CAY WEITZMAN, "Distributed Micro/Minicomputer Systems", Prentice-Hall, Inc. Englewopd Cliffs, New Jersey, 1980.. /2/ PHILIP H. ENSLOW.JR., "Multiprocessors and Parallel Processing", Comtre Corporation John Wiley & Sons, 197^. /5/ MARINO JELAVIĆ, "Rasporedjivanje procesa u računalima s više procesora" Magistarski rad, Ilektrotehničkl fakultet, Zagreb 1982. /V JELA7IĆ, "The structure and analysis of arbiters based on priority, . ring, distributed and FIFO selection", la^'^ Internatlon Symposium on Mini and Microcoi;iputess and their Application, .Davos, lCarch-2-5. 1902. /u Stampi/. /5/ "Intersil IM6100 CMOS 12 bit Micropro-cesor", 10900 N. Tantau Ave., Cupertino, Calif. 95014. /6/ ,N. B0GUH0VIĆ, M. JELAVIĆ, "An univer-. sal microprocessor system for data acquisition and registration", IMEKO Symposium on Computerized Measurement, Dubrovnik, Yugoslavia, 1981, p.287-290 /7/ ANTHONY RALSTON, CHESTER L. MEEK, "Encyclopedia of Computer Science", Petrocelli/Charter 1976. /6/ EDWARD G. COFFMAN, JR., PETER J. DENNING "Operating System Theory", Prentice H all. Inc. Englewood Cliffs, New Jersey, 1975, p. 1-82. vmdp - softverski monitor z on line prikaz aktivnosti racunara cdc 3170 zlatko dolenec UDK: 681.326.0 TEHNIČKA VOJNA AKADEMIJA KoV JNA ZAGREB Prikazani su namjena, način rada i ugradnja monitora VMDP u operativni sistem MASTEE/CDC 5oooL. Monitor VMDP (Video Monitor Dump Program) izgrađen je kao rezidentni task operativnog sistema koji u kontroliranim vremenskim intervalima nadgleda sistemske tabele i daje na ekranu terminala prikaz aktivnosti batch programa i CPU taskova, aktivnost suspenzije, iskoristivost memorije i CPU, te neke podatke za analizu performansi sistema. Sinhronizacija rada monitora VMDP i ostalih komponenti operativnog sistema postignuta je međusobnim isključenjem- VMDP - A SOFTWAHE MONITOR FOE ON LINE DISPLAY THE CDC 317o COMPUTES SYSTEM ACTIVITIES The objective, modes of action and insertion the VMDP software monitor into MASTER/CDC 3oooL operati^ system are described. VMDP (Video Monitor Dump Program) monitor was built as resident operating system task that inspects system tables in controlled time intervals and displays batch jobs, CPU tasks and suspension activities, memory and CPU utilization, and some data for performemce analyses. Synchronization between VMDP monitor and smother parts of MASTER operating system was achieved with mutual exclusion. 1. Uvod Postojeća konfiguracija računara CDC 317o instaliranog na TVA KoV JNA ima konzolni pisač kao sredstvo komunikacije između operatora i sistema. Sporost pisača i prisustvo papira na kojem je i polazište i odrediSte poruka između operatora i sistema, onemogućavaju ili čine krajnje neekonomičnim njegovu upotrebu za prikaz većih količina podataka koji se ažuriraju u kratkim vremenskim intervalima. Sistem CDC 317o ima mogućnost da se komunikacija operatora i sistema vrši putem posebnog videoterminala i uz podrSku odgovarajućeg sistemskog softvera, ali taj dio opreme nije nabavljen uz postojeću konfiguraciju. To je razlog da je sada broj upita i odgovora koji se mogu dobiti putem konzolnog pisača veoma skroman. Podaci o aktivnosti sistema dobivahu se jednokratno na poseban zahtjev (komandu) i daju samo informaciju o tome koji batch programi su aktivni, a koji čekaju na aktiviranje. Motiva za izgradnju monitora VHDP bilo je više. Prvo f to je bila potreba da se programska aktivnost na nivou korisnika i operativnog sistema učine vidljivima iz eđukativnih razloga za sluSaoce specijalnosti račenarke tehnike i Siri krug korisnika profesionalno vezanih uz računar. Zatim, ugradnjom u sistem vlastitog interaktivnog procesora sistemskih kontrolnih komandi, udvostručen je broj batch programa koji mogu raditi istovremeno (sa tri na šest), a to je povećalo napor operatora da formira optimalno punjenje računara, a obzirom na to da dio programa moSe ući u sistem putem terminala, dakle bez njegove kontrole. Jedan od zadataka monitora VMDP bio je taj da omogući operatoru uvid u aktivnost sistema i zauzeće njegovih kritičnih resursa. Prikaz dinamike koriStenja pojedinih resursa sistema omogućuju direktno ili indirektno mjerenje i analizu nekih performansi sistema. Pored toga, način realizacije monitora VMDP i njegovo mjesto unutar operativnog sistema MASTEH omogućuju on line analizu situacije u slučaju neobičnih manifestacija u radu sistema ili u slučaju njegovog potpunog zastoja (deadlock). To je značajni dobitak za održavanje sistema, s obzirom na to da se takva analiza u operativnom sistemu MASTER može napraviti samo dugotrajnim i kompliciranim off line postupkom (dump rezidentnih tabela na magnetsku traku, ponovna inicijalizacija operativnog sistema i dump sadržaja trake na linijski Štampač, pa tek tada analiza zatečenog stanja sistemskih tabela). 2. Zadaci i način rada monitora VMDP Monitor VMDP može raditi u statičkom i dinamičkom režimu rada. Dinamički režim rada naziva se MONITOR mod, a statički DUMP mod. U dinamičkom režimu rada VMDP automatski i bez intervencije operatora nadgleda, obrađuje i prikazuje različite aktivnosti računarskog sistema. U statičkom režimu rada se nadgledanje aktivnosti sistema vrSi jednokratno, na poseban zahtjev operatora. Upravljanje radom monitora VMDP vrSl se interaktivno ea istog terminala na na kojem se prikazuju podaci o aktivnosti sistema.' MOWITOR mod Zadatak Je monitora VHDP u režimu rada MONITOR mod, da u određenim intervalima vremena vrSi nadgledanje sistemskih tabela operativnog sistema MASTEH i daje prikaz slijedećih podataka na ekranu terminala CDC 211 ; • (■ - pokretni indikator zauzeća fizičke memorije raspoložive za korisnike - imena aktivnih batch programa i iznos dotad utrošenih resursa svakog aktivnog programa - imena batch programa koji čekaju da budu aktivirani i iznos resursa koje će svaki od njih tražiti od sistema - imena CPÜ taskova koji čekaju na CPU - imena CPÜ taskova suspendiranih na disk - imena trenutno aktivnih CPU taskova nekog aktivnog batch programa - ključni podaci iz vektora stanja (deskriptor hardverskog i softverskog konteksta taška) bilo kojeg taška poznatog operativnom sistemu (uključujući i^taskove koji su vlasništvo operativnog sistema) - kumulirano vrijeme rada CPU za korisnike - kumulirano vrijeme CPU za rad operativnog sistema MASTEH - faktor napredovanja svakog aktivnog batch programa u vremenu , - faktor napredovanja operativnog sistema MASTER u vremenu - iznos logičke memorije raspoložive za batch programe - vrijednost kvantuma vremena (time slice),' ime verzije operativnog sistema pod kojom računar radi, sistemsko vrijeme i datum. Većina ovih podataka prikazuje se na ekranu istovremeno, a samo neki podaci se odabiru selektivno putem odgovarajuće komande. Slijedeće komande (odvojene zarezom) mijenjaju način rada monitora i sadržaj dijelova ekrana: TIHI, TIM2, PAUS, JOBT, TASK, MONI, XXXI Komandama TIMI i TIM2 mijenjaju se dužine vremenskih intervala u kojima VMDP vrši uvid u stanje sistema i prikaz tog stanja na ekranu. Komandom PAUS se monitor VMDP stavlja u miro- vanje kroz zadati broj minuta (max 99), a terminal CDC 211 stavlja na raspolaganje sistemu. Nakon isteka zadatog broja minuta, VMDP se javlja operatoru porukom na konzolnom pisaču, tražeći ponovnu inicijalizaciju (dodjela terminala CDC 211) ili novi interval mirovanja. Komandom TASK se VMDP stavlja u takav način rada da se u lijevom dijelu prve linije ekrana prikazuju odredeni podaci iz vektora stanja bilo kojeg taška u sistemu. Ti podaci su status taška (spremnost, neaktivnost, čekanje na neki resurs, čekanje na završetak 10 operacije, itd), dinamički prioritet taška, ime taška pozivnika i Još neki drugi podaci. U komandi TASK identifikaciju taška čine njegovo ime i ime batch programa u kojem je task invociran. Izostavljanje imena batch programa znači da se radi o tašku koji pripada operativnom sistemu MASTER. Komandom JOBT se u prvoj liniji ekrana ispisuju imena aktivnih taskova batch programa koji je u komandi naveden svojim imenom. Aktivni taskovi u gornjem kontekstu su oni koji su se u času monitoriranja sistema nalazili u listi čekanja za CPU. Komandom XXXX monitor VMDP iz stanja MONITOR mod prelazi u statički režim rada - DUMP mod. .Komandom MONI pokreće se obrnuti postupak, dakle prelaz iz DUMP moda u MONITOR mod. Nakon inicijalizacije ili nakon komande MONI, VMDP uvijek radi u MONITOR modu. Unutar MONITOR moda ciklički u vremenu ponavljaju se dva stanja. To su MONITOR mod 1 i MONITOR mod 2. Svako stanje predstavlja određeni tip nadgledanja aktivnosti sistema. U MONITOR mod 1 vrši se nadgledanje, obrada i prikaz aktivnosti sistema na nivou batch programa (Job scheduling), a u MONITOR mod 2 na nivou taskova (task scheduling). Ta stanja se ponavljaju u vremenskim intervalima 3ooo milisekundi za MONITOR mod 1 i 5oo milisekundi za MONITOR mod 2. go su default vrijednosti koje se komandama TIMI i T1M2 mogu mijenjati u toku rada monitora. Ekran terminala CDC 211 ima veličinu od lo4o znakova (15 linija po 8o znakova). Slika 1. prikazuje primjer sadržaja ekrana u (default) MONITOR modu. Linijom ekran je podijeljen na dva dijela. Ispod te linije prikazani su podaci o aktivnosti sistema na nivou batch programa, i to tako da su na desnoj strani prikazani podaci o aktivnim batch programima (najviše 6), a na lijevoj podaci o programima koji čekaju da budu aktivirani (najviše ?)• Za aktive programe ti podaci su navedeni ispod parola koje imaju slijedeće značenje: JOB INIT - ime aktivnog batch programa SCHT - broj minuta CPU scheduliranih za taj program TDflÉ - postotak utrošenog vremena SCHT HH% - postotak utrošenih linija linijskog štampača (schedulirana vrijednost se ne prikazuje) B - broj scheduliranih diskova COH - broj memorijskih parcela koje u tom trenutku zauzimaju taskovi batch programa PN - faktor napredovanja programa u vremenu između dva uzastopna stanja MONITOR mod 1 1 ItEMOST % O««»« • ^^mmmm 90"""» SUSP: 2 m TASK: X FTND COST *MOH 3 MONI«»J AC T I V E 09/56/18 TIHE2: : 5oo MS 4 ---KHT TVA —— ---- VIDEO MONITOR DUMP PROGRAM ----- o5/o9/82 ---- — 5 JOB BCHD CL COH TIM BTC DI8KB SCHT TIM?Ž LIK9S JOB INIT B 1 COR PN 6 UCBLIVA B , 6o 25 1 1 AVIÄ 4 5o "73 15 FTNUAGC 42 27 7 KPEBLIST B. lo 5 0 ITOM 116 lo 16 1 ABSGSP 0 25 52 8 FTNÜ1561 I Ä5 5 0 MA24 2 2o 5 0 IJMTD005 12 5 9 FTNU1562 I 5 0 JTBL 6 5 57 52 C08TLIST 27 15 lo MVRVUC5 C 73 25 0 EDIT 3Z 11 QUAN 3o 12 TIMEl: 3ooo MS SUM CORE US: 86 1 ìi 15 USEH TIME.: 2o73 SEK MASTER TIME: 1586 SEK MASTER PN: 22 y Slika 1. Primjer sadržaja ekrana u (default) MONITOR modu. Četiri batch programa rade konkurentno, a njih pet čeka na aktiviranje. Ü'listi Sekanja na CPU nalazi se pet taskova poredanih po prioritetu, a na vrhu liste Je task koji trenutno drži procesor. Za programe koji Sekaju na aktiviranje ti su podaci: JOB SCHED - ime programa CL - klasa (prioritet) programa COR - schedulirani broj memoriJskih parcela IpgiSke memorije Tin - schedulirani broj minuta CPU BYC - broj koji kaže koliko puta Je program bio viđen za aktiviranje DIBKB - broj scheduliranih diskova Postotak trenutno upotrebiJene korisničke (fizičke) memorije prikazan Je uz parolu SUM CORE US. Nakon punjenja rezidentnog dijela operativnog sistema u memoriju, veličina memorije raspoloživa za korisničke taskove prikazana Je U2 parolu PMEH. ÜBER TIME Je kumulativno vrijeme rada CPU koje ide na račun korisnika, a MASTER TIME Je kumulativno vrijeme rada CP0 za sistemsku egzekutivu i taskove operativnog sistema. Podatak koji Je naročito ineresantan operatoru Je AVLM. To Je veličina trenutno raspoložive logičke memorije, a to Je ona memorija za koju se natječu batch programi kad čekaju na aktiviranje. Početna vrijednost logičke memorije je u insta-lacionoj proceduri postavljena na vrijednost raspoložive fizičke memorije (PMEM) uvećanu za određeni postotak. Time Je omogućeno da u konkurentni rad krene viS« batch programa nego Sto bi to bilo moguće računajući raspoloživu stvarnu fizičku memoriju^ s obzirom na to da zahtjevi za stvarnom memorijom unutar batch programa variraju u toku vremena. Konflikte u zahtjevima za stvarnom memorijom operativni sistem razrje-Sava suspenzijom taskov« na magnetski disk. Svi podaci u donjih devet linija ažuriraju se u vremenskom intervalu;uz TIMI. Linija broj 3 daje informacije o stvaju rada monitora VMĐP (ACTIVE ili STOPPED), trenutno vrijeme u sis- temu i interval vremena u kojem se ponavlja stanje MONITOR mod 2 (TIME2). U stanju MONITOR mod 2 vrši se ažuriranje podataka u prve dvije linije. U default MONITOR modu (kada ne djeluju komande TASK i JOBT) se u prvoj liniji ekrana iza parole MEMORY u taktu intervala TIME2 pokreću markeri koji brojem ispred sebe daju grubu indikaciju postotka zauzeća fizičke korisničke memorije. Lista imena taskova (najviše 8) koji čekaju na CPU prikazana je u drugoj liniji iza parole RDY TASK. Taskovi su, od lijeva na desno poredani prema rastućem prioritetu koji tog trenutka imaju, U prvoj liniji, desno od parole SUSP nalaze se imena taskova koji su zbog konflikta u zahtjevu za stvarnom memorijom suspendirani na disk. Komandama TASK i JOBT se iz prve linije uklanjaju pokretni markeri, a na njihovo mjesto dolaze podaci u skladu sa komandom. Nakon razaranja taška ili terminiranja batch programa, monitor VMDP u prvoj liniji ekrana ponovno prikazuje pokretne markere zauzeća korisničke fizičke memorije. Izmjena stanja MONITOR mod 1 i MONITOR mod 2 čini osnovu u dinamici rada monitora VMDP. Način izmjene tih stanja i globalnu shemu zbivanja prikazuje program vmdp na slici 2. Centralno mjesto svakog stanja Je pristup podacima u određenim sistemskim tabelama operativnog sistema, te obrada i transfer tih podataka u buffer u kojem sa nalazi maska sadržaja ekrana (slika 1.) terminala CDC 211. Sistemske tabele pristupne su samo rutinama egzekutive EXEC i taskovima operativnog sistema koji imaju posebne privilegije. Odnos monitora VMDP i ostalih komponenti operativnog sistema MASTER Je konkurentan. a ne kooperativan. To znači da monitor VMDP tu implementaciji to Je task operativnog sistema) ne izmjenjuje podatke sa drugim dijelovima operativnog sistema i jedini njegov izravni kontakt sa egzekutivom su sistemske tabele kao zajedničke varijable. I^ob-lem sinhronizacije u radu monitora i drugih dijelova operativnog sistema prilikom pristupa sistemskim tabelama, rijeSen je uvođenjem kri- probran vmdp; type statio " (finleh,ačtiv«,abnorm)j var BtatuBi statio) aco,timl,tlm2i real) komunikacija sa oparatorom i vezivanje na termunlt; unca maske ekrana sa-diska: inioijalizacija konstanti i kontrolnih varijabli; • timlt"3ooo; tim2i-5oo; • repeate begin ^MONITOR mod 1») disable interrupt; monitoriranje batch program aktivnosti; enable interrupt; obrada i transfer podataka na termunit; end acc:-o; repeate begin (* MONITOR mod 2*) disable interrupt; monitoriranje aktivnosti taskova; enable interrupt ; obrada 1 transfer podataka na termunlt; read(termunit,..»status.ready); pause(tim2); case status of active! acc:-acc+tim2; finish: begin read(termunit(Statua,valt); 'ri- ease status of finish: begin abnorm: end abnorm: ioerror; pozivanje odgovarajuće rutine u skladu sa komandom; acc:-timi; end ioerror; end end end until acc timi; until forever end. 81ika 2. Globalni tok zbivanja u monitoru VMDP tične aone u k5d monitora. Kritična sona pea-lisirana Je isključenjem prekidnog sistema (disable interrupt) prije pristupa sistemskim tabelama, 1 ponovnim uključenjem (enable inter rupt) nakon pristupa. Takvo rjeäenje omogućeno Je činjenicom da postojeća konfiguracija raču-nara CDC 317o ima Jedan centralni procesor, da se oduzimanje procesora taskovima vräi i bez njihovog "pristanka" (time slice prekid), i time Sto Je vrijeme boravka monitora VMDP u svojim kritičnim zonama vrlo kratko (nekoliko milisekundi). Komunikacija sa monitorom VMDP započinje tako da se prekine automatizam u izmjeni stanja MONITOR mod 1 i MONITOR mod 2. To Je moguće učiniti u vrijeme kada se monitor nalazi u stanju MONITOR mod 2. Tada (slika 2.) program v&dp inicira operaciju čitanja sa terminala i nastavlja rad konkurentno aa odvijanjem te operacije (parametar ready u naredbi read). Taj nastavak rada Je IzvrSavanJe makroinstrukcije pause(tim2), kojom se monitor VMDP stavlja u stanje čekanja na CPU u trajanju od timž mili sekundi. 0 tom vremenskom intervalu operator ima mogućnost da pritiskom na tipku SEND terminala CDC 211 zavrSi iniciranu operaciju čitanja (status finish). Ako se Je to desilo, program vmdp unosi u treću liniju ekrana poruku STOPPED i inicira novu operaciju čitanja aa terminala, ali sada sa parametrom wait. tako da monitor čeka neograničeno dugo da se ta operacija čitanja završi. Operator tada unosi u prvu liniju ekrana neku od prije navedenih komandi 1 pritiskom na SEND daje znak da Je operacija čitanja realizirana. U skladu sa vrstom komande, monitor mijenja uvjete 111 način rada, a procesiranje se nas- tavlja u Btanju MONITOR ood 1. Ako 88 prv« operacija čitanja terminala nije eavräila (oporo-tor'u intervalu od tim?, milisekundi ni;Je pritisnuo tipku DEND) vrijednost tim3 bo kumulira u varijabli acc, a etanje MONITOR mod 2 oe ponavlja. Kad vrijednost varijable acc poetane Jednaka ili veća od timi, monitor VMDP prelaui u stanje MONITOR mod 1 i ciklue ae ponavlja. Vrijeme tim2 dovoljno J® veliko da se monitor nnkon Jednog 111 dva pritiska na tlpku CENI) "uhvati" u pauz-i i tako prekine njegov rad. m;HP mod Namjena Je DUMP moda u radu monitora VMDP da 89 na ekranu prikažu i■neki drugi interesantni podaci o radu eiotema, a koji iz nekog razloga nisu prikazani u MONITOR modu. Prilikom rada u DUMP modu, monitor VMĐP poziva u rad task sa imenom DUMP koji se nalazi na sistemskoj biblioteci na mapinetskom disku. Zadatak Je taška DUMP da u okladu sa svojom namjenom formira podatke u bufferu veličine ekrana terminala ODO 211, te da te podatke i kontrolu vrati monitoru VMDP. Nakon povratka kontrole, VMDP vrSi transfer tih podataka na ekran terminala i čeka na novu komandu operatora, koji ili nastavlja rad u DUMP modu (ponovno komanda XXXX) ili komandom MONI prelazi u MONITOR mod. Zbog toga Sto ae task DUMP gradi i instalira na sistemsku biblioteku neovisno o monitoru VMDP, DUMP mod Je pod kontrolora vlastitog instalacio-nog parametra koji uključuje ili isključuje DUMP mod u radu monitora VMDP. U vrijeme pisanja ovog rada task DUMP nije bio napravljen, pa Je DUMP mod isključen u instaliranoj verziji monitora. 3. Praćenje i analiza dinamika rađa aistema Za uvid u dinamiku rada operativnog sistema i svakog aktivnog batch programa, od posebnog au značaja faktori napredovanja FN koji se računaju na slijedeći način: FN(MASTER) - FNj . T^/tj gdje su T„ -vrijeme CPU koje au između dva uzastopna stanja MONITOR mod I potroSili taskovi operativnog sistema i egzekutiva EXEC T. -vrijeme CPU koje su između dva uzastopna stanja MONITOR mod 1 potroSili taskovi i-tog batch programa t, -realno vrijeme između dva uzastopna ^ stanja MONITOR mod 1 U svakom stanju MONITOR mod 1 mora biti FN(MA6TER) + " 1 gdje indeks "i" ide po svim aktivnim batch programima. Na ekranu se faktori napredovanja iskazuju kao postotci, a njihovo vrijednosti 1 međusobni odnos ovise o broju aktivnih batch programa, o njihovom sastavu (compute programi, 10 programi), kao i o načinu na koji MASTER razrJeSava konflikte u eahtjevlma za resuraina sistema. Suma predstavlja direktno lakorJatl- vost CPU, a FN(MA8TER) gubitak u iskoristivo« ti CPU zbog rada operativnog sistema i bespoa-lenosti CPU. Na primjer, ako u sistemu nema aktivnih batch programa, tada je FN(MABTER)»loo?ž, a cpu troS« jedino task besposlenosti i, naravno monitor VMDP. Ako Je aktivan Jedan ili viSe "čistih" compute programa, tada Je FN (MASTER) »4%, pa c jrh<^Ed zbog rada operativnog sistema potječe eamo od rada monitora VMDP i rada egzekutive exec na obradi time slice prekida. Ako Je workload takov da ima i compute i X0 programa tada se FN(MASTER) kreće od do 5o% ovisno o karakteristikama takva skupine aktivnih programa. Posebno nepovoljan slučaj u iskoristlvoati cpo javlja se onda kada operativni sistem konflikte u zahtjevima za memorijom razrjeSavE Čoatom suspenzijom korisničkih toekova na magnetski disk. Gubitak iskoriativoeti cpij tade aože porasti i na 6o - yo%, pa sißtem radi vrlo neefikasno (trashing). Srećom., ovakve aituacijs aa vrlo rijetke. Pored indikacije ovakvih stenja u radu sistema, monitor vmdp -noie pomoći opera»' toru da formira takav worklpKu koji noće dovss-tl sistem u tako neefikasan rad. Pored indikacije iskoristivosti fcKtoi'l napredovanja pokazuju i sastoje u radu bttcn programa. Ako vrijednost FN aktivnog proi^rnma kroz duže vrijeme postane jednaka nuli, to ja znak da task Ili taskovi tog prograjna na troäo CPU nego čekaju na neki drugi rcauro ill intervenciju operatora. Kada vrijednoaüi PN Bvih aktivnih batch programa postanu jstì;\aka nuli, a ni Jedan od njih ne čeka neku intar'-ensiju operatora, to Je znak da Je Bletem pao c 'artvii petlju (deadlock). Jedini taskovi koji u takvoj situaciji ^".zoès . CPU su task besposlenosti (»flDL) i Eoniócr VMBP» Komandom JOBT se za svalci batch program tada mogu naći imena taskova koji su u stanju čakanja na neki resurs, a komandom T^CK dobiti po~ daći iz njihovih vektora stanja, odakle post»-Je vidljiv uzrok mrtve petlje. 4. Ugradnja monitora VMDP u operativni sistem MASTER Monitor VMDP kodiran je u asemblarakom jazlku, a čini ga 17 programskih modula. Unutci" raSu« narskog sistema monitor VMDP čini jedinat'senu IzvriSnu cjelinu - task #»MON. Task *MON ugrađen Je u rezidentni dio operativnog sistema, a kao task ima posebne privilegije taakova oparatir-nog sistema. Ono što razlikuje task »MOS od ostalih standardnih taakova koji eu u vlasništvu MASTER-a, Je njegov prioritet prilikom dodjele CPU. Posebna rutina egzekutiva EXEC vrši dodjslu CPU taakovlma kombinacijom disciplino yound robin (timo slice) i algoritma koji Je najbliži disciplini SPN (shortest procesa next) i gdje se CPU dodjeljuje tašku sa trenuteo najvišim prioritetom. Prioritet taskova operativnog sistema j® nepK>-Bjenljiv 1 veći od granice koju mogu doseći obični korisnički taskovi. Prioritet korisničkih taskova se mijenja u vremenu i funkcija j« viSa veličina od kojih Je dominantna gustoća 10 prekida koje generira task. Prioritet korisničkog taaka raste sa gustoćom 10 prekida. Zbog Bvoje namjene nadgledanje rada sistem« u Sto pravilnijim vreaenskin raimaci«a, task ««HÖH mora dobiti CPO što je moguće brže od trenutka kada ga iz stanja mirovanja (pause u stanju MONITOR mod 2) posebna rutina egzekutive stavi u listu kandidata za CFD. To je postignuto time da mu je prilikom ugradnje u operativni sistem dodjeljen fiksni visoki prioritet, veći i od prioriteta kojeg imaju standardni rezidentni taskovi operativnog sistema HASTER. To ne ometa normalno natjecanje drugih taskova za CFÜ, jer *MON. dobiva procesor relativno rijetko (default je 5oo ms), a vrijednost kvantuma (time slice) stavljena je na 3o ms, što omogućuje da u vrijeme pauze u radu monitora VHDP desetak drugih taskova dobije CPU. Interval u kojem se ponavlja stanje MONITOR mod 2 ograničen je sa donje strane sa loo ms, kako bi se onemogućio overhead u radu CPU zbog nepažnje operatora prilikom upotrebe komande TIM2. Isto tako, vrijednost TIMI ograničena je sa donje strane na looo ms. Prilikom svog rada monitor VMDP troši resurse koji su normalno namjenjeni korisnicima. To su vrijeme CPTJ, centralna memorija i kanalni procesor. Prilikom izgradnje monitora VMDP trebalo je paziti da utrošak tih resursa bude što je moguće manji. Zbog toga su programski moduli pisani u asemblerskom jeziku, a pažnja je posvećena pišanju što kompaktinijeg k6da, i posebno, realizaciji što kraćih kritičnih zona u stanjima MONITOR mod 1 i MONITOR mod 2. Svi programski moduli, uključujući različite tabele i buffer ekrana zauzeli su zajedno prostor od 16oo riječi (24 bita) rezidentne memorije. Gubitak (overhead) resursa zbog prisustva i rada monitora VMDP je 2.5% centralne memorije i oko vremena rada CPU kod default vrijed- nosti TIMI i TIM2. Utrošak vremena rada kanalnog procesora nije izmjeren, ali je praćenje rada sistema pokazalo da rad monitora ne usporava zamjetno rad korisnika na drugim terminalima. Dakle, overhead u radu sistema zbog prisutnosti monitora VMDP je vrlo mali. Za izradu monitora od ideje do implementacije, te pisanja dokumentacije za održavanje i uput-stva za korištenje, utrošeno je 45 dana po čovjeku. 6. Literatura 1. Library Generation and Maintenance Manual Pub.No. 6o4154oo, CDC Software Public. Div. 2. Hansen P.6.; Operating System Principles Pretince-Hall,_1975- 3. Svobodova L.: Computer Performance Measure ment and Evaluation Methods: Analyses and Applications, Elsevier, New York 1976. tic __, V t Ld UO Mednarodno posvetovanje za mlkroračunalnlSko tehnologijo In uporabo tn razstava mlkroračunalnj&ke tehnologl|e z medna-< rodno udeleilx) i.]ubl|ana, 7.r-g. junija 1983 Gospodarsko razstavišče, Ljubljana Organizatorji: Siovensko društvo Informatika SOZD iskra Gospodarsko razstavište, Ljubljana 5. Zaključak . U toku nekoliko mjeseci ràda monitora VMDP, pokazalo se da je njegova izgradnja bila opravdana u odnosu na motive i potrebe istaknute u uvodu ovog rada. VMDP je omogućio praćenje i detaljan uvid u rad računarskog sistema, olakšavajući time rad operatora i sistemskog osoblja. Sve neobične manifestacije ili zastoji u radu sistema, mogu se sada lako i brzo uočiti i analizirati, i pri tome uštedjeti vrijeme računara i sistemskog osoblja. Znatno je olakšano praćenje rada sistema od strane operatora, a time i njegova efikasnost pri posluživanju računara. Zamjetan je edukacioni efekt podataka koje daje monitor VMDP na suradnike kojima rad operativnog sistema nije bliži interes. Kao mogući nastavak ovog rada očekuje se proširenje monitora VMDP za prikaz aktivnosti 10 sistema. posvetovanje in razstava Infomnatica '83 je srečanje sträkovnjakov, proizvajalcev, uF»rabnikov in drugih interesentov v alpskojadcanskem prostoru (Bavarska, Avstrija, Itaiija, Madžarska in Jugoslavija) z mednarodno udeležbo. Gospodarsko razstavišče v Ljubljani bo s to prireditvijo združilo udeležence strokovnega posvetovanja in razstavljavce na eni sami lokaciji, ko bodo hkrati zagotovljene tudi zadostne hotelske zmogljivosti v Ljubljani. Mednarodno posvetovanje Informatica '83 bo spremljano s seminarji s perečih področij mikrordču-nalniške tehnologije in uporabe. Ugledni mednarodni In domači izvedenci bodo sodelovali pri pripravi preglednih in uvodnih referatov ter v vrsti seminarjev. Srečanje Informatica '83 bo popestreno z dnižabnirhi In kulturnimi prir^itvami v Ljubljani in njeni okolici. Ljubljana bo znova: pokazala visoko organizacijsko in gostiteijsko raven. tiC^'6'ć inTorriia zasnova zanesljivosti programskih sistemov UDK: 681.3.519.718 adolf 2i2ek BETNAVSKA 58, 62000 MARIBOR Računalniških programov ni mogoče sestavljati brez nanal<. Pormaine napake je sicer moooče odkrivati, vsebinske pa se lahko pojavijo šele pri določenih vhodnih oodatkih, po nedoločenem številu tekov programa. Podan je osnutek modela, ki obravnava programe kot naključne sisteme in Dodaja njihovo zanesljivost po analoniji z zanesljivostjo tehničnih izdelkov (hardwara). Software can't be made free from fault in penerai. Formal software faults can be found by usual procedures.- Faults as to content can appear unexpe x t ed 1 y at some input data, i^eliability scheira treatina the last case on the hardware analogy is discussed. SOFTWARE l?EUABILITY SCHEMA 1. Uvod Ce poznamo matematične izraze, ki onisujejo obnašanje določenega stvarnega sistema, bi pričakovali, da bomo s pomočjo računalnika pravilno izračunali odvisnosti med sistemskimi količinami. 2at to ne drži vedno, zaradi odpovedi v računalniškem sistemu ali zaradi napak pri programiranju; z le-temi se bomo ukvarjali v nadaljevanju in sicer s tak?nimi vsebinskimi, ki jih ni mogoče odkriti z običajnimi postopki, s katerimi odkrivamo formalne napake. V takšnih okoliščinah lahko po mnogih pravilnih izidih nepredvideno nastopi napačen izid, pri določenih vstopajočih podatkih. Ce obravnavamo napačni izid kot odpoved programskega sistema, lahko po analogiji s tehničnimi izdelki, ki tudi odpovedujejo, govori mo o zanesljivosti programskega sistema^ Pregled načinov, s katerimi lahko obravnavamo zanesljivost programskih sistemov, z navedbo ustrezne literature, je monoče najti vin. 2. Postavitev modela Opišimo ta vprašanja še formalpo. Bodi X množica vstopajočih podatkov, Y pa množica Izidov. Sp rog ram i raji i matematični izraz določa preslikavo e: XY, ki priredi vsakemu vstopajočemu podatku (lahko je tudi vektorski) točno en izid (tudi ta je lahko vektorski). Ce zanemarimo odpovedi v računalniškem sistemu, prestikuje program vstopajoče oodatke v pripadajoče izide s preslikavo f: XY. Pri pravilnem programu se preslikavi e in f skladata, če pa je v programu napaka, se lahko obe preslikavi skladata le pri nekaterih no-datkih, ali pa sploh ne. Bodi AS X množica vseh vstopajočih podatkov, za katere se obe nreslikavi skladata. Ce tedaj vstavimo v ra^^u-nalnik podatke iz množice A, bodo izidi nra-vilni; v orimeru, da vstavimo oodatke iz množice XSA, pa bodo izidi nanačni. Verjetnost pravilnega Izida je zato enaka verjetnosti, da smo vstavili v računalnik oodatek iz množice A. Forma I i z irajmo doslej povedano še verjetnostnih ved [i^ . Recimo, da s arai i - . je (X,5) merljivi prostor, (fl,T,P) oa verjetnostni orostor. Naj bo A element s-algebre 5 . Tedaj je izbira vstopajočih podatkov ooisana kot naključna s p remen 1 j ivka 5 :n-»X. Ker unorab-Ijamo isti program oonavadi večkrat, prioada vsakemu teku orograma naključna snremen I j ivka 5„. Množica vseh takih naključnih spremenljivk tvori naključni potek (stohastični oro-ces)'{^5„; n« N}. Ce je GS N nodmnožica tekov nrograma, je verjetnost, da v oodmnožici G ne bo napake, enaka tako i menovan i uspešnos t i l'i] naključnega oo teka , II ( R , A ; . M orimeru, da izberemo množico r. = {1,2.......n} , se us- peinost sklada z zdrži i i vost jo P,(n) = ,2 , . . . ,ni,Aj 5) (1) kar je enako verjetnosti, da v nrvih n tekih nrograma ne bo nastopila naoaka. Število tekov nrograma do prvega naoačneoa izida imenujemo oo analoaiji s tehničnimi izdelki t rpežnos t orograma T, ki je naključna količina. Naključni troežnosti lahko oriredi-mo verjetnostne funkcije, znane iz zanesljivosti tehničnih izdelkov: po razde I itveno funkcijo. F(n) = p{t < n} (2) «drž IJ I vos t R(n) - P^T > n y In verjetnost, da nastopi napaien Izid med tekoma n« ter n« ® In, n. i% 1 - p verjetnost napačnega Izida, Je srednja trpežnost (9) enaka tudi E[T] ■i - t q (10) Srednja trpežnost E^T]predstav1 J a srednje število tekov programa do prvega pojava napačnega Izida, Ce tečejo v zanesI J I vostno neodvisnem, zaporednem programskem sistemu njegova sestavine (podprogrami) zaporedoma m.-krat, m.-krat, ..., m^-krat. Je verjetnosi pravilnega Izida v enem teku programskega sistema enaka. Kj- • ■ Pu" "" Ml) - p™«p2'- • • ì111 k razmiltljanju pradvsem tudi zaradi naobičajna vsebinska zgradba predmeta, ki JO preprosto Izven podobnih padagotklh standardov. IFIP-UNEECOvo priporočilo tglaj "Univerzitetni pouk računalništva I", Informatica 2/1960, str, 32), v katerem ja podoben osnovni predmet "Uvod v Informatiko I, II", Ima tole konkretno vaebl-noo organizacija računalnikov, programiranje, razvoj algoritmov, osnove strukturiranega programiranja, preizkušanje programov in odpravljanje napak, procesiranje nizov, iskanje in sortiranje, strukture podatkov, rekurzija. flli JS primerjava domačega in mednarodno priporočenega predmeta za deželo v razvoju sploh mogoča? Trdim, da so možnosti za primerjavo neznatne, da je doma oblikovani predmet s pedagoškega vidika celotnega predmetnika didaktično in vsebinsko skrpucalo, da se v njem mešajo strokovni elementi z eltraenti nekakšne dnevno pragmatike in morda s propričanjern, da računalništvo ni stroka in da je za našega študenta (prihodnjo delovno generacijo) dobro vse, kar se nekofcpetsntno in neodgoverno naključno izbere. In takšrio lekcijo neres/iosti naj damo številnim noviT, Studentom že oti iamem vstopu v visokošolski Su ud i j? V osnovnem predmetu, kot je ko/ici pi ran doma, želimo dati študentu nekaj več, kot je metodološko znanje, dajemo mu nekakšno enciklopedijo naših (strokovno subkulturnih) predstav, na samem začetku mu damo vedeti, da je študij šele začetek strokovnih (nestrokovnih) nejasnosti, ki se bodo med študijem nadaljevale in poglabljale. S tem učimo prihodnjo generacijo tiste nejasnosti, ki je preteklim generacijam onemogočila tehnološki, strokovni in naposled tudi poslovni prodor na zahtevnem dolovnerji področju. Ob primeru osnovnega učnaga predmeta se postavlja vprašanje, kako je s celotnim predmetnikom za smsr računalništva, kakšni kvalitativni standardi so bili upoštevani (če so sploh bili kakšni), ali ni predmetnik nastal kot naključna zbirka predmetov neustreznega in predvsem nesodobnega xnanja predavateljev, ali so se pri tem sploh postavila vprašanja za dvig znanja predavateljev, za konkretno in tehnološko ustrezno izvajanje pripadajočih vaj? Kaj so k oblikovanju programa lahko in smeli prispevati proizvajalci in drugi zunanji subjekti, kjer jb strokovno znanje na višji ravnini kot npr. na fakulteti? K tetnu kompleksu vprašanj sodi vsekakor tudi vprašanje, ali bo bili v redni učni proces pritegnjeni tisti zunanji predavatelji, ki določene discipline poklicno, metodološko in praktično obvladajo. Vprašanja ustreznega visokošolskega študija postaja vsebolj problem upoštevanja določenih kakovostnih standardov 0) v€(A.0.I,E,U,M.G.H.J). Ukoliko su slova M, G, H, ili J četvrto slovo reći onda ne pripadaju navedenom segmentu. (P2) Identifikovanje na kraju reči 1 Izbacivanje segmenta oblika 'OV i 'EV. (P3) Ukoliko Je poslednje slovo red C zame-nlti ga sa K. (P4) Počinjući od četvrtog slova red Izbaciti samoglasnik A. (P5) Za sažeti oblik uzeti najviše četrnaest slova. Navedena pravila primenjuju se u navedenom redosledu. Grupe slova NJ, LJ 1 DJ bez obzira da 11 predstavljaju jedan ili dva glasa kodirane su na sledeči nadn: NJ-vJ, LJ->-% i D0-<-8i. Primeri sažimanja: ZAKŽUCAK P4-»ZAK%UCK P5-»ZAK%UCK. ZAKŽUCKA PUZAKŽUCK PS-<-ZAK«UCK, ZAK^UCKU P1-»ZAK%UCK P5-ZAKXUCK, ZAKStUCKOM P1-ZAKXUCK PS-ZAK^UCK, ZAKŽUCCI P1-«-ZAK%UCC P3-^ZAKSUCK P5-»ZAK«UCK, CRN P5->CRN, CRNOG PI-^CRN P5-»CRN, CRNIH P1-»CRN P5+CRN, HLEB P5-»HLEB, HLEBOVIMA PIh-HLEBOV P2-VHLEB P5-»HLEB . 4. OCENA EFEKTIVNOSTI ALGORITMA Prema postavljenom algoritmu sažimanja napisan Je program na COBOL-u i izvršeno testiranje. Iz jednog skupa deskriptora koji se koriste za indeksiranje dokumenata i upita iz više oblasti (društveno-politićka, pravna, ekonomska, tehnika, poljoprivreda ltd.) izdvojeno Je 1600 deskriptora (imenica u nominativu jednine Ili množine) od po jedne red. Iz istog skupa izdvojeno Je 600 prideva. U navedenom skupu od 2200 imenica i prideva homonimlja sažimanja pojavila se u sledećim slučajevima; dnevnici .DNEVNIK, dnevnice .DNEVNIK; luk.LUK, luka»LUK: narkoman .NARKOHN, narkomani ja+NARKOMN; v 'obvezni d-OBVEZNI K, obveznIca+OBVEZNIK; prostor-^PROSTOR, prostori Je-*PROSTOR; rad1o-»RAD, radovl+RAD; sud-SUD. sud1je-sUD; šečerane-SECERN, §ečerna-+5ECERN; Žena-»2EN, ?eneva-<-2EN. Homonitniju sažimanja 1 zazivaju 1. drugI oblici navedenih Imenica 1 prideva (napr. dnevnika, dnevniku, dnevnikom, Šećeranama itd.). Navedene reCI treba uvrstiti u skup reči za Clje sažimanje treba pronaći posebna pravila sažimanja. Potpuno eleralnisanje 1 sinonimi je 1 homonimije; bez dodatnih ulaznih podataka ne može se ellmi-nlsatl (napr. oblik lüka može nastati kao genitiv jednine od imenice luk Ili može da predstavlja nominativ jednine imenice luka). Radi provere sinonimi je sažimanja Izvršena je obrada 6000 oblika imenica i prideva, pri Cerau su za imenice 1 prideve uzeti samo karakteristični pad-ežni oblici. Sinonimija sažimanja pojavila se u sledečim slučajevima: gra&anin-^GRA&NIN, gra&ani-»GRA&N{ k21ga+K2IG. k21z1->K2IZ; Predlog+PREDL, predlozi-^PREDLOZ; nalog-i-NAL, nalozi-NALOZ; zadruga+ZADR, zadruzUZADRUZ; pruga-i-PRUG, pruzi-PRUZ; prtÄagn-PRTX, prt%az1-^PRTŽZ; . drvo-^DRV, drveta-^DRVET. Homonijima sažimanja pojavila se v sledečim s 1 uča jevi ma : Bečej-BEC, Beč-vBEC( delo+DEL, delovUDEL; , spomenik-t-SPOMENIK, spomenica+SPpMENIK; voda-»VOD, vodovi-^VOD; kosa-^KOS, Kosovo-^KOS; list-^LIST, lista-fLIST; topole->TOPOL. topologi ja-«-TOPOL; elektroenergetika-fELEKTROENERGET, elektroenergetski-vELEKTROENERGET, Iz poslednjeg primera se vidi da je on nastao kao posledica maksimalne dužine sažetog oblika od 14 slova. Pored nabrojanih slučajeva homonimije došlo je 1 do njenog pojavljivanja u desetak slučnje-va kada su u pitanju lična imena 111 prezimona (napr. Petkovič - PETKOVIC, Petakovič - PETKO-VIC; Mileva - MIL, Miloje - MIL Ud.). Kako se imena lica u večini slučajeva pojavljuju u tek- stovima sa punim Imenom 1 prezimenom to se do pojave homonimije u sistemima za memorisanje 1 pretraživanje Informacija može desiti u slučajevima da Istovremeno postoji homonimlja 1 imena 1 prezimena. Posebna pravila za sažimanje oblika imenica 111 prideva koji Izazivaju homon1m1ju 111 sino-nlmlju sažimanja mogu se definisatl za svaki oblik reči 111 mogu biti opStija. Na primer, ako oblik reči počinje sa 'ženev', tada se ne primenjuje pravilo P2. Sažimanjem svih oblika imenice ženeva dobi ja se 2ENEV, te nestaje homonimlja sažimanja sa oblicima imenice žena -2EN. 5. ZAKLJUČAK Predloženi algoritam sažimanja Imenica 1 prideva SH-jezlka pored dobrih rezultata Ima i .odredjenih nedostataka koji su iskazani kroz si.nonimiju i homonimlju sažimanja. Potpuno eie-, mintsanje sinonimije i homonimije sažimanja je nemoguće. Primenom predloženog algoritma pruža se mogućnost automatskog pronalaženja svih pojavljivanja oblika Jedne Imenice ili prideva u nekom skupu tekstova na SH-jeziku. Kako se uz svako pojavljivanje nekog oblika nalaze reference tekstova ili delova tekstova u kojima se taj oblik pojavio.omogućeno je Izdvajanje svih tek-! stova koji sadeže zadatu imenicu 111 pr'idev. Ovakvom tehnikom realizovan je sistem za komunikaciju sa bazom dokumenata na SH-Jez1ku. Dobljeni rezultati s obzirom da se homonimlja 1 sinonimija sažimanja pojavljuje u manje od 0,5X u posroatranoro skupu deskriptora, a da bi sigurno ovaj procenat bio znatno manji da su deskriptori grupisani po oblastima podstiče na usavršavanje predloženog algoritma sažimanja imenica i prideva SH-jezlka i dalja Istraživanja njegove primene. 6. LITERATURA 1. V.P.Zaharov, P.G.Mordovčenko , L.V.Sahar-nlj 'SOVERSENSTVOVANIJE L INGVI ST IČESKOVA OBES-PECENIJA V IPS -BEZTEZAURUSNOVA' TIPA", NTI ser. 2. br.6. pp. 14-19, 1980. 2. I.JU.Vesler "ALGORITM S2ATIJA RUSKIH SLOV UCITIVAJU5CIJ DLINU SLOV", Strukturna 1 matema-tičeskaja lingvistika, br. 8. Kijev, 1980. 3. M.Stevanović SAVREMENI SRPSKOHRVATSKI JE-. ZIK. Beograd. Naučna knjiga, 1970. 4. 0.Vitas "GENERISANJE IMENIČKIH OBLIKA U SRPSKOHRVATSKOM JEZIKU", Informatika, br. 3. pp. 34-39, 19B0. korištenje sustava rezidua u obradi si računalima BROJEVA GNALA UDK: 681.3:519.6 dragan gamberger INSTITUT R. BOŠKOVIĆ, ZAGREB Sustav brojeva reziđua (engl. Residue iMumber Gystem) je način prikaza cijelih brojeva koji omogućuje dekompoziciju operacija zbrajanja, oduzimanja i množenja na više.manjih, međusobno neovisnih cjelina. U radu su definirani sustavi brojeva rezidua i razmotreni algoritmi konverzije binarno prikazanog broja u sustav brojeva rezidua i obratno te posebno mogućnosti direktne A/D i D/A konverzije u i iz sustava brojeva rezidua. Ukazano je na primjenljivost algoritma promjenljive baze i specijalnih D/A mreža u slučajevima programske realizacije konverzije za jed-:n i višeprocesorske sisteme. RESIDUE NUMBER SYSTEE APPLICATION IN COMPUTER SIGNAL PROCESSING: Residue Nximber System is the way of integer number representation allowing decomposition of addition, subtraction and multiplication operations in the few smaller, mutually independent parts. In thi's paper residue number systems are defined and the conversion algorithms for the binary coded number as well as the possibilities of the direct A/D and D/A conversions to and from residue number system are analysed. The applicability of the variable base algorithm and the specially built D/A networks for the software conversions in single - and multiprocessor systems is pointed out. 1. UVOD Sustav brojeva rezidua je način prikaza brojeva sa skupom manjih brojeva (rezidua) tako da svaki cijeli binarni ili dekadski broj unutar nekih granica ima jednoznačni prikaz u tom skupu. Aritmetičke operacije zbrajanja , oduzimanja i množenja moguće je vršiti između brojeva prikazanih u sustavu brojeva rezidua tako da se operacije izvrše između odgovarajućih elemenata iz skupa brojeva rezidua. Primjena sustava brojeva rezidua omogućuje tako dekompoziciju aritmetičkih operacija sa velikim brojevima na nekoliko paralelno izvedivih aritmetičkih operacija sa manjim brojevima. Ovo svojstvo od posebne je važnosti u digitalnim sistemima za obradu signala u realnom vremenu pogotovo u primjenama koje zahtijevaju potpunu točnost rezultata. Do sada su poznató primjene u digitalnom filtriranju /l/,/2/, a bilo je i pokušaja izgradnje vrlo brzih aritmetičkih procesora za velika računala na osnovu sustava brojeva rezidua. U računarskim sistemima sa više istovremeno aktivnih procesora primjena ovog brojevnog sustava omogućuje da svaki od procesora obrađuje samo brojeve jedne od baza te da se postigne paralelizam u izvođenju aritmetičkih operacija, Pravilan izbor baza omogućuje da i računala sa ograničenom dužinom riječi i brojem internih registara uključena u paralelu realiziraju po potrebi veliki sistem za obradu digitalnih .signala. U radu su definirani sustavi brojeva rezidua a zatim detaljno rezrađeni algoritmi za pretvaranje binarno kodiranog broja u sustav brojeva rezidua i obratno. Algoritmi su ilustrirani sklopovskim realizacijama ali općenito vrijedi da su isti primjenljivi i u slučaju programskih konverzija. Posebna pažnja posvećena je direktnim metodama pretvaranja analognih signala u digitalni prikaz u sustavu brojeva- rezidua i obratno te su razrađene metode prikladne za primjene sa računalima. 2. SUSTAV BROJEVA REZIDUA Sustav brojeva reziđua je sustav koji se forlhira na osnovu skupa P, p^^ £ F i=l,2,..N prirodnih međusobno prim brojeva n.z.d'. (pj.pj) « 1. (1) gd.ie n.z.d. označava funlcol.lu najvećeg zuje-dničkoR đjeljitelja. Oi.lelt broj B prikazuje se u auatnvu brojeva rezldua sa uređenom N-torkora brojeva . B = u kojoj su brojevi bj^,b2,.. »bj^ određeni Jednadžbama , B = k i.-Pi + (5) pri čomu su k^ cijeli brojevi takvi drf Jo za Bvaki i ° 1,2,..,N zadovoljeno U daljnjem tekstu koriàtiti ée ae oznaka bj^ = B mod pj^ (5) kojom Je nagloSeno da Je b^^ reziduum (oata-tuk) broja B. pozitivan broj manji od Pj^ koji ostaje nakon zbrajanja ili oduzimanja potrebnog višekratnika broja pj^, broju B . Broj B = < bj^.bg,.. ,bjj> . Jednoznačno Je prikazan i određen brojevima b^.bgi..,bjj u brojeviiora sustavu rezidua ukoliko Je zadovoljen. uvjet 0 B $ R-1 gdje Je R. Dokaz ; (6) (7) B i B' Pretpostavimo da postoje dva broja 0 . <.R-1 takva da vrijedi B / B' , b^ = b^ , b^ = b^ , bjg " b^ , Apsolutna vrijednost njihove razlike d trebala bi biti J z d = I B - B'l S R-1 B » k^'Pj^ + bj^ B>= + b' 1 B X B' , b^ = b^ alijedl da Je k. i ria razlika brojeva B i F^' mora biti vi:le-kratni.k Oil p^^. Kftko GU brojevi Pj.P^'-'Pn "'«'^'^aobno prim to Je najmanji mogući d d - Pi'Pj' • • Tn žto Je u suprotnosti sa pretpontavkom. Ako Je b^ ■= B^mod p » /b^ = B^mod p b^ = B^mod p i B^ = gdje »označava funkciju zbrajanja, oduzimanja ili množenja tada vrijedi (8) Dokaz za zbrajanje: B^ = B^ + . Bg kj'p + b^ = ( k^ + kp ).p + b^ + hp bj^ + b^ = l^jj'P ^ ^J ^ kj«p + bj = ( kj^ + kp + )'P + + ^ ) P bj = ( bj^ + bp ) mod p Ako Je B^ , ®2 Bj > te Bj = Bj^ » 82 prema (8) vrijedi (9) Ako Je zadovoljeno WsiB^ , B-, , BjS; R-1+W , Kdje Je W proizvoljan cijeli broj, iz (6) i (9) Je vidljivo da se operacije zbrajanja, oduzimanja i množenja brojeva mogu Jednoznačno izvesti tako da se te operacije izvedu nad odKovaraJućira elementima u brojevnom sustavu rezidua, Frtrojpnn auntava brojeva rezldua omogućuje tako dekompoziciju aritmetičkih operacija nn nnknllko medunobno neovianih i paralelno Izvfidlvlh cjelina. 5, KONVKRZTJA U SUSTAV BROJEVA REZIDUA Binarno ili dekntiaki kodiran broj B moguće Je pretvoriti \i broj b - B mod p prom« (fi) ii7,nrit;opr!lm dodavunjom ili oduzimanjem broju p broju P. dok ontntak ne znüovolji so .•jednadžbu (4). Ovo,j alp;orltom ,je jodnootnvnn ali'dugotrajan za Ii ^p . Postoji mogućnost da 80 u početku algoritma pokur.a sa većim višekratnicima od p 1 da 86 zatim veličinu vii'io-krntnika postepeno smanjuje. Vrijeme izvode«» nja algoritma može se time znatno skratiti ali Rbog svoje BloSenoati ovakav način Je primjenljiv »amo za programske realizacije. Za binarno prikazani broj B brži način izračunavanja broja b = B mod p Je pomoću tablice u kojoj bu vrijednosti M mod za eve J = O,1,2,..,L tako da vrijedi Ako broj B prikažemo kao (10) (11) vrijedi h J b - s::; b^-s-j b^ » o,i (i2) j^o J b." b mod p = ( 3— Bj'mj)mod p (13) CLOCK SHIFT REG a LSt St COUNTER đ ROM CAT* r IN iN +M00 P I « REG 9 SLJ. Dokaz I b = B mod p = ( m (( B.)mod p.(2^)mod p) .1=0 J mod p)mod p ako tada B<0 1 i želi se dobiti broj b = B mod p u odgovarajućem komplementarnom kodu u kojem Je -b = p - |b| (W) Bj = Bj mod p Jer Je Bj = 0,1 2^ mod p = mj prema (10) (Bj'mj)mod p = Bj'mj te slijedi Jednadžba (13). Iz (13) slijedi da se broj b dobije zbrajanjem u modulo p zbrajalu onih članova tablice koji odgovaraju Jedinicama u binarnom prikazu broja B. Slika 1 prikazuje, realizaciju ovakvog kodera. prikazani ROM (ispisna memorija, engl. read only memory) treba imati L + 1 lokaciju dužine log2 P bita Rdja a označava "najmanji cijeli broj veći ili jednak a", u J-toJ lokaciji memorije zap pamćena je vrijednost mj . Ukoliko broj B pretstavlja pozitivan ili negativan broj u kodu komplement od P ìSto znnči ako B--0 Xi tada B^O i IbI • B na primjer -1 = p - 1 vrijedi Jednadžba 1,-1 b - ( '^r.^p " '"l)'''«'^ p + ? " ) p (15) Dokaz ; Ako Je Bj^ = 0 ova Jednadžba vrijedi prema (13). Ako je Bj^ = 1 broj B Je negntlvan o njepjova apsolutna vrSJednout Je I Bi - B« gdje Je R' binarni broj B bez najznačajnijeg hita koji označava predznak broja. Apsolutna vrijednost ^Jrojn B mod p Jednaka Je |b| = iBimod p >. 2'' mod p - B* mod p T,-l "•r, - j=0 Prema (l't) stvirna vrijednost od h jedniki je L-1 h = P - Ibi ^ (p - m. B^•m^)mod p člme Je dok'i/.anu tvrdnJa(T>) SklopovskH'i ppoBramnka rool Izficl.l« kodera modulo p za koraplemontnrnl kod potpuno je lata ranije opionnoj od 1 m nt o ,1o u L--to,j lokaciji nOM-a urojosto.vri.jednootl mj. upisana vrijednost'p - m^^ , . Algoritam kodiranja mofipiće Je ubrzati pribrajanjom modulo p vrljednootl m^ za vičo binarnih mjesta broja B iptovremeno. Ovnkva realizacija zahtijeva osim djoljitelja sa N i registra duljine N bita i veći broj lokacija memorije čiji broj Je odreden izrazom i) , 2 -JT - IJ gdje Ja N broj bita koji se istovremeno kodiraju. Ako Je L+1 = k'N , potreban broj lokacija memorije Je I,+l TT 2N Slika 2 prikaizuje izvedbu ovakvog kodera, a tablica 1 sadržaj ROM-a za slučaj I, » 7, M - 5. "counter /«»r clock ROM 1 UP ♦mod pi ' REG^ Vi <;hh shift reg Ci bt ro 5 m > ■\r «mod ■ p2. ' RE G^ ■bž rom n Ur ♦mod pn trAKT clock JTJUl N 1 8 >LSB shft reg cl /counter Đ rom p-ir4 JF +.mod p oar I. « reg il reg sl.2. r u ovom slučaju ako li« radi o kom-plemontnrno kodi nm im brojovlmn u ROM !;o u-mjeato nij^ upisuje svuda vrijednost p - m^ Slika 5 prikazuje pretvorbu binarno kodiranog broja u Kuntav brojeva rozidua sl.3. . > . . Za svaki element skupa Pjj e P potrebno Je renij.iilrufci . poaoban koder pri čemu oni mogu koristiti isti Izvor takt impulsa, broJiiC 1 posmnönl registar. Prikazan Je jednostavniji sklop sa sukcesivnom akumulacijom ja avaki bit posebno. T/VBLICA 1 ' LOKACIJA 0 1 p 'I 5 f. 7 a 9 10 n SADRŽAJ ■ , . O ' (m^ f m^) mod p Ć? (m^.+ mQ) mod p (m^ + m^) mod p (mp + mj ♦ Wq) mod p O m. (m^^ + mj) mod p 52 IiOKACIJA 12 13 14 !';> 16 17 mg 18 m^ 19 (iHy +. Ig) mod p KONVERZIJA IZ SaSTAVA BHOJEVA REZIĐUA SADRŽAJ (m^ + tnj) moti p (tn^ * m^^) moči p (m^ + m^j^ + m^) mod p O Dekodiranje binarnog 111 dekadskog bro.la B iz prikaza u auatavu brojeva rezlđua < bj jbg,.. ,bjj > moßuRe de jednozn'aSno izvesti ako ,ìe zadovoljen uvjet O^BiSR-l izračunavanjem Izraza N B ° ( ZZ bj'aj^Tj^jmod H (16) Đ gdje r^ označava r^^ = ~ a aj^ ae izračunava Iz jednadžbe (a^-Tj^) mod Pj^ = 1 (17) ( tzv. Kineaki teorem ostatka, engl, Chinese remainder theorem ). Dokaz : Prema Euklidovom algoritmu postoje svi brojevi a.j^ .ag,.. jer su p^^.pg.-.pjj međusobno prim brojevi i mogu se njime izračunati /5/. Jednoznačnost prikaza broja iz intervala O^B^SR-l u auatavu brojeva rezidua vać je ranije dokazana (6),(7). Jednadžba (16) zadovoljava sve uvjete b^^ = B mod pj^ do bjj = B mod Pjj jer su modulo p^^ svi sumandi ooim i-tog u jednadžbi (16) jednaki nula ( r^ je vinekratnik od p^ za i / j ) a u i-tom sumandu je prema (17) produkt a^^ . r^^ jednak 1 pa vrijedi B mod p^^ b^. Pri izvođenju dekodiranja prema Jednadžbi (16) preporučljivo je prvo izveati množenja (bj^.a^^) mod p jer zahtijevaju znatno kraću duljinu brojeva od ostalih operacija modulo R. Ova množenja je dopuSteno izvesti modulo Pj^ jer au i b^ i a^^ veličine modulo Pj^ • Uz b^ - ( * »i ) mod (lU) Jodnndžba (10) se može nnplnatl N B » (SZ bjTj^ ) mo'l R 1 = 1 (19) Pretpontavlmo da au uvi brojevi bj jodnako dugački a ako niou učinimo Ih tnkvlmn dodnju-či im početne nule. Gvaki broj b^ moRur'ie je prikazati kao bj » SZ b| .2« ^ k=0 ^ 0,1 i B k=0 i = l (?0) lats kombinacija brojeva (^Jj^i^^k'' ''^Nk^ doprinosi ukupnoj sumi jednaku veličinu ali V k pomnoženu aa 2 . Radi voće brzine izvođenja algoritma prikladno je za svih mogućih kombinacija brojeva o, u tab- lici zapamtiti sume N ( b' -r.) mod R . 1=1 ^^ ^ Broj B se tada određuje u zbrajalu modulo !ì zbrajanjem q+l pravilno čiftiranih parcijalnih suma Iz tablice pohranjenje u ROM-u (slika 'O. x; STAnr I / hi iHIFT REG t= ü bs PL Q WFT RBj C/_ X tC L r PL Q ISHin REGi ct * B DO. ROM DAr4 1 H i-v-r«. n COUNTER CLOCK JV t xK SHIFT a Jk____ Je TfJ 7N •fMOO R I "i REC « B SL.4. Za (lekodirànje broja iz sustava bro-t Jeva rezidua moguće Je koristiti i algoritam promjenljive base (engl, mixed-radix oonver-fiipn ). Broj B 0 Jednadžbama "125 općenito gdja Ja ' k = J+1 Pj-P. (25) Dokaz : Prema (22) broj B se može prikazati kao B = b^ + .. ^ h2;lj'PrP2°"-'Pl ^ ^ ^i2..ijk'prP2'---Pi"Pj + •• +. ali 1 kao B » bj^ f .. ^'i2.ik'Pl'P2'• •'Pl * ^ •• ^12,N'PI'P2''-'PN-1 ako pretpostavimo da su. p^. 1 Pj^.u skupu P zamijenili mjesta. Izjednačavanjem slijedi ^12.1j'PrP2'--'Pl ^ ^12.1Jk'Pl'P2'--'Pl'Pj ■ ° h2.1k'Pl'P2'--'Pl V^12.ycj'Pl'P2""'Pl'Pk Jer općenito vrijedi b^^^^^^^ - ^12.yx.z ^12.iJk'Pj " ^12.ikj'V ° ^12.Ik " '^12.ij h2.ijk ^Pj," Pk? .'^Ì2.ikj'Pk = ''l2.1k ~ ''12,IJ ^12.1Jk - -- Pj - Pj^- (24.) Kako za svaki vrijedi O^^b^g.jc^I^ Jednadžbu (24) dozvoljeno Je izračunati modulo p^ te slijedi (25). hl A t> i K. ROM It Jt A D 1> K ROM fav A V DK ROM _ A t t t A B C Jt ROM ROM tìA VA -&XSA. biai iL bUH A B J> H ROM D/i^A 4 »i « Als« ROM ROM DA TA P' TA tu 'W IN IN + o-vi (26) gdje je Cg = 2® - R as najmanji pozitivan cijeli broj takav da je . l'rvn Humn Jn Jednfika nuli Jor za (ivnkl i vrl-JfKll (p^'rj) moa n » ( Pi'j^ ) "no'l « • 0 pn .1« B* - n - ( b.-a.-r. ) mod R = H - I Bi i-^l ^ ^ ^ te uvrfitavnnJem olijedi B U » B* 5. DIRKKTNA A/D T D/A KONVraZTJA ZA fiUOTAV BROJKVA RUZinUA Direktnu konverziju amlORnoc nif^naln u digitalni broj prikazan u nuiituvu brojeva rezldua i obratno mopućo Je vriiiti direktno primjenom metode promjenljive baze i pooebno izgrađene D/A mreže u kojoj ne veličine eie- menata koji u kombinacijama odreiluju analogni alRnal međusobno oilnoce kao brojevi q,-! Qo-l 1,2,4,...2 ,pj^,2-p, ,,.,2 -Pj , gdje su na oiinačeni nnjmanjl cijeli nrojevi tako đa vrljodi 2 ^^ Pi Dokaz : Prvi dio tvrdnje (26) za pozitivne brojeve slijedi direktno iz opisanih algoritama. U binarnom komplementarnom obliku se negativan broj B prikazuje sa vrijednofiću B = 2® - IB| gdje je s kako proizlazi Iz (25) najmanji cijeli broj tako da vrijedi 2®>2w + 1 a w apsolutna vrijednost najvećeg broja koji se želi prikazati. U sustavu brojeva rezldua negativan broj B prikazan je sa bj = I BI mod p^ Prema (16) * „N « N B ( ^ Pj-aj^Tj^) mod R - - (F^ b, .a, T. ) mod r) mod R ^1=1 lil Nakon Izvršene A/D konverzije sukcesivnom aproknlmncljom uz korii'itenje definirane mrei?,e dobiva ne binarni broj dužine Q bita q --■ + ♦ .. + q ? -'N (27) čijih qj najmanje značajnih bita odp;ovara veličini bj, olljedećih q^ odpovnra veličini bjp, 1 tako rodom do veličine b^^^ . Iz tih vfiUčlnn vollčlno kojo pretata- vljaju digitalni prikaz analogne veličine u sustavu brojeva roi'.ldua dobiju ae jednadžbama bp => ( h I t '^j -i'P] ) mod p^ b^ - ( b, f »'ip'Pi + '^IPJ'P]'n? ) '"O'' P5 bj » ( bj t ^'i.'.j'Pi'P^ ^ 'Pi-1 Pi za 1 iS N. Dokaz : jj - B mod Pj^ bj^ - ( bj^ + t>jL2'Pi + ^ISj'Pl'Ps •• Svi prlbrojnici u toj Jednadžbi koji sadrže Pj^ kao faktor 8u Jednaki 0 modulo p^ te slijedi Jednadžba (28) . 7,a broj Q vrijedi ap'SQ^qR + N (29) Bdje Je najmanji cijeli broj tako'da vrijedi Iz Jednadžbe (29) se vidi da Je za sukcesivnu aproksimaciju upotrebom d/a mreže u suatavu promjenljive baze općenito potrebno viäe stupnjeva aproksimacije nego upotrebom standardne binarne mreže i da veličina razlike ovisi o .broju rezidua kojima se prikazuje br«.,j oj. ,Sve operacije unutar zagrade u Jednadžbi (28) dozvoljeno Je Izvesti modulo p^ te alijedl realizacija prikazana slikom 5. ST^xr COUNTER K L OGI KA SUKC. AP ROK. PROMJI ILJIVE BAZE CLOCK SL.6. ■II slufioju vol ikof^ N potreban Je velik broj nOM-ova i prl-^iJenl Jlvost ove metode Jo ograničena na programsko roalizaclJe. Prikladnim Izborom veličina p^ .. ,pj,| tako da veličine p^modpg , (pj •p.,)modpj , do' (pj »Pp-.. ) modpjj budu mali brojevi rnoßuce Je u programskoj realizaciji množenje sa njima sventi na Jednostavne- log!čke operacije. n slučaju A/D konverzijo standardnom binarnom mrežom, konverziju dii^ltnlnoR broja u sustav brojeva rezldiia moRuće Je izdvojiti intovrnmenp na.A/D konverziJom^ 1 tako povećati .brzinu konverzije a. smanjiti broj potrebnih, niclopov.a (sl^ 7). sr^xr CLOCK D P!- couNie SUKC. APRO K. o/A MREŽA ej R E G. t "TT" ♦MOD Pl £ cf REG H ROM ROM ROM . m »■MOO P5 tg RÉG ■bi b ■ .b2 +M00 (=> REG 1 sl.7. Ukoliko konverziju u ;iuPtav brojeva rozldua obavlja ročun.-ilo moßuce Je 1 čitavu dlRltal-nu loRiku .■jukcesIvnR aprok.aln.-ic3Je izvesti progrnm.'.ik 1. START COUNTER CLOCK r-O LOGIKA D/A SUKC. APROK MREŽA i R E G. t> PROC 1 PROC 2 PROC N SL.Ä. SMka 8 prlknzu,)f! nnr'H.n 1 «vorton.-Ja .ilrektno A/D, konvorr.l.je u v.i:''!';p'"ocenorr.kom alatemu u kojem svaki od prot:eaopfi vrfil konverr.i.lu 1 računanje sa .iRctnini od res-.i'lnn, Primjena D/A mrož.o ?.« niintav promjenljivo bazo od ponebno je korisni ii dirnkt-iioj D/A konvor^.iji iz nuntnva brojovn rn/.idua >1 analop;nu voMčinu pritnjononi alEorltina promjenljivo baze (fil. 9). SL.9. Primjenom specijalne D/A mreže povečana Je brzina konverzije i smanjen broj potrebnih elemenata. I ovaj način konverzije pogodniji je za primjenu u računarskim sistemima nego za sklopovsku realizaciju zbog potrebe za većim brojem tablica. vn te tUi to protBtrivl jn nlnvno ni-ranl <'en,|f područja prVmjnne oiiiitnva brojuva rnzidiui. LITKRATURA : 1. W. Jenklno i A Highly Kfficlent Roniduo fiombinatorinl Arcbitocture for Dicitai Miters, Proceedinro of tbo TKKK, Vol. 66, No 6, June 197Ö, pp700-70r>. 2. W. .lenklni), n. Leon : The tir,o of Ronldup Number System In the Denifn of Fini t,e Impulne Reaponse Digital Kilters, TKRE Trans, of Circuits and nyatonia, Vol. CAr, April 1977, PP 191-POO. 3. F. Taylor : A VLSI Residue Arithmetic Multiplier, lEEK Trans, on Computers, Vol. C-51, 1982, PP U. M. Condoratrand, C. VoT'niB : A Hlnh--Speed T.ow-Co!-.t Modulo P^ Kultiplior with RN.T Arithmetic Applications, Proce-cdinRB of the IKKE, Vol. 68, No April 1980, PP 529-5 5. K. R. Berlekamp : Algebraic Codini^ Theory, McGraw-Hill, 1968. 6. F. Taylor, C. Fluang : An Autoscalo Residue Multiplier, TEKE Trans, on Computers, Vol. 0-51, No April 1962, pp 321-525. ZAKLJUČAK Mogućnost dekompozicije aritmetičkih operacija je od prvorazredne važnosti u brzoj obradi digitalnih signala te iz tof;a proizlazi važnost primjene sustava brojeva rezidua. Pri njegovoj primjeni javlja se potreba za konverzijom binarnon broja u. sustav brojeva rezidua i obratno, f.to je u radu posebno detaljno analizirano. Prikazani alf;;oritrai pret-stavljaju osnovu sklopovskih i profrramakih rjenenja. U radu nisu analizirane aritmetičke opernclje modu reziduima ali vrijedi da jo zbrajanje, oduzimanje i mnoSenjc vrlo lako Izvodi vo posebno raruiial ima a da su operacije dijeljenja, uspoređivanja 1 otVrivanJa preljeva vrlo teško izvcdive unutar aamoc susta- programski simulator - korak k razvoju m i k rora c una ln i s k i h aplikacijskih programov d. miljan, j. silc, p. kolbezen UDK: 681.3.06:519.682 INSTITUT „JOŽEF STEFAN", LJUBLJANA Analiia cene razvoja računalniškega sistema kaSe, da veCji del cene odpade na razvoj programske podpore, zato je izredno pomembno, da ima razvijalec na voljo uCinkovite pripomoCke za razvoj programske podpore. V ölanku éo nakazani nekateri primeri tovrstnih pripomoBkov. Natanäneje je opisan pri nas razvit programski simulator za razvoj aplikacij inteariranim mikroračunalnikom Iskra EMZ 10Q1. z domaČim SOFTWARE SIMULATOR - STEP IN DEVELOPMENT OF MICROCOMPUTER APPLICATION PROGRAM. Trends in computer system development costs show quite clearly that the major proportion of these costs must be attributed to software design and implementation. Some microcomputer software development aids available to programmer are introduced. Software is required both to execute a particular application on a system and to assist in the development of new software. Example of software simulator for Iskra EMZ 1001 single chip microcomputer is given. uveo Računalniške razvijali bodisi smo program pisa Ce je bila njego je omogoCala (programske in aplikacijskih programsko opremo (editor;, ust povezova1nik ( materialni opremi velik pomnilnik Clovek-stroj s teleprinterja. programe smo obiCajno na računalniku za katerega li, ali na njemu podobnem, va konfiguracija takSna, da uporabo potrebne opreme materialne) za razvoj programov. Pod razvojno mislimo: urejevalec teksta ,rezen prevajalnik in linker). Pri razvojni je osnovna zahteva dovolj in moSnost komuni kacije pomoCjo CRT-ja ali Pri 'veCjih' raSunalnikih obiCajno ni tovrstnih problemov, pri mikroračunalnikih pa smo pogosto sooCeni s pomankanjem pomnilniSkega prostora in revnejSo periferno opremo za razvoj aplikacijskih programov. Ti problemi postanejo akutni pri integriranih mikroračunalnikih (single chip computer), pri katerih reSujeroo problem razvoja aplikacijskih programov s pomoCjo t.i. razvojnih sistemov. V tem prispevku se bomo omejili na podroCje mikroračunalnikov. Razlike v naCinu razvijanja aplikativnih programov pri mikroračunalnikih glede na 'veCje' računalnike izhajajo iz naslednjih ugotovitev : - mikroprocesorje velikokrat uporabljamo za posebne namene v sklopu raCunalnikov na eni tiskani ploSCi (single board computer) ali v sklopu posebno naCrtovanih vezij za posamezne aplikacije. TakSne minimalne računalniške konfiguracije obiCajno niso primerne za razvoj aplikativnih programov, - načrtovalec mikroraCunalniSkih sistemov lahko v odvisnosti od tipa aplikacije izbira med razliCnimi tipi je", Mn^nr«;».. da bi za vsak od izbranih mikroprocesorjev imel svoj razvojni sistem z vso pi-ogramsko in materialno podporo za razvoj aplikativnih programov, izkljuCujejo ekonomski razlogi. Kot je omenjeno, poznamo veC tipov razvojne opreme in postopkov za razvoj aplikativnih programov za mikroračunalnike. Nekatere rešitve nudijo proizvajalci raCunalniSke opreme, nekatere pa razvijajo uporabniki mikroprocesorjev sami. Razvojno opremo in postopke lahko razdelimo v nekaj kategorij ! monitorjem v i. Mikroračunalnik z osnovnim ROM pomnilniku. Takšen sistem daje uporabniku minimalne možnosti za vpisovanje in testiranje aplikacijskega programa preko terminala. Takšen monitor je lahko koristen pri razvoju in testiranju manjših programov (do najveC 100 računalniških besed) in je praktiCno neuporaben pri veCjih aplikacijah. Kljub temu, takšno opremo ne smemo kar tako izključiti kot eno od moünih razvojnih pripomočkov ite zaradi zelo široke uporabe mikroprocesorjev, pri kateri vCasih rešujemo programske probleme tudi s takšnim monitorjem. zbirnikom ii .Mikroračunalnik opreml .len In ure.tevalcem teksta. Programa lahko stalno zasedata del ROM pomnilnika mikroračunalnika ali se po potrebi precitata iz papirnega traku v RAM pomnilnik. Tak sistem omogoCa pisanje in popravljanje aplikativnih programov v zbirnem jeziku in shranjevanje le-teh na papirni trak. Čeprav je to korak naprej od samega monitorja, še zdaleC ni omogoCeno učinkovito aplikativna razvojno delo veCjih dimenzij. Dodatno nerodnost predstavlja prepisovanje zbirnika in urejevalca texta iz papirnega traku v RAM pomnilnik ss nlkroraOunalnika. ManJSo, a ne tako bistveno iiboljSavo teg'a razvojnega Bisteria predstavlja nadomestitev sistema s papirnim trakom z sistemom z digitalno kaseto. iii.Razvolni sistem na (HlkrppiPooesorj^. basi uporabi.lenega Tak sistem, opremljen z gibkimi diski, omogoäa pisanje, popravljanje in urejevanje aplikacijskega programa. Nadalje omogoäa Se zbiranje in prevajanje ter shranjevanje izvirnih in prevedenih programov. Takäen sistem predstavlja ite relativno moäno orodje pri razvoju aplikacij, ima pa eno veöjo pomanjkljivost (gledana s staUääa uporabnika) in to je, vezanost uporabnika ria en tip ali eno družino mikroprocesorjev, za katero je razvojni sistem zgrajen. Pri uporabnikih, ki Selijo (ali so prisiljeni) izbirati med razliCnimi mikroprocesorji za različne aplikacije, takSen razvojni sistem ne more biti trajna'reSitev. -kajü_pollubneoa iv.Razvolni sistem na mikroprocesor13. Takäen sistem (z gibkimi diski) vsebuje poleg urejevalca teksta obiCajno Se nekaj razliCnih zbirnikov ali prevajalnikov za posamezne tipe mikroprocesorjev katere podpira. Omogoüene so vse faze razvoja aplikacijskih programov do faze testiranja. Za testiranje je potrebno objektno kodo aplikacijskega programa prenesti na realno mikroraäunalniäko aplikacija. Ta problem lahko reSujemo z dodatno opremo (programsko in materialno), ki je razliCna in posebna za posamezne mikroprocesorje. To so t.i. emulatorji. Emulator sé , prikljuBi na razvojni sistem ter omogoäa vpis, testiranje in izvajanje aplikativnega programa na aplikativnem sistemu. Čeprav nas takSen razvojni sistem ne omejuje (znotraj kanöne mnoüice mikroprocesorjev, ki jih podpira) pri izbiri mikropracesorja in je v veliko primerih zelo dobra reSitev, je za testiranje programov potrebna dodatna nabava Ke omenjenih emulatorjev. Ti stroSki (ki so lahko pomembni) se bodo ponovili pri vsaki aplikaciji z novim tipom mikroprocesorja. v. Razvojni sistem ...'.v e C. t e. m..'. Veüji računalnik, ki je poleg standardna opreme ustrezno opremljen z križnimi zbirniki, prevajalniki in simulatorji za razliCne mikroprocesorje je zelo dobra reSitev za tiste uporabnike, ki v svoji opremi ie imajo veCji raöunalnik ali lahko razpolagajo z delom kapacitet njim dosegljivega veüjega ratìunalnika (time shai-ing terminal,..). Pri tem odpadejo vsa veüja zaCetna vlaganja v razvojne sisteme. Tudi pri teh sistemih lahko omenimo nekaj problemov, ki se pojavljajo . Prvi problem je pomanjkanje t.i. križnih programskih pripomočkov. Proizvajalci mikroprocesorjev namreC moCneje podpirajo razvoj lastnih razvojnih sistemov za lastne (in sorodne) druüine mikroprocesorjev v oblikah, ki so opisane v prejSnjih odstavkih in manj podpirajo razvoj križnih programov za vettje računalnike. Za takSne programe sa bolj zavzemajo proizvajalci mikroprocesorjev, ki ne ponujajo lastne razvojne sisteme ker na ta natìin Sirijo uporabnost svojih proizvodov. Iz tega izvira drugi problem in ta je, velika raznolikost v naCinu in tehniki uporabe križnih programov, ki so izdelani pri razliCnih proizvajalcih. Posebni problemi nastanejo, ko se uporabnik odloČi za uporabo (razlogi so lahko tehniCne lastnosti, dosegljivost, cena,..) mikroprocesorja ali mikroračunalnika za katerega proizvajaleo ponuja zelo skromno aplikativno razvojno opremo, ali pa le-te sploh ne nudi. V tem primeru preostane samo Se razvoj lastnih pripomoCkov. OdloČimo se lahko za eno od prej opisanih kategorij razvojnega sistema. OdloCitev bo odvisna od opreme s katero razpolagamo. Casa, ki je na voljo za razvoj nove opreme ter od Števila razvijalcev. V tem prispevku bomo prikazali primer, ko se uporabnik (razvijalec aplikativnih mikroraCunalniSkih sistemov) odloČi za razvoj mikroraCunalniSkega sistema pri katerem je osnovni element sistema domaČi integrirani mikroračunalnik Iskra EMZ 1001 za katerega proizvajalec ne ponuja zadosti bogato aplikativno razvojno opremo. INTEGRIRANI MIKRORAČUNALNIK Iskra EMZ 1001 Mikroračunalnik Iskra EMZ 1001 i:4a,C53 z veliko gostoto integriranih elementov prinaSa vse prednosti krmiljenja z mikroračunalnikom pri minimalnih stroSkih opreme. Obdelava podatkov v niikroraCunaVniku EMZ 1001 poteka preko ^ bitnih besed. Nadzorni del in vhodno-izhodna konstrukcija sta 8 bitno zasnovana. Povezava z zunanjim svetom poteka preko veC specijaliziranih vodil. Vodilo A ima 13 bitov, ki sluüijo samo kot izhodi. Vodilo O je 6 bitno in prenaäa podatke v dveh smereh, lahko pa je tudi v t.i. nevtralnem stanju. Vodili I in K sta A bitni in sluSfita samo kot vhoda. Pomnilnik RAM je razdeljen na 't strani, od katerih ima vsaka 16 ',-bitnih besed. Pomnilnik RAM se naslavlja z registri BL in BU. Naslovni prostor programskega ROM. pomnilnika je razdeljen na 8 pomnilniSkih bank. Vsaka banka vsebuje 1K 8-bitnih besed. Banka 'O' je tisti del pomnilnika, ki je vkljuCen na integrirani ploSCici, ostale banke pa po Jelji dodajamo od zunaj. OmogoCena je izbira aktivnega ROM pomnilnika (samo notranji, samo zunanji ali notranji in zunanji pomnilnik obenem) ter izbira naCina delovanja (statiöni, multiplexni in testni). Na osnovi prikazanih lastnosti mikroračunalnika EMZ 1001 (slika 1) se lahko prepričamo, da je ta uporabljiv v Številnih manjSih aplikacijah. Najbolj smiselne so reSitve v katerih zadoSCa Število raspoložljivih vodil za neposredno krmiljenje sistemske okolioe. STANDARDNA APLIKACIJSKA RAZVOJNA OPREMA Iskra Mikroelektronika, proizvajalec mikroračunalnika EMZ 1001, ponuja kot pomoö pri razvoju aplikacij s tem integriranim mikroračunalnikom t.i. statiCni emulator. StatiCni emulator izkoriSCa motnost multipleksnega delovanja mikroračunalnika EMZ 1001 in služi za preverjanje in izvajanje aplikativnih programov tako, kot da bi bil program že zapisan v notranjem ROM pomnilniku. Emulator vsebuje mikroračunalnik EMZ 1001, PROM pomnilnik z uporabnikovim programom, pomnilni vmesnik in 'tO-Silni kabel s priključkom v obliki mikroračunalnika. Za preverjanje programa spojimo priključek emulatorja s podnožjem, v katerem bo po konCanem razvoju mikroračunalnik EMZ 1001 z notranjim uporabniškim programom. Nidovnl/nadiwnl Uvodi livodi la podalha/iognitnla D, ,,. D, Kl».« . STATUà -[> SYNC Slika 1. Poleg etatiönega emulatorja, kot samostojne enote in z možnostjo prikljuöka na mikroraöunalnih Iskra Data, ponuja Iskra Mikroelektronika, na osnovi primerno podanih specifikacij pogodbeni prevzem izdelave programov in prototipov za posamezne uporabnike. LASTNI RAZVOJNI SISTEM Za veüje Stavilo obsežnejših aplikacij s tem mikroračunalnikom potrebuje uporabnik veö programske in materialne razvojne oprema. Narekuje se razvoj lastnega razvojnega sistema. Ta naj bi öim veö pripomogel k uöinkovitemu in hitremu razvoju aplikacij pri öim boljSi uporabi »e obstojefle opreme in z minimalnimi zaöetnimi vlaganji. Slika 2. prikazuje primer takSnega razvojnega sistema pri katerem smo uporabili "" obstojetìi računalnik LSI 11/23 in te mikroradunalnik na bazi mikroprocesorja Intel aoao. Postopek razvoja, aplikativnih programov je pri tem sistemu razdeljen na dve etapi i - Delo na računalniku LSI 11/23, ki je poleg standardne opreme (uCinkovit urejevalec teksta, prevajalniki, gibki diski, Winchester disk, tiskalnik, CRT-prikazovalnik,..> opremljen 8e s kriSfnim zbirnikom za zbirni jezik C2a in s programskim simulatorjem mikroračunalnika EMZ 1001. V tej etapi se aplikativni' program piSe, testira in popravlja, dokumentira in shranjuje. Po konöani prvi lazi, se lahko pri predpostavki, da je bil problem dovolj dobro definiran, razvoj aplikativnega programa tudi konöa. - Objektni kod aplikacijskega programa, ki je dobljen na računalniku, lahko dodatno testiramo na realnem okolju s pomoOjo emulatorja C13 ter ga dodatno prilagodimo morebitnim materijalnim (hardwarskim) posebnostim aplikacije. • Omenjeni krilni. zbirnik za mikroračunalnik EMZ 1001 in emulator sta *e predstavljena v IJS Oelovnih poroöilih C1D in-C23. V tem prispevku bomo predstavili Se tretji razvojni pripomcöek - programski simulator mikroračunalnika EMZ 1001. PROSRAMSKl SIMULATOR Programski simulator je programski paket, ki, v nagem primeru, simulira delovanje mikroračunalnika in pri tem omogoCa uporabniku : - vpogled v notranjo strukturo registrov in pomnilnika mikroračunalnika pri vsakem koraku izvajanja aplikativnega programa, - nadzor nad pretokom vhodno/izhodnih podatkov, - prekinitev izvajanja pri poljubnih stanjih podatkovnega in adresnega vodila, - koraCno izvajanje programa - izvajanje posameznih delov (modulov) aplikativnega programa, - merjanje raBunalniSkega Basa, - diagnostioiranje nekaterih napak. Programski simulatorji so lahko napisani v kakSnem od 'splošnih' programskih jezikov, ali v posebnih simulacijskih jezikih in po za simulatorje posebno zgrajenih metodah (ISPS language C1Q3, MicroSim CS]K TakSni posebni jeziki in sistemi omogoBajo simulacijo mikroraüunalniSkih sistemov in v nekaterih primerih tudi simulacijo multi mikroraCunalniSkih sistemov. Simulator mikroračunalnika EMZ 1001 je napisan v programskem jeziku Pascal, tede na računalniku LSI 11/23 in je namenjen samo simulaciji izvajanja instrukcij tega mikroračunalnika. Slika 3. Vhodni datoteki za 'programski simulator (slika 3.) sta datoteki («.LST in *.HEX), ki jih je zgradil kriSni zbirnik. Pri inicijalizaciji bo simulator detoteko *,LST preuredil (odstranjene so prazne in komentarske vrstice) v datoteko z imenom *.NLS. Datoteka CRT.TXT vsebuje podatke za izpis slike (monitorja) na zgornji polovici CRT-prikazovalnika, kot je razvidno iz slike 4. Monitor bo v Času emuliranja stalno na prikazovalniku. Pri vsakem koraku simuliranja programa se vrednosti v okvirjih korigirajo, kar omogoCa uporabniku stalan pregled nad vsebinami registrov, vhodno/izhodnimi vodili in vaöunalniäkim Časom. Za učinkovito uporabo simulatorja je predpisan enostaven vhodni jezik s katerim uporabnik nadzoruje delovanje simulatorja, vpisuje prekinitvene toCke, kontrolira izpisovanje na CRT in podobno. V Tabeli 1. je prikazan nabor ukazjv vhodnega jezika s krajšimi pojasnili poienov le-teh. Podoben tekst kot v Tabeli 1. vsebuje datoteka COMAN.TXT, ki jo uosrabnik dobi i:pisano na CRT ko uporabi ukaz 'HELP Slika 2. Slika 't. ;.Uka«l ENZ-siffluUtorj« i. , a) Kontrola delovanja mR ĆHZ i HA CLia ustavitev delovanja nR . RU CNJ CaaaaaD Izvajanje programa pri osmläki adresi 'aaaaa', äe adrasa ni. podana, «e zatine Izvajanje pri adresi O > RE C8E3 reset raR (Inloljallzaolja) b) Testne prekinitve izvajanja i BAA aaaaa T.p. pri osmiöki adresi 'aaaaa' BAD aaaaa T.p. pri osmiökeiD' podatku 'aaaaa' na A-liniJah BDI dddC03CD3CHa T.p. pri instrukoiji 'ddd' BOD dddC03CD3[:H3 , T.p. pri V/l podatku 'ddd' BDL dddC03CDDCH3 T.p. pri zadrSanera podatku 'ddd' S CTEP3 CdddC0aC0]CHD3 T.p. po 'ddd' korakih (instrukoijah),, äe Število korakov ni podano, izvede 1 korak,, nadaljnje enokoraöno izvajanje sproti tipka 'presledek' NS prepoved koraänega izvajanja programa o) Kontrola izpisa na CRT i TR izpisovanje tekottih vrstio programa NT brez ispisovanja tekoOih vrstic programa M CEM03 CdddC03CD3CH33 izpis 'ddd' vrstice ali oelotne vsebine notranjega RAM-pomniInika mR TZ resetiranje Stevoa äasa d) PomoSIni ukazi i RA CMD vpis novih vrednosti v notranji RAM-pomnilnik mR NE CM3 vpis novih vrednosti v notranje registre mR CO C(1A3 izpis vseh trenutno aktivnih ukazov CL CEA3 briäe vse ukaze (zaüetno stanje simulatorja) HE CLP3 izpis liste vseh ukazov za EMZ-simuIator O CUT] izhod iz EMZ-simulatorja LASTNOSTI PROGRAMSKEGA SIMULATORJA MIKRORAČUNALNIKA EMZ 1001 1. Pregled nad notranUml reolstrl Kot Je razvidno iz slike A, so na CRT prikazovalniku stalno < Vsebina RAH ponnilnika : SPS A < s > EHlBIIH^BBI dcD'^EEEEBE o 000Ò t 0000 2 0000 3 0000 4 0000 5 0000 6 0000 7 0000 8 0000 9 0000 10 0000 11 0000 12 000« 13 0000 14 0000 18 0000 Slika 5. Pri vsaki testni prekinitvi se na CRT-ju izpiSe vrstica izvirnega programa (source line) pri kateri se je zgodila prekinitev. Na ta naBin se potek simulacije programa lažje spremlja tudi na 'listingu' aplikacijskega programa. Posebno kritiflne dele programa lahko uporabnik simulira po korakih s pomoBjo- ukaza 'STEP'. Isti ukaz omogotia testno prekinitev po poljubnem etevilu izvedenih instrukcij simuliranega programa. 5. Simulacija programskih modulov Ukaz 'RUN' (Tabela 1.) omogoBa nastavitev poljubne vrednosti programskega števca (znotraj naslovnega polja ROM pomnilnika) kar omogoBa simuliranje posameznih delov simuliranega programa. V primeru simuliranja posameznega programskega modula (podprograma) je obiBajno potrebno nastaviti nekatere zaBetne pogoje kot so: zatietne vrednosti v doloBenih registrih in na doloBenih lokacijah RAM pomnilnika, vrednost ätevca globine vgnezdenasti modula in raBunalniSki Bas. Na ta naBin lahko opazujemo (testiramo) delovanje posameznih modulov aplikacijskega programa, ki Jih v konCni fazi razvoja zdruitimo v skupni program. 7. Diagnostika Simulator opozarja uporabnika _(z izpisom na CRT) na odveBne 'PP'- instrukcije in na preskakovanje veB, v zaporedju programiranih 'LAI' in 'LB_' instrukcij. Simulacija se ustavi. Be se program zaöne z 'LAI' ali 'LB' instrukcijo, Be pride do prekoraBitve globine vgnezdenja podprogramov ( najveBja globina Je 3) in Be je prekoraBeno naslovno podroBJe ROM pomnilnika. Simulacija se ustavi tudi, Be pri simuliranju 'INP' instrukcije O-vodilo ni bilo predhodno nastavljeno v nevtralno (Tri-state) stanje in Ce pri odčitavanju 1 ali K vhodov le-ti niso bili predhodno pravilno naslovljeni. Pri vseh opozorilih in vstavitvah se na CRT izpiSe kratek opis napake in trenutna vrednost programskega gtevca, pri kateri je ugotovljena napaka. Poleg opisanih možnosti simulatorja, zaradi laSJega sledenje simulacije, lahko uporabnik z ukazi 'TR' in 'NT' (trace / notrace) kontrolira izpisovanje vrstic simuliranega programa. Primer takSnega izpisa lahko vidimo na sliki 6. Al*T«t»T.J I i>< iyo>i vrsta adresa koda 23 13 73 24 14 174 25 IS 21 26 16 121 28 20 21 29 21 312 22 12 160 23 13 73 24 14 174 25 15 21 26 16 121 28 20 21 29 21 312 Aj SPS src.vrstica ; bu-bu«l su k s ZAKLJUäEK Razvojni sistem, ki je predstavljen v tem prispevku je prestal zaüetna testiranja, popravke in ijbaljSave ter pokazal pozitivne rezultate. Trud in Cas, ki sta bila vložena v izdelavo opisane programske in materialne opreme se izplaöata ^e po .nekaj aplikacijah, äas razvoja aplikativnih programov se obfiutno zmanjSa na ratìun iskanja boljöih tehnitìnih in programerskih reäitev. Ugotovili smo Se, da je sedanja reSitev posredovanja vhodnih podatkov, ko le-te vpisuje uporabnik preko CRT-ja neprimerna pri aplikacijah z velikim Številom vhodnih podatkov. V takSnih primerih je boljSe öe bi vhodne podatke imeli vnaprej pripravljene in shranjena na posebni vhodni datoteki. Nadaljnja uporaba razvojnega sistema bo z novim i aplikacijami verjetno prinesla zahteve po dodatnih izboljSavah tako materijalne kot programske opreme. LITERATURA C1] Materialna.in programska podpora za razvoj prototipov z integriranim mikroračunalnikom Iskra EMZ 1001 i D.Miljan, P.Reinhardt, P.Kolbezen ; IJS Delovno poroCilo Dp-2^07, Ljubljana, december 1981. L21 Kriüni zbirnik na bazi makro ekspanzije za mikroračunalnik EMZ 1001 ; P.Reihardt, R.Reinhardt ; IJS Delovno poroCilo Dp-2406, LJubljana, december 1981. C3D Projektiranje z integriranimi računalniki j Davor Miljan . Časopis Informatica 4/1960, str.29-35. Mikroračunalnik EMZ 1001, katalog Iskra - Industrija elementov za elektroniko - Mikroelektronika, Izdala; Iskra Commerce 09. 78. C5] Integrirani mikroračunalnik Iskra EMZ 1001 ; DuSan RaiC ; Časopis Informatica 1/1979, str.12-23. C63 Projektiranje z integriranimi mikroračunalniki j Davor Miljan ; IJS Delovno poroeiloDp-2146, Ljubljana, december 1980. C7] Microprocessors and software design tools; Keith D. Baker ; Mioroprocessors and microsystems, Vol 3, No.2, March 79, page 87 - 93. CS] MicroSim - a neu approach to program development 5 ,. David Cosserat ; Microprocessors and microsystems, Vol 3, No.2, March 79, page 95 - 98. C93 Designing with single chip microcomputers Markus Moser 5 . Microprocessors and «icrosystems, Vol 3, No.3, April 79, page 135 - 139. C10] New generation of microsystem simulators F.H van Linden i Microprocessors and microsystems, Vol A, N0.I, jan/feb 80, page 5-9. MAT E MAT I CN PREKLOPNIH 1. DEL MODE e z i j LI MEHURCNIH P. KOLBEZEN, B. MIHOVILOVIĆ, J. ŠiLC UDK: 681.327.6 INSTITUT „JOŽEF STEFAN", LJUBLJANA Problemi načrtovanja sistemov v najsodobnejših tehnologijah se vse bolj nanašajo na strukturo in modularnost sistem- v. Članek preučuje uporabo matematičnih modelov, na katerih je mogoče obravnavati probleme logičnega načrtovanja v tehnologiji magnetnih mehurčkov. V drugem delu članka so definirani novi problemi miniraizaoije in razredi funkcij v zvezi z ohranjevanjem mehurčkov in lastnostmi funkcijskih izhodov. MATHEMATICAL MODELS OF MAGNETIC BUBBLE LOGIC. In current technologies problems of structure and modularity in design have become increasingly important. In this paper it is considered the use of models to treat logic design problems ii. the technology of magnetic bubbles. In the second part of the paper ne>v minimization problems and associated classes of functions are defined with respect to bubble preservation and function fanout properties. 1. UVOD Večina problemov načrtovanja digitalnih sistemov se je v preteklosti nanašala na minimizacijo njihovih komponent. Načrtovanje v dandanašnjih tehnologijah pa vse bolj in bolj zadeva probleme, ki se nanašajo na strukturo in modularnost sistemov. Tovrstni problemi bodo brez dvoma še bolj prisotni v prihodnjih tehnologijah. Pri uvajanju nove tehnologije Je za poenoten pristop k reševanju problematike načrtovanja potrebno najpreje izdelati model, ki natančno odraža fizikalne značilnosti tehnologije, in na katerem Je mogoče'probleme tudi matematično obravnavati. Mnogo problemov se pogosto rešuje na takšnem matematičnem modelu, ki je podoben modelom prejšnjih tehnologij. V tem delu bomo proučevali modele, na katerih je mogoče obravnavati probleme logičnega načrtovanja v eni od tehnologij, ki kaže potencialno uporabnost v bodočih digitalnih sistemih. To je tehnologija magnetnih mehurčkov. Videli bomo, da je mogoče ne le modelirati logiko magnetnih mehurčkov, ampak jo tudi obravnavati z vidika logičnega načrtovanja. Ce hkrati upoštevamo tudi časovne parametre, so problemi podobni problemom, načrtovanja asinhronih sistemov, čeprav jim niso povsem enaki. Definirali bomo nove probleme minimizacije in razrede funkcijskih izhodov. Videti je, da bodo magnetni mahurčni pomnilniki SirSé uporabljivi v tistih bodočih digitalnih sistemih, v katerih bodo potrebni večji pomnilniki ali majhna poraba. V takšnih napravah je zaželjeno, da je sicer kompleksni vmesnik med mehurčnim pomnilnikom in ostalim delom naprave, ki je grajen v drugačni tehnologiji, čim manjši in preprostejši. To pa Je tudi eden od zanimivejših problemov načrtovanja logike, ki uporablja magnetne mehurčke . Magnetne mahurčke lahko uporabljamo tako za pomnenje informacij, kot tudi za Izvajanje logičnih funkcij. Čeprav je hitrost delovanja mehurčnih-sistemov za večkratni velikostni razred nižja od hitrosti sodobne pol-prevodniSke tehnologije in s tem tudi njihova uporaba nekoliko omejena, so mehurčni sistemi zanimivi tam, kjer Je pbmembna zlasti robustnost, majhna poraba energije, zanesljivost in čim manjše vzdrževanje. 2. FIZIKALNE OSNOVfe Nekatere vrste magnetnih materialov, tako kot enojni kristalni magnetni oksidi in ortoferiti, imajo lastnost, da se lažje magnetizirajo v eni smeri kot v drugi. V tanki ploščici takšnega materiala se pri ustreznih pogojih z magnetnim poljem, ki je pravokotno usmerjeno na ploščico v smeri lažje magnetizacije, ustvarijo stabilne magnetne domene. Te domene imajo smer magnetizaci je, ki je nasprotna smeri zunanjega magnetnega polja. Pod vplivom polja primerne Jakosti v smeri lažje magnetizaci Je postanejo magnetne domenè celindrične oblike. Takšne domene imenujemo magnetne mehurčke. Slika 1 kaže presek nad ortoferitno ploščico, zunanjim poljem in polarizacijo mahurčkov. oanovno (lolje Il 1 111^_uu magnetni mehurčki Slika i. Presek ortoferitne ploščice Premer mehurčkov je nekaj do več sto mikronov. Razliku so odvisne od izbire magnetnega materiala. Velikost in obliko magnetnih domen določa Jakost zunanjega polja. Ce polje upada, premer mehurčka narašča in končno postane domena; necilindrična. Nasprotno pa z naraščanjem zunanjega polja upada premer mehurčka in pri premočnem polju le-ta izgine. Namesititev mehurčkov v ploščici je lahko omejena na končno množico možnih pozicij. Prisotnost ali odsotnost mehurčka na določeni lokaciji moremo interpretirati kot prisotnoot logične vrednosti "1" ali "O" spremenljivke, ki je določena z lokacijo. Mehurčki lahko potujejo, 'podobno kot delci, od ene lokacije do druge. Poleg tega odbijajo drug drugega, kar je mogoče izkoriščati za i izvrševanje logičnih funkcij. S tem pa se odpirajo ma-gne1;nim mehurčkom dodatne možnosti v aplikacijah procesiranja podatkov. Na sliki 2 ik; bo mehurček pix) tokovnini Impulzom okozl zanko premaknil iz lokacijo lì v II. Fodol)no na zaradi •tokovnega impulzri v zanki Xj^ premakne inchur'cek i/. E v fi. Tok v zanki pritegne mehurček iz aonediijih zatik. ftj to preprečimo v eni od sosednjih zank, moramo 3 tokovnim impulzom skozi izbrano zanko u::t.varitj, primerno "zaviralno polje", ki prepreči; da jo mehurček zapusti. Z driv,o množico zank, kj. je pravokotna na pr'vo množico (slika 3), moremo mehurček premakniti iz poljubne pozicije v katerokoli drugo od štirih sosednjih pozicij. S primernim zaporedjem nadaljnih impulzov pa v katerokoli drugo pozicijo. Mehurček iz pozicije A na sliki 3 premaknemo v pozicije H z eno od naslednjih Impulznih sekvenc: ali Y^iX^iYy To metodo iinenujcmo metodo kontroliranega dvodimenzionalnega premikanja magnetnih mehurčkov. "3. 3. PROPAGACIJE MEHURČKOV Poznamo več metod, ki jih uporabljamo za premike mehurčkov znotraj ploščic: na sliki 2 vidimo eno od možnih metod, ki je osnovana na prevodni tokovni zanki. Ta ustvarja lokalna magnetna polja. Iz slike vidimo, da so zanke zaključene le na enem koncu. Tako je olajšana njihova izdelava, osnovana na tehniki tankoplastnega riima. Mehurčki se bodo premaknili iz ene zanke v drugo, sosednjo zanko pod vplivom tokovnega impulza v sosednji zanki v smeri, ki v prvi zmanjša vpliv zunanjega polja. n n n (iT I (■/ fl !■) Slika 2. Proijai^acija m prevodno zanko Slika 3. Propagacija s prevodno zanko v dveh dimenzijah Pri drugi metodi propagacije mehurčkov je uporabljena . permalojna prevleka in v njeni' ravnini rotirajoče magnetno polje /1/. Permalojni vzorci na ploščici vsebujejo mehurčke. Na sliki M vidimo vzorec, ki se pogosto uporablja. Sestavljajo ga T-ji in paiioe (I-ji). Propa-.gacijo mehurčkov takšnega tipa imenujemo T-paličasto ali Tl-propagacijo. Tl-propagaciji mora obstajati osnovno magnetno polje, ki drži mehurčke v stabilnem stanju. Drugo polje, ki se vrti v ravnini materiala, pravokotno na osnovno polje, pa rabi za gibanje mehurčkov. Zaradi visoke per-meabilnosti permalojnei);a nanosa ustvarja magnetno ravninsko polje ma/inetne pole v permalojni prevleki. Pri določeni t-meri ravninskijga magnetnega pol.ji\ dosežejo mehurčki energetsko šibko pozicijo mirovanja. Rotirajoče magnetno polje v ravnini pa tojdaj povzroči premik mehurčkov, Tt: fniiatramo za nekakšne "inainetne naboje", ki poskušajo doüeöi pozitivno pole permalojnih magnetov, .'Uike 'la do 'Jd kažejo gibanje mehurčkov med enim obratom iiia^^ncLno;^?! polja, V nasprotno smer rotirajoče polje pa povzroči pomik mehurčka v smeri, ki Je nasprotna 66 prejšnji smeri. Propagacija mehurčka, ki izkorišča per-malojne prevleke, kot na primer zgoraj obravnavnria metoda Tl-propagacije, ae zaradi preproste kontrole n;iJ[X)go-steje uporablja. V primeru propagaci Je, ki izkorišča prevodna vezja, :.ii morajo tokovni impulzi zank slediti v točni uekvenci. To omogoča gibanje mehurčka od ene lokacije do drugti. Zahtevana aekvenca pa ni potrebna v primeru T]-propa-gaolje. V primeru Tl-organizacije na sliki t lahko uporabimo pomi kalni register. Mehurček se bo pomaknil od enega T-vzoroa do naslednjega v času enega cikla r'otira-jočega magnetnega polja. I tät^T •Slika 4. Tl-propagacija 3.2. Generiranje, destruiranje in detektiranJe mehurčkov Permalojna vezja se lahko uporabljajo tudi za generiranje in destruiranje mehurčkov /1,2/. Generacija mehurčka nastane s cepitvijo enega mehurčka v dva, kar nazorno kaže slika 5. Velik permalojni disk na začetku Tl-propagaoijske poti ima mehurček, ki predstavlja vir novega mehurčka. Pod vplivom rotirajočega magnetnega polja se ta mehurček, ki Je priklenjen na Tl-vzorec, raztegne in končno razdeli v dva dela. Nato zavzameta oba mehurčka premer, ki Je določen z jakostjo osnovnega magnetnega polja. Prvi mehurček ostane na permaloj-nem disku, drugi pa se za tem širi vzdolž Tl-propaga-cijske poti. Destruiranje mehurčka povzroči obraten proces, ki se konča z združitvijo "ponornega" mehurčka z velikim diskom na koncu Tl-propagacijske poti. Pri povezovanju magnetnega mehurčnoga [Kiirinllnika ali logike a konvencionalnimi vezji moramo detektirati prisotnost mehurčkov nn določenih lokacijah in gcntirlratl ustrezne električne signale. V ta namen uiiorahlja več metod. Znane so: magnetooptična metoda dct.cki'l ii-, detekcija, ki izkorišča Hallov er<.'kt,lti mcl.ml.i mltl-pavanja z magnetno rezistenčnlmi tjapravami/1/. 3-3. Logične operacije Z magnetnimi mehurčki Je mogoče rt^al i;'.iiMti tudi ...mov-ne logične funkcije. Obstoječe reall-zacijo takšnih funkcij 30 osnovane na magnetoatatičnem odboju med mehurčki, ki se nahajajo na sosednjih lokacijah. Meliurčke Je mogoče prenesti na željene lokacije z rabo ene od -zgoraj obravnavanih propagacijskih shem. V obeh obravnavanih shemah je pomik mehurčka pri vsakokratnem tokovnem impulzu ali rotaciji polja konstanten. Pri izvajanju logičnih operacij morajo biti mehurčki krmiljeni na poseben ainhroni način. Slika 6 kaže metodo realizacije nekaterih preprostih logičnih funkcij dveh spremenljivk s prevodnimi zankami. Najpreje se mehurčka, ki predstavljata spremenljivki x^^ in Xj, razširita na lokaciji A in B. Mehurček bo prisoten na poziciji A, če in samo če bo 1, in na poziciji B, če in samo če bo X2= 1. Predpostavljamo, da v začetku mehurček ni prisoten na poziciji C. Če steče skozi Xj tokovni impulz, se bosta mehurčka odbijala drug od drugega. Torej se bo v C pojavil mehurček le tedaj, če se mehurček v času tokovnega impulza.skozi Xj nahaja v eni izmed pozicij A ali B. Ker predstavi ja pozicija C logično funkcijo vsote po modulu 2 (x^^ @ x^). Na pozicijah A in B se mehurčka obdržita, če in samo če se v začetku hkrati nahajata na obeh pozicijah. Zato pozicija A in hkrati tudi B predstavljata funkcijo logičnega produkta (xj^.x^). •■(•i Slika' (>. Healizacija logičnih funkcij pri tokovnih zankah 7. različno (.geometrijo propagaci jskih perinalojnlh vzorcev ali rav.l Ičiiirai iititeriali propigacl Jiiklli vzorcev Jo moKoče ■.■.n.-.otovitl, da se mehurček postavi na pozicijo C pod vplivom tokovnega impulza v X^ tudi, če :h; mehurčka hkrati naliajata na obeh pozicijah A in H. V Slika 5. Generiranje mehurčka tvm priirieru predstavlja pozicija C funkcijo x M- Možna pa je. tudi'aekvenoa, ki,omogoča realizacijo funkr.. cije x^.xj na poziciji C, na naslednji način; a tokovnim impulzom skozi t^, se na. poziciji C pojavi mehurček, če' Je le-ta prisoten na poziciji A ali B ali ha obeh pozicijah hkrati, če se v naslednjem koraku pojavi tokovni impulz skozi Xj ustrezne'Jakosti in nasprotne smeri, se mehurček v C (če obstaja).uniči. Ponovni impuls v Xj pa lahko pomakne mehurček, ki: Je ostal na poziciji A ali na poziciji B, v pozicijo C. Po treh to-,kovnih impuizih se mehurček rahaja na obeh pozicijah A in B.- - . ' . . Logične funkcije je možno realizirati'tudi s Tl-pro-pagacijo. Takšno realizacijo prikazuje slika 7. Z rotirajočim poljem v ravnini , se mehurčka v A (ki predstavlja spremenljivko Xj^) in/ali v B (ki predstavlja spremenljivko x^) pomikata v C, od te pozicije pa dalje proti D ali E. S primerno namestitvijo vzorcev T in I na križišču dveh poti je mogoče doseči, da se mehurček pomika po eni sami poti, po tako imenovani "lažji poti", če le ni v neposredni bližini drugega mehurčka. Slika 8 kaže mehurčno realizacijo dveh vodnikov, ki križata drug drugega. Vezje mora biti inicinlizirano s kroženjem mehurčka ha sečišču obeh poti, kar je tudi razvidno iz slike 8. Mehurček, ki bo pripotoval od vhoda A^^, bo odbil krožeči mehurček navzdol po poti .k izhodni A^^^^, sam pa bo začel krožiti na sečišču obeh poti. Enako se dogaja, če mehurček pripotuje od vhoda B^^. Kateri mehurček bo ostal v sečišču, če mehurčka potujeta hkrati po obeh poteh, je odvisno od relativnih časovnih situacij mehurčkov na poteh A in B, zanesljivo' pa oba mehurčka pripotujeta do izhodov A^^j. in B^^^,. rotirajoče /A cfl''" polje ^ j ^ C3 O..., Slika 8. Tl-realizacija prekrižanih poti rotirajoč polje Ci i -a. C=l Slika 7. Realizacija logičnih funkcij pri Tl-propagaciji Odbojni vpliv sosednjih mehurčkov povzroči, da začne mehurček potovati po drugi poti, tako imenovani "težji poti". Na sliki 7 naj bo pot do pozicije D "lažja pot", medtem ko naj bo pot iz obeh pozicij,A in B "težja pot". Če se mehurček najpreje nahaja ali na poziciji A ali na poziciji B, bo proti D potoval po lažji-poti. Če pa se mehurček hkrati nahaja na obeh pozicijah A in B, bo3ta oba mehurčka dosegla C istočasno. Eden od mehurčkov bor odbit v C.-potoval proti E po "težji poti", medtem ko bo drugI mehurček potoval proti D po "lažji poti". Na ta način predstavlja lokacija D funkcijo + x^, lokacija E pa funkcijo x^.Xj. Na podoben način Je mogoče realizirati tudi druge osnovne logične funkcije s primerno geometrično ureditvijo permalojnih .vzorcev. Z opisanimi elementi, ki so standardnih velikosti in struktur, je možno graditi polja elementov poljubnih velikosti. Takšna polja omogočajo realizacijo različnih logičnih funkcij. Pri tem Je vsak osnovni element v interakciji s sosednjimi elementi. It. MATEMATIČNI MODEL MEHURCNIH INTERAKCIJ Lastnosti, ki se nanašajo na logiko magnetnih mehurčkov, bomo študirali na matematičnem modelu mehurčnih interakcij. Model bomo zgradili na osnovi nekaterih značilnih fizikalnih lastnostih mehurčkov, ki smo ji'h obravnavali v gornjih razdelkih. Predpostavljamo, da Ja V množica vrhov. Ti naj predsta-r vljajo množico vseh možnih položajev mehurčkov. PredpoJtr avljamo, da je lahko katerikoli par vrhov iz V v medsebojni interakciji. V praksi sta lahko v interakciji samo dva sosednja mehurčka. Mi pa v tem poglavju predpostavljamo, da takšna omejitev ne obstaja. Na ta način se lažje dokopljemo do nekaterih predhodnih rezultatov, ki so neodvisni od omenjene omejitve. Najprej obravna- • varno najpreprostejšo operacijo, ki omogoča prenos mehurčka od vrha A k vrhu B. Pri tem naj se gibanje posameznih mehurčkov izvaja po propagacijski metodi, ki Je osnovana na prevodnih zankah. Metodo smo že predhodno obravnavali.v poglavju 2. Mehurček se pomakne od A k B pod vplivom primernega na-gnetnega polja v B in zaviralnega polja m vseh sosednjih lokac.ijah, razen na lokaciji A. Mehurček se giblje od A k B, če in samo če je prisoten v A, v B pa ne.. Označimo takšno interakcijo med A in B z e = (A,B). Imenujemo jo "iiiehurčni prenos" (brubble transfer /3/). Kot smo že zgoraj.omenil i, predpostavljamo, da sta v našem matematičnem modelu A in B lahko poljubna vrhova. V pr,^k:ii pa se izkaže, da sta takšna vrhova lahko le sosednja vrhova. Ekvivalentno temu lahko tudi predposta-; Ó8 vi jamo, da so v našem matematičnem modelu vsi vrhovi iz V sosednji vrhovi poljubno izbranemu vrhu iz V. Naj bo X B V (možica vrhov, ki v začetku vsebujejo mehurček, in .X® množica vrhov, ki bodo vsebovali mehurček po mehurčnem prenosu e = (A,B). Potem X® : (X - {A})^ {B} ceAeXinB^X In drugače X® = X . Vsako takšno interakcijo bomo smatrali kot "instrukcijo" in sekvenco takšnih instrukoij kot "program" /3/. Naj bosta a in b binarni spremenljivki, ki predstavljata začetna pogoja na lokacijah A in B (to je a =1, če je na lokaciji A mehurček prisoten, in A = O, če mehurček ni prisoten). Nadalje naj bosta a' in b' binarni spremenljivki, ki predstavljata pogoja na teh lokacijah po interakciji e = (A',B), in sicer a' = a.b b' = a + b Tak mehurčni prenos uporabljamo za izvajanje logičnih funkcij "IN" in "ALI". Da dobimo operacijo komplemen-tiranja, moramo pri odsotnosti mehurčka mehurček generirati in obratno; pri prisotnosti mehurčka mehurček odstraniti; v obeh primerih z enako sekvenco instrukcij prenosa. To pa ne moremo izvesti samo 2 mehurčnitn preno-soin. Spremenljivko moramo določiti z dvema mehurčnima lokacijama, namesto ene same. Predstavitev takšne spremenljivke kaže slika 9. Logična vrednost spremenljivke a je določena s prisotnostjo oz. odsotnostjo mehurčka na lokacijah A^^ in A^. Prisotnost mehurčka na lokaciji A, in ne na lokaciji Aj, predstavlja a = 1, ter prisotnost mehurčka na lokaciji A^, in ne ne lokaciji Aj , predstavlja a = O, Na ta način sta obe logični vrednosti določeni s prisotnostjo meiiurčkov. Pri takšni določitvi spremenljivke je namreč nepotrebno, da pri odsotnosti mehurčka v poziciji A^^ zagotovimo prisotnost mehurčka v in obratno. Vidimo, da je za n dvojiških spremenljivk potrebnih 2n lokacij. 2., da je predstavitev s" vhodnih kombinacij potrebnih le m lokacij, če sta m in k takšna da velja ■ m k 0 <^0 0 # Slika 9. Predstavitev spremenljivke z dvema lokacijama Naj bo 2" možnih kombinacij n spremenljivk zakodlranih v kiiUu "k od m".'roje kod, ki zagotavlja natančno k izhodov m spremenljivk v "1" pri poljubni vhodni kombinaciji. Lahko bi dokazali: 1., da je pri takšnem načinu kodiranja mogoče realizirati poljubno logično funkcijo brez funkcije negacije , in Predpostavimo, da Je vsaka spremenljivka določena z dvema lokacijama in da na lokaciji B ni mehurčka. Potem moremo spremenljivko a komplementir'ati s programom P = s^e^ey kjer Je e^: (Aj,B)i 62= in (B,A^) Po izvršenem programu je vsebina na obeh lokacijah dana z enačbama P = a^ in = a^ kjer predstavlja a^ vsebino na lokaciji A^, i =0,1. Ker smo dokazali, da moremo logične operacije IN, ALI in NE realizirati le z mehurčnimi prenosi, smem» zaključiti, da moremo z njimi izračunati tudi katerokoli logično funkcijo. Klasične metode realizacije pa upoštevajo tudi izhodni indeks. Do tu nismo pokazali, da lahko ta indeks upoštevamo tudi v našem matematičnem modelu me-hurčnih interakcij. Vedeti moramo namreč, da bi v nasprotnem primeru samo z mehurčni.mi prenosi ne mogli realizirati katerokoli logično funkcijo. V dokaz temu potre bujemo nekaj predhodnih ugotovitev. Naj bosta V in Y£ V množici lokacij, ki vsebujejo mehurčke. Število lokacij, ki so skupne množicama X in Y, to je !Xnv!, bomo imenovali prekrivanje množic X in Y. Lahko dokažemo naslednje: Ce e = (A,B) in sta X, V, množici, ki v začetku vsebujeta mehurčke, velja |X®A ^ |X AY|. Dokaz najdemo v /5/. Nadalje lahko zapišemo trditev o nezmanjševanju prekri-tja: za vse programe P = e^^e^ •••.e^ in vse X, Y S V velja y'^I ^ I XAY(. Dokaz te trditve sledi direk- tno iz trditve 1. Naj bo Vj^, VgC V, V^A V^r 0 in konfiguracija mehurčkov taka, da je Xj S V^ in X^S V^.X^ je kopija od X^, če obstaja enolična preslikava med elementi iz Xj in elementi iz Xj. Program P, ki ga Je mogoče ponovno uporabiti (ponovno uporabljiv program P), je takšen program P, da za nek Vj, Vj,C V z mehurčiio konfiguracijo Xj^ in P generira kopijo v V^ tako, da se v V^ohrani, Lahko ugotovimo, da takšen ponovno upf}rabljlv program P, P = ejCj, ne obstaja. Dokaz za gornjo trditev najdemo v /''>/. Iz tniltve i lahko zakl jučiiiKi, da izhodni indeks rie moremo realizirati samo z inatrykcijami mehurčnega prenosa, in zato tudi ne vseh kombinacijskih funkcij. Lahko pa realiziramo opjracije IN, ALI in NE, če uporabimo kodiranje, ki je ponazorjeno s sliko 9 /i/. Vendar so fizikalno možni tudi drugi tipi interakcij, ki jih dudamo .našemu modelli, né da, bl-u"lèU v, naaproLJe z roiilnoatjo, Ižhoini indeks implemerclramo, če In.'jtrùkct Jura mehurč-■ nih prenosov dodamo äe tako imenovano "instrukcijo me-hurčne podvojitve". Oznražimo Jo z e : (A.B)^ in naj velja: .J X®= X Ü {B}, Se A e X, X®= X,/ če A^X ali BC X Funkciji, ki sta po tej interakciji■predstavi Jeni na lokacijah A in B, eta .'; a!= a ' b'= a + b . Će v začetku B ne poseduje mehurčka, se-po interakciji pojavi na izhodu spremenljivke u. Inicializacijo omogočimo z dvema dodatnima interakcijama: "generiranje mehurčka" in "destruiranje • . (anhilacija) mehurčka". Instrukcijo generiranja mehurčka označimo z e = (1,A). Velja X L/{A) Instrukcijo destruiranja mehurčka označimo z e.= (O,A). Velja X-{A} . ' . . ■ . ■ : . . Na sliki 11 je prikazana razpredelnica vseh štirih tipov interakcij:' .' .Ime I Opis Prenos Podvojitev Anhi.laei ja Gtìiier'aei ja e = (A,B) e = (A,B)^ e = (0,A) e = (1,A) Lokacije z rezultirajočimi mehurčki (X -{A))u{B},če AeX, .69!5( . X, če A^X ali. BCX 3 f XyfB}, če ■ I X, če A^X Aex XVX-^A] X®= X A Slika 11. Si.it'Je tipi operacij nad mehurčki haliko h.i dokazali, eia z rabo vseh .štirvih l.iptjv interakcij. In zgoraj omenjenega kodiranja ne moremo že realizirati vseh kombinacij funkcij. Izjeiiioma pa, če obata-J.;ijo nekatere lokacije, na katere se lahko meliurčki začasno premaknejo. Velja /5/ naslednja trditev: Koiiibinaoij.'jke funkcije so neizračunljive z vtieriii štiri-iii: t.ipi i.nstrukcij (prenosa, podvojitve, anhlLaciJti in generacije), če so informacije prisotne na vaeh iokaei-jeh v V. . Gornja trditev velja tudi v primeru rabe kodiranja tia a].iki 9, kjer V vsebuje 2n lokacij z vrednoMtmi n':ipre-menljivk. Program, ki bi uporabljal interakcije opisa-tiih stirili tipov in omogočal kompiemcnla vseh spremenljivk, tui Obsta.ia. pri toin se moramo zavedati, da smo pri preje izvajanem programu kompieineiitiranja binai'nih spremenljivk iwtrebovaii tudi dodatne lokacije. Volja nas.ledfija trditev: Vse korabinatorne logične funkcije au izračuni ji.ve, če u|xiral>ljamu štiri t.ipe instrukeij^ pririiorn.) k(idiraii,|o vhodov In,če je začasno potrebno dovolj veliko število lokacij. Dokaz.najdemo v delu. /5/. 5. ZAKLJUCEK Pokazali smo, kako moremo logični element vsote po modulu ?. in element IN dveh spremenljivk realizirati z interakcijami magnetnih mehurčkov. Nadalje smo oblikovali, ničiteraatični model takšnih interakcij. Čeprav zgo-^raj omenjena elementa še ne predstavljata polne množice osnovnih elementov, ki bi omogočali realizacijo poljubne komblnacijske funkcije, je vendar nekatere od teh mogoče realizirati z omenjenimi interakcijami. Pogoj obstaja le v možnosti generiranja mehurčkov .(konstantal Din v možnosti realizacije izhodnega indeksa. Indeks moremo realizirati z interakcijo med lokacijama s konstanto 1 in spremenljivko x, če le-ta realizira izhoda ' X in 5(. S ponavljanjem takih, postopkov dobimo željeno .število izhodov x. Pri tem pa ne potrebujemo nobenega kodiranja, saj so hkrati neposrèdno dosegljivi tudi komplementi x od x. Medtem ko: smo:Ugotavljali pogoje, ki so potrebni za realizacijo logičnih funkcij z mehurčnimi preklopnimi vezji, nismo obravnavali tudi število inaturkcij, ki je potrebno za taksno realizacijo. Dodati pa moramo, da minimizacija števila instrukcij predstavlja poseben problem za- učinkovito realizacijo logičnih funkcij. 6. LITERATUHA 1) P. Kolbezen, R'. Trob.ic, J. Silo, B. Mi.holovi.č: f'teliurčiii pomnilniki, .U;; i.,jul/l Jana, Ha/Jakovalna studija, .številka pogodbe; o:i-liH-PK-l<^26/8l , Junij 81 i-') SiLc: Higtietrii mehurčki v digitalni tehniki, magistrski delo, iJniverza Edvarda Kardelja, fakulteta za elektrotehniko, junij 1982 3) H. L. Graham: A Mathematical Study of a Mxlel of Hignetic toiiain Interactions, BSTJ,; vol .ll9, pp.l6,?7-l6'|l4, October 1970. ' ' 'J).H. C. Minnick: A System of Magnetic Bubble logic, lEEl' Trans, on Computers, vol. C-2'i, pp.217-218. February 1975 5) P. Kolbe/.en: Optimizacljski problemi iiiehurčne logiko, US Delovno pcjročilo Dp- 2976, 1.jublJana,■ deeeinber 82 INFORMATICA 4/1982 s i n o pt i k a vodenega UDK: 681.327.12 mikroracunalniško SISTEMA roman trobec, iztok lesjak. matja2 subelj INSTITUT JOŽEF STEFAN, LJUBLJANA Opisan je /?nostaven način prikaza sinoptične sheme industrijskega procesa na grafičnem ekranu. TIIE CONTROL PANEL OF \l? CONTROL SYSTEM. A simple method of representing industrial sistem's scheme via graphic CRT(s) is described. UVOD V članku smo opisali klasično realizacijo sinoptične sheme. Posebej smo analizirali njene slabosti in nato predlagali preprosto realizacijo sinoptične sheme s CRT ekranom. Opisali smo programsko opremo za risanje sinoptike in analizirali karakteristike tako realizirane sheme. Sistem je bil realiziran na več procesorski hie-rarhiski mreži in služi za prikazovanje trenutnih stanj po posameznih dislociranih objektih. 1. SINOPTIKA INDUSTRIJSKEGA SISTEMA Za komunikacijo operaterja s sistemom je potrebna funkcionalna shema, na kateri so obrisi sistema z vsemi podatki in komandami, ki se zahtevajo za normalno delovanje in upravljanje. - Shema je lahko popolnoma neodvisna od računalniškega sistema, v primerih, ko je z računalnikom realizirana le dokumentacija delovanja. Običajno je shema v takih primerih vir podatkov za računalniSki sistem. - V realnih procesih so praviloma potrebne tudi komande, kar zahteva, da se del računalniških izhodov veže na sinoptlčno shemo. - Pravi pomen dobi sinoptika v sistemih z oddaljenimi točkami upravljanja in izvori podatkov, ob istočasni zahtevi po upravljanju iz centralnega mesta. Primeri takih sistemov so : vodovodni sistemi in sistemi kanalizacije, elektroenergetski sistemi in podobni kompleksni industrijski procesi. Izkaže pa se, da velikost sinoptične sheme hitro preraste smiselne meje. Klasična shema dobiva nesprejemljive dimenzije, postane velik porabnik električne energije in objekt stalnega vzdrževanja. Zaradi teh razlogov predstavlja velik procent celotne investicije avtomatizacije industrijskega procesa. Preverimo naša razmišljanja oa praktičnem primeru upravljanja in nadzora nad srednje velikim vodovodnim sistemom, ki ima na zaključenem hidrografskem področju deset podsistemov, ki sodelujejo pri proizvodnji in usmerjanju pitne vode. Tipični podsistemi so: izviri, rezervoarji, zasunske komore, vodnjaki, črpalne postaje in podobno. Vsak zaključen podsistem je združen v terminalno postajo, ki jo upravlja sistem za prenos podatkov v centralno mesto upravljanja (komandni center) in prenos komand iz komandnega centra do izbranega terminala. Povprečno je potrebno za vsak terminal prenašati 30 DA -NE signalov splošnega pomena, 10 alarmnih signalov, 10 komand in 10 meritev, od katerih potrebuje vsaka 8 bitov informacije. Torej je za povprečni terminal potrebno 180 bitov informacij. Za pregled nad celotnim sistemom potrebujemo v komandnem centru 1800 bitov informacije. Če hočemo to množico podatkov predstaviti na sinoptlčni shemi mora imeti računalniški sistem v centru 1800 izhodnih linij, torej skoraj isto število povezovalnih kablov in ustreznih signalnih elementov (slika 1.). TE vmf<;ntk 1800 otmnpttif ä 1 1 • t ' o x ii r 1x fvm TE 10 Slika It - Će hočemo imeti pregledno shemo, potrebujemo za naš priiner shemo z dimenzijo najmanj 6 x 3 m, pri čemer je en bit", informacije predstavljen s površino 10x10 cm. - Sinoptična shema, bi morala biti realizirana z LED -display-i in diodami. Povprečna poraba električne energije na bit informacije je 10 mA/bit. Za celotni nistern bi se v tem primeru trosila moc približno 200 W. (Realizacija s klasičnimi elementi bi zahtevala bistveno večjo porabo moči). - Zaradi velikih dimenzij nastopi problem pregleda nad celotno shemo. ~ Realizacija sheme potrebuje drugačne profile strokovnjakov kot realizacija sistema za zbiranje in prikaz podatkov, kar pomeni izgubo časa ob montaži zaradi izmenjavo informacij in napak v dokumentaciji na eni in drugi strani. - ?:lerr.enti sinoptične sheme niso preveč zanesljivi, zato je potrebno sinoptično shemo neprestano vzdrževati. 2. PHF.DSTAVTTEV SINOPTIKE NA CRT - EKRANU Veliki večini pomanjkljivosti, ki jih ima opisana klasična izvedba sinoptične sheme, se lahko izognemo, če uporabimo za prikaze stanja grafični ekran. Za prikaz običajne sinoptike ustreza ekran, ki omogoča: - izpis nabora ASCII znakov, - risanje ravnih in vogalnih črt, - izpis znakov z reverznim ozadjem (reverse), - utripanje znaka (blink), - periodično spreminjanje svetlosti znaka (bold), - relativni premik kursorja, - absolutni premik kursorja, - shranitev trenutnega položaja kursorja (save), - reatavriranje položaja kursorja (unsave). Vsem naštetim zahtevam ustreza npr. CRT ekran domače proizvodnje "Kopa 1000". Shema sistema, ki predstavlja nespremenljivo ogrodje je shranjena v obliki tabel v pomnilniku mikroračunalni-Skega sistema. Izpis signalov DA - NE je realiziran z reverznim ozadjem. Alarmnim signalom pa je dodano še utripanje (blink) in povečanje intenzitete (bold). Meritve in številčne vrednosti (stanje števcev) so predstavljene z ustreznimi števili in enotami. V tabelah so shranjeni tudi vsi naslovi, oznake elementov sistema in komentarji. Primer, ki smo ga obravnavali v prejšnjem poglavju, je možno predstaviti s štirimi ekrani. Razdalja gledanja se zmanjša za 10 krat. Osnovni element meri sedaj le 1 cm x 1 cm, celotna shema pa dobi dimenzije 60 cm x 30 cm. Zorni koti ostanejo enaki kot pri klasični izvedbi, zato je tudi preglednost nad shemo enaka, če ne še boljša. Končna realizacija dopušča tri možnosti: - štiri fizične enote, na katerih se.hkrati riše po 1/1 slike. Slabost take.realizacije je, ker potrebujemo več izhodnih kanalov oziroma več procesorjev, prednost pa je v tem, da je vedno prisotna celotna slika. - fizično je prisoten le en ekran, ki predstavlja "okno" za pogled na celotno shemo. Premikanje "okna" je lahko izvedeno zvezno (en stolpec, ena vrstica),'kar zahteva komplicirano programsko opremo za mikroračunalniški sistem. Vendar je enostavneje premikati "okno" za cel ekran (80 stolpcev, 20 vrstic), kar še vedno zadošča zahtevam po dobrem pregledu nad sistemom. - Obstaja še tretja možnost, pri kateri je vsak terminal oziroma funkcionalno zaključeni podsistem predstavljen s svojo sliko. Poleg vseh podsistemov je na posebni suthv aiaii Slika 2. sliki predsta^jen celptni sistam, toda le z najvažnejšimi podatki. Opisani pristop Je udoben in eleganten, zahteva pa precej pomnilniSkega prostora za shranjevanje vseh slik. V naSem primeru bi bilo to pribliino 11 K-bytov EPROM pomnilnika. Pri. vseh treh možnostih so prvi dve vretici na ekranu rezervirani za tekoSe izpise vseh alarmnih sprememb v sistemu, ki pomagajo usmerjati oporaterjevo pozornost na določene detajle v celotnem sistemu. Na Sliki 2. je prikazan primer realizacije sinoptične sheme za majhen terminal v sistemu kanalizacije Novi Sad. Podajmo äe pregled prednosti, ki jih nudi predstavitev sinoptike na g-af1Cnem ekranu: - bistveno manJSa litmenzije (10x) ob isti preglednosti, - manjSa poraba i.aeKtriSne energije, - minimalni materialni stroški, - zmanjšanje kompleksnosti raSunalniSkega sistema (niso potrebni izhodni kanali), - možnost sprememb na shemi, - celotni sistem za prenos in prikaz podatkov Je produkt onega profila strokovnjakov, - enostavna montaža, - možnost dialoga operater -Bistem, Vse navedene toCke pomenijo zmanjšanje investicije, skrajšanje Saša izdelave in povečanje zanesljivosti delovanja sistema. 3. OPIS PROGRAMSKEGA PAKETA ZA RISANJE SINOPTIKE Ob zasnovi programskega paketa smo analizirali več različnih možnosti realizacije. Kriteriji, ki so nas vodili pri analizi, so bili predvsem: - risanje ne sme zavzemati preveč procesnega čaaa, - programski paket ne sme biti preobsežen, - Isti program naj bo uporaben za risanje poljubnih Bilk, - enoutaven postopek Širjenja paketa, - možnosti implementacije v že delujočih sistemih, - možnost samostojnega delovanja ali paralelno s Dlnoptlko. Program za risanje sinoptike, smo zaradi navedenih vzorkov zasnovali tako, da Iz tabel slik ekranov čita tekočI znak in glede na njegovo značilnost izvrši eno izmed procedur. Istočasno označi tekočo proceduro a status registrom. Za naSe zahteve so v prvi obliki zadoščale naslednje procedura: - Oddaja znaka (ODZN) Troced.;'« Je lahko samostojna (če gre za izpis običajnega znaka) aH pa zaključuje katero koli drugo proceduro s tem, da omogoči oddajo znaka. - izpis niza (IZNIZ) Izpiše posamezne znake kontrolnih aH podatkovnih nizov poljubno dolžine. Kontrolni nizi so namenjeni upravljanju grafičnega terminala, podatkovni nizi pa so znaki in sporočila operaterju. - Relativni pomik kursorja (RELPOM) . Premakne kursor na novo pozicijo. Ta procedura se uporablja zaradi hitrejšega risanja slik, ker se prazna mesta ne izpisujejo. Poleg opisanih "sistemskih" procedur smo realizirali 8e "procesne" procedure, ki so potrebne za predstavitev spremenljivih delov na sliki: - meritev (M) Procedura generira ätiriStevllCno vrednost meritve v petih možnih formatih (xxxx, O.xxx, x.xxx, xx.xx, XXX.x), s tem, da se izpuščajo začetne ničle, ki oo nepotrebne. Podatkovni niz se zaključi z znakom za konec niza. - signal (ONOFOK) Procedura ugotovi trenutno stanje elementa procesa in izbere eno Izmed možnosti (vključen, izključen, vključen in pokvsrjen, izključen in pokvarjen) in glede na to izpiše ustrezni niz (normal, reverse, blink, bold). 3.1. STRUKTURA PROGRAMA ZA RISANJE SINOPTIKE Program Je zasnovan tako, da dopušča razširitve in spremembe, poleg tega pa Je možno risati poljubne slike brez omejitev (seveda v okviru zmožnosti grafičnega ekrana). Karakteristike različnih shem so v tabelah, ki se jih realizira na močnem računalniškem sistemu s pomočjo interpreterja sinoptičnih shem. PROGRAM: RISANJE SINOPTIKE ZAHTEVA ZA RISANJE DO BEGIN WHILE BEGIN PREGLED ZAHTEV ZA RISANJE REPEAT DEKODIRANJE ZNAKA CASE ZNAK OF: - ': RELPOM '4': M ONOFOK IZNfZ odzn ELSE: END UNTIL KONEC EKRANA END END. 3.2. STRUKTURA TABEL Programski paket ima dostop do podatkov preko splošnega Imenika, ki vsebuje začetno naslova posameznih tabel. Uporabljeno Je absolutno In relativno adreslrnnje. Podatki BO razdeljeni v tri skupine: slike ekranov, vsebujejo vso znake (vključno s kontrolnimi) sestavljajo slike. ki - tabele ukazov, vsebujejo naslove spremenljivih vrednosti (procesnih podatkov) v pomnilniku lipa RAM. Pri signalih in okvarah Je dodana še maaka, ki omogoča bitno predstavitev podatkov, pri meritvah pa Je dodana informacija o formatu izpisa. - tabela nizov, vsebuje vse kontrolno in upravljalno nize z« grafični ekran. Primeri nizov so: normal, blink, bold, grafie mode, reset, save itd. St^ruktura tabel je podana na Sliki 3. (izrazi v oklepajih pomenijo relativno adreso imenikov). IMENIK IMENIK TABELA UKAZOV UKAZOV (ŠTEVEC UKAZOV) (STATUS) Slika 3. IMENIK SLIK EKRANOV TABELA SLIK EKRANOV (ŠTEVEC EKRANOV) (ŠTEVEC NIZOV) IMENIK TABELA NIZOV : NIZOV F.dini absolutni naslov, na katerega se nanaša progam za risanje sinoptike, je začetni naslov imenika. Vse drugo adresiranje je relativno, kar zagotavlja veliko fleksibilnost pri risanju različnih slik. Pri načrtovanju je potrebno paziti na zanesljivost (pasivna ali aktivna rezerva) terminala, ki je v opisani izvedbi kritično mesto upravljanja in nadzorovanja sistema. Avtomatsko tvorjenje tabel je dokaj zahteven postopek; ki smo ga realizirali z interpreterjem na miniraču-nalniku. Interpreter mora omogočati dialog z načrtovalcem sistema in ročno ali avtomatsko tvorjenje tabel ukazov, nizov in slik ekranov. 4. ZAKLJUČEK Ugotovili smo, da nudi realizacija sinoptične sheme z grafičnim ekranom številne prednosti pred klasično izvedbo, zato je ekonomsko veliko bolj upravičena. 5. LITERATURA (1) A.B.Anue: Status and Trends in Man-Machine Communication, Real - Time data handling and process -control. North - Holland Publishing Company, pp 145-151, Brussels and Luxemburg 1980 (2) Dokumentacija sistema za zbiranje podatkov o Kanalizaciji Novi Sad, IJS Ì981. .ica ó'ó Vabilo k sodelovanju Call for Papers Posvetovanje in seminarji Informatica '83 Ljubljana, 7.-9. junija 1983 Posvetovanje. 17. jugoslovansko mednarodno posvetovanje za mikroračunalhiško tehnologijo in uporabo Ljubljana, 7.-9. junija 1983 Seminarji Izbrana poglavja iz mikroračunalniške tehnologije in uporabe Razstava Razstava mikroračunalniške tehnologije, uporabe, literature in drugih računalniških naprav, z mednarodno udeležbo Roki 1. marec 1983 Zadnji rok za sprejem formularja s prijavo in 2 izvodov razširjenega povzetka 15. april Ì983 Zadnji rok za sprejem končnega teksta prispevka Symposium and Seminars Informatica '83 Ljubljana, June 7-9. 1983 Conference 17th Yugoslav International Conference on Microcomputer Technology and Usage Seminars • • Selected Topics in Microcomputer Technology and Usage Ljubljana, June 7-9,1983 Exhibition Exhibition of Microcomputer Technology, Usage, -Literature and Other Computer Equipment with International Participation Ljubljana, June 7-9,1983 Deadlines March 1,1983 Submission of the application form and 2 copies of the extended summary April 15,1983 Submission of the full text of contribution sesto republiško tekmovanje sredmješolcev s področja računalništva 1981/82 i. tvrdy, m. martinec UDK: 681.3:371.27 INSTITUT JOŽEF ŠTEFAN, LJUBLJANA eianek podaja poroBilo o Šestem slovenskem republiškem tekmovanju srednješolcev s podroBja raBunalniBtva. Tekmovanje je organiziralo Slovensko druStvo Informatika tO. aprila 1982. V eianku so podane vse naloge in reSitve nalog s tekmovanja ler pregled rezultatov. SIXTH SLOVENE COMPUTER SCIENCE CONTEST FOR HISH-SCHOOL STUDENTS. This article gives a report on the Sixth Computer Science Contesti organized by Informatika; Slovene Society for Informatics. The article includes the complete set of problems with their solutions and a short overuiev of contest results. I- Uvod Ena od rednih dejavnosti Slovenskega druStva Informatika je tudi popular i zac i j a ratiunal-nifitva med'srednješolsko mladino.' Komisija za popularizacijo ra&unalniStva je zato skupaj z Institutom Jolief Stefani Fakulteto za elektrotehniko in Fakulteto za naravoslovje in tehnologijo organizirala üe Sesto republiSko tekmovanje sredn jeSolcev s podroCja rafjunaln iSt va. Tekmovanja^ .ki je bilo 10. aprila 1982 na Fakulteti za elektrotehniko v Ljubljanii se je udeležilo 66 tekmovalcev po enem in 35 tekmovalcev po dveh letih pouka raSunalni^tva iz 2) srednj ih Sol. Tekmovalna komisija je upoštevala ne i zenatienost zlitino znanje dijakov in r delo na samem računalniku izbrat i nalogei ki ne znanjai niti ne temeljijo izkuSnjah ufiencev. Naloge najvaünejSe uCne smotrei tekmovalca predvsem razvit miCno razmiSljanje. ob izbiranju nalog uBnih programovi ra-azlitjne moünosti za Zato je poskuSala zahtevajo posebnega preveij na praktiffnih poskuSajo pokriti zato zahtevajo od smisel za algorit- iekmovalci obeh skupin so imeli na voljo po dve uri in pol tjasa za reSevanje nalogi pri tem pa so smeli uporabljati poljubno literaturo. Uradni programski jeziki tekmovanja so bili pascali fortran in basic. IL, Naloge_^a_uBence no_enem_letu oouka računalništva 1. Imamo dani dve zaporedji Števil med O in 9. OpiSi alaoritemi ki doloBi: Število istoleünihi med seboj enakih elementov v obeh zaporedjih in ga shrani v spremeni jivko z imenom örnii - Število preostalihi med seboj enakih elementov v obeh zaporedjih (ki niso istoleüni) in ga shrani v spremenljivko z imenom beli. POZOR! vsak enkrat ! Primer i : zaporedje 1 1234567890 1112333333 123'.567890 element upoštevaj pri Štetju le zaporedje 2 1231111111 0111177373 0000000123 Brni 3 O bel i 0 1 4 opomba: naloga izhaja iz igre MEMO (Števila O do 9 pomenijo barve). 2. V tovarni pijaB stoji na koncu lekoCega traku roboti ki mora zlagati steklenice v zaboje. Robot ima tipaloi ki mu povei ali se na traku nahaja steklenica ali ne. V vsakem zaboju je prostora za 12 steklenic. Koordinate predalov v zaboju so oznaBene na sliki. Napiffi program za vodenje robotai ki polni zaboje s steklenicami ! Predpostaviš lahkoi da je na zaBetku » ;jodstavljen prazen zaboj. Program ima na voljo naslednje podprograme: Tip - funkcija ima vrednost li Ce je na traku steklenicai in Oi Ke je ni i Prin'i - robot vzame steklenico s traku! Spusti<«iy) - odloÄi steklenico v zaboj na mesto (iiy)i NovZaboj - odstrani zaboj in podstavi novega« praznega. +----> X I v 1 lil 1 2il 1 3il 1 4il 1 y 1 li2 1 2i2 1 3i2 1 A,2 1 t li3 1 2i3 1 3i3 1 4«3 1 +----- -+-----+-----+-----+ Koordinate predalov v zaboju. 3. Vedine majhnih računalnikov pozna It osla «tfvlla aid -32768 In 32767. Na takem računalniku bi radi računali z dvajsalmastnimi oelimi Btevlll. Kako naj pradstavimo tako Ktavllo v računalnikui če üelimo le seStevati In odštevati? Opifil alaorUtna za seStevanJe In odštevanje dveh takih Števil! Ne pozabi na predznake ! A. Napisi programi ki izračuna vsa srečna Števila« ki so manjka od 1000. Srečna ätevlla so tistai ki preživijo naslednj i- postopeki N naravnih fitevil postavimo v vrsto. 1 izpustimo in začnemo' z 2, Iz vrste vzamemo (prečrtamo - vrifemo proč) vsako drugo itevi lo. Naslednje Steviloi ki stoji za 2 je 3. Iz vrste vzamemo zato vsako tretje Število, Naslednje preostalo Steviloi ki stoji za 3 je 7... Za 7 je naslednje preostalo Število 9i nato 13i... Postopek ponavljamo« dokler lahko odvzamemo Se kakSno Število. Števila Štejemo vedno od začetka vrste« to od 1 dalje! j' frekv (oscilator« Številka) podprogram nastavi ''osollator" (med 1 In 5) tako« da zveni s tonom "Številka" (med 1 in 60)« oziroma da utihne« če je "Številka" 0. a) moüno Je. da je pritisnjenih veB kot pet tipk hkrati. V tem primeru naj utihnejo toni« ki ie najdlje zvenijo« kljub temu da so ustrezne tipke Se vedno pritisnjeno. Drugače povedanoi' vsaka tipka mora takoj in vsaj za nekaj Basa povzročiti zven svojeaa tona. b) poenostavi algoritem tako. da ne upoBteva» pritiskov na več kot pet tipk hkrati. OPOhBAi NapiSi program, ki upravlja t elektroniko naSIh orgel po algoritmu a), če imaS teXave. lahko uporabiS algoritem b). ki ti prinese manj toKk. Ugotovi, kaj počne naslednji podprogram. Preskusi ga najprej na primeru! Razloüi način delovanja (algoritem)! Prvih nekaj korakov« i g 3 I, 3 6 7 8 9 tO 11 12 13 11. 15 16 17 ... 18 19 20 21 22 23 12 5 7 9 11 13 15 17 19 21 23 ... (v prejSnji vrsti črtan vsak 2.) 1 3 I 9 13 13 19 21 (v prejSnji vrsti črtan vsak 3.) 1 3 7 2 13 15 21 (v prejSnji vrsti črtan vsak 7.) 1 3 7 9 13 15 21 (ker je v' prejSnji vrstici manj kot 9 Števil, postopek zaključimo) III. Naloge za učence po_äüLtb_LsJUüb—Bg^b-ä računalništva 1. Napisi program« ki prebere dve naravni Števili In izpiSe njun kvooient na m deoimalk natančno. m naj bo tretji prebrani podatek. Upoštevaj« da je m lahko "poljubno" velik. 2. Sestavi postopek. ki naključno izbere 1000 Slovencev. Na razpolago imaS datoteko z imeni« priimki in naslovi vseh Slovencev (podatek Iz popisa prebivalcev 31. 3. 19Ö1I vseh Slovencev je 1 891 86A) ter generator naključnih Števil - funkcijo Slučaj, 0 <= Slučaj < 1. Za podatke o vseh Slovenolh v spominu ni prostora. Postopek naj preiSče datoteko le enkrat! 3. Radi bi napravili preproste elektronske orgle. Na razpolago imamo 60 klavirskiti tipk s stikali. 5 oscilatorjev (generatorjev tona)« ki jim moremo nastaviti frekvenoo (viSino tona), ter računalniki ki naj krmili oscilatorje In odčitava klaviaturo. Zaradi omejenega Števila oscilatorjev more hkrati zveneti največ pat tonov. Programu so na voljo naslednji podprogrami« tipka (Številka) tunkolja ima vrednost 1« če jè tipka "Številka" (med 1 in 60) pritisnjena. in G« če ni. iaaži n = 101 type tabela » array Cl..nI al Integeri procedure KajNaredim (var a« tabela? n» integer)! iar i « j « XI i nteger I ok > Boo lean! i n for i I= 2 to n do beg I n X 1= aCiDI j 1= t - 1 i ok 1= true! Vh'le ok do il j < 1 then ok I= f alse else It aCj3 <■= x then ok >= false else beg i n aCj+lD 1= aCjJI j >= J - 1 ejid! aCj+1] 1= X ejjd erid < KajNaredim >I SUBROUTINE KAJ (A. N) INTEGER N. A(N) INTEtìER I« J. X t C 00 50 I ■= 2« N X = All) J = 1 - 1 10 CONTINUE IK tJ.LT.l) GOTO 30 IF (A(J) .LE.X) GOTO 30 A(J+1) - A(J) J = J - 1 GOTO 10 30 CONTINUE A(J+1) - X 50 CONTINUE RETUHN ENO IV. Rezultati prvouvrfftfenIh tekmovalcev v vsaki skupini PO ENEM LETU POUKA RAÖUNALNI JfTVA nagrada St. tekmovaleo tottk Sola I I 1 II II II III III III 97 Matjait Kovatfeo eimnaiija M. ZidanSkat Maribor 95 Sand i Kodriö Gimnazija Beiiigradi Ljubljana 94 Sa£a Pucko SC BrBÜloe. 88 Borut Zalar Gimnazija! Novo mesto 90 Tofflaü Gornik Gimnazija M. ZidanSkai Maribor 90 Roman fioper Gimnazija Novo mesto 86 Tomas Slivnik OS Prepihov Voranoi Ljubljana 84 Boris Orehek Elektrotehniška Solai Ljubljana 83 Pavel Ilija Elektrotehniška Solai Ljubljana begi n < Memo > Brni I» O» beli O» for i 1= 1 ia n đfi begin B«NelCi3 1= true! SeNe2Ci3 •"= true eMI for i 1 to n dg if niztC13 = nl22Ci3 then bagj n örni 1= örni + il SeNelCi3 (»i false! SeNe2Ci3 i' false eüdi for i 1 to n do lor j 1= 1 is n flifi il SeNelCi3 ^nd SeNe2Cj3 then il nizlCiD » niz2Cj3 ItiM beg i n beli >= beli + Il SeNetCia •= false! SeNe2Cj3 »= false end end { Memo H bea i n < IgraMemo > read (n)i for i := 1 lo n ito read (nlzlCia)! fpr i == 1 la n do (niz2Ci3)l Memo (nizli niz2i Brn 1 i beli)! writ e In (' tìrn ii ' i Brn ii2i be U I 'i bel ii2)I end < IgraMemo >. PO DVEH LETIH POUKA RA8UNALNISTVA nagrada St. tekmovaleo todk Sola I 1 I 11 II II III III III 98 Ivan Pepelnjak Gimnazija Beüigradi Ljubljana 90 Tomaü BebaSek RalJunalniSki kroSek Iskrai Kranj 90 MatjaÄ Kaufman Gimnazija Be^igradi Ljubljana 88 Aram Karal i« Gimnazija Šentvid 86 Igor Kukavica Gimnazija Beüigradi Ljubljana 82 Mitja Bensa Gimanzija Nova Gorica 80 Alen VarSek Gimnazija Vi«i Ljubljana 73 Boštjan Beröi« RatiunalniSki kroüek Iskrci Kranj 73 Robert Bakula Gimnazija Bežigrad» Ljubljana 2. program Fruotall var X IyI i nt egerI ^"Hct ion Tipaloi integer! external ! procedure Spusti («ly: integer)! gKternaU procedure NovZabojì begin < Fruotal } repeat lor y i= 1 la 3 Ifl for * := 1 to 4 dp begin repeat untiI Tipalo « 1! Primil Spusti (iiy) end Ì NovZaboj MULLL false end < Fructal >. )L—ReSitve nalqq za ulienoe no enem letu pouka raBunalniStva 1. namesto algoritma podajamo kar program« program IgraMemoi type tabela = array Cl..1003 £l integer! iLàC ni zi 1 n i z2i tabela! il ni Hrni 1 belìi integer! procedure Memo (nizl! niz2i tabela! V ar Brnii belìi integer)! iàC SeNel. SeNe2i array Cl..1003 fil Boolean! il jI integer! C 10 20 30 40 PROGRAM FRUCTAL INTEGER Xi Yi STEKL CONTINUE 00 AO Y = li 3 L>0 30 X = li 4 CONTINUE CALL TIPALO (STEKL) IF (STEKL .NE. 1) GOTO 20 CALL PRlnl CALL acusri (XiY) CONTINUE CONTINUE CALL NOVZABOJ GOTO 10 STOP END 3. bolgo Stavilo «loremo predstaviti v Pasoalu na primer takole« t VP 9 Dolgoiìtevi lo = ,,record predznaki (plusi minus)! cifre < array Cl. .203 ai 0.."? end' Algoritem za seStevanje delimo vi. a) seštevanje enako predznatìenili ätevil. V tem primeru je predznak enak kot pri obeh sumandihi oifre pa doloöimo tako« prenos i= O! ponovi sa vseh 2t> oifer« zatlenäi pri enioah« a 1= vsota istoleinih.oifer seStevanoev + + prenosi istoležna oitra vsote «■= a aađ 10' prenos «= a oMy 10. b) seštevanje razUKno predznatfen ih Števil. V tem primeru je predznak taki kot pri absolutno veäjem od obeh se£tevanoev (Ile sta enakai naj bo predznak vsote plus). Absolutno veUjega dolotümo po naslednjem algoritnuc poiiFIii prvi med seboj razUHni! istoleüni cifri (zaBenBi na 20. mestu)t ' vettje Število je tistoi ki ima na tem mestu, veti jo cifro 5 Cifre vsote v tem primeru doloOimo tako« , posoj i lo != 01 ponovi za vseh 20 oifen zaöenfii pri enioah« a 1= 10 •»■ oitra absolutno veöjega Števila -- (istoleüna cifra absolutno manjSega .Števila + posojilo)! istoleüna cifra vsote a mopl 10! posojilo «= 1 - (a div 10), Algoritem za odštevanje je naslednji« Številu» ki ga odštevamo» obrnemo predznak in uporabimo postopek za seStevanje. 100 C 10 20 30 ^0 50 faO C C C 70 110 80 PROGRAM SREBNA INTEGER STEV (1001) INTEGER N. I» J. K» READ (2. 100) N FORMAT (15) KORAK. 1N0EK8 li N 1 + 1 N ■ ■ 0) GOTO 60 00 10 1 STEV(I) CONTINUE STEV(N) J = 1 KORAK = 2 INDEKS ° 1 IF (J .LE., J = 0 1 = 1 IF (I .6E. N) GOTO 50 DO 'lO K » 1» KORAK - 2 I = STEV(I) CONTINUE STEV(I) = STEVOTEVd)) 1 = STEV(I) IF (I .LT. N) J = J + 1 GOTO 30 CONTINUE KORAK = STEV(INDEKS) INDEKS = GOTO 20 CONTINUE KORAK SAMO SE IZPIS 1 = 1 IF (I .6E. N) GOTO 80 WRITE (3. 110) STEV(I) FORMAT (15) I = STEV(I) GOTO 70 CONTINUE STOP ENO prffgi-atn Sreöna) const ma* = tOOH var stev: array Cl..ma«3 integer» ni il ji kl koraki indeks« integer) procedure Izpisi var i« integer! kiaifi i «= 1! Mule i < n dß , beqip write (i «4) ! writeln end! «= stevCiD end! beg i n < SreBna > read (n)i < or i «= 1 la n da stevCi] «= i stevCn] «= n! j «= II korak i= 2i indeks «= 1! Wh i le' j > O la ■ begin j «= O! i «= lì Wh i le i < n do beai n lo£l k «= 1 is korak - 2 ^ i 1= st evC i]i stevCi3 1= £tevCstevCi33) i «= BtevCi]» ii i < n IMii j «= j + 1 endi korak «= stevCindeksJì Izpis end < Sreöna ). + 1! indeks «° korak iLL.—ReSitve nalog za uCence po dveh letih pouka raBunalniStva 1. program Divide! var II yI mi i « integer! bealQ read (» I yI m)! write (i! chv yi ' ) I «1=1! rood y « 10 ! iac i 1= 1 la m fio faggi" write (« d i v yil)! X «= « mod y * 10! wrTTeIn! end < Divide >, 2. Postopek razdelimo v dva dela. Imamo tabelo tab s 1001 elemenlom. a) Število nakljuBno izbranih Števil 0! dokler je Število nakljuBno izbranih Števil. manjSe od 1000 delai izračunaj (SluBaj ♦ Stevi IoSlovenoe v + 1) in mu odreüi decimalke! le. novo Število Se ni v tabeli tab potem ga vstavi na konec tabele tab! uredi tabelo tab s postopkom za urejanje tabele (glej npr. nalogo 4)! < zanemarimo verjetnosti da imamo tako slab generator nakljuBnih Števil» da s tem postopkom v konönem Basu ne bi dobili 1000 med seboj razlitfnih naravnih Števil } to) SievUojspisov Ol indstts 1= u; i«bCinaleks3 0« nareclt tisoBkrati (ndeks (= Indeks + 1! naredi (tabC1ndeks3-tabC)ndeks-13) - krđl preberi zapis z datoteke Slovonoevl izpiBi zapiSo program Orgtei sonst maj = bO\ i! integer! t! integer? { zaporedna Številka tona > pritisnjens array Cl..raa£3 ^J. BoolaanI < ali Je tipka pritisnjena > osoitatori array Cl.,ma«3 oJ_ 0. .51 { fiteviIka oscilatorjai ki trenutno pripada tipki } ton! array Ct.,53 oi Q..raaii5 < BteviIka t ipke. kateri oscilator trenutno pripada > oas! array Cl.,53 o± integer? ■C t v trenutkui ko je oscilator zaBel generirati ta ton > begtn < Orgle > t > = Qi for i 1= t la mai do beg t n. pri t isnjenCi 3 >= falssl oso i I atorC13 i= O end i for i «= 1 io 5 do begin tonCi3 »= O! oa£Ct3 != 01 Freky (i.O) andi repeat, for i != 1 io max do j_f (Tipka()) = l) and noi pr 11 i sn j enC i 3 then Vklopi. 4. Podprogram preuredi dano tabelo Števil po velikosti. Prvi element tabele pusti na svojem mestu. Ta predstavlja do sedaj urejeni del tabele. Nato po vrsti jemlje iftevila iz tabele in jih vriva na pravo mesto v doledaj üe urejeni del tabele. Zato imenujemo ta natlin sortiranja urejanje z vrivanjem (insert i on sor t i ng)■ funot ion Tipka (Stev i tkaiinteger)i integeri ext erna I i procedure Frekv (osa ilatoriBteviIkaiinteger)I external i ILL ZakUuBek procedure Izklopi (fitevilkai integer)! var gen ! 0..5 5 beg i n pritisnjenCStevilka3 i= falsel gen := oso ilatorCStevilka3i Frehv (cieniO)! tonCgen3 s= Oi oscilatorCStevilkđ3 ì= O itađ < Izklopi >i ?cedure Vklopi (Številka: integer)! var i igen ,(Il i n I i nt eger 5 najden: Boolean! Ibeain pritisnjenCStevilka3 := true? najden := false» gen != It "hi le not najden and (gen <= 5) Ü tonCgenS = O then else gen != gen + ti najden true i f not najden then begin mi n 5= oa£C13i gen «= 11 for i 2 to 5 do i f oasCi3'< min then begin min oasCibf gsn f i £jid end! Frekv (geniUtevilka)5 tonCgen3 i= Ètevilkai oasCgen3 ti t '= t + 1! C zanemarimo prokoraöitov obsega celin fitovil pri t > oso i latorCBtevi ll5 Tekmovanje je finanKno podprlo precej organizacij zdruKenega delai ki so za int eres irane za razvoj slovenskega raKunalniBt va. Vsak tekmovalec je prejel v spomin na to tekmovanje nekaj novih slovenskih knjig s podrofija ratfu-nalniStva ter Bilten tekmovanja. Prav prijetno je presenetila Iskra Oeltai ki je nagrajenim tekmovalcem omogotiila dodatno bre.zplaììnò usposabljanje v njenih Šolskih centrih. Tako kot ostala dosedanja tekmovanja je bilo tudi letoSrije na visokem nivoju tako organizacijsko kot tudi vsebinsko. Število tekmovalcev se v zadnjih treh letih ni bistveno spremenilo« prav tako ni opazna sprememba v kvaliteti znanja tekmovalcev. Se vedno se pojavljajo posamezne fiolei kjer sta kvaliteta in obseg pouka raöunaIniStva kritiänai kar je verjetno posledica nereSenih kadrovskih te?av in Se vedno neurejenega dostopa do računalnika za prskt iöne vaje. Precej sprememb si obetamo v prihodnjih nekaj letih) ko bodo dosedanje utine naUrte zamenjali s novimi. Z nastopom usmerjenega izobraSeva-nja se bodo razlike v znanju med tekmovalci Se precej poveBalei saj bodo imeli nekateri tekmovalci pouk radunalniStva vkljuBen v redni pouki drugi pa se bodo i njim ukvarjali le v okviru interesnih dejavnosti. Kako bomo organizacijsko in vsebinsko izvedli naslednja tekmovanja je ta hip Se odprto vpraSanjei vsekakor pa bo naslednje! in sedmo republiško tekmovanje srednjeSoloev s podroöja raOunal-niStva aprila ali maja 19S3. ■N p.v r-cÈ/'i n; • «»♦j»»»»»»*« »«♦«*•*»•**««»•»♦*««••«♦ Diskovni krmilniki (Western Digital) «»*♦«»»••»♦»»♦•»»»»»»»»»»»»*»♦»»»»♦♦ Podjetje Western Digital je dalo na tržiSfte krmilnik na tiskani plošči za vinčestrske in upogljive diske za OEM ceno * 195. To znižanje cene za tovrstne krmilnike je desetkratno glede na cene pred letom in več. Oznaka nove krmilne plošče je WD 1002, njena velikost pa je 1SX1S cm- Novi krmilnik je zgrajen na novih integriranih vezjih (krmilnikih) za vinCestrški (WD 1010) in upogljivi disk (WD S79X); na ploèCi sta še vezje za fjopravljanje napak (WD 1014) in vmesni upravljalnik (WD 1015). V letu 1903 je predvidena možnost dobave novih, manjSih in sodobnejših krmilnih plošč z oznakama WD 1003 in WD 1004. Naslov proizvajalca in dobavitelja je; Western Digital Corp., Components Group, 2445 McCabe Way, Irvine, CO 92714, USfi. fi.P.2eleznikar čedalje več dvoprocesorskih mikroračunalnikov •*»•*♦•***«»*♦»♦••**»*«*»•***«•*•«*«♦**»««*»• Vrsta ameriških in japonskih proizvajalcev je začela proizvajati ali je najavila proizvodnjo dvoprocesorskih mikroračunalnikov: 8- in IS-bitnega. Gre za preposto in tržno upravičen kombinacijo, ki naj bi pokrila uporabo operacijskega sistema CP/tt-80 in možnosti uporabe 16-bitnih operacijskih sistemov, ki so uporabljivi na lEMovem osebnem računalniku IBM PC (CP/M-86). Dvojica mikroprocesorjev Z80 in 80Q8 (v poštev prihaja tudi 6088) sestavlja mikroračunalnike DECa (Rainbow), Fujitsa (Micro 16) in ée vrste drugih proizvajalcev. Mikro 16 ima npr. operacijske sisteme CP/M-80, CP/M-85 in MS-DOS, 128k ROMa s kontrolo parnosti, upogljive diske, barvno grafiko (640X200 delčkov), vinčestrski disk za 10M zlogov in paket, ki omogoča vključevanje v mrežo. V prihodnjem letu bo bo CP/M2.2 zamenjan s CP/M3.0 (multitasking). fi.P.Železnikar Non-Von, paralelni mikroprocesorski sistem «■»«■»«**«*#««••»«**«♦*«*««**««»*♦»# Non-Von je okrajšava za ne-von-Neumanov računalnik, pri katerem se programi ne bodo več iz-'vajali zaporedno (po von Neumannovem principu), marveč paralelno. Gre torej za novo arhitekturo računalnikov oziroma procesorjev oziroma mikroprocesor j ev. Pred letom dni sta japonska vlada in industrija napovedali začetek novega projekta tkim. pete računalniške generacijej ta projekt sta podprli s 500 milijoni dolarjev v razdobju 10 let. Novi računalniki japonske proizvodnje naj ne bi več procesirali le podatkov temveč prevsem znanje. Japonski izziv je že povzročil nasprotno akcijo v ZDfi. flRPft (fidvanced Research Projects figency) pri ministrstvu za obrambo ZDfl je sprožila alarm in predlagala posebna proračunska sredstva za nov računalniški projekt. S tem projektom naj bi ZDfi poskušale izvesti protiudar z razvojno strategijo, ki je podobna japonski (za peto računalniško generacijo). RRPfi je podobno kot Japonci (v letu 1981) organizirala sestanek specialistov za superračunalnike in za paralelno računalniško arhitekturo. Ugotovitev tega sestanka je, da je mogoče preseči zmogljivosti današnjih računalnikov za več kot velikostni razred le, če se izbere tkim. masivni paraleli-zem. Za kaj pri tem gre? ORPfi jB že ugotovila pomembnost paralelnih računalniških arhitektur še posebej v povezavi z visoko stopnjo integracije vezij. Paralelna arhitektura zahteva hkratno delovanje velikega števila procesorjev pri reševanju problemov (pri izvajanju programov), kar je v principu drugače (kako drugače, še ni povsem jasno), kot je reševanje problemov z enim samim procesorjem (von Neumanov princip v tradicionalnih računalnikih). Pri tem strokovnjaki verjamejo, da bodo s paralelnimi stroji dosežene neprimerno večje zmogljivosti (inteligenca), kot bi ti bilo mogoče s stalnim izpopolnjevanjem polprevodniške tehnologije (bolj "gosta" integrirana vezja). S paralelnimi sistemi naj bi se uresničile določene inteligenčne funkcije in na tej predpostavki temeljijo japonski podsistemi pete generacije za "upravljanje baze znanja", "stroju za sklepanje" in "inferotemporalnemu kor-teksnemu stroju". Stroji nove generacije bodo tako procesirali predvsem znanje, ne pa samo numerične in druge "podatke". Za potrebe ftRPfi so na Kolumbijski univerzi že začeli razvijati non-von prototip (prof. David Elliot Shaw, vrednost projekta .2,5 M$) ne-von-Neumannovskega računalnika. Non-von bo sestavljen iz približno milijon mikroprocesorjev, ki bodo razvrščeni v binarno drevo. Ta sistem bo procesiral navadne komercialne podatke in tiste numerične naloge, ki so bile doslej rezervirane za superračunalnike. Uporabljeni mikroprocesorji bodo enostavnejši od 8e80fi. Načrti za ta vezja so praktično gotovi in njihova fabrikacija na zahodni obali bo kmalu stekla. Projekt non-von je deležen velike pozornosti industrijBj IBM je podaril projektu 600 k«, DEC pa je dal znaten'popust pri nabavi VftX opreme. fi. P. Železni kar Pregled prodaje in proizodnje mikroprocesorskih izdelkov »«♦»•***«♦♦♦•»»*«♦♦♦••»»*♦»♦» Pregled prodaje osebnih računalnikov za triletno razdobje .na ameriškem tržišču je prikazan v naslednji tabeli: Podjetje 1981/82 * 1982/83 * fipple 39 28 Tandy 18 12 IBM 13 24 HP 7 6 DEC 2 6 Commodore 2 1 ostal i 19 23 Desni stolpec je seveda napoved. Za proizvodnjo mikroprocesorskih integriranih vezij pa valjajc in naj bi veljal« naslednja raiitiorja (ZDfi) i PodjBtja 1981/82 198a/83 X S Intel 44,6 41,3 Motorola 21.7 24,1 Zi log 18,0 18,2 RCA S, 9 3,3 NS 2,2 Rockwell 1,A 1,9 ostali 10,0 9,0 A.P.2aleznlkar polnjena Izdaja »■ pripnavlja za tisk. Knjiga The Design od Well-Structured and Correct Programa (Springer, Now York), ki jo je napisal skupaj s prof. Arbibom je prevedena v japonščino, prevod v ruäCino pa je v teku. filagić pripravlja za tisk tudi rokopis knjige Relaclone baze podataka, ki bo bržkone Izžla pri založbi Svjetlost v Sarajevu. filagićevemu prizadevanju za izdajanje učbenikov oziroma znanstvenih monografij s podrotja programiranja in organizacije relacijskih podatkovnih baz gre brez dvoma vse priznanje, saj s to svojo dejavnostjo bistveno prispeva k dvigu kvalitete na podroCju uporabe računalniških sistemov in računalniškega Izobraževanja. fl.P.Zeleznikar Mikroračunalniki v letu 19Ö3 •»••»»«-••«««•«««««««««»»»««v IBM bo kmalu začel o proizvodnjo svojega oseb-r nega računalnika (PO Izven ZDft In bo v letu 1983 proizvedel več kot milijon teh računalnikov. Leto 1903 bo značilno po masovni proizvodnji prenosnih (osebnih) računalnikov. Po poti, ki JO je pokazal Osborne, bodo Sli predvsem tudi Radio Shack, Apple, IBM in mogoče tudi DEC (če bo sposoben dovolj hitro reagirati). CMOS tehnologija bo pri teh računalnikih v ospredju, še posebej CMOS RfiM z baterijskim vzdrževanjem podatkov (mehurčni pomnilniki se ne bodo uveljavili). TržiSče osebnih računalnikov se bo diferenciralo in nastopila bo dominacija treh do Štirih proizvajalcev. IBM bo najbrž prevzel vodstvo (pred ftpplom in Tandyjem). Značilna delitev bo talei računalniki za masovno potrošnjo (&0 do 1004), domači računalniki za procesiranje teksta (100(S do £000$), mali poslovni računalniki (3000 do 50004), delovne postaje v pokalnih mrežah <5000 do B0004) in večuporabnlški sistemi (7000 do 100004). Tretjino svetovne proizvodnjo mikroračunalnikov naj bi prevzeli Japonci. Mlkroupogljivi In mikrovinčestrskl diski bodo vsebolj zamenjevali ustrezne mlnlnaprave. . Pojavil pa se bo tudi operacijski sistem UNIX za a-bitne sisteme (ZSO). Motorola bo začela prodajati procesor 68008 z reduciranim vodilom (8-bitno podatkovno vodilo) in z IM zložnim pomnilnim prostorom (v AS-nožlčnem ohišju). Nadalje bo začela dobavljati virtualni procesor z oznako 68010. Polna 3£-bitna različica procesorja 68000 bo imela oznako 68020. IBM bo poiskusll uporabiti procesor 68000 za implementacijo funkcije sistema 370. V tem primeru bo potrebno povečati dosedanji prostor za mikrokod v procesorju 6800® za faktor Japonci bodo še naprej kupovali sistemsko in uporabniško programsko opremo za mikroračunalniki? od ame?"^!èkih podjetij. To velja tako za o— peracljska sistema MS-DOS In CP/M, za prevajalnike in aplikativne programe. Intel pa je žs znižal ceno za svoj matematični procesor 8087 od sedanjih 32© na 1504. fl. P. 2€?Ieznikar fllaglčeve knjige doma in v svetu ♦ «■«««•»»■»»»»««IHHHHHtit^HHHHtfr«»»«.»« Suad «laglč, profersor sarajevske elektrotehnične fakultete, oddelek za informatiko, sodi prav gotovo med naše najuspešnejše pisce na področju računalniških znanosti. Prva Izdaja njegove knjige Principi programiranja je razprodana (založba Svjetlost, Sarajevo) in druga, do- IBM ne bo šel tako daleč IBM je odločno zanikal govorice, ki prihajajo iz Japnske, da se bo pridružil japonskemu projektu pete računalniške generacije. IBM izjavlja, da ni sprejel obveznosti za pomoč pri ambicioznem desetletnem japonskem projektu. O. P. Seleznlkar Zapad mora ostati previden «««'K"»«*»*«'*«*««««««*»**'»*«' Zahod lahko zamudi vlak za peto generacijo, če bo preveč poudarjal pomen materialne tehnologije. Nevarnost na japonski izziv s peto računalniško genracijo je zasidrana v preveliki pozornosti za tehnologijo, ki ne upošteva transformacije tehnološke pobude (japonske) v ekonomske ugodnosti. Japonski projekt je visoko inovativen in zvišuje hkrati japonske ekonomska komponente. Pobuda je torej predvsem ekonomska In ne samo tehnološka. Tehnologija se bo razvijala naprej kot doslej, toda poudarek je tu na ekonomski rasti, ki je za japonsko gospodarstvo značilna tudi v razdobju nazadovanja britanske in ameriške ekonomije. Japonci namreč že imajo gospodarsko infrastrukturo v MITI (Ministry for International Trade and Industry) in v NTT (Nippon Telephone and Telegraph), skozi katero se ho tehnologija filtrirala v ekonomsko sfero. Problem je v tem, da Zapad nima primerljive infrastrukture. fl.P.Zelsznikar Videotex in teletexts razlika ***************************** Kakšna je razlika med videotoxom in teletex-tom? Oba sistema imata relativno enostaven dostop do podatkov v oddaljenih bazah podatkov. Ta dostop je omogočen prek tipkovnice ali tipkala. Oba sistema imata enostavno iskalno strategijo. Uporabnik včita numerično kodirani indeks, potem pa odda kod, ki označuje želeno informacijo. Bistvena omejitev obeh sistemov je, da nista bila predvidena za zapleteno iskanje in razpoznavanje veliko količine podatkov v dovolj kratkem času. V videotex sistemu ee uporabljajo numerično kodirana vprašanja, pri tem se uporablja vmesnik oziroma dekodirnik in Izbirno telefonsko vezje za hitrost 75 bit/s. Podatki se potem vrnejo s hitrostjo 300 ali 1200 bit/a prok Istega vezja. Po prehodu prek kodirnika se tekst prikaže na zaslonu uporabnika. Teletext deluje nekoliko drugače. Uporabnik je tu povezan s televizijskim kanalom in ne s telefonsko linijo. Vprašanje se shrani v kodirniku sprejemnika. Teletext sistem pošilja podatke v obliki TV okvirjev, pri čemer so ti okvirji oštevilčeni. Okvirji se oddajajo nepretrgoma v ponavljajočem zaporedju. Številke okvirjev se primerjajo z ono v kodirniku. Pri ujemanju se ustrezni okvir izvleče iz zaporedja in prikaže na zaslonu. Glavna prednost videotexa je, da je interaktiven in je tako primeren za transakcijske storitve; ko uporabnik dobi podatke o proizvodu ali storitvi, lahko naroči nakup. Videotex razpolaga tudi z večjo podatkovno bazo. Okvirji in njihovo število so sestavni del TV programa in dejansko ne predstavljajo svoboden kanal. Velika prednost teletexta je njegova nizka cena. V Veliki Britaniji, kjer so televizijski sprejemniki izposojeni, znaša dodatek za teletext storitve manj kot 04/mesec. Vezje za teletext pa ima ceno od $ 100 do $ 150. Tkim. prestel vidoetex vmesniki imajo ceno 0 300, Kabelska televizija omogoča uporabo celotne kabelske kapacitete in tako odpadejo omejitve za velikost podatkovne baze. V Franciji se videotex terminali dajejo zastonj, da bi se tako oblikovalo čim bolj masovno tržišče za tovrstne storitve. Digital'Equipment Corp. uporablja hišno videotex mrežo že od pomladi 1982. A.P.železnikar ********************** Nasprotniki jezika Ada ********************** Tudi Ada (programirni jezik, ki ga opisujemo v tej številki) ima nasprotnike. Predvsem se pojavlja strah, da bo Ada spodrinila šolski in poučevalni standard, to je jezik Pascal. Ta bojazen je upravičena in kaj se bo zgodilo z množico učiteljev, ki se bodo zopet morali učiti novega jezika? Jezik Ada je težavnejši (za učenje) od Pascala. Nudi pa nekatere nove koncepte, ki niso brez pomena. Toda v nekaj letih bo interaktivni pristop k računalniku tako ali drugače bistveno spremenjen, še posebej, če se bo uveljavila tkim. peta računalniška generacija. Adi očitajo, da je tako ali drugače izpeljan iz Pascala, vendar bi lahko tudi Pascalu očitali, da je v bistvu le redukcija če že ne omejitev jezika Algol 60. Tudi za uporabo jezika Algol 60 je bilo potrebnega več programirnega znanja kot za Pascal. Res pa je, da bo jezik Ada povzročil velike dodatne stroške oziroma investicije, ki bi jih brez njega ne bilo. Tu gre za živo delo na prevajalnikih in za vgraditev določenih mehanizmov v arhitekturo mikroprocesorjev. Vsak napredek pač nekaj stane in razvoj programirnih jezikov se prav gotovo ne more ustaviti pri jeziku Pascal. A.P.železnikar ************************************ Izvedenski sistemi so specializirani in ne vedo vsega ************************************ Z japonskim načrtom pete računalniške generacije se pojavljata tudi pojma izvedenskega sistema in sistema s pravili (pravilnostnega sistema) . Računalniški uporabniki se sprašujejo, kaj je novega pri teh sistemih, saj že obstoječi sistemi opravljajo vrsto izvedenskih nalog hitro in zanesljivo ter vsebujejo vrsto vgrajenih pravil in algoritmov. To je res, vendar imata pojma "izvedenski" in "pravilnostni" v okviru terminologije umetne inteligence (UI) poseben pomen. Pojem izvedenskega sistema je opredelil med drugimi tudi D. Michie kot "sistem, katerega cilj je prepričljivo opravljanje nalog svetovalca, ki izkazuje človekovo strokovno znanje na določenem področju s samorazlago sklepanja na zahtevo." Ta pojem ne pove ničesar o tem, kako naj bi bil tak sistem zgrajen, poudarja pa tkim. samorazlago. Izvedenski sistemi so specialisti le na določenem področju in se jim bržkone ne more prisojati prožna in vseobsegajoča inteli genca. Praktično pa ima večina sistemov, ki so bili opisani kot izvedenski sistemi, le različice enega samega pristopa, in sicer produkcijskega. Zaradi tega prihaja večkrat do pojava, da se izvedenski sistemi zamenjujejo s produkcijskimi in obratno. Produkcijski sistemi so podobni pravilnostnim sistemom. Pojem produkcije je privzet iz logike (jezikovno pravilo) in nima ničesar skupnega s proizvodnjo. Oglejmo si primer, ki ponazarja razliko med navadnimi metodami reševanja problemov v UI in pravilnostnimi metodami: to je igra šahovske končnice. Običajne metode šahovskih programov navajajo mogoče poteze, protipo-teze itd. pri določenem stanju igre. in ocenjujejo možne izide takih ali drugačnih potez. Program bo vselej izbral eno samo potezo, in sicer tisto, kateri je zagotovljen največji dobiček (največja verjetnost zmage). To je tkim. maksimin strategija, ljubljenka šahovskih teoretikov. Načelno bi računalnik lahko oblikoval z analizo in ocenjevanjem prednosti vseh možnih prihodnjih potez in protipotez tkim. nepremagljivost. Vendar to praktično ni mogoče zaradi kombinato-rične narave šahovske igre in časovnih omejitev in računalnik lahko izčrpno analizira le nekaj potez vnaprej. Dobra možnost za opravljanje te naloge z računalnikom obstaja v tkim. srednji igri. V končnicah je ta sposobnost gledanja vnaprej povsem nezadostna, ker relativno prazna šahovnica omogoči igralcu široko analizo položaja in uporabo kateregakoli pravila izmed številnih pravil. Uporaba določenih pravil je lahko rezultat osebnega izkustva, semiintuitivnega sklepanja in drugih izkušenj (npr. branja šahovskih priročnikov). Vzemimo npr. tole pravilo: Tekač in trdnjavski kmet ne moreta zmagati, če braneči kralj lahko zasede polje v kotu (na črti trdnjavskega kmeta), ki ni pod kontrolo nasprotnega tekača. Z uporabo tega pravila začne igralec takoj pomikati kralja v varno področje. Računalnik bi moral tu predvideti dovolj veliko število ; potez (svojih in nasprotnikovih): tu pa se izkaže, da optimizacija z metodami UI ne ustreza, ker ji manjka preje opisana izkustvenost. Pravilnostni pristop pomeni izognitev nèustre-znemu sklepanju na področju UI, ki izhaja iz širokega brskanja oziroma tipanja. Pristaši tega pristopa poudarjajo, da je verjetno bližji človekovemu načinu mišljenja. Poglejmo, kako se ta pravila vključujejo v tkim. produkcijski sistem. Kaj je produkcija? Produkcijo lahko opišemo kot dvojico (pogoj, akcija) oblike: IF pogoj THEN OPRAVI akcija Komponenti produkcije imenujemo često leva (pogoj) in desna (akcija) stran. Produkcijski sistem je sestavljen iz zbirke produkcij oziroma pravil. Druga sestavina produkcijskega sistema Je podatkovna baz? trenutno veljavnih dejstev in v to bazo se dostopa z namenom, da se ugotovi,' ali dana produkcija ustreza, tj. ali se ujema njen pogoj. Stanje podatkovne baze se bo vobäe spreminjalo kot posledica delovanja produkcij. (V jezikih delujejo produkcije nad stavčnimi oblikami - besedami-.) Tretja sestavina produkcijskega sistema je način uporabe produkcij. Ta odloča, katere produkcije so umestne, izbere eno izmed njih in jo uporabi (izvrši, izvede). Ta postopek se potem ponovi vselej z novimi stanji. Za razumevanje delovanja produkcijskega sistema je pomembno, da krmiljenje (uporaba produkcij) ne poteka po neki vnaprej dani listi produkcij. Produkcijski sistem tako ni preprosto lista IF...THEN... stavkov. Delovanje produkcijskega 'sistema si lahko zamislimo kot množico produkcij, ki čakajo, da bodo uporabljene. Kakor hitro je začetna množica dejstev znanih, se začne ocenjevanje levih produkcijskih delov in izberejo se ustrezne produkcije (za potencialno uporabo). Dejanje izvršitve lahko upošteva več faktov (dejstev) in izvräi se lahko več produkcij vse dotlej, dokler ni bilo deducirano vse, kar bi deduciral človeški izvedenec. Pravkar opisani postopek je neke vrste "deduk-cijski plaz". Trivialni primer takega postopka je dan na sliki. Vitalni vidik produkcijskega sistema je, da mu je mogoče posredovati atome strokovnega znanja v malih količinah brez popravljanja logike uporabe (izvrševanja pravil). Ta princip je v nasprotju z običajnim pristopom, ko vstavljamo novo znanje v računalniški sistem in moramo to vstavitev izvršiti v pravi del programa ter popraviti še obdajajočo okolico. Drugo vprašanje, ki se pojavi, je, kako sodeluje sistem z uporabnikom med Izvrševanjem. Ali zahteva vrednosti za določeno podatkovno množico in ali dinamično spreminja svoja vprašanja glede na rezultat prejšnjega vprašanja? Ali daje pojasnila na zahteve, da bi zadostil Mlchiejevi opredelitvi izvedenskega sistema? Druga množica sprememb se nanaša na problem, kako sistem uspešno obvladuje nedoločnost (negotovost, dvomljivost, spremenljivost, neprera-čunljivost). Pri tem imamo vrsto področij strokovnega znanja, kjer je načelo IF x THEN y boljše od načela IF x THEN VERJETNOST(y) IS z. Tu je potrebno obrniti delovanje sistema in uporabiti veriženje nazaj. Namesto, da začnemo s fakti in poskušamo doseči sklep, želimo vede ti, kateri fakti naj bi veljali, da bi dosegli dani (hipotetični) sklep. Oglejmo si dva izvedenska sistema z različnima področjema uporabe. Prvi primer poudarjajo zlasti zagovorniki UI in ponazarja splošen tip problema, ki bi ga lahko imenovali diagnostični ali taksonomični (sistematizacijski, klasifikacijski) . Izvedenec je Mycin, razvit je bil v Stanfordu, identificira pa bakterije v krvnih in urinskih vzorcih in svetuje možna antibiotična zdravljenja. Deluje na osnovi vodenja dialoga (vprašanja in odgovori) z uporabnikom, dokler ni sposoban postaviti diagnoze in napisati recept. Značilnost tega sistema je, da uporablja verjetnost in prikaže listo bakterijskih kandidatov skupaj z ocenami (torej ne samo en sam odgovor) . Zaradi nezanesljive narave tega področja je to vsekakor potrebno. Druga značilnost sistema je, da si pomaga z veriženjem nazaj. To je predvsem zaradi tega, ker tudi človeški izvedenci tako postopajo, ko izločajo sumljive predpostavke že na začetku dialoga brez postavljanja vprašanj z upoštevanjem simptomov in PODATKOVNA BAZA LEVE STRANI DESNE STRANI Začetni fakti so vhodi ... * MALO * OKROGLO * ZELENO ...in ti uporabljeni. .. INICIA-LIZACIJA .. .katere leve str. ustrezajo IF MALO & PODOLGOVATO IF ZELENO ...ena produkcija izbrana. . . THEN .. . THEN POSEJANO .. ,in podatki se dodajo... * POSEJANO ...podatki se se zdaj uporabijo .. . PRVI CIKEL .. .katere leve str. ustrezajo IF POSEJANO & OKROGLO & ZELENO IF MALO & OKROGLO ...ena produkcija izbrana. .. THEN GLAVNATO THEN ... in podatki se dodajo... * GLAVNATO ...podatki se se zdaj uporabijo. .. ...in podatki se dodajo... * KAL * END končni pogoj DROGI CIKEL .. .katere leve str. ustrezajo IF MALO a GLAVNATO . . .ena produkcija izbrana .. . THEN KALI END TRETJI CIKEL END Slika. Delovanje enostavnega produkcijskega sistema. Ta trivialni produkcijski sistem prikazuje uporabo strokovnega znanja s področja zelenjadarstva. Sistem začne delovati le z nekaj začetnimi fakti in se gradi z dodatnimi fakti po načelu "preizkusi, izberi in uporabi" v posameznih ciklih. Izbira enega samega pravila za uporabo ni vselej tako naključna kot je na tej sliki. preiskovalnih rezultatov. Tretja lastnost tega sistema je, da lahko uporabnik vprašuje o verigi sklepanja, torej lahko dobi pojasnila na zahtevo. Te tri lastnosti so glavni vzrok, da je Mycin izredno priljubljena tema za pisce na področju UI. Drugi primer zajema povsem drugo področje in je zanimiv tudi za navadnega bralca. Tkim. R1 produkcijski sistem sta razvila Carnegie-Mellon univerza in DEC, predstavlja pa izvedenca za DECove računalniške konfiguracije VAX. Vhodni podatki (večkrat nepopolni) predstavljajo tkim. BAX listo sestavnih delov, ki jo R1 pretvori v konkretno delujoči VAX sistem. Sistem R1 odloči, katere enote (sestavine) imajo funkcijsko zvezo, kam naj so enote namestijo v ohišjih (kabinetih), določi pa tudi relativni položaj ohlSja In pripadajoöe kable. Čeprav bi pričakovali, da je'ta problem mogoče reSevati z navadnimi metodami obdelave podatkov, je DEC po večletnih izkuänjah ugotovil, da je uspeäna pot z obdelavo podatkov težavna in da opravlja sistem R1 to nalogo bolj uspešno. Kateri so torej bistveni problemi izvedenskih sistemov? Prvi problem so kadrovski virli ni veliko analitikov in programerjev, ki bi začeli izdelovati izvedenski sistem brez ' dodatnega žtudija in motivacije. Drugi problem se pojavlja pri prenosu idej na.vodstvo brez posebnega dvigovanja pričakovanji predloženi izvedenski sistem naj bi se tudi "prodajal," tako da ga na bi občutili le kot investicijo, marveč kot veliko upanje prihodnjega uporabnika. Tretji problem je programska pprema, ki mora biti napisana v programirnem jeziku, za katerega je vodstvo obdelave podatkov le redko sliäalo (Lisp, Prolog) in ta jezik navadno ni mogoče uporabljati na obstoječih instalacijah. Tudi zajetje pravil.predstavija dodatno oviro. Ker mora imeti računalniški izvedenski sistem, pravila človeških izvedencev, morajo biti ti izvedenci usposobljeni za prenos teh pravil v sistem. Industrija doslej ni pogosto uporabljala izvedenskih sistemov, in sicer predvsem zaradi pomanjkanja znanja in obveščenosti» poi trebe po takih inovacijah pa vsekakor so in usposobljenih izvajalcev praktično še ni. ! A.P.Železnikar It***************************** Kaj je večuporabniški sistem 7 ****************************** Uvod Čeprav se bo zdel ta naslov marsikomu odveč, se v praksi največkrat srečujemo s popolnim nepoznavanjem pojma "večuporabniški sistem," in to pri "strokovnjakih," ki so nekako srečno pristali na področju računalništva, kjer ribarijo in zastrupljajo strokovno ozračje. Večuporabniški (mikro)sistem je posebna struktura, s posebnimi lastnostmi. Ni moč razglasiti za večuporabniški sistem nekaj, kar ne izpol-! njuje določenih pogojev (standardov). Sodobni; večuporabniški sistem združuje lastnosti eno-procesorskega večuporabniškega sistema z last- , nostmi slabo ali dobro povezane mreže. Večupo-rabnlško pklje je lahko organizirano na več načinov. Klasičen večuporabniški sistem je enoprocesor-ski, ima velik pomnilnik in ustrezno število V/I vrat. Uporabniki sistema si delijo procesorski čas (timesharing). Čeprav je zamisel enostavna, je uresničitev takega sistema težavna! časovnlk povzroči vsakih nekaj mlkrosekund prekinitev, katere namen je odvzem procesorja trenutnemu uporabniku in njegova dodelitev drugemu uporabniku. V dvouporabniškem sistemu se procesor izmenoma dodeljuje enemu in drugemu uporabniku. Pri več uporabnikih se procesor dodeljuje krožno in vsakič opravi nalogo za posameznega uporabnika. Sistem lahko dodeljuje procesor tudi neenakomerno posameznim uporabnikom, upoštevaje uporabniško prednost. Programska oprema za klasičen večuporabniški sistem je večinoma napisana za en sam procesor. Operacijski sistem je tako tesno povezan s krmiljenjem sistemskih virov. Učinkovitost takega sistema je pretežno odvisna od materialne zgradbe sistema. Ta zgradba lahko povsem ustreza e-nouporabniškem sistemu, v večuporabniškem pa postane neustrezna. Zgornja meja za današnje mikroračunalnlške enoprocesorske (16-bitne) večuporabniSke sisteme je pri Štirih uporabnikih. Ta meja je dosežena tedaj, ko se pri določeni aplikaciji izdatno zmanjša hitrost ali zmogljivost, ko dodamo še enega uporabnika. Pri neustrezni materialni opremi se to lahko zgodi že pri dvouporabniškem sistemu. Ta meja je tedaj odvisna od računalno intenzivnega okolja, tj. od uporabnostnega področja, Večuporabniški sistem lahko dobimo tudi z mrežno povezavo več mikroračunalnikov. V mreži je mikroračunalnik v vozlišču in ima sam določeno stopnjo inteligence (samostojnosti), Kombinacija terminala, mikroračunalnika in sekundarnega pomnilnika v vozlišču se imenuje delovna posta-, ja in ta zmore opravljati normalne računalniške naloge, sprejema in pošilja pa lahko tudi mrežna sporočila. Porazdeljena obdelava Mrežna obdelava je le ena oblika porazdeljena obdelave. Pojem porazdeljene obdelave zahteva' porazdelitev procesorjev v računalnem okolju. V primeru mreže so procesorji medsebojno tudi oddaljeni in niso medseboj tesno (Intenzivno) po-' vezani. Tako oddaljeni procesor v mreži ne more krmiliti neposrednih operacij drugega procesorja. Procesorji so namreč v mreži na določen način medsebojno ločeni (funkcijsko izolirani). Takšen sistem imenujemo slabo povezan. Druga oblika porazdeljene obdelave temelji na, povezavi več procesorjev v eni sami napravil (računalniku) . V tem primeru krmili glavni j (mojstrski) procesor akcije pomožnili (pomočni-' ških) procesorjev. V enouporabniškem okolju bi se deli računalne naloge razdelili na pozamezne procesorje in- vsak izmed njih bi svoj del opravil hkrati (istočasno) z drugimi procesorji. Tako bi se izvršitev naloge znatno pospešila. Takšen proces obdelave bi Imenovali paralelna obdelava, ker smo uporabili več procesorjev za izvršitev ene same naloge in so procesorji delovali paralelno (časovno in prostorsko), Veliki računalniki delujejo paralelno in dosegajo tako veliko podatkovno pretočnost. Te metode se uporabljajo tudi v integriranih vezjih. Procesor 8086 ima dva notranja procesorja: eden opravlja operacije z vodilom, drugi pa dekodira, ukaze in jih Izvršuje. Ta konstrukcija povzroči merljivi učinek pri celotni zmogljivosti. Procesor 80286 ima že štiri notranje procesorje, ki si delijo naloge. Učinek v povečani zmogljl-' vosti je Izreden. V tej notranji mreži imamo tesno povezavo med procesorji: mojstar vodi svoje pomočnike. Paralelna obdelava v mikroračunalniških sistemili povečuje pretočnost večuporabnišklh sistemov tako, da prirejuje procesor in neodvisen pomnilnik posameznemu uporabniku. Tako postane največja sistemska zmogljivost zelo visoka in je omejena samo še s hitrostjo množičnih pomnilnih naprav (sekundarnih pomnilnikov). Taki sistemi delujejo kot mreže, v katerih so■ procesorji neodvisni; v nekaterih sistemih so slabo, v drugih pa dobro medsebojno povezani. Materialna večuporabniška arhitektura Zniževanje zmogljivosti v večuporabniškem sistemu je mogoče preprečiti na več načinov. Z uporabo hitrega pomnilnika (RAM), visoko zmogljivih diskovnih krmilnikov in kompleksnih hitrih centralnih procesorjev je to prav gotovo; mogoče. Materialna zgradba mikroračunalnika mora tedaj ustrezati večuporabniški arhitekturi. Kako je mogoče povečevati zmogljivost večupo-rabniškega sistema 7 Hitri procesor in pomnilnik oblikujeta prvi pogoj, Diskovni krmilniki morajo biti podprti z neposrednim pomnilniškim dostopom (DMA), da se poveča sistemska pretočnost. V/I kanali morajo biti kar najbolj učinkovito prilagojeni večupo-rabniškemu okolju. ' Standarizirano vodilo (npr. lEEEf 696/S-lOO) in določena modularnost sta nujna, da bi bilo mogoče pokriti široko področje večuporabniških rešitev. Kot že povedano, lahko čas hitrega centralnega procesorja delimo med uporabnike. Večkrat je smiselno uporabiti modul z dvema procesorjema (npr, 8085/8088, Z80A/8088, Z80A/8086, Z800/ 80186, Z800/80286), tako da je moč izvajati 8-in ].6-bitne programe (MP/M-80, MP/M-86) . Pri tem se npr. 8-bitne aplikacije lahko Izvajajo kot opravila (tasks). S tako procesorsko enoto je mogoče obvladati v odvisnosti od aplikacije tudi 10 in več uporabnikov. Opisani sistem pa je še vedno klasičen in ne upošteva razvoja računalniške in procesorske arhitekture in njenih možnosti v zadnjih letih. Multipleksni kanali Podjetje IBM je že pred leti razvilo poseben tip podatkovnega kanala, ki ga je imenovalo multipleksorski (multipleksni) kanal. Ta kanal je v bistvu ločen, mali računalnik, namenjen povečanju hitrosti V/I operacij. Ta kanal krmili podatkovni pretok med sistemskim pomnilnikom (RAMom) in zunanjim okoljem. Kanal, ki opravlja storitve za eno samo V/I napravo (npr. za terminal) , se imenuje izbirni kanal. Multipleksni kanal opravlja storitve za več V/I naprav s prenosom podatkov za različne naprave, ki jih krmili. Multipleksni kanal za določeno vodilo mora vsebovati hitri procesor (npr. 8085 ali Z80B s taktno frekvenco 6 MHz), l6k zlogov RAMa, 8k-zložni ROM ali EPROM, hitri prekinltvenl krmilnik (npr. 8259A) in takoimenovani vmesnik za začasni mojstrski dostop (ZMD), za povezavo z glavnim sistemskim vodilom. Ta multipleksni kanal (mikroprocesorski podsistem) deluje paralelno z glavno procesno enoto na sistemsko vodilo. Kanal ima tu funkcijo gosta (pomočnika), glavna procesorska enota pa funkcijo gostitelja (mojstra). ZMD omogoči kanalu komunikacijo s poljubno pomnilno lokacijo ali V/I vrati na sistemskem vodilu, prekinltvenl krmilnik pa pošilja naslovne vektorje na lokalno vodilo. Tudi gostitelj lahko vzbudi pozornost gosta, gost pa lahko pri gostitelju sproži prekinitev. Namen multipleksnega kanala je razbremenitev gostiteljskega procesorja s prevzemom opravil, sproženih s sistemskimi prekinitvami. Kaj nastopi v normalnem sistemu, ko V/I modul sproži prekinitev zaradi znaka, ki čaka v terminalu? Centralni procesor je izvajal opravilo za trenutnega uporabnika, ko je drugi uporabnik pritisnil na tipko. V/I modul je sprejel znak iz terminala in sprožil eno izmed vektorskih prekinitev, tj. izvajanje določene (storitvene) rutine. Centralni procesor mora prenehati s trenutnim opravilom, rešiti mora celotno podatkovno stanje v sklad in skočiti v izvajanje storitvene rutine. Ta rutina prebere znak Iz V/I modula in ga vstavi y vmesnik. Storitvena rutina lahko znak preizkusi, da ugotovi, ali je ta znak krmilni znak, kot je npr. pomik nazaj ali pomik valja. Ko je bila sprejeta določena vrstica (na koncu te vrstice je pomik valja), se lahko postavi posebna zastavica, tak<.:> da določeno opravilo ve, da je vhod pripravljen za obdelavo. Nastaviti se morajo tudi kazjici v vmesnik skupaj s statusnim zlogom, ki vsebuje število shranjenih znakov v vmesniku. Potem storitvena rutina vrne krmiljenje rutini, ki naloži stanje ob prekinitvi in nadaljuje z izvajanjem prekinjenega opravila. Ta primer obdelave enega samega znaka Uihko zahteva več sto procesorskih izvajalnih ciklov. Ta čas je bil tako odvzet prvotnemu trenutneiim opravilu in to opravilo je bilo a tem upočasnjeno. Oglejmo si ta postopek z multiploksnim kanalom: pojavi naj se podobna prekinitev, na katero pa bo odgovoril kanalni procesor namesto goati-teljskega, tako da gostiteljskl procesor izvaja trenutno opravilo nemoteno. Kanal odvzame ob prekinitvi le en cikel vodila, da včita znak iz V/I modula. Kanal preizkusi znak in potem ustrezno ukrepa. Nastavijo se vmesniški kazalci in znak se lahko vpiše v vmesnik gostiteljevega pomnilnega prostora (pri tem se zopet odvzame le en cikel vodila) ali pa v vmesnik kanala. Zopet se lahko postavi zastavica, če se jo pojavil znak pomika valja (konca vrstice), pri tem se odvzame en cikel vodila. V primeru kanala imamo paralelno obdelavo prekinitve s kanalom in gostiteljskim procesorjem, pri čemer je kanal odvzel le nekaj ciklov vodila pri izvajanju opravila namesto nekaj sto ciklov v nekanalnem primeru. Sedaj je jasno, da lahko multipleksni kanal občutno poveča pretočnost večuporabniškega sistema. Kanal lahko seveda opravlja še vrsto drugih opravil v sistemu (npr. izpisovanje na tiskalnik) in v istem sistemu se lahko uporablja več multipleksnih kanalov. Pomočniki in mojstri Multipleksni kanal je tkim.' osprednj i/končni (mejni, front-end) računalnik, ki pohitri delovanje enoprocesorskega večuporabniškega sistema? toda v vrsti primerov tudi povečanje operativne hitrosti ne zadostuje..V nekaterih primerih je dodelitev posebnega procesorja vsakemu uporabniku edina taka rešitev, ki lahko zagotovi zahtevano pretočnost, hkrati pa je koristno obdržati prednosti tesnejše povezave več procesorjev. Oglejmo si sistem, ki izpolnjuje te zahteve. Znano je, da obstajajo vodila (npr. IEEE 696/ S-100), ki omogočajo delovanje in povezavo več procesorjev. Vsak S-100 sistem pa mora imeti mojstrski procesor, ki krmili delovanje'sistema kot celote. Ta način se imenuje sistem z stalnim (permanentnim) mojstrom. V večini primerov opravlja to nalogo centralni procesni modul, ki ga poznamo tudi v navadnih mikrosistemih. Sistem pa lahko ima tudi več začasnih mojstrov (npr. 16), ki zahtevajo krmiljenje vodila od stalnega mojstra. Prednostni sistem odloča o tem, kateremu od začasnih mojstrov bo dodeljeno krmiljenje vodila. Postopek zahtevanja in dobivanja krmiljenja vodila in pripadajoče izvajanje ciklov vodila z začasnimi mojstri se imenuje "začasni mojstrski dostop" (ZMD). ZMD se razlikuje od DMA (neposrednega pomnilniškega dostopa) v tem, da lahko začasni mojster dostopa v pomnilnik ali pa opravlja V/I. Tako se npr. diskovni krmilnik (poseben V/I modul) lahko uporabi kot pravi začasni mojster v skladu z zahtevami standarda IEEE 696. Ta modul zahteva uporabo vodila od stalnega mojstra ob upoštevanju prednosti, ki jo predpisuje standard. Pomnilniški in V/I moduli na vodilu pa so znani kot pomočniki (slaves), ker so podrejeni zahtevam in storilnostnim mehanizmom mojstrov stalnega in začasnih,- Vsak mojster (stalni ali začasni) lahko komunicira prek vodila s pomočniki. Povezovalno vezjo na vodilo je veliko bolj zapleteno za mojstra, kot je za pomočnika. Pojavi se torej lahko tudi potreba za uvedbo enega procesorja na enega uporabnika: v tem primeru bomo te dodatno procesorje imenovali pomočniški (pomožni procesorji) zaradi dveh razlogov. V vsakem primeru bomo imeli močni mojstrski procesor, ki bo nadzoroval delovanje sistema. Pomožni procesorji pa bodo npr. lahko delovali kot pomočniki skladno s standardom IEEE 696 (ne kot zaCasnl mojstri). Obstaja vrsta razlogov, da vzamemo za pomoine procesorje pomoCnlke (slave) namesto trenutnih mojstrov. Povezovalno vezjo na vodilo je pri pomočniku manj zapleteno (zavzame manj prostora na ploSči) kot pri začasnem mojstru. Pri obravnavi posebnosti pomočnikov bo to postalo bolj jasno. Začasni mojster ima dostop v pomnilnik in na V/I lokacije glavnega vodila, če vzamemo začasne mojstre namesto pomočnikov, lahko en kanal neodvisno pokvari delovanje drugega kanala in povzroči tako poruSenje kanala ali celo sistema. Zaščita uporabnika pred porušitvijo njegovega kanala prek drugega kanala oziroma pred porušitvijo sistema je bistvena. Pokazali bomo, kako se ta zaSčita doseže z uporabo pomočnikov v kanalih. Druga zahteva za uporabo pomočnikov namesto začasnih mojstrov se lahko pojavi zaradi omejitve števila začasnih' mojstrov, ki je pri standardu IEEE 696 omejeno s 16. To število je lahko preseženo, če dodelimo vsakemu uporabniku svoj kanal. Število začasnih mojstrov pa seveda ne pomeni števila možnih uporabnikov: teh je 'lahko veliko več. Tako bi naj bil diskovni krmilnik vselej konstruiran kot začasni mojster, saj predstavlja npr. vinčestrski disk skupni ; sistemski vir (v tam je ravno smisel večuporab-niškega sistema). Ker je takih skupnih virov lahko še več, bi omejitev na 16 začasnih mojstrov lahko znatno znižala število možnih uporabnikov. Naposled se pojavi tudi vprašanje programske o-, preme za tako koncipirani večuporabriiški si-' stem. Vodenje sistema z večjim številom začasnih mojstrov je veliko bolj težavna naloga kot ■razvoj programa za vodenje enega samega, močnega centralnega procesorja, ki uporablja medpro-cesorske komunikacije. Oglejmo si tale primeri V sistemu želimo imeti 16- in 8-bitne procesorje/ plošča z mojstrskim procesorjem pa je npr. lahko različnih tipov, kot so 8086/8087, 68000, . 16032, 80286, da naštejemo le najmarkatnejše. Osprednji/končni procesor (pomočnik) naj bo dvoprocesorski, npr. tipa 8085/8088, tako da je mogoča njegova 8- in 16-bltna uporaba. Nadalje imejmo npr. tudi pomočnika tipa Z80B, ki ga uporabimo v 8-bitnem vozlišču za funkcijo en procesor na enega upo-irabnika. Ta modul imenujmo kratko PPE-Z (pomožna procesna enota, Z za Z80). Ta modul naj ima procesor Z80B (takt 6 MHz), 192k zlogov dinamičnega RAMa (DRAM), dvoje serijskih vrat tipa RS-232C, ena pozornostna vrata ,za zbuditev pozornosti s strani gostitelja (glavnega mojstra) , sistem za sprožitev prekinitve s strani PPE-Z pri mojstru, 2k zlogov EPROMa z začetnim programom in 4k zlogov hitrega, statičnega, dvovratnega pomnilnika (RAM) za komunikacijo med glavnim vodilom in PPE-Z. Podorbnosti modula PPE-Z Procesor Z80B in 64k zlogov DRAMa oblikujejo izvajalski stroj za 8-bitna opravila. Dvoje serijskih vrat omogoča uporabo terminala in tiskalnika za enega uporabnika. Terminal in tiskalnik sta tako lokalni napravi, ki ne obremenjujeta glavnega vodila in dejansko povečujeta zmogljivost tega vodila. Pojasnimo tudi uporabo dvovratnega RAMa (tj. pomnilnik, ki je dostopen prek dveh vrat). V ta pomnilnik lahko dostopata dva procesorja. Eden izmed njiju je Z80B, drugi pa je procesor kateregakoli mojstra (stalnega ali začasnega). Dvo-vratnl pomnilnik se v PPE-Z uporablja za prenos podatkov v ali iz zunanjega sistema, Dvovratnl pomnilnik je zamejen v intervalih po 4k zlogov v 16M-zloinera naslovnem prostoru sistemskega vodila (S-100). Interno lahko dvovratnl RAM prekrije poljubni 8k-zložni odsek DRAMa ali EPROMa. Diskovni krmilnik (začasni mojster) in stalni mojster (gostitelj) lahko prenašata podatke neposredno v dvovratnl RAM, kar povečuje, pretočnost. Modul PPE-Z lahko sproži prekinitev v gosti-teljskem sistemu in ta lahko opozori PPE-Z prek pozornostnih vrat. Močni pomočniki Zaradi potreb uporabnika se lahko pojavi zahte-, va, da mora biti tudi pomočnik močnejši, npr. 16-bitni. Sistem potrebuje v določeni točki močnejše vozlišče. Za tako vozlišče lahko npr.i izberemo procesorski tip 8086/8087, ki je močan, v matematičnih operacijah. Procesor 8087 ima številne registre, dolge 80 bitov. Ti registri se morajo shranjevati v sklad ob prekinitvah in nove vrednosti se morajo nalagati v registre, če različni uporabniki uporabljajo ta procesor, ki se nahaja npr. samo na modulu stalnega moj-, stra. Zato je včasih bolj smotrno, da ima do-; ločen uporabnik procesor 8087 na svojem modulu.j Ker se večkrat pojavi potreba za uporabo 8- Ini Ì6-bltne programske opreme, lahko uvedemo modul z dvema procesorjema in z matematičnim proce-. sorjem, ki deluje kot vlsokozmoglj Ivo pomočni-l čko vozlišče. Tako imamo modul, ki ga označimo kot PPE-D (pomočniška procesna enota z dvojnim, procesorjem) in ta vsebuje procesorje Z80B (6 MHz), 8088 (8 MHz) In podstavek za procesor' ,8087. Ima pa še 192k zlogov DRAMa (16-bitni' programi so navadno bolj obsežni), dvovratnl pomnilnik, EPROM in dvoje serijskih vrat (po-' dobnost s PPE-Z1. Ta modul predstavlja tako veliko računalno moč, ki je dana uporabniku v; večuporabnlškem sistemu. Moč In uporabniška zaščita: 80286 I ■ -, Vsak od preje navedenih modulov se lahko upo-' rablja kot . mojstrski modul (tipi 8p85/8088,; 8086/8087, 68000, 16032), ki upravlja^sistem z' več pomočniškimi procesorji oziroma moduli, katerih število je omejeno le z razsežnostjo kabineta. K tem, naštetim modulom pa želimo imeti še eno procesorsko ploščo (modul), ki naj bi bila osnova večuporabniškemu mikroračunalnlške-mu sistemu z veliko močjo (zmogljivostjo). Procesorska plošča z Intelovim 16-bltnira super mikroprocesorjem 80286 je za to funkcijo izredno pripravna, (glej sliko večuporabniškega mlkroslstema), Procesor 80286 lahko naslovi 16M zlogov RAMa (v lG-zlo2nem virtualnem pomnilnem prostoru), ima vgrajen mehanizem za popolno po-mnilniško preslikavo In zaščito in lahko preklaplja med posameznimi opravili zelo hitro. ' Procesor 80286 lahko preklaplja iz enega opravila na drugo v 17 do 22 mlkrosekundah; Motoro-lin procesor 68000 porabi 150 ^s, njegova izboljšava 68010 pa 110 ^s. Procesor 80286 bo izvajal kod, napisan za 8086/8088, vendar 4-krat , hitreje, kot se ta kod izvaja ha 8086 pri enaki taktni frekvenci. Procesor 80286 uporablja tak-, tno frekvenco 10 MHz, dodamo pa mu lahko tudi matematični procesor 80287 in vezje, ki omogoča' uporabo 8- ali 16-bltnega pomnilnika, ' Najpomembnejša lastnost procesorja 80286 je prav gotovo vgrajeni mehanizem za zaščito pomnilnika, V enoprocesorskih večuporabnlških sistemih je namreč izredno težko, če no nemogoče, doseči tako stopnjo zanesljivost sistema, da določen uporabnik ne more porušiti sistema drugega uporabnika ali pa celotnega sistema.i Ker v enoprocesorskem sistemu en procesor vse sam opravi, ima tudi dostop do vsake točke. Ta-i ko lahko doseže vsak bit v pomnilnih območjih s i a t e m B k o v 0 d 1 1 o Mojstrski procesor z 80286 Prostor za druge mojstrske procesorje Glavni sistemski pomnilnik Glavni sistemski pomnilnik j 1 Krmilnik za gibki disk Krmilnik za vinčes-trskl disk r ..... Diskovni emulator, 4M zlogov Več 8-bit-nih modulov PPE-Z 1- . . . * . Več modulov tipa PPE-D p Gibki diski za več milijonov zlogov Vinčestrski diski 7.a več 10/1Ó0 M zl. Uporabniški terminali in tiskalniki Uporabniški terminali in tiskalniki Slika. Tipična večuporabniška sistemska konfiguracija, ki uporablja stalnega mojstra tipa 80286 (ali po potrebi druge stalne mojstre tipa 8086/8087, 68000, 16032), več modulov glavnega sistemskega pomnilnika (DRRM), krmilnike za gibke in vinčestrske diske (začasni mojstri), hitre diskovne emulatorje za več milijonov zlogov (začasni mojstri ali pomočniki) ter različne tipe pomočniških (front-end) procesorjev (po načelu en procesor za enega uporabnika). vseh uporabnikov. Procesor 80286 pa zagotavlja visoko stopnjo meduporabniške zaščite in posamezni uporabnik lahko poruši le svoj ali pa celoten sistem. Prednost uporabe pomočniških procesorjev (ne mojstrskih) je v tem, da lahko le mojster neposredno krmili komuniciranje v sistemu. Mojstrski procesor (stalni mojster) tudi nikoli ne izvaja programa za določenega uporabnika» njegova naloga je izvajanj e operacijskega sistema. V enoprocesorskem sistemu izvaja procesor uporabniške programe in operacijski sistem. V več-procesorskem sistemu je relativno lahko mogoče omejiti sistemsko preobsežne učinke posameznih pomočniških procesorjev. Seveda pa lahko zahteven uporabnik poruši še vedno svojega pomočnika, ne more pa vplivati na porušenje drugih pomočnikov» torej po taki poružltvl sistem Se vedno deluje. Povzetek bistvenega Prikazana zamisel večuporabniške arhitekture združuje najboljše s področja mrežnih in eno-procesoraklh sistemov. Ta arhitektura upošteva mrežo visoko zmogljivih pomočniških procesorjev, ki imajo najboljše lastnosti slabo in dobro povezanih mrež. Ta mreža je organizirana z uporabo enega samega procesorja visoke zmogljivosti. Ker predloženi večuporabniški sistem temelji na standardu vodila IEEE 696/S-lOO, je mogoče mešati, prilagojevatl in kombinirati sestavine v tem sistemu} to velja tudi za Izbiro in modifikacijo različnih operacijskih sistemov (od CP/M-86 do UNIXa). Sistem lahko najprej konfiguriramo kot enouporabniški sistem (z uporabo ustreznega modula), kasneje pa ga dogradimo z mojstrskim modulom (80286) in dodamo So druge pomočniške module, da tako povečamo pretočnost. Za nadaljno povečanje pretočnostl lahko dodamo Se modul za emulacijo diska z večmllijonskim (zložnim) pomnilnikom (glej sliko). Ko je pretočnost tega sistema kritična, dodamo še dodatne pomočniške procesorje (module) po načelu, vsakemu uporabniku svoj procesor; tistim uporabnikom, ki imajo velike zahteve, priredimo modul PPE-D (8- in 16-bitni procesor na modulu), ostalim pa damo module PPE-Z. Tako dosežemo maksimalno pretočnost sl?;f.ema, ki je ne moremo več povečevati. Večuporabniški sistemi v mreži Opisane večuporabniške sisteme lahko povežemo v mrežo. Trenutno je na razpolago več mrežnih shem oziroma operacijskih sistemov. Pri tem se uporabljajo tudi slnhroni serijski kanali. Uporaba kombinacije 80286 in PPE-D kot vozlišča v mreži je očitno dovolj močna. Ta prispevek naj bi oblikoval podlago za arhitekturo večuporab-niškega sistema, ki je sam zgrajen po mrežnem načelu, hkrati pa naj bi bil kot sistem povezan v širšo mrežo več- in enouporabniških sistemov. A.P.Železnlk^r ft i**«Ä******* * Posebne novice ****ft********* Pojavljajo se spekulacije, da bo podjetje IBM uvedlo novo, dopolnjeno različico svojega osebnega računalnika, v kateri bo uporabilo mikroprocesor Intel 80186 ali 80188. Ta dva procesorja bi lahko znatno izboljšala sistemske zmogljivosti In znižala število integriranih vezij za približno 20 ob znižanju cene osnovne enote pod $ 1000. Ker je Intel dal na tržišče tudi procesor 80286 (izboljšana različica procesorja 8086), katerega zmogljivost je enaka ali boljša od zmogljivosti Motorole 68000, se predpostavlja, da bo IDM verjetno uporabil ta procesor. Ta modifikacija bi lahko zboljšala sedanjo zmogljivost osebnega računalnika (PC) za faktor 6 pri dvojni ceni. IBM hoče svojemu osebnemu računalniku dodati možnost obdelave več opravil (multitasking). Podjetje Compupro Systems (Box 2355, Oakland Airport, CA 94.614) je za svoje osebne računalnike predstavilo modul z mikroprocesorjem NS 16032 in modul z 80286. Oba modula delujeta s taktno frekvenco 10 MHz in sta prilagojena na vodilo IEEE 696/S-lOO. Hkrati je podjetje Digital Research začelo z razvojem različice operacijskega sistema CP/M-86 za procesor 80286 in različice operaciskega sistema UNIX za procesorja 80286 in 16032. Compupro je izdelal prevajalnik za FORTH in makrozblrnlk procesorja 16032. DEC je znižal ceno za svoj VT-I00:CP/M iz «12400 na Ü1300. VSEHTNA LKTNIKA 19M2 HI.ATNIK B., IIADŽI A., KOVACF.Vrfi M., LIÌKKOVAR A., NOVAK n., fSALEHAR D., 7.F.LEZMIKAIÌ A.I'.: 3t. I, ijtr. A. MlkroraJunalnläki alstem Dolta 323/M. nOHTE Z., GRAD J.: St. 1, rstr. 43. Algorithms for the Solution of the Renorallzed Elßen-value Problem. BOJADŽIJEV D., LAVRAČ N., MOZETiS 1.: St. 3, str. 54. Izkus'inja a Prologom kot.Jezikom za specifikacijo informacijskih aletomov, DRAJOVIĆ S. - BRATANOVIČ, DŽONOVA B. JERMAN-BLAŽlC; fät. 2, str.! 34. Standardi i politika standardizacije u oblasti informatike It. 'deo. BRATKO I., KONONENKO I., MOZETIČ 1.: 5t. 2, str. 21. An Efficient Implementation of Advice Language 2. BRUHÀ I.: St. 3, str. 46. On an Implementation of the POP-2 Language. ■ BRUHA I.! Bt. 3, str. 37. Some Problems of Image Processing by Parallel Processor CLIP. ČOK D., GERMADNIK E.! ät. 4, str. 12. Značilnosti Intelovih 16-bitnih mikroračunalnikov. DOLENEC Z.: št. 4, str. 36. VHDP - Softverski monitor za on-line prikaz aktivnosti. noVEDAN Z.; St. 3, str. 27. Sintaktička analiza jezika sa svojstvima. DUJM0VIČ J.J.: St. 2, str. 45. Compiler Performance Measurement and Analysis. ERJAVEC T.: St. 2, str. 63. Simulator mikroračunalnika 8051. ÜAMBERfiER D.: St. 4, str. 48. Korištenje sustava brojeva residua u obradi signala računalima. HADJINA N., CVITAŠ V.: St. 3, str. 23. . Komunikacija sekvenclalnih prpcesa u računarskih sistemima sa više mikrokompjutera. HAJIČOVA E., KIHSCHNER Z., PANEVOVA J., SGALL P.i St. 1, str. 59, Computer Applications of Linguistics in Prague. JKLAVIĆ M.: St. 4, str. 30. ViSeprocesorski sistemi s mikroprocesorima IM6100. JENKINS A. M.: št. 2, str. 30. Mesting the Challenge for Information Systems in the BO's. JENKINS A. M.: St. 3, str. 3. An Introductory Intorial on DATA Dictionary•Systems. KAPUS M.: St. 1, str. 71. Pregled jezikovnih elementov za opis sinhronizacije paralelnih procesov. KASTELIC B., KLANČAR S., URANKAH Š.: St. 3, str. 31. Spremljanje računalniških sistemov v realnem času. KHURMI S. K.', BESANT C. B., PAK M. A.: St. 2, str. 38. The Design and Development of a Microcomp. Rnaod CAD/CAM System for 2 1/2 Milling Operations. KOLBEZEN P., MIMOVILOVIĆ B., SiLC J.-. St. 4, str. 64. Matematični modeli mehurčnlh preklopnih vezij. KOVAČEVIĆ M., PEČEK D., KASTELIC H. , MIIHN R. : «t. 3, otr. 42. Ethernet - lokalna mreža prihodnosti. LAV0IÌE1. r. M.: «t;. 2, str. 3. StDpu Towards Natural Computation. LEHJAK I., TROBEC R. , llURELJ M.: St. 3, iitr. !i9. Slnoptlka mlkroračunalnlfiko vodenega proce:in. LONČAR I.: št. 1, str. 67. Računanje balanna lopatica zrakoplov, turbina koristeći alfabetsku matrlku. MIIIAJLOVIĆ D., OBRADOVIČ D.! nt. 4, str. 45. Jedan algoritam sažimanja srpskohrvatskih reči. MILETIĆ M. M.: št. 2, str. 27.^ Tehnologija elektronskih računarskih sistema. MILJAH D.. ŠILC J., KOLBEZEN P.: St. 4, str. 57. Programski simulator - korak k razvoju mlkroračunalnlšklh aplikacijskih programov. PEČEK D., KASTELIC B., MURN R.! St. 2, str. 55. Transparentno multiprocesiranjo (mikro) računalnlSki sistemi jutrišnjega dne. , RIBAR1Ć S.: št. 4,str. 3. Računarl upravljani tokom podataka. SALČIČ Z., ŠTRKIĆ G.: št. 1, str! 23. Projektovanje izvrSnih sistema mlkroraŽ. za rar u realnom vremenu korištenjem jezika visokog ntvoa za sekven-nljalno programiranje. SMOLEJ V.: St. 1, etr. 80. Enkripcija s pomočjo funkcije XOR. ', SMO,.EJ V.: St. 2, str. 61. PILOTIF - predprocesor za računalniSko podprto programirano učenje. SOSIĆ R., HUnOBIVNIK A.: St. 2,' str. 69. Strukturirani zbirnik za mtkrorač. 68000. TROBEC R., LESJAK I., ŠUBELJ M.: St. 4, str. 70 SinoptLka mlkroračunalniško vodenega sistema, VITAS D.: St. 1, str. 55. Cenerlsanje prldevsklh oblika u srpskohrvatskom, WEISS J.: St. 2, str. 16. Computergraphics and CAD Activities in Austria. ?.ELEZNIKAR A, P.: St. 1, str. 3. Informatizacija in tretji vai. železnikar a. P.: St. 1, str. 33. llvod V CP/m" iti. '?.ELEZNIKAR a. P.: št. 2, str. 13. Informatizacija kot svetovni izziv. ŽELEZNIKAR A. P.: št. 3, str. 10. Programiranje v ADI I: ŽELEZNIKAR A. P.: St. 4, str. 19. Progrumlranje v ADI II. ŽIŽEK A.: Bt. 4, str. 42. Zannova zanesljivosti programskih slatemov. navodilo za pripravo članka Avtorje prosimo, da pošljejo uredništvu naslov in kratek povzetek članka ter navedejo približen, obseg članka (število strani A 4 formata) . Uredništvo bo nato poslalo avtorjem ustrezno število formularjev z navodilom. Članek tipkajte na priložene dvokolonske formularje. Če potrebujete dodatne formularje, lahko uporabite bel papir istih dimenzij. Pri tem pa se morate držati predpisanega formata, vendar pa ga ne vrišite na papir. Bodite natančni pri tipkanju in temeljiti pri korigiranju. Vaš članek bo s foto postopkom pomanjšan in pripravljen za tisk brez kakršnihkoli dodatnik korektur. Uporabljajte kvaliteten pisalni stroj. Če le tekst dopušča uporabljajte enojni presledek. Črni trak je obvezen. Članek tipkajte v prostor obrobljen z modrimi črtami. Tipkajte do črt - ne preko njih. Odstavek ločite z dvojnim presledkom i n brez zamikanja prve vrstice novega odstavka . Prva stran članka : a) v sredino zgornjega okvira na prvi strani napišite naslov članka z velikimi črkami; b) v sredino pod naslov članka- napišite imena avtorjev, ime podjetja, mesto, državo; c) na označenem mestu čez oba stolpca napišite povzetek članka v jeziku, v katerem je napisan članek. Povzetek naj ne bo daljši od 10 vrst. d) če članek ni v angleščini, ampak v katerem od jugoslovanskih jezikov izpustite 2 cm in napišite povzetek tudi v angleščini. Pred povzetkom napišite angleški naslov članka z velikimi črkami. Povzetek naj ne bo daljši od 10 vrst. Če je članek v tujem jeziku napišite povzetek tudi v enem od jugoslovanskih jezikov; e) izpustite 2 cm in pričnite v levo kolono pisati članek. Druga in naslednje strani članka: Kot je označeno na formularju začnite tipkati tekst druge in naslednjih strani v zgornjem levem kotu. Naslovi poglavij : naslove ločuje od ostalega teksta dvojni presledek. Če nekaterih znakov ne morete vpisati s strojem jih čitljivo vpišite s črnim črnilom ali svinčnikom. Ne . uporabljajte modrega črnila, ker se z njim napisani znaki ne bodo preslikali. Ilustracije morajo biti ostre, jasne in črno bele. Če jih vključite v tekst, se morajo skladati s predpisanim formatom. Lahko pa jih vstavite tudi na konec članka, vendar morajo v tem primeru ostati v mejah skupnega dvo-kolonskega formata. Vse ilustracije morate ( nalepiti) vstaviti sami na ustrezno mesto. Napake pri tipkanju se lahko popravljajo s korekcijsko folijo ali belim tušem. Napačne besede, stavke ali odstavke pa lahko ponovno natipkate na neprozoren papir in ga pazljivo nalepite na mesto napake. V zgornjem desnem kotu izven modro označenega roba oštevilčite strani članka s svinčnikom, tako da jih je mogoče zbrisati. Časopis INFORMATICA Uredništvo, Parmova 41, 61000 Ljubljana Naročam se na časopis INFORMATICA. Predplačilo bom izvršil po prejemu vaše položnice. Cenik: letna naročnina za delovne organizacije 500,00 din, za posameznika 200,00/100,00/50,00 din Časopis mi pošiljajte na naslov stanovanja [ | delovne organizacije. Priimek............................................ Ime............................................... Naslov stanovanja Ulica.............................................. Poštna številka_Kraj."...................... Naslov delovne organizacije Delovna organizacija................................ Ulica.............................................. Poštna številka_Kraj........................ Datum...................... Podpis :