"!"#$# '&( )*&(+, #-+./0 #21 34,.5#- 6 7 8:9:;=<:9?>:;@9:A ;=;CB 6 7 D:9:;:>?9?>:;=E A 6 7 8:9:;C8F>@GH>?9JHKL9@8NMO;CD:9:A GPGQ8NE > 6 RSA A TQTUDNM=GQD 6 VW<=A 9@GPA X=A 8NTUKNTQ;=A K Stallings, Luku 1 Y'Z A 8=GQ[N;C[NMC8=8NM Z [NA \OA MCGQK ;=<=T 9C9:A MO;C8NTUGQKN<:9@GQK KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-1 KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-2 ]] 44 + # ^ _^ `+'&( )*&(+, #-+./0 YOa b c dde c f(dgh g i:jke aulc f(dg 6 Rm[:n@8NE E <@9o9@K=K E KNA GQGQ8NA 9:GQ[NMO;CD:>@GPGQB=BNM@9@D 7 pnq MoK:n:<:9@GP<=;@9@8NE E K CPU ja muisti oheislaitteet 6 s 7 pogqk$t t H[=K=K E KNA GQGQ8NA 9:GQ[NMO;CD:>@GQBF9?9@DOGQKNTHn:A GQGQKFn@K=G KNE n@8ne <=M@9@K=uv9@[Fn@8NE E <=;@9@8NE E 8 posessien hallinta muistinhallinta siiäntäjäjestelmä tiedostojäjestelmä 6w7 po[nmogqd$tq;c8na MOE KNA GQGQ8NA 9:GQ[NM 9:<C[$TQA GQGQKN\OA 9:GQKO[NX*H8NE \OA 9@GQ[NA 9@GQK "!"#$# '&( )*&(+, #-+./0 # 11 2x 3 2y 3wz 3 1C2{ KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-3 KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-4 +,_,L!}_, 44 Kuva 1.1 +,_,L!}_, 44 Muista täkeä tilaekistei PSW! ks. Tietokoneen Toiminta -kussi KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-5 KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-6 KJ- S2003 / Auvo Häkkinen 2-1
+,_,L!}_, 44 +,_,L!}_, 44 TLB PTR PSW KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-7 KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-8 +,_,L!}_, 44 _ ` ^, ## 6 $TU[:9@8F9?9@[NTQA käskyjen suoitus 6 U7 8:9:;=<@9 U\O<=A 9:GPA tilaa ohjelmille ja niiden datalle (myös KJ on ohjelma!) 6 [NX*HKNA \o8=g ;CKNMCK:n@KNG t TU[:9@8:9C9@[NTQA G laitteistoa, joka siitää tietoa muistin ja oheislaitteiden välillä syöttö- ja tulostuslaitteet tallennuslaitteet tietoliikennelaitteet kommunikointi ekisteeitä (/O potteja) käyttäen voivat sisältää omaa muistia (puskueita) 6 SDF>:E D=G tiedonsiito ei osien välillä 44, # 44 `.. 44 ` #!}_, 44 _ _ yy V 8N\o[$T >V KNMCK =8N\o8NMCG M=A G 6 VW<=<=GQGQK=KO[NX*H8NE \oknm'9:a 9@DNA 9@8NMo[:9@[NA GPGQ8=8NM >?>C9:A 9@8N;@9:A=\O<=A 9:GPA [:9@[NA GPGQ8=8N;@9:A ohjelma käyttää siitymiä alkunsa suhteen laitteisto käyttää fyysisiä osoitteita 6 V!=V 8N\o[NTH>"$# #NTU8F9?9$8 NA 9:GQ8NT muistiosoitetta vaten 6 V'&!!=V 8N\o[NTH>&-< 8NT!$8 NA 9:GQ8NT Muistista noudettavan muistipaikan sisältö Muistiin kijoitettava avo KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-9 KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-10 44, # 44 `.. 44 ` #!}_, 44 _ _ yy 6 7 KNMCGQK (vhk TUKvHKNTU8N;=A 9@GQ8$TQA D ;CD:>@GPGQD:n@D HDNT H8:9:GQ8NE \od Base Registe: ohjelman fyysinen alkuosoite Limit Registe: viimeinen kelvollinen fyysinen osoite tai viitattavissa olevan alueen pituus 6 A TUGP<CK=KNE A \O<=A 9@GPA HD$T H8:9@GQ8NE \od) 8:9:A \* PTR, Page Table Registe + Suoitettavan posessin sivutaulun fyys. alkuosoite TLB, Tanslation Lookaside Buffe + Viimeisimmissä osoitemuunnoksissa käytettyjä tietoja,)$^, +,, ^ ) 44 ` ` )N+_ 44, #-+ )N+ 44 # 6 JX*HKN<@9-(vHK GPA E KNTU8N;=A 9@GQ8$TQA G$. /1023 4 056783 983 :;=<>8?@;3 >4 ;8A osa vain CPU:n sisäiseen käyttöön osa vain KJ:n käyttöön osa epäsuoasti ohjelmien viitattavissa hyppykäsky muuttaa PC:n avoa vetailu asettaa tilaekistein ehdollinen hyppykäsky tutkii tilaekisteiä 6 B E 8NA 9:;CD:>@GQGQBNA 9@8=G TU8N;=A 9@GQ8NTQA G$. C1;>4 DEF@;8@ G85>=4 >8?@;3 >4 ;8A ohjelmien käytettävissä (myös KJ:n!) viitattavissa nimellä konekielen tasolla datan ja osoitteiden tallettamiseen KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-11 KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-12 KJ- S2003 / Auvo Häkkinen 2-2
z &&, && ## 44.. )N+_ 44, #-+ )N+ 44 # 6 7 D:9:;:>@[:9@[NA GPA M* = $TU[ NTUKN\ -[N<=M=GQ8NT8 seuaavaksi suoitettavan käskyn vituaaliosoite 6 7 D:9:;:>:TU8N;=A 9@GQ8$TQA UM@9@GPTQ< =GPA [NM)$8 NA 9@GQ8NT8 suoitettavaksi noudettu käsky 6 Z A E KNTU8N;=A 9:GQ8NTQA FR $TU[ NTUKN\ RmGQK=GP<@9 L[NT#= Tietoa laitteiston tilasta ja toiminnan siihen aiheuttamista muutoksista lipukkeet (flags) + vetailujen tuloksille, vihetilanteille + keskeytyksille, keskeytyksien esto / salliminen + etuoikeutettu tila / käyttäjätila x, 44 // + )- 44 ]] 44.. )N+ _ 44, #-+) 44, #- 32 bittiä (kunkin avo 0 tai 1) GEL OZUM S P D... D = nteupts Disabled (kesk. esto) P = Pivileged mode (etuoik. tila) S = SVC (supeviso call) palvelupyyntö = device nteupt (laitekeskeytys) M = fobidden Memoy addess U = Unknown instuction Z = divide by Zeo O = aithmetic Oveflow GEL = compaison indicatos: Geate, Equal, Less KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-13 KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-14 z z.+ 44,_ "!"#$# 44,, 44 )N+ _ 44, #-+ )$+ 44 #- 6 Z >@BNTU8N;=A 9@GQ8NTQA G $KNGQK)$8 NA 9:GQ8NT 9 posessin suoitusaikaisen datan tallettamiseksi käyttötakoitus ohjelman (ohjelmoijan) tapeiden ja mieltymysten mukaan 6 9@[NA GQ8NTU8N;=A 9@GQ8$TQA G $# #NTU8F9?9TU8 NA 9:GQ8NT 9 datan ja käskyjen osoitteiden hallintaan voi sisältää esim. osoitteen osan, jota käytetään muistiosoitteen laskennassa Esim: + ndeksiekistei (index egiste) + Segmenttiekistei (segment pointe) + Pino-osoitin (stack pointe) "!"#$# '&( )*&(+, #-+./0 # 11 2x 3 2x z ] z 3 KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-15 KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-16,_L!",L!}_. 44 6 noutaa käskyn PC:n osoittamasta paikasta 6 kasvattaa PC:n avoa 6 noutaa opeandit ekisteeistä tai muistista 6 suoittaa käskyn yleensä ALU:ssa 6 tallettaa tuloksen ekisteiin tai muistiin Kuva 1.2 z _, 44 ` _ + )=# 44 ` +`,, 44 )$)N ` # Palvelupyyntö antaa kontollin laiteajuille CPU suoittaa KJ:n koodia Ajui alustaa ohjaimen sekä antaa tavittavat käskyt, jolloin siiäntä käynnistyy (4) Ajui odottaa (pollaa), että siiäntä valmistuu Ajui tekee lopputoimet, ja palauttaa sovellukselle statustietoa (5)! #"# #$$'&)( &#&+*-,- ). $'&)/ 021 Kuva 1.5a KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-17 KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-18 KJ- S2003 / Auvo Häkkinen 2-3
] t x u ( ( /,, &)/ $ &)/ $' /#/ / / /#/! $!" ##$)/#/)/!,, $&! +.! "#&)/'2,-&)/. (# $.' $ ).#/ # $'" (, / & & $$!+ / # $*+,. # $$! / ).-! /#.#.#(.'! & & $*+ $'$'&)( ' ).#/ ).- $'&)( ( $ $& ( /#$'&#&)/! ## )/ ( $.! $ #"#)$'$ /#. $ / # &+' /! $+$! 0. # $'&)$'$ 13254 68792 : ;(<>=? @ A>B C>D>B E8;(;(@ F>D>G ##$)/#$H! " $ & " &)( (.'0 /, $&! &)/#/ &)/!#.! /" # $' " ( esim. posessi lukee tietoa oheislaitteelta J! #"# #$$! $' &#$'$' / & & $K+ $ L "#& ).- #$'$!. # $.!' &#&)/+. & $ / # &+ &, ).#/ #"# #$'$! '. (# $ $' $ M / $,- / # &+ &#$'&#&" #&#$)/ $!!N Ei palvelupyyntöjä, ei keskeytyksiä Muut posessit nälkiintyvät O # $! / &)( (,- & & $$! KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-19 KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-20 P Q Q RS6 TT UU VXWZYS[S\8\S[XU UU W W ] Kuva 1.7 Stat nteupt Handle @ B v>w t8ua>e>= w>= <>AKyyZFK? z ^!_S`ba+c+`Sac+d+e d8`f`+gh h i e$e$jk+lnm!ohe$je ai i e$i h gp cai `+e cp$i qbcq+q+cqb`sc+jp$g+g+sg+q0a+s+`sa+dsq0q+_je _+g ^!_S`ba+c+`Sac+d+e d8`+ks`+j+_p$i e$g0a+c+`sa+c+d+e ds`+a+s+`+i e$e$ch dsq ass`+a+d+e KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-21 KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-22 {{ 6S6S ( P}4H np~97 Palvelupyyntö siitää kontollin KJ:n laiteajuille Ajui alustaa ohjaimen ja antaa siitokäskyn (4) Kontolli takaisin sovellukseen CPU voi suoittaa sovelluksen käskyjä samaan aikaan siion kanssa (2a) Kun siito valmis, ohjain keskeyttää (x) Kontolli keskeytyskäsittelylle, josta edelleen ajuille Ajui takastaa miten siiossa kävi, ja tekee tavittavat lopputoimet (5) Kun keskeytys käsitelty, sovelluksen suoitus jatkuu (2b) (kuva 1.5b) P 6> ( n 5RS6 9P (nteupt handle) ).- / # #",- )/! ( $$'& $'H /#/! $! & & $*' &)/" $'$. & + &)( $$!H & & $K' &)/+ / ) /#/! $!+$' &#$$& ( / $'&#&)/ $ &' Siityminen sopivaan käsittelyutiiniin ) & & $* /' $'$ / # &+ $, $&! ' & /" $H! / &,*! & & $* &)/ $'$. &+ CPU:n ekisteeiden avot talletettava muistiin PC, PSW, muut ohjelman käyttämät ekisteit KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-23 KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-24 KJ- S2003 / Auvo Häkkinen 2-4
j P 6> ( n 5R Kija s. 21-25 (kuva 1.10) Kuva 1.11 * Etuoikeutettu tila vs. käyttäjätila * Keskeytysten esto vs. salliminen Stat nteupt Handle KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-25! "#$!>=!=4?!4#$ 9: ";9 * < 9: ";9 * < Kijoitin Tietoliikenne & ' ( )* +, * + - PSW:n keskeytykset estetty lipuke &. / ' 0 ) )1)'2 / 2 34 + & +, )* 5 6. * * 7 * 8 KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-27 @ A'B C>D!D!EF"GH JH K CCLK F"MCONOMCLPOK PNOMQONO K K COB P R QQ"MCONOMCFS R JNTK UOB CC"MO H CCOB B NOC>D!GO>MCONOMCLPOK PN V Myös keskeytyskäsittely voi keskeytyä! @ ] W>NO D!XOY CLK JOB MCFFCJZ[R EO D!CF!MCNOMCLPOK PN!MQN\ K CB B QQF QB K K ^D!QN[K S[R JLK K E!NOEE_EEF"UULK K ETK B EE"NOEEGU ] EB B C"_ELK EOB B C KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-28 àb$b!4cedfdfg "# h ii ist u u =vwdfx ikiklmlonqpmon KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-29 KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-30 KJ- S2003 / Auvo Häkkinen 2-5
j ist u u =vwdfx! "! $# $# sisäisen ja ulkoisen väylän nopeuseo & '( ) * statustietoa ohjaimen / siion tilasta siitokäskyt, osoitteet (lähde/kohde), tavumäää +, -/.1032!!45!! 6 ",!! "! jj "=h "# h 7/ "! "! " &! 8 :9 ;< =><?A@@5BC1D E FHG ei keskeytyksiä!! J!,!,8 :9 D KL B< < MNL O C< PQ4BK D E FHG R ohjain keskeyttää S/TVU ' W9 XAP < BYL5ZHBA@5=< [!\]YYB^^G ohjain keskeyttää ohjain siitää suoaan keskusmuistiin Älykäs laiteohjain KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-31 KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-32 j?=!x ist _a`?=x ist Ei keskeytystä, CPU tutkii toistuvasti statusekisteiä (busy waiting, pollaus) Kun siito valmis, CPU kopioi sanan ohjaimen dataekisteistä muistiin CPU vaattuna siion ajan Vain yksinketaisissa laitteistoissa Sykli toistettava kunnes kaikki siietty Ajuilla iso ooli Ohjain keskeyttää, kun siiettävä sana dataekisteissä CPU siitää datan muistiin CPU:n ei tavitse pollata, kun ohjain siitää laitteelta Sykli toistettava eikseen jokaiselle sanalle b Siito kuomittaa edelleen CPU:ta KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-33 KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-34 cedgf uu "= àb$b!4cedfdfg "# h ii CPU ohjaimelle: mistä, minne, paljonko, suunta (R / W) Ohjain siitää laitteen ja muistiin välillä Keskeytys vasta, kun koko data siietty CPU:ta vain alussa siion käynnistykseen ja lopussa statuksen tutkimiseen b CPU voi suoittaa siion aikana muita posesseja dih i j mi KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-35 KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-36 KJ- S2003 / Auvo Häkkinen 2-6
d d?g4 v>x">x Tan01 1.14 # h?g4 Pentium 4 cache: 8 KB datalle, 12 KB koodille, ulkoinen 256 KB nano = 10-9, miko = 10-6, milli = 10-3 KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-37 Pieni, nopea muisti / ekisteijoukko CPU:n ja keskusmuistin välissä CPU:n osana ja / tai ulkopuolella Laitetasolla, ei näy ohjelmissa / KJ:ssä CPU tutkii ensin löytyykö viitatun fyys. muistipaikan sisältö välimuistista Jos ei löydy, CPU tuo välimuistiin lohkon, joka sisältää myös viitatun muistipaikan KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-38! #"$ & ' (*),+,-/.1032,46567671869,:6; )=<><=)? @BADCFEFGFHFHFJFKFL M N N MPOGPQ Q RPL L Q SPQ Q TVUVTFL M QWL XFSFL JFJS CFHYRFZ L UVTFL M Q L MMS [ A\V@BMSFSFHPQ L SFL JFS RFZ L UVTFL M Q L M Q S [ AD]^@BMSFSFHPQ L SFL JFS JFGPMJFTPMUVTFL M Q L M Q S [ AD]^_F_BA\ [ ` TFHVCPMTFUVSPQ CFEGFHFHFa Z FbFGFZ Z VSFc RCFS^\O JFGPMJFL UVaPMSFSFHPQ L SFL JFS Z FbFGFZ Z YA\d Q Kuva 1.18 KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-40 e e.6;f91.6ffff; ),+,+>) (locality of efeences) g#hwi#j j k lnm#lohwipi#j qnmm#j j k lnm#lpsni#k tni#j j k uqqduv w x uk ypzduk j ypqtniuudi{uqn #}&k ~&m~&ii#l~& #k ud~qd Diu~k udi#yii>tn utd hw #qttn i w ƒ k m~w nuud p udiunudi>tn #k i>tn D~&m#~& #l ~ sk j j k udmu~kd Di#k l~k m#~&~w hw >ypqqn~~qphk i> i~&i# ˆ ql # PhWm#j yi{ k k ~&~&iip~k m~~w lpypqk ud~k sni#k ttnii#l Štn utd {~&i#kn i~&i# Š n #l~lz nm~&~& =udm{ k k ~~&ii>sk i#l udi#yii#l sni#k ttnii#lpqqn m#j j mm#lp~&i#kdudm#lpj # nm#j j #j m k k lpypqk ud~k sni#k ttn #k k l w Œ uqyi#~& m#llz nm#j sn ud~kj # nm#j j pi#}w D i1 ŽhW sk m#lnm#j j { D #j k ypqk ud~k j j i KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-41 26 6912,+>),96+, ; 0 w ˆ mutquypqk ud~k i#j qnm PhW #llnm>sqdutq#}š #k ii#l j m n j ~& { j m n j j m{uk k }}Šm~&~& D p i#~&ii ei siis eillinen laitteiston osa w ˆ ql~k m#~&~w k k l~&i qk k l #l k k ~&i#~&~q k k ~&i~&ii#lpsk i#lpym#j tn { Di#}&yiuD~k lk k ~& =udm#q}šii k k l~&i qk k l w š u{ nim#~&~&i Di~3~&i qn~ m#k D ~3j D {squtq}&k u~&i# uk k }Š~& ˆ š tn #tn #lni#k udm#lpj m n j # tn #lpj m j ~& sqdutq#}&k k l Ennaltanouto w œ i#k tni#j j k uqqdu KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-42 KJ- S2003 / Auvo Häkkinen 2-7
56 #0.6+>),9=< )=< -- < < 9>),;8 w k ~& > D D ~W D p #lptnmutnm D~ uym#tni#lk uypk u~&i B #k tn >~k m~& #tn #lnmp~& #k ypk i>k j yi#lptnmutnm D~W tuk w k ~&m#lptnmutnm D~ uym#tni#lk uypk~& #k ypk k w k tuktnmutnm D~ tduk >tni#llni~~&i#k uks}&k #}&k ud #k i w k ~&m#l œ udii ii#l uqn #}&k ~&~&i#yii#l ˆ š v ~& = ~&i Di#j j k ud~&i>s}š udmuuk i w k ~&m#l œ lk k ~& >tn utd hw =uqn #}&k ~~&ii w k tn p #j mm#j j k lnm#lm }Š p #l uqn #}Ši#j j i Œ v j j i hwi m#sn uqn }Ši#j j i Œ v j j i w k tuk g6uk k }Š~& p #lohw }&tnm D >j m nuk k }&}Š #k uudi k ~&m#lpsni#k tni#j j k uqqn~&~&i= D #k ii#lp D D l~& w KJ- S2043 / Tiina Niklande Auvo Häkkisen kalvojen pohjalta 2-43 KJ- S2003 / Auvo Häkkinen 2-8