• Ei tuloksia

Prosessitietokoneen keskusyksikön diagnostiikkaohjelman laatiminen

N/A
N/A
Info
Lataa
Protected

Academic year: 2022

Jaa "Prosessitietokoneen keskusyksikön diagnostiikkaohjelman laatiminen"

Copied!
239
0
0

Kokoteksti

(1)

OTANIEMI,

Puhelin 460144

EKNILLINEN KORKEAKOULU

SÄHKÖTEKNILLINEN osasto

lCL 002.0 733Г

DIPLOMI TYÖ

Mi k o la, Erkki

Prosessitietokoneen keskusyksikön diagnostiikkaohjelman laatiminen.

Paavo Jääskeläinen

Annettu 10.3-1970

Jätettävä tarkastettavaksi viimeistään 10.12.1970.

Diplomityön suoritusohjeet annettu.

Seminaariesitelmä pidetty

Jätetty tarkastettavaksi Tarkastettu Arvosana

!

OyflfFörn h згд Ab

PITÄJÄNMÄEN TUOTANTORYHMÄ KIRJASTO

31-0 e

1767868/27

(2)

I

ALKULAUSE

Tämän työn ohjaajana on toiminut professori Paavo Jääskeläinen.

Työtä olen saanut tehdä Oy Strömberg Ab:n palveluksessa normaalina työaikana, josta kiitokseni dipl.ins. Aslak Savonjouselle jadipl.ins.Göran Lind­

holmille.

Työssä olen joutunut käyttämään runsaasti suusanallista informaatiota, jota olen saanut lähinnä dipl.ins. Kari Matilaiselta ja ins. Paavo Sääks-

järveltä.

Samanaikaisesti oman työni kanssa teki toiminimen palveluk­

sessa tekn.yo. Seppo Lindberg diplomityötä periferia la i11eiden ohjelmallisesta testauksesta. Lähinnä kirjallisuustutkimuksessa olen käyttänyt hänen apuansa.

Diplomityön ohessa osallistuin toiminimen kehittämän pro- sessitietokoneen prototyypin testaukseen. Tämä antoi hyvän lähtökohdan diagnostiikkaohjelman tekemiseen, mutta vei niin paljon aikaa, että diplomityönä määritelty tehtävä

jäi osittain keskeneräiseksi.

Lopuksi haluan kiittää toiminimeä ja kaikkia niitä henki­

löitä, jotka ovat minua työssäni auttaneet.

Helsingissä 27«11*1970

Erkki Mikola Mäyrätie 2 D 5b Helsinki 8l

puh. 789152

(3)

SISALLYSLU ETTELO

sivu

I JOHDANTO 1

II TIETOKONEIDEN TESTAUSTILAN TEET

1. Käyttöönotto 4

2. Kunnossapito 5

III TIETOKONEEN KESKUSLOGIIKAN TESTAUSMENETEL­

MISTÄ 6

1. Manuaaliset menetelmät 6

2. Ulkopuolisten testaus laitteiden ja

-järjestelmien käyttö 6

3. Itsediagnostiikka (Self-Diagnosis) 8

A. Vianilmaisupiirit 8

B. Diagnostiikkaohjelmat 9

C. Vikojen eliminointi 12

IV STRÖMBERG 1OOO-PROSESSITIETOKONEEN RAKENNE l4

1. Suunnittelutavoitteet 14

2. Toteutetut toiminnat 17

A. Sananpituus ja käsittelytapa 17 B. Keskeytysjärjestelmä 17

C. Osoitelaskenta 22

D. Laskentarekisterit 27

E. Operaatiot 28

F. Käskysanan rakenne ja tulkinta 30 G. Ulkoinen muistikanava 36

H. Suojaus 36

I. Monitorkeskeytys 37

J. Syöttö- ja tulostusjärjestelmä 40

(4)

I

3. Keskusyksikön rakenne 42

A. Yleispiirteet ja rakenneosat 42

B. Ajoitus 42

C. Tiedonsiirto ja -talletus 47 V KESKUSYKSIKÖN RAKENTEESTA SEURAAVAT TESTAUS-

MAHDOLLISUUDET 52

1. Testiflipflop 52

2. Operaattorin paneli 54

3. Rakenteen ohjelmallinen testattavuus 55 VI PROTOTYYPIN TESTAUKSESSA KÄYTETYT OHJELMAT 57

1. Tavoitteet 57

2. Ohjelmointimenetelmät 58

3. Keskeytysjärjestelmän testaus 59 A. Monitorpaluun ja -keskeytyksen

testiohjelma 60

B. MOI-käskyllä (pulsseilla 2048-4095) aiheutettava monitorkeskeytys 63 C. Ylärajavirhetarkastus ja -keskeytys 63 D. Alarajavirhe muistiinkirjoitus-

jaksossa 66

E. Suojatesti 66

F. Testimonitorkeskeytys 68 G. Ohjelmoidut keskeytykset

H. Ulkoiset keskeytykset 74

VII KESKUSYKSIKÖN SUUNNITELTU ITSEDIAGNOSTIIKKA-

OHJELMA 77

1. Tavoiteanalyysi 77

2. Alkuoletukset 80

3. Testit 84

A. Vikamahdollisuudet ja niiden tes­

taus järjestys 84

B. Luvut ja menetelmät 91

(5)

I

4. Ohjelmointitekninen rakenne Ю4

A. Ohjelmointikieli Ю4

B. Operatiivinen osa 105

C. Käskyvalikoima ja ohjelman sijoit­

tuminen muistiin 112

D. Tiedostot 114

E. Tiedostojen generointi 119 5. Diagnostiikkaohjelman käyttö 120

A. Sisään luku 120

B. Ehjä keskusyksikkö 120

C. Viallinen keskusyksikkö 121

VIII YHTEENVETO 123

IX KIRJALLISUUSVIITTEET 125

LIITTEET

!

(6)

I

KÄYTETYT PIIRROSMERKIT

A. Loogiset piirit

A В

A В

A В c D

AB - NAND-portti

A+B » NOR-portti

AB+CD = AND-OR-NOT-portti

ilman laajennusyksikköä

AB4CD+EF0H

AND-OR-NOT-portti Ja sen laaJennusyksikkö

li

D-flipflop

■ kellopulasitulonapa, Jossa tapahtuva muutos 0:sta 1:een asettaa

^ = sen hetkinen A Q ж aen hetkinen A P - preset, 0-tliasta seuraa Q - 1, Q = 0 C = clear, -"- Q = 0, Q = 1

(7)

II

Lohkokaaviomerkinnät

ж operaatio. Joka on määritelty

■uorakaiteen sisään sijoitetulla tekstillä.

ж päätös, Jatkotoimenpide riippuu vinoneliön sisään merkittyn suureen arvosta

syöttb/tulostustoimenpide

» ON-LINE syöttötoimenpide kirjoituskonee11a

I

» alku tai loppu

(8)

III

KÄYTETYT DIGITAALISIGNAALIEN MERKINTÄTAVAT

A = signaali, joka "l"-tilassa aiheuttaa toiminnan A tapahtumisen tai ilmaisee keskusyksikön olevan tilassa A.

A on lyhennys suomen tai englanninkie­

lisestä asiaa kuvaavasta sanasta.

В = signaali, jonka "0"-tila aiheuttaa tie­

tyn toiminnan tai ilmaisee tilaa В,

tällöin nimitys В annetaan ко. toiminnan tai tilan mukaan.

I

= merkintä, joka ilmaisee, että signaali A ei ole ykköstilassa.

IC/3 = monibittisen signaalin nimetty bitti,

esimerkissä ohjelma laskimen (IC = instruc­

tion counter) bitti 3•

Rl/O = rekisterin Rl eniten merkitsevä bitti (= merkkibit ti).

R7/17 = rekisterin R7 vähiten merkitsevä bitti.

1

IR/12 • 13 • l4 = käskyrekis terin (IR = instruction register biteistä 12, 13 ja 14 muodostettu signaa­

li, joka on 1 vain , kun IR/2 = 1, IR/l3 = 0 ja IR/14 = 1.

IR/3 * *4 = IR/3 • IR/4 IR/3 • T* = IR/3 * IR/4

IR/3 • 4 = IR/3 • IR/4

(9)

IV

OsKo ? = nimetyn bittiryhmän arvo binääriluvuksi tulkittuna ja desimaaliluvuksi muutettu­

na on 7» jos näin merkityn signaalin tila on "l". Esimerkkitapauksessa IK/7» 8, 9»

10 :n muodostama osoitekoodi on 0,1,1,1.

VT4/12 = valintatasolta lähtevä signaali, jonka looginen polariteetti on positiivinen.

VTÏÏÂ79 = valintatasolta lähtevä signaali, jonka polariteetti on negatiivinen (data on komplementoidussa muodossa ) .

MK => VT1A = valin ta tason ohjaussignaali, jonka " 1 " - tila aiheuttaa vasemmalla mainitun kana­

van valinnan oikealla määritellyn valin­

ta tason lähtöön yksinään tai jonkun muun signaalin kanssa.

(10)

V

ERÄITÄ SIGNAALINIMITYKSIÄ JA MUITA LYHENNYKSIÄ

AN

c 1 CL asT

I

alkunolla, joka vaikuttaa "0"-tilassa (voi ymmärtää myös, että 1-tila merkitsee ettei alkunollaustilanne ole voimassa ) ajoituslogiikan sisäinen kellosignaali koko keskusyksikön pääkellosignaali

aseta T, seuraavalla pääkeIlopulssilla vaih­

tuu keskusyksikön perusaika

TO = 200 ns

Tl = 300 n s

T2 = 100 n s

T3T4 = 250 ns

T5 - 200 ns

T6 - 100 ns

T7T8 - ЗОО n s

T9T10 = 250 ns

Tll = 200 ns

T12 = 200 ns

TOO = 400 ns

T2A = 400 ns

МЛ = muisti,

MJ2 = II

MJ3 - _ Il _

MJ4 = II

OpJl - operaa

0pJ2 n

2 3 4

jaksot, jotka ilmaisevat minkälaista muistitietoa käsitellään

MJ <=> käskysana tai osoi- telaskennan tietoa

2

OpJ<=> operandi

(11)

VI

IR = käskyrekis teri

IC * ohjelma laskin (= käskyosoiterekis teri) MAR = muistiosoiterekisteri

MR = muistirekisteri

ADDI, ADD2 = yhteenlaskimet 1 ja 2

AR = apurekisteri

BB = ohjelman kantarekisteri BR = lohkon kantarekisteri UR = ylärajarekisteri

XR = indeksirekisteri

R = tavallinen laskentarekistori

TSI ja TS2 = tilasanat 1 ja 2, jotka ilmaisevat keskey­

tysten yhteydessä sen talletettavan tiedon, joka ei sisälly täysimittaisiin rekisterei­

hin

KOS = keskeytysosoite, keskeytysyksikön ilmoitta­

ma langan numero

SAL = sivuaritmetilkka laite tai sen tulossignaali

Tu = tulokanava

= lähtökanava

LVR = linkkausvälitysrekisteri IKR = IC:n kytken tärekisteri OsKo = osoitekoodi

ORK = osoiterekisterikoodi

BRK = BR-koodi

AK = A-koodi

BK = B-koodi

Ry - ryhmä

ReK = rekisterikoodi

(12)

VII

ReKä = rekisterikäsky

IOKä = syöttö- tai tulostuskäsky JäKä = järjestelykäsky

OsKä = osoitekäsky

ffmonp = flipflop, joka on "1" monitortila ssa

ffmonk = flipflop, joka on "1" monitorkeskeytyksen a ikänä

FFKP = flipflop, joka asettuu "l":ksi ulkoisen keskeytyspyynnön vaikutuksesta

KT = keskeytyställetus

KL = keskeytyslataus

NK = nopea keskeytys = muistikeskeytys Norm = kone ei ole keskeytystilassa

Norm * = kone ei ole keskeytys!liassa eikä missään virhe- tai käskymuunnostilassa

KIL = kierroslaskija

VT = valintataso

(13)

VIII

LIITELUETTELO

1. Keskusyksikön binäärinen käskyluettelo 2. 1. kääntäjän käskyluettelo

3. Assembler-kääntäjän käskyluettelo

4. Prototyypin keskeytystestit, ohjelmalistaukse t ja ajo-ohjeet

'!

(14)

1

I JOHDANTO

Tietokoneiden ja muiden suurten digitaalilaitteiden kasvava koestustarve ja taloudellisten testausmenetelmien kehittä­

minen ovat nykyään alan teollisuuden polttavimpia ongelmia.

Elektronisten laitteistojen vikatiheys ei niiden laajentu­

essa kasva suhteellisesti enempää kuin komponenttien luku­

määrä, ainakaan jos osien vioittumisesta ei seuraa uusia vi­

koja. Suurimman vaikeuden muodostaakin yksityisen vian löy­

tämisen vaikeutuminen. Sen voidaan sanoa tapahtuvan jopa suhteellisesti nopeammin kuin laitteen koon kasvun. Vian löy­

täminen tapahtuu kahdessa vaiheessa. Ensin vika on havaitta­

va ja sen jälkeen paikallistettava. Molemmat tehtävät ovat luonnollisesti sitä vaikeampia, mitä enemmän laitteessa on ehjiä, toimivia osia. Tarkkojen matemaattisten kaavojen esit­

täminen testaustyömäärän ja laitteen koon riippuvuussuhtees­

ta on kuitenkin mahdotonta, koska käytettävät testausmenetel­

mät vaikuttavat asiaan ratkaisevasti.

Tietokoneiden vikamäärän kasvua minimoidaan monin keinoin.

Sekä suunnittelussa että valmistuksessa pyritään käyttämään automaattisia menetelmiä ja laitteita. Sillä pyritään nimen­

omaan testauskulujen eikä niinkään kyseisen työvaiheen kus­

tannusten pienentämiseen. Komponenttien luotettavuutta paran­

tamalla saadaan keskimääräinen vikaväli pidemmäksi. Näillä keinoin ei kuitenkaan voida vähentää tietokoneiden testaus- tarvetta, joka päinvastoin on lisääntynyt suurta toimintavar­

muutta vaativien käyttösovellutusten mukana.

(15)

Tes taustyömäärää voidaan pienentää ja testausta nopeuttaa, jos siihen käytetään diagnostiikkaohjelmia. Ohjelmat voi­

daan suunnitella ajettavaksi joko testattavassa tai ehjäksi tunnetussa keskusyksikössä. Ensin mainittu tapa on halvempi ja siksi yleisimmin käytetty, vaikka jälkimmäinen menetelmä onkin huomattavasti käyttövarmempi, eikä aseta testattavan laitteen kunnolle mitään alkuoletusta tai alkuvaatimusta.

Seuraavan esityksen II-kohdassa käsitellään lähemmin eri­

laisten testaustilanteiden asettamia vaatimuksia ja III-koh- dassa testaukseen käytettäviä menetelmiä.

Tämän diplomityön käytännölliseksi tavoitteeksi asetettiin diagnostiikkaohjelman laatiminen Oy Strömberg Ab:n Ström- berg-1000 prosessitietokonejärjestelmän keskusyksikölle.

Testattavan laitteen rakenne vaikuttaa oleellisesti sille laadittavaan testiohjelman muotoon ja sisältöön, ja sen tun­

temus on välttämätöntä manuaalisia menetelmiä käyttävälle diagnostiikkaohjelman suunnittelijalle. Tästä syystä on IV- kohdassa esitetty melko perusteellisesti koko tietokonejär­

jestelmän ja etenkin keskusyksikön rakenne. Osasyynä on myös alkulauseessa mainittu tekijän osallistuminen prototyypin manuaaliseen testaukseen, mistä syystä diplomityön otsikossa määritelty tehtävä on vielä osittain kesken, eikä saa tässä esityksessä niin suurta osuutta kuin sille kuuluisi.

Yleisen rakenneselostuksen jälkeen käsitellään V-kohdassa keskusyksikön rakenteen vaikutusta testausmenetelmiin ja

diagnostiikkaohjelman toimintaedellytyksiin ja ohjelmointiin.

Selostuksen VI-kohdassa esitellään ohjelmia, joita käytet­

tiin keskusyksikköprototyypin testauksessa, painottaen nii­

tä, jotka ovat allekirjoittaneen laatimia.

(16)

3

Viimeisessä eli VII—kohdassa käsitellään diplomityön otsi­

kon mukaista aihetta ja esitetään periaatteellinen ratkaisu Strömberg 1000-järjestelmän keskusyksikön itse-diagnostiik- kaohjelmalie, jota voidaan käyttää sekä uusien tietokonei­

den käyttöönotossa että toimivien laitteiden huollossa.

Ohjelman aloittamiseen tarvittava osuus keskusyksiköstä on minimoitu ja siinä on otettu huomioon sekä oski1loskoopin

että operaattorin paneIin käyttömahdollisuus. Ohjelman an­

taman vika tulostuksen ja sen käyttöohjeiden avulla voidaan viat diagnostisoida likimääräisesti. Huoltoteknikon keskus­

yksikön tuntemus lisää huomattavasti ohjelmasta saatavaa hyötyä ja on jossain määrin välttämätön aina vikojen lopul­

lisessa paikallistamisessa, joka tapahtuu manuaalisella mittauksella.

(17)

4

II TIETOKONEIDEN TESTAUSTILANTEET

1. Käyttöönotto /1/

Tietokoneen sarjanumerosta ja valmistusmenetelmistä riippu­

en siinä on välittömästi valmistuksen jälkeen tavallisesti useita erityyppisiä vikoja. Jos testattava laite on proto­

tyyppi » voi vikojen määrä olla jopa satoja. Käyttöönottotes- tauksen yhteydessä löytyvistä vioista luonteenomaisia ovat kytkentä- ja langoitusvirheet. Niitähän ei myöhemmin enää esiinny. Prototyyppiä testattaessa voi laitteesta löytyä myös suunnitteluvirheitä. Sarjanumerosta riippumatta on

laitteissa ehkä useita viallisia komponentteja, etenkin jos mikropiirien koestus ennen niiden paikoilleen kytkentää jä­

tetään kustannusten takia tekemättä.

Käyttöönottotestaus suoritetaan yleensä samalla tehtaalla , missä tietokone on valmistettu ja missä on käytettävissä tar koitukseen sopivat erikoislaitteet ja asiantuntevaa työvoi­

maa. Lopullinen kokonaissysteemin testaus on monessa tapauk­

sessa kuitenkin tehtävissä vasta asennuspaikalla. Erityises­

ti tämä koskee prosessitietokonejärjestelmiä.

Testaus on syytä suorittaa jakamalla testattava laite modu­

laarisiin osiin ja testata ne erikseen. Viat löytyvät täl­

löin helpommin kuin kokonaissysteemiä tutkimalla. Toiminnal­

lisiin osiin jako voidaan suorittaa kiinteästi laitteeseen asennettujen testikytkimien ja -piirien avulla tai käyttä­

mällä testauspaikalla olevia laitteita ja kytkentöjä.

Tietokoneesta käyttöönoton yhteydessä löytyvä vikamäärä on todennäköisesti suurempi kuin koskaan myöhemmin laitteen käyttöaikana. Vikojen löytämistä toisaalta helpottaa erikois laitteiden ja pätevän henkilökunnan käyttömahdollisuus.

(18)

5

2. Kunnossapito

Tietokoneiden toimintakunnon valvonta ja säilyttäminen on monissa ON-LINE sovellutuksissa erittäin tärkeä tehtävä.

Parhaaseen luotettavuuteen päästään sisällyttämällä tieto­

koneen "hardwareen" laitteet, joilla suoritetaan jatkuvaa toiminnan valvontaa , ja joilla on mahdollista eliminoida tilapäishäiriöstä tai vioittuneesta komponentista johtuva virhetoiminta. Tavallisesti tyydytään kuitenkin halvempaan menetelmään: koneen ajoittaiseen tai miltei jatkuvaan tes­

taamiseen testiohjelman avulla. Mikäli laitteeseen tulee vika, se havaitaan nopeasti ja manuaalinen korjaus voidaan suorittaa välittömästi tämän jälkeen.

Ehjän laitteen testiohjelmalle asetettava tavoite on, että se paljastaa kaikki viat. Viallista tietokonetta tutkitta­

essa ohjelma on sitä hyödyllisempi, mitä enemmän huoltotek nikko saa sen avulla tietoa vian esiintymispaikasta. Vian tarkka diagnostisointi nopeuttaa korjausta ja vähentää kor jaajaita vaadittavaa tietomäärää laitteen toiminnasta ja rakenteesta.

(19)

6

III TIETOKONEEN KESKUSLOGIIKAN TESTAUSMENETELMISTÄ

1. Manuaaliset menetelmät

Rakenteeltaan tavanomaisen tietokoneen keskusyksikkö voi­

daan testata yleismittalaitteiden avulla ilman testiohjel­

mia tai vianhavaitsemispiirejä. Sitä kuitenkin helpottaa sopivien testikytkinten ja piirien kiinteä asennus testat­

tavaan laitteeseen. Lähinnä tulee kyseeseen käskyrekisterin asetus- ja lukitusmahdo1lisuus, muistiin kirjoitus ja muis­

tista luku sana kerrallaan, laskentarekisterien asetus sekä automaattitoimintojen, kuten keskeytyksen, jatkuva alkuase- tus ja toisto. Käskyjen toteutusmahdollisuus yksitellen tai muistijakso kerrallaan on miltei välttämätön keskusyksikön ominaisuus. Testausta nopeuttaa huomattavasti, jos keskus­

yksikön tilan määräävien flipflopien ja rekisterien arvot nähdään kiinteästi asennetuista lampuista.

Edellä mainituista yleismittalait teista tärkein on oskillos­

kooppi, jonka käyttöalue ulottuu tasajänniternit tauksista suurempiin taajuuksiin kuin testattavassa keskusyksikössä esiintyvä kellotaajuus. Siinä olisi oltava myös ulkoisen lii paisujännitteen käyttömahdollisuus, vähintään kahden mittaus kanavan samanaikainen näyttö ja liipaisusta alkava säädettä­

vä pyyhkäisyn viivästys.

2. Ulkopuolisten testauslaitteiden ja -järjestelmien käyt tö

Tietokoneita valmistavilla tehtailla on tavallisesti tuot­

teiden lopputarkastusta varten valmistusmääristä riippuen ehkä hyvinkin kallis ja monimutkainen testauslaitteisto tai -systeemi, joka on kehitetty nimenomaan tietyn keskusyksik- kötyypin koestukseen.

(20)

7

Testaussysteemillä tarkoitetaan laitteistoa, jonka osana on toimiva ehjä tietokone /2/. Sen avulla voidaan antaa testattavaan laitteeseen ajoituspuisseja ja simuloida sen muistia sekä mitata etukäteen spesifioitujen signaalien arvoja. Tämä tapahtuu erityisen liitäntäyksikön avulla.

Toimintaa ohjaa testiohjelma, jonka avulla verrataan mi­

tattuja signaalivasteita ohjelman käytössä oleviin oikei­

siin arvoihin. Testiohjelmaan voidaan sisällyttää deduktii­

vista vian paikäliistusta, jolloin jokainen oikein päätty­

nyt testi pienentää epäilyksen alaista osuutta keskusyksi­

köstä /3/ tai vian paikallistaminen voidaan tehdä vasta kaikkien testien jälkeen vikasimuloinni11a tehdyn tiedoston avulla /4/. Jos ohjelmaan liittyy vianpaikäliis tamisomi­

naisuus , siitä käytetään usein nimitystä diagnostiikkaoh­

jelma . Systeemistä saatava hyöty riippuu oleellisesti sen

"softwaren" hyvyydestä. Normaalitapauksessa tarvittavan liitäntäyksikön suunnittelu testaavan ja testattavan kes­

kusyksikön välille on huomattavasti helpompi tehtävä kuin hyvän testiohjelmiston laatiminen. Testaava yksikkö voi yleensä olla mikä tahansa yleistietokone, joskin testatta­

van keskusyksikön kanssa samanlaisen laitteen käyttö voi helpottaa ohjelmien laatimista.

Testilaitteistoja ja -systeemejä voidaan käyttää myös pie­

nempien osakokonaisuuksien koestukseen, jolloin laitekustan­

nukset jäävät yleensä myös vähäisemmiksi. Keskusyksikön kortteja esimerkiksi voidaan testata vertailuperiaatteella toimivassa laitteessa. Tällöin tutkittavaan ja tunnettuun korttiin syötetään samaa vaihtuvaa monibittistä tulosignaa-

lia, joka voidaan muodostaa esim. tavallisen binäärilaskurin avulla. Laitteessa on vertailupiinit, jotka toteavat tutkit­

tavien korttien lähtösignaaleissa esiintyvät erot ja tarvit­

taessa pysäyttävät tulosignaaIin vaihtelun ja sytyttävät virheilmaisulampun. Laitteen käyttäjä voi tällöin manuaali­

sesti mitata, mistä ero johtuu.

(21)

8

Toinen tapa testata tietyn kortin toimintaa on sijoittaa se omalle paikalleen toimivaan kokonaissysteemiin ja tes­

tiohjelman avulla kokeilla vieläkö systeemi on kunnossa.

Menetelmää voidaan nimittää vaihtoperiaatteeksi, ja sitä voidaan käyttää myös päinvastaisessa testaustilanteessa, kun kokonaissysteemissä tiedetään olevan yhden vian ja käytettävissä on ehjät, helposti vaihdettavat varaosat.

Menetelmää käytetään tunnetusti esim. putkiradio- ja TV- vastaanottimien korjaukseen.

Digitaalisen tiedon kaukosiirron yleistyessä voi tulevaisuu­

dessa tulla kyseeseen tietokonesysteemin käyttö myös muual­

le asennettujen keskusyksikköjen huollossa. Tes tausnopeus on tällöin pieni, siirtokanavan kapeasta taajuuskaistasta johtuen, mutta kuitenkin huomattavasti suurempi kuin manu­

aalista vianpaikä liistamista käytettäessä.

3• Itse-diagnostiikka (Self-Diagnosis) A. Vianilmaisupiirit /5/

Tietokoneen keskusyksikön minimitehtävämäärittely on, että sillä voidaan suorittaa ohjelmoidut käskyt sekä mahdollises­

ti tietyn tyyppiset keskeytykset. Tämän lisäksi keskusyksik­

köön voidaan sijoittaa toimintaa valvovia piirejä. Ensinnä mieleen tuleva ajatus on rakentaa keskusyksikön toiminnalli­

set piirit kahteen kertaan ja näiden välille vertailupiinit.

Menetelmä on kallis, mutta silti jossain määrin käytetty selväpiirteisen rakenteen ja vianeliminointimahdollisuuden takia.

Useimmiten halvempi ratkaisu on käyttää virheenpaljastuskoo- deja. Tällöin jokaiseen käsiteltävään datasanaan liitetään

tietyn säännön mukaan ylimääräisiä bittejä, ja kun myöhemmin verrataan samaa sääntöä käyttäen näitä koodibit tejä ja var-

(22)

9

ainaista datasanaa, todetaan jommasaa kummassa mahdollises­

ti esiintyvät virheet. Yksinkertainen ja paljon käytetty koodausmenetelmä on lisätä sanoihin pariteettibitti. Kooda­

uksen avulla tapahtuva virheenpaljastus edellyttää, ettei tutkittavassa sanassa ole enempää virheitä kuin käytetyn koodin teoreettinen pohja sallii. Pariteettikoodatussa sa­

nassa ei saa olla kuin yksi virhe. Asetettu vaatimus ei rinnakkaistoimisissa tietokoneissa ole kuitenkaan rajoitta­

va tekijä, koska yhdestä viallisesta komponentista seuraa virhe tavallisesti vain yhteen datasanan bittiin.

Vianilmaisupiirien avulla voidaan saada havaitusta viasta myös runsaasti diagnostista informaatiota. Tämä edellyttää,

että piirejä on monessa paikassa keskusyksikköä ja että vian havainnut piiri pystytään jälkeenpäin tunnistamaan.

B. Diagnostiikkaohjelmat /6/

Jokaisen tietokoneen käskyvalikoimaan kuuluvat ehdolliset hyppykäskyt, jotka mahdollistavat operandien arvoista riip­

puvien päätösketjujen suorituksen. Myös tietokoneen testaus voidaan käsittää tämän tyyppisenä tehtävänä. Sen suoritus­

tapa riippuu testattavan laitteen kunnosta.

Edellytyksenä, että keskusyksikön tuntematon vika voitaisiin löytää siinä itsessään toteutettavalla ohjelmalla on, että vika on vaikutukseltaan riittävän rajoittunut. Se ei saa es­

tää käytettävän testialgoritmin toteutusta siltä osin, mikä suoritetaan ennen ko. piirien testausta. Vaatimus on vaike­

asti täytettävissä. Se on huomioitava sekä testattavan kes­

kusyksikön että testiohjelman suunnittelussa ja käytännössä se asettaa suurimman rajoituksen 11 se lf-diagnosis 11-oh je Imien käyttökelpoisuudelle.

f

(23)

10

Diagnostiikkaohjelmat voidaan laatia kahdelta jossain mää­

rin erilaiselta pohjalta. Kussakin testissä voidaan tutkia keskusyksikön jonkin funktion toteutusta tai jonkin piirin käyttäytymistä. Jälkimmäisellä asenteella laadittu ohjelma antaa löydetyistä vioista paremman diagnostisen informaati­

on, mutta sen käyttö ohjelmoinnissa on vaikeampaa kuin toi­

mintojen testauksen, koska ohjelmoijalla on joka vaiheessa kuitenkin oltava selvä käsitys konekielisten käskyjen käyt­

tökelpoisuudesta. Molempien suunnittelutapojen haittapuolia on se, että osa vikamahdollisuuksista jää helposti kokeile­

matta. Piirikohtaisia testejä suunniteltaessa tämä vaara on tosin pienempi, mutta vain diagnostiikkaohjelman generointi automaattisin menetelmin eliminoi vaaran täydellisesti. Tämä edellyttää tarpeellista ohjelmaa sekä testattavan laitteen kytkennän eksaktia numeerista esitystapaa /7/•

Funktionaalisesti orientoituneesta testiohjelmasta on eni­

ten hyötyä tietokoneprototyypin testauksessa, koska sen avulla paljastuvat myös loogiset suunnitteluvirheet. Testi- ohjelman laatiminen on syytä antaa jonkun muun kuin keskus­

yksikön suunnittelijan tehtäväksi, sillä täten voidaan pal­

jastaa häneltä unohtuneet yksityiskohdat.

Kun keskusyksikön looginen kytkentä on testattu ja lopulli­

nen, on huoltoa ja seuraavien laitteiden käyttöönottoa var­

ten laadittavan diagnostiikkaohjelman tekijän tunnettava laitteen yksityiskohtainen rakenne ja toimintojen toteutus­

tapa. Tällöin hänellä on mahdollisuus edetä tyvestä puuhun eli asettaa testit mielekkääseen järjestykseen siten, että ohjelman aloittamiseen tarvittava "hardware1" on mahdollisim­

man pieni osa koko keskusyksiköstä. Laitteen tuntemus on edellytyksenä myös piirikohtaisten testien laatimiselle.

Täysin piirikohtaisia testejä ei self-diagnosisohjelmaan kui tenkaan saada, koska korteille ei voida syöttää kaikkia tes- tikuvioita (= test pattern) niinkuin yksityistä logiikkakort tia testattaessa /8/.

(24)

11

Itsediagnostiikkaohjelma11a saavutettava vianpa Ijäs tumis- nopeus ei ole yhtä hyvä kuin vianhavaitsemispiirei1lä.

Se riippuu luonnollisesti siitä, kuinka usein ohjelma aje­

taan testattavassa keskusyksikössä. Moniajoperiaattee 1la toimivassa keskusyksikössä voidaan ohjelmaa suorittaa ai­

na, kun laitteella ei ole "hyödyllistä" käyttöä. Tällöin saavutetaan miltei välitön vianilmaisu.

Vastapainoksi hitaudelle on diagnostiikkaohjelmalla mah­

dollista saavuttaa parempi vian paikallistua kuin koodauk­

seen perustuvalla viandetektointipiirillä.

Diagnostiikka voi perustua vikojen etukäteen suoritettuun simulointiin /9/ tai ohjelman laatijan intuitiiviseen kä­

sitykseen laitteen toiminnasta. Edellisessä tapauksessa suo­

ritetaan mahdollisimman vähän testejä, jotka kuitenkin pal­

jastavat kaikki viat. Tällöin yksityisen testin vikatoden- näköisyys on varsin suuri ja testien generointi ja valinta edellyttää automaattisten menetelmien käyttöä. Kun kaikki testit on suoritettu, tapahtuu vian paikallistus ns. vika- kirjan avulla joko ohjelman toimesta tai manuaalisesti. Vi—

kakirjan laatiminen simulointitulosten perusteella on niin laaja tehtävä, että myös siihen on käytettävä tietokonemene- telmää.

Jälkimmäinen lähtökohta johtaa mahdollisimman useiden testi­

en laatimiseen siten, että yksityisen testin epäonnistumis- todennäköisyys on pieni. Testien suunnitteluvaiheessa selvi­

tetään, mitä vikoja kullakin testillä pyritään havaitsemaan.

Testaus lopetetaan yleensä ensimmäiseen löydettyyn virhetoi­

mintaan. Menetelmän etuna on sen selväpiirteIsyys ja kohtuu!

linen työmäärä, mutta toisaalta varjopuolena havaitsematta jäävien vikojen mahdollisuus sekä huonompi, joskus virheel-

linenkin, diagnostiikka.

(25)

12

C. Vikojen eliminointi

Monessa tapauksessa ei riitä, että tietokoneeseen syntyneet viat havaitaan välittömästi, vaan ne olisi myös saatava no­

peasti eliminoitua. Tämä edellyttää yleensä varapiirien si­

joittamista laitteeseen. Niiden käyttöönotto tarvittaessa voi tapahtua monella tavalla.

Looginen toiminta voidaan tehdä riippumattomaksi yksityisen portin kunnosta, esim. kuva AND-portin toteutuksesta.

A

В = AB

Kuva III.3.C.1. Redundanttinen AMD-piiri

Tässä kytkennässä voi jokin porteista 1, 2 tai ') olla täy­

sin viallinen tai piirin k jokin sisäänmeno pysyvästi 110"- tai "l"-tilassa. Kytkentöjä sanotaan redundant Lisiksi ja niille luonteenomaista on, että vikojen varalta lisätyt pii rit ovat jatkuvassa käytössä. Yksityisen komponentin vioit­

tumista ei edes havaita, mikä onkin kytkentöjen suurin hait ta ajatellen jatkuvaa käyttövarmuutta ja vioittuneiden kom­

ponenttien vaihtamista. Huoltovaikeutta voidaan vähentää, jos redundanssi tehdään testikytkinten avulla poistettavak­

si /10/.

(26)

13

Vian ilmaisuun ja eliminointiin voidaan päästä rakentamalla toiminnalliset piirit useaan kertaan. Jos piirejä on vähin­

tään kolme, voidaan "hardwaressa" helposti tunnistaa vioit­

tunut osa ja kytkeä se pois käytöstä. Tämän jälkeen on vielä mahdollista seurata kahden jäljelle jääneen piirin toiminta- kuntoisuutta .

Toinen tapa ilmaista vikoja ja eliminoida ne on käyttää vir- heenkorjauskoodeja. Tällöin piirit eivät diagnostisoi vial­

lista osaa, vaan toteavat vain virheellisen toiminnan sekä korjaavat virheellisen tuloksen.

Menetelmä edellyttää melko monimutkaisten koodien käyttöä sekä useita tarkistusbittejä, joten virheenkorjauspiireissä esiintyvät viat ovat miltei yhtä todennäköisiä kuin valvot­

tavassa osassa tietokonetta. Tästä koituvat vaikeudet voi­

daan eliminoida kaksinkertaistamalla virheenkorjauslogiikka ja vertailemalla niiden toimintaa /5/•

oy

ftrotpberq

аь

PITÄJÄNMÄEN TUOTANTORYHMÄ KIRJASTO

(27)

IA

IV STRÖMBERG lOOO-PROSESSITIETOKONEEN RAKENNE

1. Suunnittelutavoitteet /11, 12/

Oy Strömberg Ab:n ensimmäisen tietokoneprojektin tavoittee­

na oli prosessinohjausjärjestelmä, jonka keskuksena on osi- tuskäyttöperiaatteella toimiva tietokone. Järjestelmästä haluttiin modulirakenteinen ja helposti laajennettava. Sa­

nanpituus valittiin ajatellen keskisuuren muistin käyttö­

mahdollisuutta, monipuolista käskyvalikoimaa ja kohtalaista laskentatarkkuutta. Keskeytyspyyntöjä haluttiin vapaasti valittavissa ja laajennettavissa oleva määrä eri prioriteet-

titasoi1le.

Käyttöjärjestelmän tehokkuuden lisäämiseksi haluttiin kes­

kusyksikköön osoitelaskentamekanismi, joka ei edellytä kään­

nösohjelmalta absoluuttisten muistiosoitteiden laskemista, vaan ainoastaan ohjelma lohkon alkuun nähden suhteellisten osoitteiden sijoittamisen binäärisiin käskyihin. Tällöin käyttöjärjestelmä voi siirtää ohjelma lohkoja muistissa ilman

että niiden toiminta muuttuu.

Keskeytysten yhteydessä tarpeellinen keskusyksikön tilan tai letus ja uudelleen asetus haluttiin nopeaksi. Eräs keino oli si minimoida keskusyksikön rekisterien lukumäärä, mutta siit aiheutuvien ohjelmointivaikeuksien vuoksi päädyttiin toiseen tavoitteeseen: automaattiseen keskeytystalletukseen ja -lata ukseen.

Rekisterien suurta lukumäärää puolsi re-entrant ohjelmien käyttömahdollisuus. Aritmeettisten operaatioiden suoritus re kis terien välisinä lisää myös keskusyksikön nopeutta, koska

operaatiot voidaan tällöin suorittaa samanaikaisesti kun toiminnan aiheuttavaa käskyä vasta kirjoitetaan takaisin muistiin. Luettaessa ferriittirengasmuistiin talletettua

(28)

15

sanaa , sen taltioimiseen käytettyjen renkaiden magneetti­

nen viritystila häviää ja muistijakson loppuosa on käytet­

tävä tiedon takaisinkinjoitukseen.

Tukimuistin käyttö suunniteltiin ohjelmointimielessä tapah­

tuvaksi sivujakoperiaatteella. Sivunvaihdon käynnistäisi keskusyksikön automaattisessa o soit teenra ja tarkas tukse s sa

todettu ohjelmalle varatun ydinmuistialueen ylitys tai ali­

tus. Rajatarkastus suoritettaisiin kaikkien muistijaksojen yhteydessä. Keskusyksikön toiminta suunniteltiin pysäytet­

täväksi tukimuistin ja ydinmuistin väliseen tiedonsiirtoon jälkimmäisen osalta kuluviksi ajaksi. Menetelmää kutsutaan cycle-s tealing-periaat teeksi.

Automaattisesta osoitteiden rajatarkastuksesta todettiin ole­

van hyötyä myös ohjelmien testausvaiheessa. Se mahdollistaa Time-Sharing-testauksen samanaikaisesti prosessiohjauksen kanssa, jos keskusyksikköön sisällytetään vielä tiettyjen käskyjen kieltomahdo1lisuus ja prosessin kannalta tärkeiden muistialueiden kirjoitussuojaus. Kiellettäviä käskyjä ovat ne, jotka voivat sekoittaa käyttöjärjestelmän toiminnan tai tulostaa liitännän kautta esim. prosessiohjauksia. Muistialu­

eesta on suojattava muuttumiselta useiden ohjelmien käytössä olevat yhteiset tiedostot.

Nopeaan ja helposti laajennettavaan keskeytysjärjestelmään todettiin päästävän erityisen keskeytysyksikön avulla, joka automaattisesti vertaa uusien keskeytyspyyntöjen ja menossa olevan ohjelman prioriteetit ja vain tarvittaessa antaa kes­

kusyksikölle keskeytyspyynnön sekä ilmoittaa pyytävän langan numeron.

(29)

16

Käyttöjärjestelmän tehokas ja helppo käyttö apuna ohjelmoin­

nissa sekä edellä mainittujen automaattisesti havaittavien virhetilanteiden käsittely edellyttivät keskusyksikön sisäi­

sen keskeytystyypin liittämistä tietokoneen spesifikaatioi­

hin. Tämän ns. monitorkeskeytyksen avulla olisi mahdollista siirtyä käyttöjärjestelmäohjelmiin ilman ohjelmoituja para­

metrien siirtoja, ja siirtyminen takaisin suoritettavaan oh­

jelmaan eli ns. monitorpaluu voisi tapahtua täysin samaan tilaan kuin mistä monitorkeskeytys aloitettiin.

Kaikille ohjelmille haluttiin oikeus käyttää monitorpalveluk­

sia, mutta niiden ei haluttu nostavan kyseisen ohjelman pri­

oriteettia. Tähän päästään, kun talletustilat tehdään osit­

tain kaksinkertaisiksi. Toista osaa käytetään monitorkeskey- tyksissä ja toista ulkoisten keskeytysten yhteydessä. Lisäk­

si keskusyksikön tilan osatekijäksi tulee ollaanko monitor- tilassa. Tämä tieto on talletettava ulkoisen keskeytyksen yh­

teydessä .

Suurta tarkkuutta vaativien tehtävien ohjelmoinnin helpotta­

miseksi ja suoritusnopeuden lisäämiseksi haluttiin mahdolli­

suus suorittaa suurin osa operaatioista myös kahden sanan mittaisilla operandeilla. Aritmeettisissa tehtävissä hyödyl­

listen liukuvan pilkun esitysmuo tois ten käskyjen käyttö suun­

niteltiin tapahtuvaksi keskusyksikön lisälaitteessa, joka nimettiin sivuaritmetiikkalai11eeks i.

Muistitilan säästämiseksi, esim. alfanumeerista tekstiä tal­

letettaessa, haluttiin keskusyksikön suoriutuvan puolen sanan mittaisista operandeista.

Tietokoneeseen liitettävien syöttö- ja tulostuslaitteiden maksimimäärä haluttiin suureksi ja uusien i/O-laitteiden liit

täminen tapahtuvaksi ilman periaatteellisia muutoksia käyttö­

järjestelmässä .

(30)

17

Toiminnallisten tavoitteiden lisäksi pyrittiin rakenteen luotettavuuteen, häiriöttömyyteen ja periaatteelliseen sel- väpiirteisyyteen, joka helpottaisi laitteen testausta# Sekä kortti- että komponen11itaso 1la pyrittiin standardiosiin , jotta valmistus ja varaosahuolto saataisiin halvemmaksi.

2. Toteutetut toiminnat /13. 1*+. 15/

A. Sananpituus_ja_käsittelytapa

Keskusyksikön sananpituudeksi valittiin 18 bittiä, joitten siirto ja käsittely tapahtuu rinnakkaismuodossa. Jos sana tulkitaan kiinteän pisteen luvuksi, sen lukualue on

- I3IO72 — X — + I3IO7I ja vähiten merkitsevän bitin it­

seisarvo on + 1. Luvut esitetään 2-komplementtimuodossa.

Luvut voivat esiintyä muistissa ja rekistereissä myös kah­

den sanan mittaisina, jolloin esitystapa on joko kiinteän pisteen 2-komplementtimuoto tai liukuvan pilkun esitysmuoto Muistissa voidaan säilyttää myös puolen sanan (= 9 bittiä) mittaisia lukuja (ks. kuva IV 2.А.1. Lukujen esitysmuoto).

Käskyn pituus on yksi sana, ellei siihen liity epäsuoraa tai itseisarvoltaan niin suurta osoitetta, ettei sitä voida esittää ensimmäisessä käskysanassa. Tällöin käskyn pituus voi olla 2 tai 3 sanaa.

B. Keskeytysjärjestelmä

Keskeytyspyyntöjen käsittely toteutettiin keskusyksikön ja prosessiliitännän väliin sijoitettavan keskeytysyksikön avulla. Se on käytännössä rajattomasti laajennettavissa ja suorittaa automaattisesti uusien keskeytyspyyntöjen ja me­

nossa olevan ohjelman prioriteettien vertailun. Vaikka pyyn

(31)

Osoite Sana

Bittien numerointi

0 1 2 .5^5 678 9 10 11 12 13 lt 15 16 17

i: LM --- —--- 1 sanan kiint.pisteen luku 2-kompl.muodossa

J:

J+l:

k:

k+1 :

1:

0 17

__________________________

C

--- --- - LM ---

2 sanan kiint. pisteen luku 2-kompl. muodossa

0 ____ 10 17

1 1 ---

3-1

EM

--- -

11

LM 1

Liukuvan pisteen luku. Montissa 28 bittiä 2-kompl.

muodossa. Eksponentti 8 bittiä karakteristikarnuodossa.

9__________________17

lm! ^

Tavu 0 2-komplementtimuodossa

0 8

LM

Tavu 1 2-komplementtImuodossa (Tavu 0:n ohjelmoitu osoite on pienempi kuin Tavu 1:n, Jos tavut ovat samassa sanassa).

Merkinnät: -► = bittien merkitys vähenee

LM = luvun (mantissan) merkki, 1 Д negat.

EM = eksponentin merkki, 0 A negat.

Kuva IV 2.A.1 Lukujen esitysmuodot

(32)

19

töä ei heti hyväksyttäisikään, keskeytysyksikkö ei unohda niitä, koska kutakin keskeytyspyyntölankaa kohti yksikössä on flipflop, joka asettuu pyynnön vaikutuksesta ja nollau­

tuu ainoastaan pyydetyssä ohjelmassa suoritettavan käskyn LOPETA OHJELMA seurauksena. Kun keskeytysyksikkö antaa kes­

key ty s ilmoituksen keskusyksikölle, joko prioriteetiltaan ylemmän ulkoisen pyynnön tai keskusyksikössä suoritetun oh­

je lman lope tuskäskyn vaikutuksesta, sen on myös ilmaistava jotenkin aloitettavan tai uudestaan jatkettavan ohjelman nimi. Tämä tapahtuu keskeytysosoitteen (= KOS) avulla, joka

on sama kuin pyytävän langan numero binäärimuodossa ja jon­

ka avulla keskusyksikkö hakee kyseisen ohjelman talletusti­

lan alkuosoitteen ydinmuistista.

Keskeytystoiminta alkaa keskeytettävän ohjelman tilan tallet­

tamisella. Se tapahtuu automaattisesti samaan talletustilaan, mistä ohjelman alkutila ladattiin keskusyksikköön. Keskeytys-

talletuksen jälkeen ladataan uuden ohjelman tila vastaavasti sen talletustilasta automaattisesti. Nämä toiminnat tapahtu­

vat ilman käyttöjärjestelmän käskyjä ja myötävaikutusta.

Talletuksen alkuosoite saadaan rekisteristä BB, jonne edel­

lisen keskeytyksen yhteydessä asetettiin latauksen loppuosoi- te. Latauksen alkuosoite saadaan epäsuorasti KOS:n avulla :

(IV 2.В.1.)

missä MARKL alku mu is tiosoiterekisteri keskeytysla- tauksen alussa

keskeytysosoit teen osoittaman muisti paikan sisältö

Keskeytystalletuksen aikana käytettävä osoite pienenee jokai­

sen ta 1letusvaiheen jälkeen + lsllä ja latauksen aikana vas­

taavasti kasvaa joka kierroksella + l:llä.

(33)

(-vanha ohjelma)

MONP ?

talletus valmis ?

lataus valmis ?

(-uusi ohjelma ) LOPPU

Kesk. pyyntö

MAR: = [BB]

MAR: = KOS ALKU

[MAR] + 8 lataa rek

[MAR] 4- 1 talleta rek

Kuva IV 2.B.2 Keskeytystolmlnnat

(34)

21

Ulkoinen keskeytyspyyntö voidaan antaa myös ohjelmallisesti tulostuskäskynä keskeytysyksikölle. Lisäksi voidaan käskyl­

lä peittää keskeytysyksikön nimetyt priori teet ti tasot tai aiheuttaa keskusyksikön siirtyminen samalla prioriteettita- sol la ohjelmasta toiseen. Keskeytyspyynnöt voidaan peittää myös keskusyksikön keskeytyskieltoflipflopin avulla.

Keskeytys toiminta on esitetty kulkukaaviona kuvassa XV 2.B.2, josta näkyy myös monitortilan ja normaalitilan () vai­

kutus talletustilan osoitteenmuodostukseen. Moni tortilakasi- tettä selvitetään lähemmin kohdassa XV 2.1.

Keskeytystä lietus ja lataus voidaan tehdä täydellisenä tai osittain. Tästä lähemmin kohdassa IV 2.D.

(35)

22

C. Osoitelaskenta

Käskyihin liitetyt suhteelliset osoitteet (kohta IV 1.) on käskyä suoritettaessa muunnettava absoluuttisiksi. Tähän

tarkoitukseen on keskusyksikössä käytettävissä 5 kantare- kisteriä eli BR:ää (base register). Jonkun kantarekis terin

tai ohjelma laskimen IC (instruction counter) sisällön li­

sääminen ohjelmoituun osoitteeseen aiheuttaa absoluuttiosoit- teen, joka viittaa ohjelmoitsijan tarkoittamaan muistitie­

toon. Kantarekis terien lukumäärä ilmaisee kuinka moneen loh­

koon yksityinen ohjelma voidaan jakaa ilman, että menetetään käskyjen osoitu smahdollisuutta mihinkään lohkoon. Ohjelmoin- titeknisesti on mahdollista käyttää useampiakin lohkoja, mutta tällöin joudutaan ohjelmaa ajettaessa turvautumaan käyttöjärjestelmän ns. linkkausohjelmaan, joka vaihtaa halu­

tun kantarekisterin sisällön.

Osoitteiden tarkistusta varten keskusyksikköön rakennettiin 5 yläraja- ja 5 alarajarekisteriä, eli UR:t (upper limit register) ja LR :t (lower limit register). Tarkastukseen käy­

tetään niitä UR :ää ja LR:ää, jotka vastaavat osoilelaskennas- sa käytettyä BR:ää. Esimerkiksi, jos osoite laskennassa käy­

tetään BR 3:a, ylärajatarkastus tehdään UR 3:n avulla ja alaraja tarkastus LR 3 :n• Jos osoitelaskennassa ei ole käy­

tetty mitään BR:ää, käytetään rajatarkastukseen sen lohkon rajarekisterejä, mihin IC on kytketty, eli missä suoritet­

tavat käskyt sijaitsevat. IC:n kytkentä tapahtuu jokaisen hyväksytyn hyppykäskyn yhteydessä ja sen taltioimiseksi ra­

kennettiin keskusyksikköön 3 bitin rekisteri IKR.

Käyttöjärjestelmän tarpeita varten sisällytettiin keskusyk­

sikköön myös absoluuttiosoitteiden käyttömahdollisuus. Jos käskyn osoite määritellään absoluuttiseksi, siihen ei lisätä minkään BR:n sisältöä, eikä lopullisen osoitteen oikeutusta

tarkasteta rajarekisterien avulla.

(36)

23

Dynaamista osoitteiden indeksointia varten liitettiin ne 1 jään lohkoon myös indeksirekisteri (XR = index register), jonka sisältö osoitetapamäärittelyn niin edellyttäessä li­

sätään BR: n ja suhteellisen osoitteen summaan. Syitä siihen, että yksi lohko jätettiin ilman indeksirekis teriä on kaksi:

Konekielisten indeksirekistereihin kohdistuvien käsky­

jen koodaus on helpompaa, kun rekisterejä on vain nel­

jä (= 2:n potenssi).

Suoritettavan ohjelmakoodin on aina oltava kytkettynä johonkin BR: ään, joten erillisiä datatiedostoja voidaan pitää yhtäaikaa vain neljässä lohkossa. Indeksoiduista osoitteista saadaan hyötyä lähinnä datatietojen käsit­

telyssä, joten kytkemällä ohjelmakoodi vaillinaiseen lohkoon (= BR 0 : n lohkoon) ei indeksirekisterin puut­

teesta koidu sanottavaa haittaa.

Ohjelmalohkon käsittelyyn voidaan käyttää myös useampia in- deksirekistereitä. Tällöin asetetaan XR:iä vastaavat BR:t, LR: t ja UR :t osoittamaan kaikki samaan lohkoon. Havaitaan, että keskusyksikön lohkomekanismi ja ohjelmoitsijan suorit­

tama ohjelman lohkojako ovat läheisesti toisiinsa liittyviä asioita, mutta niiden välinen yhteys on silti dynaaminen.

Taulukossa IV 2.С.1. on esitetty keskusyksikön ja mnemoniseri ohjelman lohkoraken teiden vertailua.

(37)

24

Lohkot ohjelmassa Lohkot keskusyksikössä Tarkoitus : jakaa ohjelman suoritta- paikallistaa suhteelli-

miseen tarvittava muisti­

alue niin, että eri tyyp­

piset tiedot ovat eri lohkoissa. Moniohjelmoin- tiympäristössä osa loh­

koista on ohjelmien omia, osa yhteisiä muiden oh­

jelmien kanssa.

sesti osoitettujen Lie­

tojen todellinen sijain­

ti muistissa ja mahdol­

listaa ohjelmalohkojen siirto muistialueelta toiselle.

Lukumäärä : 1 .... N 5

Nimitys : symbolinen kokonaisluku 0-4

Keskinäinen ohjelman lohkolla voi oi- keskusyksikön lohkorekis- identiteetti: la käytössään 0-5 keskus­

yksikön lohkoa.

terit voivat kukin vii­

tata ilman linkkausmuu- toksia vain yhteen oh- jelmalohkoon.

Identiteetin ohjelmoitsijan pidettävä tapahtuu asettamalla vaihto : mielessään ohjelmalohko-

jen ja keskusyksikön loh­

kojen vastaavuus. Vaihto makrokäsky1lä.

BR: ään, LR: ään, UR: ään ja suojaflipflopeihin uudet arvot.

Toiminta il- sallittua vain käyttöjär- tapahtuu absoluuttiosoit man lohkojakoa; jestelmässä. teiden avulla. ^

Lohkon mää- symbolinen nimi, keskus- BR-arvo rit tely: yksiköissä käytettävä ko-

konaislukunimi, suojamää- rittely.

UR-arvo LR-arvo

suojaflipf1opit

Taulukko IV 2.С.1.

Ohjelmien ja keskusyksikön lohkorakenne

(38)

25

Käskyyn ohjelmoinnin tai käännöksen yhteydessä liitettävä osoite voidaan muistitilan säästämiseksi sijoittaa käsky­

sanaan tai, jos se on itseisarvoltaan liian suuri, käskyä seuraavaan sanaan, jolloin keskusyksikkö tulkitsee toteu­

tusvaiheessa käskyn kahden sanan mittaiseksi. Tämän lisäksi osoite voi olla dynaaminen eli käskyssä ilmoitetun laskenta- rekisterin sisältö. Käyttämällä indeksoivaa osoitetapaa, saavutetaan kaksinkertainen dynaamisuus.

Ohjelmoinnin tehostamiseksi keskusyksikköön rakennettiin myös epäsuora osoitelaskentamekanismi, joka on täysin sopu­

soinnussa käytetyn lohkojärjestelmän kanssa. Lopullinen ab- soluuttiosoite saadaan siten, että normaalin osoitelasken­

nan tulokseksi saadusta muistipaikasta haetaan ns. referens- siosoite ja lisätään sen 15 viimeisen bitin muodostamaan lu­

kuun 3 ensimmäisen bitin määrittelemän BR: n sisältö sekä inkremen11i, jonka paikka ilmenee käskysanasta. Summa on lo­

pullinen absoluuttiosoite . Rajoituksena ensimmäisessä osoi­

te la sken tavaiheessa on, että suhteellinen osoite voi olla vain käskysanaa seuraavassa sanassa. Näin vapautuvat suoran

osoituksen tapauksessa osoitteen paikanmäärittelyyn käyte­

tyt bitit inkremen tin määrittelyyn.

Tavuihin ja koko sanoihin kohdistuvat käskyt ovat täysin sa­

manlaisia. Tavumääri11ely tunnistetaan käskyä seuraavan pit­

kän relatiivisen osoitteen О-bitin arvosta "1". Tällöin ta­

vun paikka määräytyy inkrementin viimeisen bitin mukaan, tai ellei inkremen t tiä osoitelaskennassa käytetä, relatiivisen osoitteen viimeisen bitin mukaan. Näitä määrittelybittejä ei lueta kuuluviksi osoitteen itseisarvoon.

Kaikki mahdolliset osoitetapaukset on esitetty kuvassa IV 2.C.2. Siinä näkyvä päätösjärjestys ei ole täysin sama kuin keskusyksikköön rakennetussa logiikassa. Todellisuudes­

sa monet päätökset tehdään aikaisemmin kuin olisi välttämä­

töntä, tai samanaikaisesti kaaviossa edellä esitetyn pää­

töksen kanssa.

(39)

ALKU

osoite käs­

kysanaa

/ ..

epasuo- BR + rel.os

IC+ rel.os

rs^usul te ra osoite

(rel.os BR+XR- ■ rel .os

LOPPU Hae ref

+ tai seur.sanassa

osoite os. paikka

iterissä

reki hae relatii­

vinen osoite Inkre-

mentti + ref.os

/lnkr. \

paikka [1C] - lyhyt

rel .os.

"mikä lohko

seur.sanassa ICj + lyhyt

rel .os. missä

rekiste­

rissä

\ t tm

määritelty määritte- absoluuttinen ref .osoitteessa

rekisteri Sama kuin

-^aanaa haettaessa BR(IC)

mikä BR?

tavun osoite

//'osoî'-x telaskenta"

ч tyyppi /

BR(IC) ab soi

^ onko Inkrement

\ tlä? /

/ -^onko ^

< tavuosoite mikä

lohko BR+XR+re1

tavun

paikka ^tavun

paikka mikä

BR

jaa inkre­

montti 2:11a rel .os.

jaetaan 2:11a lyh.rel.os

/qs .las tyyppi

absoluuttinen IC + rel

Merkinnät + rel.os

IC + rel

Päätös

(mahdollisesti tehty edellä) lohko

BRi +

inkr.t ref / IC : n

kytkentä lohko

LOPPU

edellä tehty päätös

rel. os

LOPPU + XR

+ rel.os Kuva IY.2.C .2. Osoitetavat Ja osoitelaskennan

toteutusvaiheet

osoitelaskenta- toimenpide

(40)

27

D. Laskentarekisterit

Tavanomaisia laskentatehtäviä varten keskusyksikköön sijoi­

tettiin 13 rekisteriä, joista 4 ovat edellämainitut indeksi- rekisterit ja 9 muuta (Rl1 R2 , R3 , R4» R5» Rh» R7» R8» R9) lohkojaosta täysin riippumattomia operandien, suhteellisten osoitteiden tai inkrementtien säilytyspaikkoja. Niistä kuut­

ta (r4-7, R5-8, R6-9) voidaan käyttää kolmena kahdensanan- rekisterinä. Puolen sanan mittaisia operandeja ei voida säi­

lyttää rekistereissä vaan ne muutetaan kokosanoiksi muistis­

ta luettaessa. Muistiin kirjoitettaessa suoritetaan päinvas­

tainen operaatio. Rekistereistä kolmea (Rl, R2, R3) voidaan käyttää syöttö/tulostuskäskyjen operandien välittämiseen, kuutta (Rl, R2, R3, R4, R5. R6) muistipaikan ja rekisterin välisiin aritmeettisiin operaatioihin, ja tosia kuutta (Rl, R2, R3, R7, r8, R9) suhteellisen osoitteen tai inkrementin

talletukseen. Rekisterien välisiin käskyihin sekä lataus- ja talletuskäskyihin voidaan käyttää kaikkia 13 rekisteriä.

Keskeytysten yhteydessä on vaihdettava kaikkien edellämai­

nittujen 28 rekisterin (15 osoiterekisteriä, 13 laskentare- kisteriä) sisältö ja sen lisäksi 7 keskusyksikön apurekiste- rien ja tilaflipflopien arvoja ilmaisevaa sanaa. Tähän ku­

luu aikaa 2 • 35 * 1 « 1 Ps + 1 »2 ps + 2,0 ps = 80,2 ps.

Osa siitä on kuitenkin turhaa, jos ohjelmat voidaan tehdä niin, ettei niissä käytetä kaikkia keskusyksikön rekistere­

jä. Erityisesti l/0-laitteiden ohjaukseen käytettävät tihe­

ään keskeytyvät ohjelmat tehostuivat, kun keskusyksikköön rakennettiin ns. lyhyen talletuksen keskeytys. Koska siihen kuitenkin liittyy ohjelmointivirheistä johtuva vaara ohjel­

mien väliseen vuorovaikutukseen, sen käyttö on mahdollista vain käyttöjärjestelmäohjelmissa. Lyhyen talletuksen keskey­

tyksessä jätetään tallettamatta ja lataamatta 9 osoiterekis­

teriä ja 9 laskentarekisteriä sekä 1 tilasana, joten saavu­

tettava nopeutus on 2 • 19 * 1 » 1 ps = 41,8 ps.

(41)

28

E. Operaatiot /16/

Keskusyksikössä suoritettavat operaatiot voivat kohdistua muistipaikan sisältöön

- muistipaikan ja rekisterin sisältöön yhden rekisterin sisältöön

kahden rekisterin sisältöön

keskusyksikön muihin tilailipflopeihin

Rekisterillä ja muistipaikalla tarkoitetaan tässä operandin säilytyspaikkaa. Jos operandit ovat kahden sanan mittaisia, se muodostuu muistipaikasta tai rekistereistä, jotka on yh­

dessä määritelty käyttökelpoisiksi 36 bitin taile tuspaikka­

na . Nämä rekisterit ovat r4-R7, R5-H8 ja R6-R9• Operandin enemmän merkitsevä pää on rekisterissä r4 , R5 tai Ro, tai muistissa jälkimmäisessä sanassa.

Tavuoperandeja voidaan säilyttää vain muistissa, sillä kes­

kusyksikköön siirrettäessä ne muutetaan täysimittaisiksi sa­

noiksi ja vastaavasti ta 1letusvaiheessa koko sanasta tavuksi.

Keskusyksikön konekieliset käskyt on esitetty liitteessä 1.

Luettelonomaisesti seuraavat käskytyypit ovat mahdollisia : - rekisterin lataus

rekisterin talletus

- yhteenlasku muistista tai rekisteristä vähennyslasku muistista tai rekisteristä kertolasku muistista tai rekisteristä

jakolasku muistista tai rekisteristä hyppykäskyt, ehdoton ja l4 ehdollista

suori tu skäsky

paluuosoitteen talletus muistiin tai rekisteriin aliohjelmahyppy (Save and jump)

- usean rekisterin lataus tai talletus

- käskymuunnos muistista tai rekisteristä saatavalla lu­

vulla (MMOD, BMOD)

muistipaikan nollaus, inkrementointi ja dekremen toin ti älä tee mitään (NOP)

(42)

29

vakion asetus rekisteriin vakion lisäys rekisteriin

rekisterin sivuttaissiirto (4 tapaa)

rekisterien väliset siirtokäskyt, siirron aikana mah­

dollisuus 1- tai 2-komplementin muodostukseen keskeytysosoitteen (KOS) luku rekisteriin apurekisterin siirto rekisteriin

rekisterin siirto apurekisteriin

osoiterekisterien tai BB:n siirto rekisteriin rekisterin siirto osoiterekisteriin tai BB:hen rekisterien sisällön vaihto

AND kahden rekisterin sisällöistä OH kahden rekisterin sisällöistä NAND kahden rekisterin sisällöistä

EXCLUSIVE OR kahden rekisterin sisällöistä tilasana lzn siirto rekisteriin

pulssikäskyt keskusyksikön tilaflipflopien asettamiseksi - hyppyehtoflipflopien asetus tilaflipflopien mukaan

(CND 1 n ja CND 2 n) IN rekisteriin

OUT rekisteristä

THRU rekisterin vanhan sisällön tulostus ja uuden ar­

von luku tulokanavasta

Käskyistä suurin osa voidaan kohdistaa myös kahden sanan mit­

taisiin operandeihin• Liukuvan pilkun aritmetiikkayksikössä, joka on keskusyksikön lisälaite, voidaan toteuttaa:

- yhteenlasku vähennyslasku kertolasku jakolasku

muunnos liukuvan pilkun muotoon - muunnos kiinteän pilkun muotoon

(43)

30

Tarvittavat operandit voivat käskyä aloitettaessa olla muistissa ja rekisterissä, tai molemmat rekistereissä.

Liukuvan pilkun operaatio kestää aina kauemmin kuin kes­

kusyksikön jakso , mutta oikein ohjelmoituna tämä ei hidas­

ta toimintaa, sillä keskusyksikkö odottaa tulosta vain, jos sitä tarvitaan seuraavan käskyn toteuttamiseen.

Miltei kaikki keskusyksikössä suoritettavat käskyt virit­

tävät hyppyehtoina käytettävät ilmaisinrekisterit. Muut edellä luetellut operaatiot on mahdollista suorittaa niin, ettei tulosta oteta talteen , vaan ainoastaan ilmaisimet virittyvät. Sivuaritme tiikkala itteessä suoritettavat ope­

raatiot eivät vaikuta keskusyksikön ilmaisinrekistereihin.

jos liukuvan pilkun tuloksen mukaan halutaan suorittaa

hyppykäsky, hyppyehto voidaan siirtää ohjelmallisesti arit- metiikkala it teen ilmaisimesta keskusyksikköön FF 1 : een tai FF 2 : een .

F. Käskysanan rakenne_ja_tulkinta

Keskusyksikössä tapahtuvaa osoitelaskentaa ja operaatioita ohjaa käskyrekisterin (IR) sisältö ja ajoitusjärjestelmän tila (ks. IV 3.B.).

Käskyn tulkinta voidaan esittää peräkkäisinä loogisina pää­

töksinä, vaikka keskusyksikön kaikki dekoodauspiirit toimi­

vatkin samanaikaisesti ja välittömästi käskyrekislerin ase­

tuksen jälkeen. Taulukossa IV 2.F.I. on esitelty käskysanan rakenne ja kuvassa IV 2.F.2. sen tulkintajärjestys. Kuvasta IV 2.F.3. nähdään osoitetapamäärittelyyn käytettävät koodit ja niiden tulkinta. Tarkempi kuva osoitelaskennan vaihtoeh­

doista on esitetty edellä kohdassa IV 2.C.

(44)

31

Taulukko IV 2.F.I. Käskysanan rakenne

Bitti i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

I Ry i = ryhmä i AK

QsKo i = osoitekoodi ReK

A-koodi

L

I rel.

rekisterikoodi

BK______ i = B-koodi osoiterekisterikoodi BKK_____ i = BR-kood i osoite .

OsKo 0 0 0 0 0 0 0 1 0 0 10 0 0 11 0 10 0 0 10 1

0 110 Olli

10 0 0 10 0 1

10 10

10 11 110 0 110 1 1110

1111

suora osoitus ; pitkä rel. osoite epäsuora osoitus

osoite = IC + posit, lyh. rel. osoite - - = IC + negat. - - - -

= BRI + Xl + posit.lyh.rel.os.

= BR2 + X2 +

= BR3 + X3 +

= BR4 + X4 + rekis terikäsky

_ Il

I/O- tai järjestelykäsky

osoite = BRO + posit.lyh.rel.os.

= BRI +

= BR2 +

= BR3 +

= br4 +

Ryhmä määrittelee operaatiotyyppiä, nimitys binääriarvon mukaan, esim. 011= Ry 3

(45)

32

ReK määrittelee rekisterikäskyn operaa tiotyyppiä, nimi­

tys binääriärvon mukaan esim. 1010= ReK 12 AK Määrittelee rekisterin (eräin poikkeuksin)

0 0 0 0

0001 Rl 0010 R2 0011 R3

0 10 0

0101 r4 0110 R5 Olli R6 1000 Xl 10 0 1 X2 1010 X3 10 11 X4 110 0

110 1 R7

1110 R8

1111 R9

BK

OK

määrittelee (tietyin

määrittelee pitkän rementin paikan

määritelty _ 11 _

11 __

11

11

11 II 11

toisen rekisterin on sama kuin AK: s s a

osoitteen tai ink- 0

Rl :ssä R2: ssa R3: s sa muistissa R7:ssä R8: ssa R9:ssä rekisterikäskyissä

poikkeuksin), koodaus relatiivisen

suure on

0 0 0 0 0 1

0 10 Oli 10 0 10 1 110 111

Viittaukset

LIITTYVÄT TIEDOSTOT

Hoitajien mielestä onnellinen lehmä makaa ja märehtii tyytyväisen ja raukean näköisenä – jopa niin tyytyväisen näköisenä, että hoitajan tekisi mieli vaihtaa lehmän kanssa

Kuvaus tai ainakin osia siit¨a on my¨os useimmiten oh- jelmoitu tietokoneelle niin, ett¨a ilmi¨on kulkua eri ti- lanteissa voidaan tarkastella tietokoneen avulla.. Tieto- kone

Itse asiassa Meinhard ja Potrafke (2012) ovat tulkinneet tämän siten, että molemmat ilmiöt voivat mahdollises- ti esiintyä samanaikaisesti; hallitukset sekä

Jokainen digitaalista ylioppilastutkinnon koetta tekevä kokelas tarvitsee kokeen ajaksi käyttöönsä henkilökohtaisen tietokoneen, jolla hän suorittaa kokeen.. Nämä ohjeet

Pisa-uutisoinnissa minua häiritsi myös se, että hyvin vähän kerrotaan tuloksia sen laajas- ta kyselymateriaalista, joka mielestäni tarjoai- si arvokkaampaa tietoa

Niiden luonne vain on muuttunut: eleet ja kasvottainen puhe ovat vaihtuneet kirjoitukseksi ja ku- viksi sitä mukaa kuin kirjapainotaito on kehittynyt.. Sa- malla ilmaisu on

ennen siirtymistä talouspolitiikan ja erityisesti julkisen talouden tuleviin haasteisiin on syytä hahmotella kuinka suomen talous mahdollises- ti kehittyisi keskipitkällä

Oppaassa olisi ehkä ollut tarkoituksenmukaista edes mainita, että valtakunnassa on vuosikymmenien ajan, esimerkiksi valtakunnan metsien inventoinnissa (VMI 4–9) käy- tetty