!!#&%')(*%,+ -.!+ /0!21 Stallings, Luku 1 KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-1 354 - /6!#7 8 9;:=<?>?@A<CBD>A<?EF>?>=G 8 9;H=<?>CBI<JBD>?KFE 8 9;:=<?>=:IBILMBI<ONMP<=:SRT>=H=<?EULVLW:SKXB 8 YEFEFZVZ[HSR=LWH 8 \]@?EU<AL6EF^?E_:SZ[PSZW>?E_P `a E_:=LWbc>=bSR?:?:SR a bsefdtefralwp.>?@?ze<a<?efrt>=:szelwpc@a<alwp KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-2 KJ-I S2003 / Auvo Häkkinen 2-1
1 44 +! +&%')(*%'+ -.!+ /0 ` 8 Yb :SKFKF@ <<=P?P.K_PSEULVLW:SE <ALWbSRT>=HIBILVL6G?GSRA<=H 9!#FRP D@A<AL6@?>A<=:SKFK_P CPU ja muisti oheislaitteet 8 &(' 9!TLWPSZ NMbSP?P.K_PSEULVLW:SEU<ALWbSRT>=HIBILWG=<A<=HLWPSZ%DEUL[LWP P=L PSK) :SKF@?RA<=P+* <=b :SK_KF@?>A<=:SKFK_: prosessien hallinta muistinhallinta siirräntäjärjestelmä tiedostojärjestelmä 8 9!.bSRLWHcZV>=:SEFRTK_PSEULVLW:SEU<ALWbSR <?@=bszveulvl6psdteu<alwptbs^*nm:skfdte <ALWbSEU<ALWP KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-3!!#&%')(*%,+ -.!+ /0! 1 -, 3 -. 3/ 3 1=10 KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-4 KJ-I S2003 / Auvo Häkkinen 2-2
+ - - - 44 # Kuva 1.1 Muista tärkeä tilarekisteri PSW! KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-5 + - - - 44 # ks. Tietokoneen Toiminta -kurssi KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-6 KJ-I S2003 / Auvo Häkkinen 2-3
+ - - - 44 # TLB PTR PSW KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-7 + - - - 44 # KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-8 KJ-I S2003 / Auvo Häkkinen 2-4
+ - - - 44 # -! 8 czvb=<=:=< <=bszve käskyjen suoritus 8 e9 :=<?>?@A<[dT@?EU<AL6E tilaa ohjelmille ja niiden datalle (myös KJ on ohjelma!) 8 bs^*nmpsefd:=l >=PSR?P P=L ' Z[b=<=:=< <AbSZVEUL laitteistoa, joka siirtää tietoa muistin ja oheislaitteiden välillä syöttö- ja tulostuslaitteet tallennuslaitteet tietoliikennelaitteet kommunikointi rekistereitä (I/O portteja) käyttäen voivat sisältää omaa muistia (puskureita) 8 HIBDK_H=L tiedonsiirto eri osien välillä KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-9 44 -.! 44 // 44! - 44 #.. \ :SdTbSZ B \ PSR=P!?:Sd:cRAL R?EUL 8 \]@S@ALVLWPSPTbS^*NM:SKFdPSR<?EU<=HSE <=:SRb=<=bSEULVLW:?:cR BABI<?E <=:S>A<?ESdT@?E <AL6E_b=<=bSEULVLW:?:S>A<?E ohjelma käyttää siirtymiä alkunsa suhteen laitteisto käyttää fyysisiä osoitteita 8 \#&% c\ :SdbSZ B'#)(*(SZ[:=<A<+%:*!SEU<ALW:SZ muistiosoitetta varten 8 \-,% c\ :SdbSZ B.,@ :SZ %:*!SEU<ALW:SZ Muistista noudettavan muistipaikan sisältö Muistiin kirjoitettava arvo KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-10 KJ-I S2003 / Auvo Häkkinen 2-5
44 -.! 44 // 44! - 44 #.. 8 9;PSRAL6P CNMP.Z[P NMPSZ[:S>?EU<ALW:SZVE_H.>=HIBILVLWH H NMHSZ N :=<ALW:SKFdH Base Register: ohjelman fyysinen alkuosoite Limit Register: viimeinen kelvollinen fyysinen osoite tai viitattavissa olevan alueen pituus 8 EFZeL6@=PSPSKFEFdT@?EU<ALWE NMHSZ NM:=<ALW:SKFdH :=<?EFd+ PTR, Page Table Register Suoritettavan prosessin sivutaulun fyys. alkuosoite TLB, Translation Lookaside Buffer Viimeisimmissä osoitemuunnoksissa käytettyjä tietoja KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-11 ( - + -.- )( 44 (( + 44 -.!+)( + + 44! 8 ^*NMPS@A< CNMPL6E_K_PSZ[:S>?EU<ALW:SZVEUL! osa vain CPU:n sisäiseen käyttöön osa vain KJ:n käyttöön osa epäsuorasti ohjelmien viitattavissa # hyppykäsky muuttaa PC:n arvoa # vertailu asettaa tilarekisterin # ehdollinen hyppykäsky tutkii tilarekisteriä %'&()*,+ -/./001)* ( 032(+,)* 0(2)0 45 6 7! ohjelmien käytettävissä (myös KJ:n!) viitattavissa nimellä konekielen tasolla datan ja osoitteiden tallettamiseen KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-12 KJ-I S2003 / Auvo Häkkinen 2-6
- *,+.! *)0)#%&'(% 2) +*2-,/.0& /1+# 0( 2(2 seuraavaksi suoritettavan käskyn virtuaaliosoite - *,+. 2(+,)* 0(2)3546'(35# * 02-17 0)8 /#4 (/*)* 0(2)2 suoritettavaksi noudettu käsky 9 ) &8,2( +,)* 0(2)%/:<;='(% 2) +*2-,/.>: 0?, 01 *@;A2-B2 Tietoa laitteiston tilasta ja toiminnan siihen aiheuttamista muutoksista lipukkeet (flags) C vertailujen tuloksille, virhetilanteille C keskeytyksille, keskeytyksien esto / salliminen C etuoikeutettu tila / käyttäjätila KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-13 D D 6FE GH I I 32 bittiä (kunkin arvo 0 tai 1) GEL OZUM IS P D... D = Interrupts Disabled (kesk. esto) P = Privileged mode (etuoik. tila) S = SVC (supervisor call) palvelupyyntö I = device Interrupt (laitekeskeytys) M = forbidden Memory address U = Unknown instruction Z = divide by Zero O = arithmetic Overflow GEL = comparison indicators: Greater, Equal, Less KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-14 KJ-I S2003 / Auvo Häkkinen 2-7
6 6 I 9. 12( +,)* 0(2)0', 0?,4 (+*)* 0(2 * 2 prosessin suoritusaikaisen datan tallettamiseksi käyttötarkoitus ohjelman (ohjelmoijan) tarpeiden ja mieltymysten mukaan *)0(2(+,)* 0(2)0' B/B2( * * 2(+*)* 0(2 * 2 datan ja käskyjen osoitteiden hallintaan voi sisältää esim. osoitteen osan, jota käytetään muistiosoitteen laskennassa Esim: C Indeksirekisteri (index register) C Segmenttirekisteri (segment pointer) C Pino-osoitin (stack pointer) KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-15 @ I FE D D G KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-16 KJ-I S2003 / Auvo Häkkinen 2-8
6 Kuva 1.2 & % noutaa käskyn PC:n osoittamasta paikasta kasvattaa PC:n arvoa noutaa operandit rekistereistä tai muistista suorittaa käskyn yleensä ALU:ssa tallettaa tuloksen rekisteriin tai muistiin KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-17 6 / 6F I Kuva 1.5a Palvelupyyntö antaa kontrollin laiteajurille CPU suorittaa KJ:n koodia Ajuri alustaa ohjaimen sekä antaa tarvittavat käskyt, jolloin siirräntä käynnistyy (4) Ajuri odottaa (pollaa), että siirräntä valmistuu Ajuri tekee lopputoimet, ja palauttaa sovellukselle statustietoa (5) & % +B+ 00(&(,( /1 0(/#! KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-18 KJ-I S2003 / Auvo Häkkinen 2-9
6 :,& & ))/& % #,,). )(/#. 0-+,) +,)* (/# 0?). )#+#+,/# & %!,)# + -/. #+#,)* 0-,- * ) ) 22-/#+#,-/#,!), 0+,+,. 1,)8B,(# + - *,+. (/# *+12)01 * 0?, 1+# *,) ) 2 0?!,&. )* +,)# + ( *,+ (/./00-- & % # & % * ) ) 2 0.. *+12)00,/.,+,#,)# +1+1,&1!,+, +,( *,+ (/./0. *,+ - *,)00(&. - 1+# + - *,)0(& &./00) &8,/# 0(,(# *,) ) 22) /#!,&. )* 01+. )* 0?, +B+ 00?,#+1 0 2- * ( * * )!) -,- * 0-0?,+, * *+12)0( 00,!,,+ *,) KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-19!# %'&)(*,+-*,./&)01-2 3 4/5567698 :;<8>= 5,? @AB;<@ C D 5E8FAGHID JJKBALHIG 5@ 5,: @ M @;1Ë @ @ND : :D : Ë K 5:OÄ 556P;<GHI@ JN5RA S esim. prosessi lukee tietoa oheislaitteelta T U VXW G? G;<;<@ @F;<G 5FD ;7;<G F@:@>EDÄ EDY;ZYAB;<8 [? D @ \]^>G;7;<@ @FÄ KG 675 ;1K EBAD D:NKBAD 5 ;<@>_ 69GADABAD M @ 3 ]K :Y EBÄ 5 G? G;7;<@ @ CBÄ KG 675 ;<@F;<G 5 AB;<@ 3 `X:B;<8 C M GAF_ 69GADABÄ 5D 5;<D DFÄ 5,567698 :B;18 8 a S Ei palvelupyyntöjä, ei keskeytyksiä S Muut prosessit nälkiintyvät 3 b@ 6cH 5 ;<@ @ :NED JJ,G C M G E@>EDÄ EDY;7;<8 8 KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-20 KJ-I S2003 / Auvo Häkkinen 2-10
G M H Kuva 1.7 Start Interrupt Handler!#&%'#%'()*(#+#,-.-./0)1)124357698:)12)1%4/./ );/.-0,<'%4/=#)'</.>&'4>4>'>+#'424<,4,?,>&%@#%(>A>!2)!,!#&%'#%'()*(#3#2!</0),B%'#%'()*(#%@#/0))'-C(4> %@#%() KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-21 D D: EF GH (1.# &)*JILK K#)!(ONON07%*P KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-22 KJ-I S2003 / Auvo Häkkinen 2-11
S :E D D: EF (kuva 1.5b) Palvelupyyntö siirtää kontrollin KJ:n laiteajurille Ajuri alustaa ohjaimen ja antaa siirtokäskyn (4) Kontrolli takaisin sovellukseen CPU voi suorittaa sovelluksen käskyjä samaan aikaan siirron kanssa (2a) Kun siirto valmis, ohjain keskeyttää (x) Kontrolli keskeytyskäsittelylle, josta edelleen ajurille Ajuri tarkastaa miten siirrossa kävi, ja tekee tarvittavat lopputoimet (5) Kun keskeytys käsitelty, sovelluksen suoritus jatkuu (2b) KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-23 D D: EF LE EE DD (Interrupt handler) 3 ]^\:NEG G? 5,@ C M G : E@>J,@ 5 ;7;<D 5 AB;<G>E8Y : : 5 AB;<8 8 Ë DÄ EDY;ZY EBAD : A@;7;1K DABA@ 3 4/D J HI5 ;7;<8 8>Ë DÄ EDY;ZY EBAD : AY Y : 3 ] 8Y : : 5 AB;<8 8F;<G 5FD;;15J,@ :B;1D D :N= G 5 ;<@ N5 ABDEBÄ 5 S Siirtyminen sopivaan käsittelyrutiiniin 3 ] DÄ EDY;ZY :Y;7;<8>_ 69GADABA5,@ HIG 5 ;<@HI@ M @;1EB@ @ Y =D NN5:OÄ 55 ;<8>N5= 5: AD M 8 5 EDÄ EDY;ZY EBAD : A@;7;1K DABA@ CPU:n rekistereiden arvot talletettava muistiin PC, PSW, muut ohjelman käyttämät rekisterit KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-24 KJ-I S2003 / Auvo Häkkinen 2-12
D D: EF LE EE DD ; (kuva 1.10) Kirja s. 21-25 * Etuoikeutettu tila vs. käyttäjätila * Keskeytysten esto vs. salliminen Start Interrupt Handler KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-25 Kuva 1.11 KJ-I S2003 / Auvo Häkkinen 2-13
X -/.10/- 32 PSW:n keskeytykset estetty lipuke! #&%% ' () * *,+ KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-27 4 536 576 98 : Kirjoitin -/.10/- 32 Tietoliikenne ; <>=@?BA5AC3DEBFHG@I3FHG JK?B?JKG*D5L?MBL?NJONPMBLMBG JOJK?B= NSRTBL?MBLP?3DBU RTIM JWV=@?B?LG*G@FH?B?3=@=*G M?BA5EBGBL?MBL?NPJONM Myös keskeytyskäsittely voi keskeytyä! ; YMBG*AZ[G@?PJKI3=@G*G*L?3DBD?BI3\]RTC3G@A?3D5L?MBL?NJONPM5LPMBG JK?B=*=@BBD ^ 3=*G JHJK_3AMJWG@Ù RTIJOJKC MCBCBaBCBC3D5VBVJOJKC JWG@=@CBC MCBC3EBV ^ C3=@=@?aBCJKC3=*=@? KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-28 KJ-I S2003 / Auvo Häkkinen 2-14
7: KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-29 6 KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-30 KJ-I S2003 / Auvo Häkkinen 2-15
& + + + P P P P 6! #% '( ) ) ( * ( sisäisen ja ulkoisen väylän nopeusero,! (!-% *.*/ statustietoa ohjaimen / siirron tilasta siirtokäskyt, osoitteet (lähde/kohde), tavumäärä 0 1 2 43658769((( ' %4(* : * & 4 *(( * & ( ' KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-31 &6 ; & 4( & ((! &, ( =<>#? A@CBDCE*FDCGHH(I*J'K L MON ei keskeytyksiä P R8S(T(UV(W XY Z [(\(U[\]^*^T_Ta`>b?c @CKedfIDDg*hfi JDj kid K LeMONCl ohjain keskeyttää monqpsruttxu^w @Cvwj DCI*x*fzy{IH(ED} ~zx*x*iun ohjain keskeyttää ohjain siirtää suoraan keskusmuistiin Älykäs laiteohjain KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-32 KJ-I S2003 / Auvo Häkkinen 2-16
Ei keskeytystä, CPU tutkii toistuvasti statusrekisteriä (busy waiting, pollaus) Kun siirto valmis, CPU kopioi sanan ohjaimen datarekisteristä muistiin CPU varattuna siirron ajan Vain yksinkertaisissa laitteistoissa Sykli toistettava kunnes kaikki siirretty P Ajurilla iso rooli KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-33 Ohjain keskeyttää, kun siirrettävä sana datarekisterissä CPU siirtää datan muistiin CPU:n ei tarvitse pollata, kun ohjain siirtää laitteelta Sykli toistettava erikseen jokaiselle sanalle Siirto kuormittaa edelleen CPU:ta KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-34 KJ-I S2003 / Auvo Häkkinen 2-17
CPU ohjaimelle: mistä, minne, paljonko, suunta (R / W) Ohjain siirtää laitteen ja muistiin välillä Keskeytys vasta, kun koko data siirretty CPU:ta vain alussa siirron käynnistykseen ja lopussa statuksen tutkimiseen CPU voi suorittaa siirron aikana muita prosesseja KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-35 KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-36 KJ-I S2003 / Auvo Häkkinen 2-18
Tan01 1.14 Pentium 4 cache: 8 KB datalle, 12 KB koodille, ulkoinen 256 KB nano = 10-9, mikro = 10-6, milli = 10-3 KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-37 Pieni, nopea muisti / rekisterijoukko 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-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-38 KJ-I S2003 / Auvo Häkkinen 2-19
@ @ @ @ Kuva 1.18! #%%&('%'*)(+*,%-/.10 02.%3*& 445) 6 --/47*484:9<;<9*-/. 4:-=*7(-+%+ 7 #(' 6 )(>-?;<9%-. 4:-..*7!BA<.*7%7%' 4:-?7%-+*7 6 )(>-;<9*-/. 4:-/. 457! CD.*7%7%' 4:-?7%-+*7 +*&*.%+%9.%;<9%-. 4:-. 457! C<E%EF!BA G 9%'F#*.*9%;F7 45#%%&('%'%H >?)(I*&(>>?)<7%J 6 #%7DA%3 +*&*.%+%-;FH.*7*7(' 4:-/7(-+*7 >?)(I*&(>>?)F!BA%K 45) KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-40 KJ-I S2003 / Auvo Häkkinen 2-20
A A A A A o (locality of references) p Y t (\ YY V(\\ t (\ S(Y t[y tcuvvu RUt Ut V[(Y(UU(Y UV(W X*t^\(^Y Y ^W tu^!v%_y(u^!t U(Y YY4[T(U[%] W V[[(W Y t\(^ ]UU(TW(U(YUU(Y4[(WW ty4[(t]^\^tt ^ ]]1St tu(\u^!t%_y t ^!t\(^*^ ] TVV^*^!V tyy(^!y!# %&('*) ),+-+.& &+/)+-+#0102% ),31+.) 4& ) 5 5 & & 6 573 580(+.& ) 9 &+.& :<; =+/ > ; +-+.73?'2) ),+-+.&&4 )& 3& %& & 4& ) 5 5 & & 9 =+.& )3,7 7 @'2) ) % ),31+.) 4& ) 5 5 ) ) B 3 %&+. 9 > 431+/) 7 7& CD'* &FEG!# 4 ) 7('*7 ) % ),31+/) & KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-41 HJILKNMOIPNRFSTMNRTUWV/X Y,Z/[]\_^a`b^_c_^ad/e_f_g_h i_`b^_c_^ad/eaj k3 5 13 % ),31+/)& ;l!# 4 13 5 C- )9 & & @'102,+.7(m*@'n023 )) C-C<+-+.7@'*7 79 &+.& & ei siis erillinen laitteiston osa =+/)+-+#02) ) =+.&@'2 ) )?'2) ),+.&+-+/ ; '2) ),+.&+.& & 4 )&% 5('*& C-%&31+/) ) ),+.73 C<& &@'2) ) =+.&8'2 ) ) p 3& +-+.&@'*&+q+.&@'21+k )r'*7+s@0*9@0t4 13 5 C-),31+.& ; 3 ) ) Cu+.7 7F p 5 5 & ),3 @'n02 5 @'102,+.7 4 13 5 C-) ) o Ennaltanouto v & ) 5& )w3 13 x KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-42 KJ-I S2003 / Auvo Häkkinen 2-21
U X LRFSOM OS MFSTV A ),+.780*s+#0*7 5 3 5@0@+#083 % 5& ),3 %)w31+.& ) 5+/)+/ 5+. ) %)&) %& 53 5@0@+#02513 )7 A ),+.53 5@0@+#0@3 % 5& ),3 %)1+. ) %) ) A ) 513 ) 53 5@0@+#02513)75& &+-+/& ),3) 4 C-) C-)w3 )9 & A ),+. v 3& & 9 & & =3 C-),+-+.& %& & p +.7(m +.&@'*& ),31+.&4 C<33n3 )& A ),+. v )),+.7573 580!#7=3 C-),+-+/& & A ) 57 ) C<=3 C<& & m B &!#& 473 C-& & m B & A ) 513 ) 3) ) Cu+.!#7 C-5 @'*7 7@'n0@3) ) C-Cu ),313& A ),+.4& ) 5& ),3 1+-+.&('* )9 & & 80*s 9@021+.7 7 KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-43 KJ-I S2003 / Auvo Häkkinen 2-22