1 6. Konekäskyjen suorittaminen TTK-91-suoritin ja väylät rekistereissä olevat tiedot siirtyvät väyliä pitkin rekisteristä toiseen siirtojen ohjauskomennot mikro-ohjelmana tai mikropiireinä suorittimen kellon tahdistamana Suoritettava ohjelma muistissa konekäskyt, globaalit muuttujat, pinon paikalliset muuttujat, keko ohjelman omassa muistialueessa keskusmuistissa
6. Konekäskyjen suorittaminen. TTK-91-suoritin ja väylät rekistereissä olevat tiedot siirtyvät väyliä pitkin rekisteristä toiseen siirtojen ohjauskomennot mikro-ohjelmana tai mikropiireinä suorittimen kellon tahdistamana Suoritettava ohjelma muistissa - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
6. Konekäskyjen suorittaminen
TTK-91-suoritin ja väylät rekistereissä olevat tiedot siirtyvät väyliä pitkin
rekisteristä toiseen siirtojen ohjauskomennot mikro-ohjelmana tai
mikropiireinä suorittimen kellon tahdistamana
Suoritettava ohjelma muistissa konekäskyt, globaalit muuttujat, pinon paikalliset
muuttujat, keko ohjelman omassa muistialueessa keskusmuistissa
TTK-91-tietokone
Muistinhallinta-yksikkö
(myös välimuisti)
Rekisterit
Aritmeettis- looginen yksikkö (ALU)
Ohjausyksikkö
VÄYLÄT
KeskusmuistiCPU
Oheislaitteiden ohjaimet
Ohjelmat + niiden data
Käyttöjärjestelmä
Kirjastorutiinit
TTK-91:n keskusyksikkö
IN1 IN2
OUTALU
MMU
CONTROL UNIT
KESKUS-MUISTI
OHJAIMET
TRIRPCSR
LIMITBASEMARMBR
Rekisterit
R0R1 R2 R3 R4 R5 SP FP
Prosessori (CPU)
väylät
Väy lät
suoritet-tavan ohjelman käskyt konekieli-sinä
4
Käskyn suorituksen vaiheet (TTK-91)
Käskyn nouto käskyn nouto PC:n ilmoittamasta
muistipaikasta käskyrekisteriin PC:n kasvatus yhdellä (=> seuraava käsky)
Käskyn suoritus Käskyn tulkinta (dekoodaus) Osoitelaskenta ja 2. operandin nouto Käskyn varsinainen suoritus Tulosten talletus
Tilarekisterin tutkiminen sekä poikkeusten ja keskeytysten käsittely
5
Nouto- ja suoritussykli
Hae PC:n osoittama käsky
Käskyn suoritus
Aloitus Lopetus
noutosykli suoritussykli
Käskyn suoritus voi muuttaa systeemin tilaa
- muuttaa rekistereiden arvoja
- muuttaa muistipaikkojen arvoja
- muuttaa laitteiden tilaa
6
Suorittimen toiminta on todella näin yksinkertaista
käskyn nouto ja noudetun käskyn suoritus
Suoritin käsittelee vain konekäskyjä eikä tiedä mitään suuremmista kokonaisuuksista kuten ohjelmista!
KESKUS-MUISTI
Prosessori (CPU)
Väy lät
ohjelma:
käsky ’ADD’
MMU
CONTROL UNIT
TRIRPC SR
LIMITBASEMARMBR
sisäiset väylät
rekisterit
ALU
’ADD’ +1
PC’ADD
’
Käskyn nouto
8
Käskyn nouto on aina samanlainen MAR <-- MMU <--MAR <--PC
PC <-- PC +1 ohjausväylä <-- ‘varaa väylä’ osoiteväylä <--- MAR ohjausväylä <-- ‘lataa muistista’ MBR <-- dataväylä <-- MEM[MAR] ohjausväylä <-- ‘vapauta väylä’ IR <-- MBR
Virheellinen muistiosoite => SR:n bitti M <--1
Käskyn nouto
9
Käskyn tulkintakäskykoodin tulkitseminen
käskykoodi määrää jatkossa suoritettavat toimenpiteet
oikeat ohjaussignaalit oikea mikrokoodin pätkä
tuntematon käskykoodi => SR:n U-bitti <--1
toimintojen limitys Käskykoodi OPER Rj M Ri Osoiteosa ADDR 31 2423 2120 19 18 1615 0
10
Osoitteen laskenta
Käskyn 2. operandi määräytyy käskykoodin, ja kenttien M, Ri ja ADDR perusteella.
Ensin suoritetaan aina indeksointi (ellei R0)
jos (Ri<>0), TR <-- ADDR +Ri
muuten TR <-- ADDR
Mahdollinen indeksointi tehdään yhteenlaskuna
yhteenlaskettavat ADDR ja Ri ALU:uun, ohjaussignaaliksi ‘+’ ja tulos TR:ään
11
Suoritetaan tarpeelliset muististanoudot 0, 1 tai 2 M-kentän perusteella
ja tulos (arvo tai osoite) talletetaan TR:ään jos (M=01), TR <-- MEM[TR]
ehdollinen haarautuminen Rj:n sisällön perusteella
suoritetaan ensin rekisterin ja nollan vertailu ALU:ssa
ohjausyksikkö päättää bittien L, E ja G perusteella, saako PC uuden arvon
16
Tuloksen talletus
Tulos siirretään ALU:n ulostulosta johonkin rekisteriin tai muistiin
TTK-91:ssä vain STORE ja PUSH tallettavat muistiin
normaali muistiintalletus
17
STORE
MAR <-- MMU <--MAR <--TR
MBR <-- Rj
ohjausväylä <-- ‘varaa väylä’
osoiteväylä <--- MAR
dataväylä <-- MBR
ohjausväylä <-- ‘talleta muistiin’
ohjausväylä <-- ‘vapauta väylä
18
MMU:n toiminta Ohjelman käyttämät osoitteet ovat välillä
[0, LIMIT-1] (ohjelman omaa osoiteavaruutta)
Suoritusaikana ohjelma on sijoitettu keskusmuistiiin, osoitteisiin [BASE, BASE+LIMIT-1]
MMU tarkistaa, että ohjelma antama muistiosoite VA on välillä [0, LIMIT-1] Jos ei ole, niin aseta SR:n M-bitti.
VA + BASE = PA => MAR
LIMIT on ohjelmalle varatun muistialueen koko!
VA = virtual address PA = physical address
19
Virtuaalimuistin osoitemuunnostapoja
Kanta- ja rajarekisterin avulla TTK-91:n BASE- ja LIMIT-rekisterit, 8086,...
sivuttava muisti virtuaaliavaruus (ohjelman osoiteavaruus) on jaettu
kiinteänkokoisiin sivuihin; fyysinen muisti jaettu samankokoisiin sivukehyksiin
sivutaulut pitävät kirjaa siitä, mitkä sivut ovat missäkin kohtaa muistissa
segmentoiva muisti virtuaaliavaruus on jaettu eri kokoisiin segmentteihin ohjelman rakenteen mukaisesti
Ei käsitellä jatkossa!
20
Sivuttava virtuaalimuisti kaiken tiedon ei tarvitse olla muistissa osa voi sijaita levyllä, josta se
tarvittaessa siirretään muistiin sivunpuutoskeskeytys (page fault) vie paljon
aikaa sivutaulu kertoo, onko levyllä vai
muistissa ja missä muistin sivutilassa melko isoja tauluja, jotka eivät kaikki mahdu
MMU:hun, vaan osa on muistissa tässä nopeuttaa välimuistin kaltainen TLB, joka
sijaitsee MMU:ssa viimeksi käytetyt sivutaulun osat
muistin sivutilat
Ohjelman virtuaaliavaruus
Sivutaulu
...
0
1
2
..
n
01234
..
..
n
4
30
F
FF
F
22
Virtuaalimuistin hyötyjä Ratkaistaan samalla kertaa useita
ongelmia kirjanpito eri ohjelmien muistin käytöstä ohjelman muistialueiden suojaus keskusmuistia suuremman ohjelman suoritus yleinen muistinhallintaongelma
miten paljon muistia eri ohjelmille? missä ohjelmalle annettu muisti sijaitsee?
kiinteä sijainti koko suorituksen ajan yhtenäinen alue, pieniä palasina
miten muistiin viitataan?
23
Virtuaalimuistin ongelmia virtuaaliosoite muutettava fyysiseksi
osoitteeksi usein monimutkainen toimenpide sivutaulut suuria=> keskusmuistissa =>
tarvitaan kaksi muistista noutoa ensin sivutaulu ja sitten vasta data tai käsky TLB auttaa
sivunpuutoksia satuu ja sivunpuutos on ’kallis’ operaatio sivu on haettava levyltä muistiin ennenkuin
ohjelmaa voidaan jatkaa riittävän suuri keskusmuisti