• Ei tuloksia

2 TUTKIMUKSEN PUITTEET

2.3 Koelaitteiston esittely

Tietokonejärjestelmien laitteisto11isen luotettavuuden ja tur­

vallisuuden lisäämiseksi on olemassa kaksi perusratkaisua:

staattinen ja dynaaminen varmennus. Staattisessa varmennukses­

sa on järjestelmän kokoonpano kiinteä ja virheiden vaikutus poistuu <errannaisuuden ja äänestyksien kautta. Dynaamisessa varmennuksessa voidaan laitteistokokoonpanoa muuttaa sen mu­

kaan, mikä osa vikaantuu.

Voidaan osoittaa, että molempien hyvät puolet saavutetaan hy- (N,S) varmennuksessa /16/. N moduulia muodostaa äänes­

tävän ryhmän ja S moduulia varayksiköiden joukon, joilla vi­

kaantuvat yksiköt voidaan korvata. Uudelleenjärjestely ei eittämättä keskeytä järjestelmän toimintaa.

Erilaisille varmennusmenetelmille voidaan esitellä tarkempi jaottelu ja ominaisuuksien määrittely /17/.

2.3.1 Laitteistoarkkitehtuuri

Sovellutuksissa, joissa Vikasietoisuus ja joustavuus korkean luotetavuuden ja suorituskyvyn välillä on tärkeä, vaikuttaa ilmeiseltä, että moniprosessoriratkaisu olisi soveltuvin. Rin­

nakkaiset tutkimusprojektit tukevat tällaista havaintoa. Ny­

kyiset ratxaisut vaihtelevat laitteistopohjäisestä äänestyk­

sestä ilman varayksiköitä ohjelmallisiin äänestyksiin varayk—

siköin. uC* on uusi yhdistelmä, jonka erilaiset ominaisuudet tarjoavat mahdollisuuden uusien sovellutusten kokeiluun.

uC* perustuu hybridivarmennukseen, jossa äänestäminen on to­

teutettu laitteistolla ja varayksiköiden käyttö pääosin ohjel­

mallisesti. Laitteiston toteutus pohjautuu digitaalitekniikan laboratoriossa MUMI projektin /4/ aikana saatuihin kokemuk­

siin. Laitteiston toteutuksessa on käytetty hyväksi teknolo­

gian nopeaa kehitystä ja mahdollisimman paljon valmiita kort—

tiyksiköitä. Yhteisen aikajaetun väylän käyttö suo tähän hyvät mahdollisuudet.

Tällä hetkellä koelaitteisto perustuu yhden kortin mikrotieto koneisiin, jotka sisältävät kaiken toiminnallisesti tarpeelli set osat: prosessorin, kellon, muistin, ja tarvittavat syöt­

tö/tulostuskanavat sekä liitynnän järjestelmän väylään. Vaih­

toehtoiset kortit sisältävät lisäksi kellopiirejä, tuen suo­

raa muistinsiirtoa varten sekä muita erikoispiirejä. Yhteinen väylä mahdollistaa useiden mikroprosessorien liittymisen sa­

maan järjestelmään tasavertaisina. Väylään voidaan passiivi­

sina komponentteina liittää muistikortteja ym.

Pääpiirteissään uC* koostuu neljästä mikrotietokoneesta, joi­

ta voidaan käyttää itsenäisinä tai suorittamaan yhteistä teh­

tävää. Prosessorit liittyvät äänestinyksikköön ja väylän kautta mahdollisesti passiivisiin lisäyksiköihin. Suurempi

järjestelmä voidaan koota useasta uC*-lohkosta, jolloin loh­

kot liittyvät toisiinsa lisäkorttien välityksellä löyhällä sidoksella.Kuvassa 3 on esitetty koejärjestelmän lohkokaavio.

MULTIBUS

VOTER

PROCESSOR (SBC 80/05) PROCESSOR

(SBC 80/05) (SBC 80/05) PROCESSOR (SBC 80/05)

PROCESSOR

input/output

SYSTEM (SBC 517) COMMON MEMORY

APPROVED OUTPUT

Kuva 3 Koelaitteisto

Prosessorikortteina käytetään Intelin 80/05 kortteja, joissa on keskusyksikkönä 8 bittinen 8085 prosessori, puoli kilota­

vua paikallista RAK-muistia, neljä kiloa ROM-muistia väylälo- yiikka sekä 24 rinnakkaislinjaa, joista 20 on käytössä äänes- tinliitäntää varten.

Yhteisväylänä on aikajakoinen Intelin multibus, joka sallii 1-15 aktiivista prosessoria, isäntää. Aikajaon priorisointia varten on laboratoriossa rakennettu erityinen kytkentä, joka jakaa väylän aikaa neljälle prosessorille kiertävän prioritee­

tin mukaisesti /18,19/. Kiertävä prioriteetti on äänestysti­

lanteissa suorituskyvyn kannalta tärkeä jotta mikään proses­

sori ei jää toisista jälkeen /б/.

Yhteisinuistikortti sisältää tällä hetkellä kuusitoista kilo­

tavua RAM-muistia ja kuusitoista kilotavua ROM- muistia.

Syöttö/tulostuskortti suo mahdollisuudet liittyä keskeytys- pohjaisesti tavanomaisiin oheislaitteisiin.äänestin on lii­

tetty kaikkiin neljään prosessoriin. Vain kolme osallistuu aktiivisesti äänestykseen. Prosessorien jako järjestetään ohjelmallisesti. Kun jokin prosessori vikaantuu voidaan edel­

leen ohjata kolme prosessoria äänestyksiin.

2.3.2. Äänestin

Äänestin on laitteiston kannalta kriittinen osa. Sen vioittu­

minen pysäyttää koko laitteiston toiminnan. Tarkasteltaessa laitteiston luotettavuutta on äänestin sarjassa muiden osien kanssa. Näinollen tulee äänestiinen luotettavuuteen kiinnittää erityistä huomiota. Luotettavuuden lisäämiseen on pyritty minimoimalla komponenttien määrä.

Mikroprosessorien tyypillinen sananpituus on kahdeksan bit­

tiä. On siis luonnollista valita äänestyksen pohjaksi juuri tavu. Tämä lähestymistapa sisältää samalla selviä etuja luo­

tettavuuden kannalta verrattuna bitti kerrallaan tapahtuvaan tarkastukseen /20/.

Äänestimen tilakaavio on esitetty kuvassa 4 /17/. Järjestelmä käynnistyy tilassa 0. Kun ensimmäisellä prosessorilla on ää- nestyspyyntö, se antaa DV—signaalin ja äänestin siirtyy ti­

laan 1. Kun muut prosessorit äänestävät, ja tulokset ovat toi­

sistaan poikkeavia, pysytään tilassa 1. Jos kaksi tulosta on keskenään yhtäpitäviä, siirrytään tilaan 2. Reset-signaalilla päästään kaikista tiloista tilaan 0. Reset—signaalin tulee tällöin tulla ainakin kahdelta prosessorilta. Äänestimestä on tehty tarkempi tilakaavio Petri-verkkoja käyttäen /21/.

P0WER-0N RESET

RESET RESET

AGREEMENT RESULT OUTPUT

Kuva 4 Äänestimen tilakaavio

Äänestimestä saadaan vikatilaston ylläpitämiseksi tietoja kun­

kin prosessorin äänestysvirheistä. Kahdeksan bitin tilarekis­

terissä on kunkinhetkinen tilanne siitä, mitkä prosessorit ovat äänestäneet ja onko jokin tietty prosessori ollut muiden kanssa samaa mieltä. Prosessorit voivat halutessaan lukea tilarekisterin tiedot.Äänestin generoi keskeytyksen kullekin prosessorille, kun kaksi prosessoria on äänestänyt samoin.

Keskeytysrutiinissa prosessorit lukevat tilarekisterin ja suo­

rittavat tilanteen edellyttämät toimenpiteet. Kolmannen pro­

sessorin viipyessä liikaa, toteaa ohjelma tämän virheeksi.

2.3.3. Koelaitteiston puutteet

Laitteisto tulisi suunnitella yhteistyössä käyttöjärjestelmä- suunnittelun kanssa. Edellisen luvun moniprosessorikatsaukses- sa on havaittavissa laitteistojen tukevan käyttöjärjestelmiä erittäin tiiviisti. Edellä esitetyssä koelaitteistossa on tässä valossa havaittavissa joitakin selviä puutteita, joita ilman ei voi ajatella ohjelmoitavan todella vikasietoista käyttöjärjestelmää. Nämä puutteet keskittyvät lähinnä muistin­

hallintaan ja väylän sekä keskeytyspalveluiden valvontaan.

Useimmissa moniprosessorijärjestelmissä ja monissa yksiproses- sorijärjestelmissäkin kiinnitetään käyttöjärjestelmätasolla erittäin paljon huomiota virheiden leviämisen estämiseen.

Yleisin leviämistapa tiukasti kytketyssä systeemissä ja moni- ajoisissa yksiprosessorijärjestelmissä on virheellinen yhteis- muistiin viittaus. Tämä voidaan usein estää rajoittamalla kun­

kin ohjelmanosan kirjoitus- ja lukuoikeuksia. Kun tähän yhdis­

tetään käyttöjärjestelmäkeskeytys virheellisen viittauksen seurauksena, voidaan suurin osa tällaisista virheistä estää.

Käyttöjärjestelmässä ajoitin tarkkailee useita käyttöjärjes­

telmän toimintoja. Ajoittimen toiminta on tällöin kriittinen järjestelmän toiminnan kannalta. Ainoa tapa valvoa perusoh­

jelmiston toimintaa on laitteiston avulla. Väylä on samaten resurssi, jonka varaustilaa voidaan valvoa vain laitteiston avulla. Väylän osalta voitaneen lisäksi todeta, että huomattavasti luotettavampi ratkaisu olisi kolminker­

tainen äänestävä väylä. Koska tämä ratkaisu ei vaikuta ohjelmistoon, ei sitä tarkastella enemmälti.

Suunnitellussa käyttöjärjestelmässä on oletettu, että lait­

teisto tarjoaa puuttuvat piirteet. Ei ole mielekästä tutkia käyttöjärjestelmää, joka on koelaitteistolle paras mutta yleisesti ottaen puutteellinen. Käyttöjärjestelmän suunnit­

telussa ei kuitenkaan pyritty ottamaan kantaa puuttuvien piirteiden toteutustapaan ja suunniteltu virhestrategia on näiltä osin jäänyt avoimeksi.