Full resolution (JPEG) - On this page / på denna sida - 1962, H. 32 - Datamaskinen Putte, av Gunnar Wedell
<< prev. page << föreg. sida << >> nästa sida >> next page >>
Below is the raw OCR text
from the above scanned image.
Do you see an error? Proofread the page now!
Här nedan syns maskintolkade texten från faksimilbilden ovan.
Ser du något fel? Korrekturläs sidan nu!
This page has been proofread at least once.
(diff)
(history)
Denna sida har korrekturlästs minst en gång.
(skillnad)
(historik)
instruktionernas (mikroprogrammens) verkställande,
ett kontrollregister, som håller reda på det
aktuella läget i programmet, samt anordningar
för automatisk varvräkning och
adressmodifiering (indexregister och indexadderare).
Styrpulsgenereringen är enkel. Den består av
en samling grindar, som styrda av de avkodade
innehållen i ett operationsregister (där den
från minnet uthämtade operationsdelen av en
instruktion placeras) och en räknare (vilken
kontinuerligt tillföres räknepulser under en
instruktion) ombesörjer den tid-rumuppdelning,
som fordras för de olika mikroprogrammen.
Arrangemanget kan knappast sägas vara
ekonomiskt, men den enkla uppbyggnaden medger
lätt ändringar i instruktionslistan, om så skulle
vara påkallat.
Varvräkning
För att slippa den sänkning av den effektiva
räknehastigheten som en varvräkning med
hjälp av räkneenheten innebär, har man
försett Putte med automatiska anordningar för
detta ändamål, indexregister.
Totalt finns visserligen två sådana register
för varvräkning, men användningen av det ena
är förenat med vissa restriktioner, eftersom
detta register även utnyttjas för att hålla reda
på antalet utförda skift vid
skiftinstruktionerna. Därför användes benämningen
indexregister enbart för det register som kan utnyttjas
oinskränkt. Det andra registret kan vi kalla
binärräknaren, ty det har väsentligen samma
funktion som en sådan.
Låt oss anta, att en viss programsekvens skall
genomlöpas n varv. Varvräkningen kan då
utföras med hjälp av indexregistret (eller
binärräknaren) på följande sätt. Innan sekvensens
beräkningar inledes, placeras i indexregistret
heltalet n. De sista momenten för varje varv
som sekvensen genomlöpes får sedan vara:
minska innehållet i indexregistret med en
enhet och hoppa, om innehållet är skilt från noll.
Den aktuella sekvensen kommer med detta
arrangemang att genomlöpas tills innehållet i
indexregistret blir noll, dvs. n varv.
Ofta behöver man räkna varv i flera
programsekvenser samtidigt. En fullt utförd
varvräkning enligt nämnda principer kräver därvid
ett mycket stort antal indexregister. Putte har,
som sagt, endast ett egentligt sådant register,
men en samtidig varvräkning i flera sekvenser
kan ändå utföras utan att räkneenheten behöver
tas i anspråk. Instruktionslistan innehåller
nämligen instruktioner, vars mikroprogram
utför följande moment.
Först uthämtas och insättes i indexregistret
ett tal från den minnescell, som instruktionens
adressdel anger. Därefter minskas detta tal med
en enhet, varefter återläsning till samma
minnescell sker. Med hjälp av en efterföljande
hoppinstruktion är det nu möjligt att pröva,
om det önskade antalet instruktioner utförts
eller icke. Det blir tydligen på sätt och vis
den nämnda minnescellen som kommer att
tjänstgöra som ett slags indexregister, och
antalet "indexregister" i Putte kan därför sägas
vara mycket stort.
Adressmodifiering
Minnet i Putte adresseras icke direkt från en
instruktions adressdel (införd i ett
adressregister), man bildar i stället en "effektiv adress"
i en speciell indexadderare. Denna effektiva
adress består av skillnaden mellan
instruktionens adressdel och innehållet i indexregistret.
Den subtraktion, som tydligen är nödvändig,
sker emellertid icke obetingat; en
förutsättning är att indexmärkningen i instruktionens
operationsdel innehåller en etta, man säger att
instruktion måste vara märkt. Skulle detta icke
vara fallet (instruktionen omärkt), uppfattas
indexregistrets innehåll som noll oberoende av
det verkliga innehållet, i vilket fall den
effektiva adressen givetvis överensstämmer med
instruktionens adressdel.
Liksom vid varvräkning kan det hända, att
adressmodifiering önskas samtidigt i flera
sekvenser, vilket återigen bäst ordnas med flera
indexregister. Puttes ordlängd tillåter
emellertid endast ett sådant, och därför tvingas man
att utnyttja celler i minnet i kombination med
det indexregister som finns, på liknande sätt
som skedde vid varvräkningen.
Det tal, som placerat i indexregistret användes
för att bilda den effektiva adressen vid
automatisk adressmodifiering, kan givetvis
samtidigt användas för varvräkning.
<< prev. page << föreg. sida << >> nästa sida >> next page >>