ERÄÄN PROSESSITIETOKONEEN RAKENNE JA SEN VAIKUTUS KESKUSYKSIKÖN DIAGNOSTIIKKAOHJELMAN LAATIMISEEN

 

 

  Seminaariesitelmä
Sovellettu elektroniikka II
2.11.1970 klo 14.15 S 3
Erkki Mikola

 

SISÄLLYSLUETTELO

I Johdanto
II Strömberg l000 tietokonejärjeste1män toiminta
III Keskusyksikön toiminta ja rakenne
IV Monitorkeskeytyksen käyttö uusien ohjelmien toiminnan tai keskusyksikön kunnon testaamiseen
V Suunnitellun diagnostiikkaohjelrnan toiminta ja rakenne

I Johdanto

Prosessitietokoneen vaurioituminen on uusien rakenneosien luotettavuudesta huolimatta varsin todennäköinen tapahtuma. Siitä koituva taloudellinen tappio muodostuu pääasiassa tietokoneen normaalien käyttömahdollisuuksien poisjäämisestä eikä ko. vian korjauskuluilla useinkaan ole kokonaismenojen kannalta mainittavaa merkitystä. Korjausajan lyhentäminen on tietokonevalmistajien suurimpia ongelmia, sillä laitteiden toiminnan monipuolistuessa ja myyntimäärien kasvaessa niiden huolto vaatii yhä enemmän perusteellisesti koulutettavaa työvoimaa.

Ongelmaa pyritään tavallisesti ratkaisemaan "hardware"-diagnostiikkaohjelmilla, joiden avulla testaus voidaan suorittaa oleellisesti lyhyemmässä ajassa ja täydellisemmin kuin manuaalisesti. Diagnos- tiikkaohjelman käyttäjän ei lisäksi tällöin tarvitse tuntea testattavaa laitetta yhtä yksityiskohtaisesti kuin ilman ohjelmaa työskentelevän huoltoteknikon. Diagnostiikkaohjelmat voidaan jakaa kahteen pääryhmään:

1. Ohjelma suoritetaan testilaitteiston avulla. Viallinen tai epäilyksen alainen tietokone ei osallistu ohjelman päätöksentekoon, vaan toimii ainoastaan mittausobjektina.

2. Ohjelman käyttämiseen ei tarvita lisälaitteita. Ohjelma talletetaan testattavan tietokoneen muistiin ja sen kaikki käskyt toteutetaan testattavassa keskusyksikössä. Osa niistä suoritetaan mittaustarkoituksella siten, että ohjelmassa on varauduttu käskyn virheelliseen toimintaan, mutta, suurin osa käskyistä on sellaisia, että niiden toteutuksessa tapahtuvat virheet estävät ohjelman tavoitellun toiminnan.

Seuraava esitys perustuu diplomityöhön, jonka tavoitteena on kehittää 2 kohdan mukainen itse- diagnostiikkaohjelma Oy Strömberg Ab:n kehittämälle Strömberg 1000 tietokonejärjestelmälle

Digitaalisille kytkennöille on kehitetty eksakteja testien generointi- ja minimointimenetelmiä [1, 2, 3]. Niiden soveltamisessa annettuun tehtävään kohdataan kuitenkin seuraavia vaikeuksia:

- Testien generointi sekvenssipiireille on vaikeampaa kuin pelkkää kombinaatiologiikkaa sisältäville piireille.

- Menetelmissä on lähtökohtana tavallisesti ns. primääriset sisäänmenot ja ulostulot, joista ensin mainittuihin voidaan kytkeä mielivaltainen signaalikombinaatio ja jälkimmäisistä voidaan kunkin tila mitata erikseen. Toimivasta keskusyksiköstä on vaikea löytää puhdasmuotoisia primäärisisäänmenoja ja ohjelmallisesti mitattavien ulostulojenkin määrä on rajoitettu.

- Itse-diagnostiikka edellyttää keskusyksikön monien toimintojen käyttökelpoisuutta, mitä on vaikea huomioida testien automaattisessa generoinnissa, ellei laitteen rakenne ole sopiva itse- diagnostiikkaan. [4, 5]

- Sekvenssipiirien tiloja ei voida tutkia operaatiovaiheittain, vaan normaalitapauksessa vain käskyn lopputulos on "mitattavissa". [6]

- Testattava keskusyksikkö on varsin suuri (n. 3000 mikropiiriä). Sille ei ole valmiina logiikkasimulaattoria, eikä kytkentäkaaviota ole muutettu digitaaliseen muotoon. Diagnostiikka- ohjelman laatiminen automaattisin menetelmin näistä lähtökohdista katsottiin liian laajaksi tehtäväksi diplomityönä.

Manuaalisesta ja intuitiivisesta ohjelmoinnista seuraavat puutteet [7]:

- Testiohjelma jää epätäydelliseksi ts. keskusyksikössä voi esiintyä vikoja, joita ei havaita testiohjelman avulla.

- Testien diagnostinen resoluutio jää huonommaksi kuin vikojen simuloinnin ja simulointitulosten automaattisen käsittelyn avulla saavutettava. Diagnostinen tulostus voi joissain tapauksissa olla virheellistä

- Ohjelman ajoaika muodostuu redundanttien testien takia pitemmäksi kuin olisi tarpeellista.

Toisaalta saavutetaan seuraavia etuja:

- Ohjelmoinnin työmäärä on kohtuullinen ja säädeltävissä muuttamalla ohjelman tavoitteita.

- Ohjelmoitsija voi hyötyä koneen rakenteen ja toimintojen toteutustavan tuntemuksestaan enemmän kuin täysin loogisten komponenttien tasolla pysyviä eksakteja menetelmiä sovellettaessa.

- Testeistä muodostuu toiminnallisia, joten laitteen tunteva huoltoteknikko pystyy kohtalaisen helposti mittaamaan vikojen syyt, vaikka testiohjelma antaisi vääränkin diagnostisen tulostuksen vian esiintymiskohdasta.

II Strömberg 1000 -tietokonejärjestelmän toiminta

Itse-diagnostiikkaohjelman manuaalinen laatiminen edellyttää testattavan laitteen toiminnan ja rakenteen yksityiskohtaista tuntemusta. Sen hankkiminen on vienyt työhön käytetystä ajasta huomattavan osan ja koska aihe on sinänsä varsin mielenkiintoinen, lienee paikallaan käsitellä Strömberg 1000 - tietokonejärjestelmän toiminnan yleispiirteitä lähemmin.

Tietokone toimii ”Time-Sharing”-periaatteella. Suoritettavan ohjelman vaihdon keskusyksikössä aiheuttaa keskeytysyksiköstä tuleva signaali. Sen puolestaan synnyttää tietokoneen ulkopuolelta tullut tai ohjelmoitu keskeytyspyyntö, joka on prioriteetiltaan ylemmällä tasolla kuin keskusyksikössä menossa olevan ohjelman aiheuttanut keskeytyspyyntö. Järjestelmän periaatteellinen lohkokaavio on esitetty kuvassa 1. Siitä havaitaan, että liitäntälaitteiden ei tarvitse olla tavanomaisia tietokoneiden syöttö/tulostuslaitteita, vaan esim. relerekisterit, digitaaliset pulssilaskurit, askelmoottorit ja tietojenkeruulaitteet ovat systeemin kannalta samanlaisia periferialaitteita

Kokonaissysteemiin nähden erikoisasemassa olevia laitteita ovat:

- reaaliaikakello, jota käytetään prosessiohjelmien ajoitukseen.

- keskeytysyksikkö, jonka käyttö tulostuslaitteena voi merkitä
1) ohjelmoitua keskeytyspyyntöä,
2) käskyssä nimettyjen prioriteettitasojen peittämistä siten, että niille kytketyt langat eivät aiheuta keskeytyspyyntöjä tai
3) ohjelmakontrollin siirtämistä nimetyn prioriteettitason sisällä langalta toiselle eli askellusta.

- tukimuistien liitäntä eli periferiaprossssori voi aiheuttaa muistikeskeytyksen, jolloin keskusyksikön toiminta pysähtyy tiedonsiirron ajaksi.

Kaikkia periferialaitteita voidaan käyttää joko odotus- tai keskeytysperiaatteella. Ensin mainittu tulee kyseeseen mm. käyttöjärjestelmän sisäänluvussa ja testiohjelmien ajossa, kun laitteisto toimii keskeytyskiellossa ilman käyttöjärjestelmää. Jokaisen syöttö- ja tulostuskäskyn yhteydessä talletetaan aina kuittauskanavan tila keskusyksikön flipflopiin FF1, jonka perusteella puolestaan voidaan suorittaa hyppykäsky takaisin I/O-käskyyn, mikäli käytetty laite ei edellisellä yrityksellä vielä ollut valmis aikaisemmasta tehtävästä. Keskeytysperiaatteella toimittaessa tiedetään I/O-käskyä annettaessa että käytettävä laite on vapaa. Tämän jälkeen ilmoitetaan keskeytysyksikölle, että menossa olevan ohjelman voi lopettaa. Periferialaitteen vapautuminen aiheuttaa keskeytyspyynnön, joka käynnistää edellä lopetetun ohjelman uudelleen.

Keskusyksikön toimintoja ovat: [8]

1. ohjelmoitujen käskyjen toteutus

2. muistikeskeytyksen aikana toiminnan pysähtyminen ja muistin data- ja osoitereittien kytkentä liitäntään

3. tavallisen keskeytyksen tapahtuessa vanhan ohjelman päättyessä vallinneen tilanteen talletus muistiin ja keskusyksikön tilan asettaminen uuden ohjelman talletustilan mukaan. 4. muistiosoitteiden rajatarkastukset

5. käyttöjärjestelmän ja prosessiohjelmien suojaus

6. siirtyminen virhetilanteissa tai ohjelman pyynnöstä käyttöjärjestelmään

7. siirtyminen käyttöjärjestelmästä haluttaessa takaisin suoritettavaan ohjelmaan

III Keskusyksikön rakenne ja toiminta

Keskusyksikössä käsitellään 18 bitin mittaisia sanoja rinnakkaismuodossa. Käytettävät rekisterit ja siirtotiet ilmenevät kuvasta 2, jossa yhtä 18 bitin kanavaa kuvaa yksi viiva. Rekisterien ja valintatasojen käyttötarkoitus sekä niistä käytettävät lyhenteet ovat:

Lyhenne Nimi Käyttö
ADD l adder 1 aritmetiikka, osoitelaskenta
ADD 2 - " - 2 osoitelaskenta
AR 1 apurekisteri 1 aritmetiikka, osoitelaskenta
AR 2 - " - 2 - " - , epäsuora - " -
AR 3 - " - 3 osoitelaskenta
BB ohjelman kantarekisteri keskeytys
BR 0-4 lohkojen kantarekisterit osoitelaskenta
IC ohjelmalaskin seur. käskyn osoite
IR käskyrekisteri  
KOS keskeytysosoite talletustilan alkuosoitten paikka
LR 0-4 alarajarekisterit osoitteiden alarajatarkastus
lähtökanava OUT-käskyt
MAR muistiosoiterekisteri  
MR muistirekisteri  
R 1-9 laskentarekisterit  
SAL 1, 2 sivuaritmetiikkalaitteen tulos  
SG 1, 2 sanageneraattorit  
Sam käskyn sarjamuunnos  
SR talletustilan jatko-osoiterekisteri  
TS 1, 2 tilasanat 1, 2  
Tu tulokanava IN-käskyt
UR 0-4 ylärajarekisteri  
VT valintataso  
VT 1   operandien valinta
VT4   operaation lopputulos
XR 1-4 indeksirekisterit aritrnetiikka, osoitelaskenta

Keskusyksikkö on koottu TTL-logiikkamikropiireistä. Kaikki signaalien muutokset tapahtuvat yhden 10 MHz:n kideoskillaattorin tahdissa. Ajoitus on tavallaan kolmitasoinen. Tiheimmin toistuva signaali on em. oskillaattorin lähtösignaalista muokattu pääkellopulssi, joka aiheuttaa perusaikaketjussa tapahtuvat muutokset ja ajoittaa laskentarekisterien muutokset, mikäli kelloehtologiikka muuten antaa luvan ko. rekisterin muuttamiseen. Perusaikaketjuun kuuluu normaalijaksossa 9 aikasignaalia, joista aina ja vain yksi on "l"-tilassa. Kullakin perusajalla on oma pituutensa. Harvimmin muuttuvat ajoitussignaalit ovat nimeltään jaksoja. Ne ilmaisevat, minkä tyynpistä tietoa on viimeksi luettu muistista. Jos jaksolla ei ole ko. operaatiossa merkitystä tai sen antama informaatio ei riitä, käytetään perusaikojen lisäksi kierroslaskijaa.

Valintatasot on keskusyksikössä toteutettu AND-OR-NOT -piirien avulla. (Kuva 3) Jotta valinta tapahtuisi oikein, on yhden ja vain yhden ohjaussisnaalin tila "1", ellei haluta muodostaa NOR-funktiota tai -l:tä 2-komplementtimuodossa. Kuvasta havaitaan myös, että valintatason ohjauslogiikassa esiintyvä vika voi sopivilla rekisteriarvoilla jäädä havaitsematta. Ohjaussignaalit muodostetaan kornbinaatiologiikalla käskyrekisterin ja ajoitusjärjestelmän tilasta.

Seuraavassa on lyhyt selvitys II-kohdassa esitettyjen toimintojen toteutuksesta.

1. Käskyn toteutua muodostuu kahdesta vaiheesta:

A osoitelaskenta
B operaatio

A. Osoitelaskennan tarkoituksena on löytää operaatiossa käytettävä data tai hyppykäskyissä seuraava käsky. Rekisteri-, syöttö- ja tulostuskäskyjen toteutukseen ei kuulu osoitelaskentavaihetta.

Osoitelaskennan tarpeellisuus johtuu siitä, että käskyyn ei liitetä absoluuttista osoitetta, vaan ohjelmoitsijan nimeämän lohkon alkuun suhteellinen osoite. Käyttöjärjestelrnä voi tällöin siirtää binääristä ohjelmakoodia paikasta toiseen ilman, että se vaikuttaa ko. ohjelman toimintaan. Osoitteet voivat olla suhteellisia viiteen eri kantarekisteriin. Kantarekisterin nimi ilmenee käskysanan osoitetapamäärittelystä. Kantarekisterin sisällön ja suhteellisen osoitteen lisäksi lopulliseen osoitteeseen voi kuulua saman lohkon indeksirekisterin sisältö. Suhteellinen osoite voi olla käskysanan loppuosa, käskyä seuraava sana tai käskysanassa määritellyn rekisterin sisältö.

Suora osoite kaavamuodossa on:

MAR:= A + B + C

A = 0 tai [BRi] (i = 0...4)
tai [IC] = käskyn absoluuttinen osoite

B = 0 tai [XRi] (mahdollinen, jos A = [BRi] ja i = 1...4)

C = käskysanan 7 viimeisen bitin ilm. luku
tai [[IC]+1] tai [Rj]

j = 1, 2, 3, 7, 8, 9
ei riipu i:stä

Havaitaan, että BR:n sisältämä informaatio lohkon paikasta muistissa voidaan saada myös ohjelmalaskimen (=IC) avulla.

Suhteellinen osoite voi olla positiivinen tai negatiivinen.

Osoite voi älla myös epäsuora. Tällöin kaskysanan avulla laskettava osoite viittaa ns. referenssiosoitteeseen, jonka 15 viimeistä bittiä + 3:n ensimmäisen bitin määrittelenän BR:n sisältö + käskysanasta ilmenevä inkrementti muodostavat lopullisen osoitteen.

B. Operaatiot voivat kohdistua

- muistipaikan sisältöön

- - " - ja rekisterin sisältöön

- rekisterin sisältöön

- 2 - " - sisältöön

- ilmaisimiin (myös edelliset) tai määrättyyn keskusyksikön tilaflipflopiin

Operandit voivat olla yhden tai kahden sanan mittaisia. Kahden sanan mittaisille operandeille voidaan käyttää rekisterejä R4-7, R5-8 ja R6-9. Muistista luettu tai sinne sijoitettava operandi voi olla myös puolen sanan mittainen. Operaatiotyyppejä ovat mm.:

- rekistereiden lataus ja talletus

- - " - siirto sellaisenaan tai komplementoituna

- yhteenlasku

- vähennyslasku

- loogiset funktiot AND, NAND, OR, EXCL.OR

- kertolasku

- jakolasku

- sivuttaissiirrot

- I/O-käskyt

- käskymuunnos

- keskusyksikön ja keskeytysyksikön tilaflipflopien asettelu ja tunnustelu

- aliohjelmahyppy

- liukuvan pilkun esitysmuotoisten käskyjen aloitus. Lopetus tapahtuu automaattisesti minkä tahansa käskyn yhteydessä.

2. Muistikeskeytys voi alkaa jaksojen vaihtuessa tai pitkien operaatioiden aikana myös kesken jaksoa. Ydinmuistin ohjaus tapahtuu tällöin liitännästä käsin ja keskusyksikön toiminnat pysähtyvät, kunnes liitäntä vapauttaa ydinmuistin eli lopettaa muistikeskeytyksen. Menetelmästä käytetään yleisesti "cycle stealing" -nimitystä.

3. Tavallisen keskeytyksen yhteydessä talletetaan keskusyksikön vanha tila kokonaan tai osittain BB-rekisterin osoittamaan muistipaikkaan päättyvälle muistialueelle ja ladataan keskusyksikön uusi tila muistialueelta, jonka osoite löydetään epäsuorasti keskeytysyksikön ilmoittarnan lankanumeron (= KOS) avulla. Latauksen päättyessä talletetaan viimeksi käytetty osoite BB:hen. Osittaista talletusta ja latausta käytetään eräiden käyttöjärjestelmän ohjelmien yhteydessä. Sillä saavutetaan nopeampi keskeytystapahtuma. SR-rekisterin tarkoituksena on taltioida osittaisen keskeytystalletuksen loppuosoite, josta talletusta voidaan myöhemmin jatkaa.

4. Kaikki normaaliohjelmissa käytettävät osoitteet (myös käskyjen osoitteet) tarkastetaan samanaikaisesti kun muistitoiminta on jo käynnissä. Jotta osoite hyväksyttäisiin, on URi- MAR >= 0 (tarkastetaan ADD l:llä) ja MAR - LRi >= 0 (tarkastus ADD 2:lla). i riippuu osoitetapamäärittelystä tai IC:n kytkennästä. Käyttöjärjestelmäohjelmien yhteydessä ei suoriteta rajatarkastuksia.

5. Normaalitoiminnassa ovat kiellettyjä käskyt, jotka voivat aiheuttaa käyttöjärjestelmän sekoittumisen tai virheellisiä prosessiohjauksia. Keskusyksikkö tarkastaa jokaisen käskyn yhteydessä, onko se yllä esitettyä tyyppiä, ja jos on, saadaanko ko. lohkosta toteuttaa tällaisia käskyjä. Käskysuojauksen lisäksi voidaan tietyt lohkot kirjoitussuojata. Tällöin ohjelma voi lukea ja käyttää muistipaikkojen sisältöjä, muttei muuttaa niitä. Suojaukset ovat ohjelmakohtaisia, joten mitään muistialuetta ei tarvitse kiinteästi kirjoitussuojata.

6. Virheellisen osoitteen tai suojauksen rikkomisen yhteydessä keskusyksikkö siirtyy automaattisesti suorittamaan käyttöjärjestelmän vastaavaa virheohjelmaa. Tämä tapahtuu siten, että osa keskusyksikön tilasta talletetaan BB:n avulla löytyvään monitor-talletustilaan, minkä jälkeen hypätään ohjelmaan, jonka alkuosoite löytyy muistipaikasta 0-7 riippuen monitorkeskeytyksen aiheuttajasta.

Monitorkeskeytyksen voi aiheuttaa em. syiden lisäksi liukuvan pilkun operaatiossa tapahtunut lukualueen ylitys, ohjelmoitu pyyntö tai ns. testiflipflopin "1"-tila, josta lähemmin IV-kohdassa.

7. Ohjelmoidulla monitorkeskeytyspyynnöllä halutaan yleensä saada käyttöjärjestelmän palveluksia. Kun käyttöjärjestelmän apuohjelma on lopussa, palataan takaisin suoritettavaan ohjelmaan ns. monitorpaluun avulla. Tällöin ladataan keskusyksikön tila, siltä osin ja samasta talletustilasta kun se monitorkeskeytyksen yhteydessä talletettiin, minkä jälkeen jatketaan normaalia käskyjen toteutusta.

 

IV Monitorkeskeytyksen käyttö uusien ohjelmien tai keskusyksikön testaamiseen

Keskusyksikköön on sijoitettu ne testifliptlop, jonka "l"-tila aiheuttaa monitorkeskeytyksen jokaisen muistijakson lopussa ja siirtymisen ns. testimonitorohjelmaan. Jos flipflopia käytetään ohjelmien testaukseen, monitorohjelman avulla voidaan tulostaa talletustilan ja rekisterisisältöjen tutkimuksella saatavaa tietoa ohjelman käyttäytymisestä.

Keskusyksikön kuntoa testattaessa monitorohjelma laaditaan sellaiseksi, että se asettaa monitortalletustilan tiettyyn alkuarvoon ja suorittaa monitorpaluun. Yhden normaalitilassa suoritetun jakson jälkeen keskusyksikössä tapahtuu monitorkeskeytys, jonka päätyttyä suoritetaan ohjelmallinen talletustilan ja rekisterien vertailu odotettujen tulosten kanssa. Menetelmä antaa mahdollisuuden tutkia käskyjen toteutusta vaiheittain. Esimerkiksi osoitelaskennasta voidaan tarkastaa suoraan MAR:in arvot ilman epäsuoraa menetelmää, jossa jokin rekisteri ladataan käyttäen tutkittavaa osoitetapaa ja tarkastetaan, saatiinko rekisteriin oikea luku. On ilmeistä, että vikojen diagnostiikka saadaan täten paremmaksi kuin pelkkiä käskyjä toteuttaen on mahdollista. Toinen menetelmän etu on, että keskusyksikön keskeytysjärjestelmä saadaan testatuksi miltei kokonaan käskylogiikan tarkastuksen sivutuotteena. Vain keskeytystoiminnan yhteydessä ilmenevää käskyohjauslogiikan virhetoimintaa on muilla menetelmillä mahdoton havaita, vaikka vika prosessitietokoneessa tapahtuvien lukuisten keskeytysten takia aiheuttaisi virheen useinkin.

V Suunnitellun diagnostiikkaohjelman toiminta ja rakenne

Diagnostiikkaohjelmalle asetettiin seuraavat tavoitteet sen jälkeen, kun oli tehty päätös manuaalisten menetelmien käytöstä. [9]

- Ohjelman aloittamiseen tarvittavan osuuden keskusyksiköstä on oltava mahdollisimman pieni.

- Ohjelmalta ei saisi jäädä havaitsematta mitään keskusyksikön vikoja.

- Havaitusta virhetoiminnasta on tulostettava mahdollisimman täydellinen informaatio.

- Testit on sijoitettava sellaiseen järjestykseen ja suoritettava sellaisilla luvuilla, että virhetoiminnan aiheuttanut vika voidaan likimääräisesti paikallistaa ohjelman käyttöohjeiden perusteella.

- Vian tarkkaa paikallistamista varten ohjelma voidaan määrätä toistamaan virheellisesti päättyvää toimintaa.

- Koska on mahdollista, että testiohjelman toiminta muuttuu jossain vaiheessa keskusyksikön vian takia ohjelmoimattomaksi, diagnostiikkaohjelma voidaan määrätä tulostamaan onnistuneiden testien nimet ja uudella ajokerralla pysähtymään viimeksi tulostettuun onnistuneeseen testiin Tämän jälkeen huoltoteknikko voi toteuttaa käskyjä operaattorin panelin avulla yksitellen ja seurata näyttölampuista niiden toimintaa.

- Diagnostiikkaohjelma toimii ilman käyttöjärjestelmää ja täysin valtuuksin käyttää kaikkia keskus- ja keskeytysyksikön osia sekä ydinmuistia.

- Diagnostiikkaohjelma voidaan määrätä toistuvaksi, mistä syystä sen on mahduttava kokonaisena ydinmuistiin.

Jo ohjelman suunnitteluvaiheessa havaittiin, että testien täydellisyyttä ei saavuteta ensimmäisellä ohjelmointikerralla, mistä syystä testien helppo lisäämis- ja muuntelumahdollisuus päätettiin ottaa mukaan tavoitteisiin, Siihen päästään, kun kaikki testit erotetaan selvästi.niiden suorittamiseen käytettävästä ohjelmaosasta. Testin spesifioi muistissa oleva testitiedosto, eikä diagnostiikkaohjelrnan käskysekvenssi.

Suurin osa keskusyksiköstä voidaan tarkastaa seuraavaa proseduuria käyttäen:

- aseta keskusyksikkö testitiedostosta ilmenevään tilaan.

- talleta tila muistiin ns. etukirjanpitotiedostoon

- suorita monitorpaluu.

- jakso, jonka aikana tapahtuvaa toimintaa tutkitaan.

- testiflipflopin käynnistäinä monitorkeskeytys

- talleta keskusyksikön tila jälkikirjanpitotiedostoon.

- vertaa testitiedoston avulla, että etu- ja jälkikirjanpito eivät eroa kiellettyjen muuttujien osalta.

- vertaa, että testitiedostossa nimetyillä tulosmuuttujilla on jälkikirjanpidossa samat arvot kuin ko. testitiedostossa.

Tätä kutsutaan seuraavassa standarditestiksi. Testin luonnetta muuttamatta sen tarkistusosaan voidaan lisätä testitiedostoon sijoitetun käskysekvenssin suoritus, joka tapahtuu ennen kiellettyjen muuttujien vertailua. Operaatiota nimitetään erikoistarkastukseksi.

Standarditestin avulla ei voida testata koko keskusyksikköä, vaan tätä varten ohjelmaan kuuluu erikoistestejä. jotka ovat testitiedostona ilmoitettuja käskysarjoja. Erikoistestin ohjelmoinnissa voidaan silti käyttää yleisen osan aliohjelmia.

Testien identifiointi virhetapauksissa tapahtuu testilaskurin avulla. Se muodostuu kuudesta hierarkisesta luvusta.

1. testiohjelman ajokerta

2. testin numero

3. rekisterirnäärittelylaskuri, jos standarditesti suori tetaan vaihtaen rekisterimäärittelyä.

4. datalaskuri, jos standarditesti suoritetaan useilla luvuilla.

5. tarkistustyyppi

6. tarkistusnumero

Mikäli luvuilla 3. tai 4. ei ole käyttöä, nousevat 5. ja 6. hierarkiassa ylemmäksi. Kaikkien oikein päättyneiden testien yhteydessä tarkistetaan, halutaanko ko. testistä tulostus. Tulostustiheyden määrää operaattori ja sen tarkoituksena on auttaa tarvittaessa ohjelman sekoamispaikan löytymistä. välittömästi ennen jokaista testattavaa jaksoa verrataan ohjelman pysäytys- tai mittausluuppiasetusta testilaskurin sisältöön ja jos jompikumpi on sama, tapahtuu ko. toiminta.

Diagnostiikkaohjelman mielekäs toiminta edellyttää, että testioperaatiota lukuunottamatta kaikki käskyt toteutuvat oikein. Siksi standarditestin ja yleisten aliohjelmien suoritukseen käytettävä käskyvalikoima on määritelty mahdollisimman suppeaksi, ja ennen kuin standarditestejä aletaan käyttää, suoritetaan ns alkutestit, joiden tarkoitus on paljastaa minimikäskyvalikoiman mahdollinen käyttökelvottomuus.

Jos alkutesteissä todetaan virhe, ohjelma pysähtyy ja virheen identifiointi tapahtuu operaattorin panelissa olevan IC:n näytön avulla. Myöhemmin ohjelman kuluessa havaittavista virheistä tulostetaan:

- testilaskurin sisältö

- virheellisen muuttujan nimi

- - " - - " - todellinen arvo

- - " - - " - odotettu arvo

- keskusyksikön tila testiä aloitettaessa

- keskusyksikön tila välittömästi ennen tarkastettavaa jaksoa

- keskusyksikön tila tarkastettavan jakson jälkeen

Rekisterien nimet tulostetaan mnemonisessa muodossa, arvot binäärisinä sekä testilaskuri desimaalilukuna.

Virhetulostuksen jälkeen odotetaan operaattorin antavan jonkin seuraavista jatko-ohjeista:

- jatka kuin virhettä ei olisi esiintynyt.

- aseta pysäytys ennen testiä.

- aseta testi mittausluuppiin.

- jatka seuraavasta testistä.

- lopeta.

- yritä diagnostisoida vika.

Viimeksi mainittu käsky aiheuttaa testattavan operaation kannalta merkityksettömien rekisteritilojen komplementoinnin bitti kerrallaan ja tulostuksen, mikäli toimenpiteellä on vaikutusta ensimmäisessä tarkastuksessa todettuun virheelliseen tulokseen. Menetelmä perustuu III-kohdassa esitettyyn havaintoon, että valintatasojen ohjauslogiikan virheet kumoutuvat tietyillä rekisteriarvoilla.

Ohjelman kulkukaavio on esitetty kuvassa 4. Ohjelman koodaus on vielä kesken. Se suoritetaan symbolista assembler-kieltä käyttäen [10] , mikä mahdollistaa muistiosoituksen alfanumeerisin tunnuksin ja silti lopu1lisen binäärikäännöksen yksityiskohtaisen suunnittelun.

Täysi hyöty ohjelmasta saadaan, vasta kun sitä varten suunnitellaan oma loader, joka tulee toimeen ohjelman aloittamiseen tarvittavalla minimikäskyvalikoimalla. Loaderista saadaan yksinkertaisin ja helpoimmin muistiin nappuloitava, jos diagnostiikkaohjelma on binäärinauhalla mahdollisimman edullisessa muodossa. Se ei useimmissa tapauksissa ole sama kuin assemblerkääntäjän tulostamalla binäärinauhalla, joten diagnostiikkaohjelma on dumpattava tässä muodossa ulos muistista.

Lopuksi on syytä todeta, että nykyaikaiset tietokoneet ovat yleensä (ja myös tässä erikoistapauksessa) niin monimutkaisia laitteita, ettei niiden testausta voida jättää diagnostiikkaohjelmien varaan, vaan huoltohenkilöstön koulutukseen on kiinnitettävä erityistä huomiota. Vain täten kyetään selviytymään tilanteesta, jolloin keskusyksikössä esiintyvä harvinainen vikakombinaatio tekee diagnostiikkaohjelman käyttökelvottomaksi ja vika on paikallistettava täysin manuaalisesti. Mutta vaikka huoltomies tuntisi koneen perin pohjin, hyvä diagnostiikkaohjelma on hänen tehokkain työvälineensä. Tässä esitelmässä kuvattu ohjelma on tarkoitettu lähinnä osoittamaan keskusyksikön olevan kunnossa tai helpottamaan sen manuaalista vian etsintää.

KIRJALLISUUTTA:

[1]. Lindberg, S. Vikatapausten käsittely tietokoneissa. Sovellettu elektroniikka II:n serninaariesitelmä 5.10.1970.

[2] Chang, H.Y., Manning, E.G. ja Metze, G.: Fault Diagnosis of Digital Systems. John Wiley and Sons, New York, 1970.

[3] Maling, K. ja Al1en, E.L.: A Computer Organisation and Programming System for Automated Maintenance. IEEE Transact. on Electronic Computers, December 1963.

[4] Manning, E. On Computer Self-Diagnosis Parts I - II. IEEE Transact. on Electronic Computers, December 1966.

[5] Forbes, R.E., Rutherford, D.H., Stieglitz, C.B. ja Tung, L.H.:
A Self-Diagnosable computer. Proceedings - Fall Joint Computer Conference 1965.

[6] Marlett, R.A.: On the Design and Testing of Self-Diagnosable Computers. Digest of the First Annual IEEE Computer Conference, September 6 - 8 1967.

[7] Manning, E.G. ja Chang, H.Y.: A comparison or Fault Simulation Methods for digital Systems. Digest of the First Annual Computer Conference, September 6 - 8 1967.

[8] Majapuro, R. ja Erjanti, J.: Käyttöjärjestelmä 1. Oy Strömberg Ab, Helsinki 13.1.1970.

[9] Jirauch, D.H.: Sortware Design for Automatic Checkout. IEEE Transact. on Aerospace and Electronic Systems, November 1967.

[10] Kaskelma, H., Laube-Pohto, S. ja Lehessaari, H.: Assembler-kielen ohjelmointiopas. Oy Strömberg Ab, Helsinki 14.10.1969.