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.