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
17678—68/27
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
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
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 7°
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
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
!
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
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
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
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.
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
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ä = 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
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
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
'!
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.
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.
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.
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.
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.
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.
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.
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-
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
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/.
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.
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/.
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
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
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.
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ä .
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
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
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ä.
(-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
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.
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.
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.
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
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.
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 .osoitteessarekisteri 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
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.
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)
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
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.
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
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