2 TTK91 tietokone 2 0 Mik TTK91 Ja

  • Slides: 41
Download presentation
2. TTK-91 –tietokone 2. 0 Mikä TTK-91? Ja mitä hyötyä siitä on? 2. 1

2. TTK-91 –tietokone 2. 0 Mikä TTK-91? Ja mitä hyötyä siitä on? 2. 1 Tietokoneen TTK-91 rakenne 2. 2 Käskykanta-arkkitehtuuri 5/25/2021 Liisa Marttinen kevät 2005 1

2. 0 Miksi TTK. 91 ja mihin? n n TTK-91 on opetustarkoitukseen suunniteltu yksinkertainen

2. 0 Miksi TTK. 91 ja mihin? n n TTK-91 on opetustarkoitukseen suunniteltu yksinkertainen ’tyypillinen tietokone’ ohjelma, joka simuloi tämän kuvitteellisen tietokoneen toimintaa voidaan suorittaa (symbolisella) konekielellä kirjoitettua ohjelmia => lisää konkretiaa konekieliseen ohjelmointiin 5/25/2021 Liisa Marttinen kevät 2005 2

Miksi konekieltä? n n n koneen toiminnan ymmärtäminen oman ohjelman toiminnan ymmärtäminen koneenläheinen ohjelmointi

Miksi konekieltä? n n n koneen toiminnan ymmärtäminen oman ohjelman toiminnan ymmärtäminen koneenläheinen ohjelmointi kääntäjän tekeminen n kääntäjä kääntää konekielelle lausekielisen ohjelman tehokkuus n osia ohjelmasta ohjelmoidaan suoraan konekielellä 5/25/2021 Liisa Marttinen kevät 2005 3

Miksi ei oikeaa konekieltä? n oikeat konekielet huomattavasti monimutkaisempia n n vaikeaa valita sopivinta

Miksi ei oikeaa konekieltä? n oikeat konekielet huomattavasti monimutkaisempia n n vaikeaa valita sopivinta n n niiden opetteluun tarvitaan oma kurssi paljon erilaisia konekieliä keskitytään vain opetuksen kannalta oleellisiin asioihin n tarvittaessa oikea konekieli ‘helppo’ oppia 5/25/2021 Liisa Marttinen kevät 2005 4

TTK-91 -koneen simulaattorit n n toimii kuten oikea kone toimisi Titokone n n n

TTK-91 -koneen simulaattorit n n toimii kuten oikea kone toimisi Titokone n n n uudempi Javalla toteutettu ohjelma käsitellään tarkemmin harjoituksissa KOKSI n 5/25/2021 vanhempi versio Liisa Marttinen kevät 2005 5

Tietokone TTK-91 n laitteisto (hardware) n n n käskykanta – konekieliarkkitehtuuri n n n

Tietokone TTK-91 n laitteisto (hardware) n n n käskykanta – konekieliarkkitehtuuri n n n suoritin (central processing unit), muisti, väylät, laiteohjaimet konekäskyt, tiedonesitysmuodot, tietotyypit käyttöliittymä laitteistoon symbolinen konekieli n symboleja => luettavampi 5/25/2021 Liisa Marttinen kevät 2005 6

2. 1 TTK-91 -tietokoneen rakenne n Prosessori eli suoritin CPU n n n keskusmuisti

2. 1 TTK-91 -tietokoneen rakenne n Prosessori eli suoritin CPU n n n keskusmuisti n n n ohjausyksikkö CU aritmeettislooginen yksikkö ALU muistinhallinta yksikkö MMU rekisterit muistipaikat 32 bittiä, samoin rekisterit laiteohjaimet väylät 5/25/2021 Liisa Marttinen kevät 2005 7

TTK-91 -tietokone CPU Rekisterit Aritmeettislooginen yksikkö (ALU) Keskusmuisti Muistinhallintayksikkö (myös välimuisti) Ohjausyksikkö Käyttöjärjestelmä Kirjastorutiinit

TTK-91 -tietokone CPU Rekisterit Aritmeettislooginen yksikkö (ALU) Keskusmuisti Muistinhallintayksikkö (myös välimuisti) Ohjausyksikkö Käyttöjärjestelmä Kirjastorutiinit Ohjelmat + niiden data VÄYLÄT 5/25/2021 Oheislaitteiden ohjaimet Liisa Marttinen kevät 2005 8

TTK-91: n keskusyksikkö Rekisterit väylät V ä y lä t MMU LIMIT BASE MAR

TTK-91: n keskusyksikkö Rekisterit väylät V ä y lä t MMU LIMIT BASE MAR MBR R 0 R 1 R 2 R 3 R 4 R 5 SP FP KESKUSMUISTI CONTROL UNIT TR IR PC SR IN 1 IN 2 ALU OUT Prosessori (CPU) OHJAIMET 5/25/2021 Liisa Marttinen kevät 2005 9

TTK-91 -rekisterit n kahdeksan ohjelmoitavaa yleisrekisteriä n R 0 työrekisteri n n R 1

TTK-91 -rekisterit n kahdeksan ohjelmoitavaa yleisrekisteriä n R 0 työrekisteri n n R 1 -R 5 työ- ja indeksirekistereitä pino-osoitin SP (stack pointer) (R 6) ympäristöosoitin FP (frame pointer) (R 7) n n indeksirekisterinä == 0 eli ei indeksointia aliohjelmien suorittamisessa kaikki laskenta näiden rekisterien avulla 5/25/2021 Liisa Marttinen kevät 2005 10

Yleisrekisterit 8 ohjelmoitavaa yleisrekisteriä Rekisterit R 0 R 1 R 2 R 3 R

Yleisrekisterit 8 ohjelmoitavaa yleisrekisteriä Rekisterit R 0 R 1 R 2 R 3 R 4 R 5 R 6 (SP) R 7 (FP) konekäskyt käyttävät suoraan vain näitä rekisterejä laskennassaan R 0 työrekisteri ; ei voi käyttää indeksirekisterinä R 1 -R 5 työ- ja indeksirekistereitä SP on myös pino-osoitinrekisteri FP on myös ympäristöosoitin LOAD R 3, luku 5/25/2021 R 6 - ja R 7 -rekistereitä voi käyttää myös indeksi- ja työrekistereinä Liisa Marttinen kevät 2005 11

TTK-91: Ohjausyksikkö (CU) n Ohjausyksikön rekisterit n käskyosoitin PC (program counter) n n käskyrekisteri

TTK-91: Ohjausyksikkö (CU) n Ohjausyksikön rekisterit n käskyosoitin PC (program counter) n n käskyrekisteri IR (instruction register) n n suoritettava konekäsky apurekisteri TR (temporary register) n n seuraavan konekäskyn osoite ohjelman alun suhteen mm. osoitelaskennassa tilarekisteri SR (state register) n n n vertailun tulokset: G, E, L poikeustilanteet keskeytykset 5/25/2021 Liisa Marttinen kevät 2005 12

Tilarekisteri SR n mitä suorittimella tapahtui edellisen käskyn suorituksessa n n mitä systeemissä on

Tilarekisteri SR n mitä suorittimella tapahtui edellisen käskyn suorituksessa n n mitä systeemissä on viime aikoina tapahtunut n n virhetilanteet, poikkeukset vertailun tulos käyttöjärjestelmän palvelupyyntö laitteiden antamat signaalit, joita ei ole vielä käsitelty mitä suoritin saa tehdä n n etuoikeutetut / suoritustilan käskyt poikkeukset sallittu / kielletty 5/25/2021 Liisa Marttinen kevät 2005 13

Tilarekisteri RS (jatkuu) n poikkeustilanteet n n n keskeytys n n n O ALU:

Tilarekisteri RS (jatkuu) n poikkeustilanteet n n n keskeytys n n n O ALU: ssa yli-tai alivuoto Z nollallajako ALU: ssa U tuntematon käsky M viittaus kielletylle muistialueelle I laiteohjaimen aiheuttama keskeytys S ohjelman palvelupyyntö SVC-käskyllä toimintatila n n P etuoikeutettu tila = suorituksessa käyttöjärjestelmä D keskeytykset estetty käyttöjärjestelmä suoritttamassa ns. kriittistä toimintoa 5/25/2021 Liisa Marttinen kevät 2005 14

Tilarekisteri SR 32 bittiä (arvo 0 tai 1) , joista käytössä 11 bittiä G

Tilarekisteri SR 32 bittiä (arvo 0 tai 1) , joista käytössä 11 bittiä G E L O Z U M I S P D ? ? ? ? ? . . . ? ? D = keskeytykset estetty P = etuoikeutettu tila S = SVC palvelupyyntö I = laitekeskeytys M = epäkelpo muistiviittaus U = epäkelpo operaatiokoodi Z = nollalla jako (divide by zero) O = aritmeettinen ylivuoto (arithm. overfl. ) GEL = vertailu tulos: Greater, Equal, Less) 5/25/2021 Liisa Marttinen kevät 2005 15

TTK-91 Muistinhallintayksikkö n muistiinviittausrekisterit n MAR muistiosoiterekisteri n n muistiosoite MBR muistipuskurirekisteri n n

TTK-91 Muistinhallintayksikkö n muistiinviittausrekisterit n MAR muistiosoiterekisteri n n muistiosoite MBR muistipuskurirekisteri n n (memory address reg. ) (memory buffer reg. ) sisältää muistista luetun / muistiin kirjoitettavan arvon BASE = muistialueen (segmentin) alkuosoite LIMIT = muistialueen (segmentin) koko välimuisti 5/25/2021 Liisa Marttinen kevät 2005 16

Muisti 0 BASE 2000 Ohjelman muistialue LIMIT Ohjelman osoitteet ovat suhteellisia BASE-rekisterin arvoon Käyttöjärjestelmä

Muisti 0 BASE 2000 Ohjelman muistialue LIMIT Ohjelman osoitteet ovat suhteellisia BASE-rekisterin arvoon Käyttöjärjestelmä asettaa BASE- ja LIMIT- rekisterit ja valvoo, että ohjelma viittaa vain omalle muistialueelleen n 5/25/2021 Esim. jos BASE = 2000, niin ohjelman osoite 54 viittaa muistiosoiteesseen BASE + 54 = 2054 Liisa Marttinen kevät 2005 17

2. 2 TTK-91: käskykanta n n Tietotyypit Konekäskyjen tyypit ja konekäskyn rakenne n n

2. 2 TTK-91: käskykanta n n Tietotyypit Konekäskyjen tyypit ja konekäskyn rakenne n n muistin osoitustavat n n mitä erilaisia käskytyyppejä käskyn koko eli bittien määrä mitä eri bitit tarkoittavat konekielessä ja symbolisessa konekielessä operaatiot ja pseudo-operaatiot 5/25/2021 Liisa Marttinen kevät 2005 18

TTK-91: tietotyypit n 32 -bittinen kokonaisluku n n noin 10 -numeroinen desimaaliluku EI ole

TTK-91: tietotyypit n 32 -bittinen kokonaisluku n n noin 10 -numeroinen desimaaliluku EI ole käytössä n n n 5/25/2021 liukulukuja pitkiä 64 bitin kokonaislukuja merkkejä tai merkkijonoja totuusarvoja. . . Liisa Marttinen kevät 2005 19

TTK-91: käskytyypit n n vain yksi käskytyyppi: aina 32 bittiä jokaisessa käskyssä on 2

TTK-91: käskytyypit n n vain yksi käskytyyppi: aina 32 bittiä jokaisessa käskyssä on 2 operandia n joissakin käskyissä eivät ole käytössä n n n JUMP operandina vain osoite, jonne hypätään NOP ei lainkaan operandeja rekisteriarkkitehtuuri n n 1. operandi aina rekisterissä 2. operandi muistissa, rekisterissä tai konekäskyssä (käskyrekisterissä) n 5/25/2021 haku rekisteristä nopeampaa kuin muistista Liisa Marttinen kevät 2005 20

Symbolinen konekieli n viite OPER Rj, M ADDR(Ri) Ri = indeksirekisteri ADDR = osoiteosa

Symbolinen konekieli n viite OPER Rj, M ADDR(Ri) Ri = indeksirekisteri ADDR = osoiteosa (muistiosoite tai vakio) M = 2. operandin osoitustapa Rj = 1. operandina oleva rekisteri OPER = käskyn symbolinen nimi viite = käskyn (symbolinen) osoite 5/25/2021 Liisa Marttinen kevät 2005 21

Esimerkkejä: viite OPER Rj, M ADDR(Ri) taas ADD R 2, @Taulu(R 3) LOAD R

Esimerkkejä: viite OPER Rj, M ADDR(Ri) taas ADD R 2, @Taulu(R 3) LOAD R 4, =100 ohi STORE R 1, Tulos JUMP taas n Turhat osat voidaan jättää pois 5/25/2021 Liisa Marttinen kevät 2005 22

Symbolinen konekieli vs. konekieli n Suora vastaavuus symbolinen konekieli n n symbolit vastaavat suoraan

Symbolinen konekieli vs. konekieli n Suora vastaavuus symbolinen konekieli n n symbolit vastaavat suoraan konekäskyn osia n n n => yksinkertainen assembler-käännös viite käskyn muistiosoite operaatiokoodi = kullekin koodille oma vakio osoitekenttä (ADDR): vakio tai muistiosoite rekisterit = rekisterinnumero Osoitusmoodin vastaavuus on monimutkaisempi! 5/25/2021 Liisa Marttinen kevät 2005 23

TTK-91: Konekäskyn rakenne käskyn esitys bittitasolla n käskykoodi OPER 31 24 Rj M 21

TTK-91: Konekäskyn rakenne käskyn esitys bittitasolla n käskykoodi OPER 31 24 Rj M 21 19 Ri osoiteosa ADDR 16 15 0 Rj = käskyn ensimmäinen operandi Ri = indeksirekisteri M = muistinoutojen määrä 00 rekisteri tai välitön osoitus 01 suora osoitus 10 epäsuora osoitus 5/25/2021 Liisa Marttinen kevät 2005 24

2. 3 Operandien osoittaminen n TTK-91: n käskyllä on 2 operandia n n n

2. 3 Operandien osoittaminen n TTK-91: n käskyllä on 2 operandia n n n toinen operandi aina rekisterissä toinen muistissa tai rekisterissä Symbolisessa konekielessä on 8 osoitusmoodia n n ohjelmointi helpompaa toteutettu konekielen 3 moodin avulla n n n 5/25/2021 = vakio (M = 00) tyhjä arvo rekisterissä (M = 0) tai muistissa (M = 01) @ epäsuora viite muistiin (M = 10) Liisa Marttinen kevät 2005 25

Symbolisen konekielen osoitusmoodit n n n n suora muistiosoitus suora rekisteriosoitus välitön operandi epäsuora

Symbolisen konekielen osoitusmoodit n n n n suora muistiosoitus suora rekisteriosoitus välitön operandi epäsuora muistiosoitus epäsuora rekisteriosoitus indeksoitu suora muistiosoitus indeksoitu välitön osoitus indeksoitu epäsuora muistiosoitus 5/25/2021 Liisa Marttinen kevät 2005 26

Suora muistiosoitus n käsky ilmoittaa, missä muistipaikassa operandi on ’LOAD’ 01 01 00 100

Suora muistiosoitus n käsky ilmoittaa, missä muistipaikassa operandi on ’LOAD’ 01 01 00 100 muisti: LOAD R 1, 100 R 1 <= MEM[100] = 10 100: 10 10 ADD R 1, 100 R 1 <= R 1 + MEM[100] = 10 +10 =20 5/25/2021 Liisa Marttinen kevät 2005 27

Välitön operandi (=luku) jo suoraan käskyssä ’LOAD’ 01 00 00 100 LOAD R 1,

Välitön operandi (=luku) jo suoraan käskyssä ’LOAD’ 01 00 00 100 LOAD R 1, =100 R 1 <= 100 ADD R 1, =1 R 1 <= R 1 + 1 = 101 5/25/2021 Liisa Marttinen kevät 2005 28

Epäsuora muistiosoitus n Käsky ilmoittaa muistipaikan, jossa on operandin osoite ’LOAD’ 01 10 00

Epäsuora muistiosoitus n Käsky ilmoittaa muistipaikan, jossa on operandin osoite ’LOAD’ 01 10 00 LOAD R 1, @100 R 1 <= MEM[100]] = MEM[200] = 10 ADD R 1, @100 R 1 <= R 1 + MEM[100]] = 10 + MEM[200] = 10+10 =20 5/25/2021 100: 200: 10 Liisa Marttinen kevät 2005 29

Suora rekisteriosoitus n Käsky ilmoittaa, missä rekisterissä M operandi on ’LOAD’ 01 00 10

Suora rekisteriosoitus n Käsky ilmoittaa, missä rekisterissä M operandi on ’LOAD’ 01 00 10 LOAD R 1, R 2 R 1 <= R 2 =100 0 R 2: 100 ADD R 1, R 2 R 1 <= R 1 + R 2 = 100 +100 =200 5/25/2021 Liisa Marttinen kevät 2005 30

Lyhennemerkintöjä n n n LOAD R 1, R 2 = ADD R 3, R

Lyhennemerkintöjä n n n LOAD R 1, R 2 = ADD R 3, R 3 = LOAD R 1, @R 2 = ADD R 3, @R 3 = ADD R 4, (R 2) = LOAD R 1, =0(R 2) ADD R 3, =0(R 3) LOAD R 1, 0(R 2) ADD R 3, 0(R 3) ADD R 4, 0(R 2) HUOM! LOAD R 1, R 3(R 2) on virheellinen käskymuoto! 5/25/2021 Liisa Marttinen kevät 2005 31

Epäsuora rekisteriosoitus n Käsky ilmoittaa rekisterin, jossa on operandin osoite 01 01 10 ’LOAD’

Epäsuora rekisteriosoitus n Käsky ilmoittaa rekisterin, jossa on operandin osoite 01 01 10 ’LOAD’ M LOAD R 1, @R 2 R 1<= MEM[R 2]= MEM[100] = 10 0 R 2: 100: ADD R 1, @R 2 R 1 <= R 1 + MEM[R 2] = 10 + MEM[100]=10+10=20 5/25/2021 Liisa Marttinen kevät 2005 10 32

Osoitteen indeksointi n osoite (effektiivinen osoite) = käskyn osoiteosa + indeksirekisterin arvo n R

Osoitteen indeksointi n osoite (effektiivinen osoite) = käskyn osoiteosa + indeksirekisterin arvo n R 0 = ei indeksointia 00 Osoite = 100 + R 2 = 100 + 20 = 120 R 2 100 indeksirekisteri R 2: osoiteosa 20 HUOM! Ensin indeksointi, sitten mahdolliset muistinoudot! 5/25/2021 Liisa Marttinen kevät 2005 33

Miksi indeksointi? n n taulukoiden (= peräkkäisten muistipaikkojen) käsittely Esim. 100 peräkkäisen muistipaikan summa

Miksi indeksointi? n n taulukoiden (= peräkkäisten muistipaikkojen) käsittely Esim. 100 peräkkäisen muistipaikan summa alkaen paikasta 200 n n n ADD ADD … ADD 5/25/2021 R 1, 200 R 1, 201 R 1, 202 R 1, 299 Liisa Marttinen kevät 2005 34

n Peräkkäisten alkioiden summa indeksoinnin avulla n n n n 5/25/2021 LOAD R 1,

n Peräkkäisten alkioiden summa indeksoinnin avulla n n n n 5/25/2021 LOAD R 1, =0 -- R 1 <= 0 LOAD R 2, =0 -- R 2 <= 0 Sum ADD R 1, 200(R 2) R 1<= R 1+ MEM[200+R 2] ADD R 2, =1 -- R 2 <= R 2+1 COMP R 2, =100 -- R 2 <= > 100 ? JLES Sum -- R 2 < 100 Liisa Marttinen kevät 2005 35

Summaus indeksoinnilla n Peräkkäisten alkioiden summa n n n n indeksirekisteri R 2 100

Summaus indeksoinnilla n Peräkkäisten alkioiden summa n n n n indeksirekisteri R 2 100 : sta 0: aan LOAD R 1, =0 -- R 1 <= 0 LOAD R 2, =100 -- R 2 <= 100 Sum ADD R 1, 199(R 2) R 1<= R 1+ MEM[199+R 2] SUB R 2, =1 -- R 2 <= R 2 -1 JPOS R 2, Sum -- R 2 > 0 R 1<= MEM[299] + MEM[298] + … + MEM[200] 5/25/2021 Liisa Marttinen kevät 2005 36

Indeksoinnin käyttö n Taulukot n taulukon (alku)osoite vakiona n n n pysyy kiinteänä, alkio

Indeksoinnin käyttö n Taulukot n taulukon (alku)osoite vakiona n n n pysyy kiinteänä, alkio muuttuu taulukon indeksirekisterissä Tietueet n n tietueen (alku)osoite indeksirekisterissä vakiona tietueen kentän suhteellinen osoite tietueen sisällä n 5/25/2021 kentän paikka kiinteä, tietue muuttuu Liisa Marttinen kevät 2005 37

Miten toimivat seuraavat käskyt? R 1 = 1 R 2 = 0 R 3

Miten toimivat seuraavat käskyt? R 1 = 1 R 2 = 0 R 3 = 2 rekisterit n n n 100: 101: 102: 103: 101 200 101 100 Muisti LOAD R 2, @100 ADD R 2, 101 (R 3) DIV R 2, R 3 LOAD R 2, =100(R 1) LOAD R 2, @101(R 3) 5/25/2021 Liisa Marttinen kevät 2005 38

Symbolinen konekieli vs. konekieli arvo muistipaikasta 22 LOAD R 2, 22 2 2 1

Symbolinen konekieli vs. konekieli arvo muistipaikasta 22 LOAD R 2, 22 2 2 1 0 22 ei indeksointia 5/25/2021 Liisa Marttinen kevät 2005 39

Symbolinen konekieli vs. konekieli (jatk) arvo rekisterista ADD R 1, R 4 17 1

Symbolinen konekieli vs. konekieli (jatk) arvo rekisterista ADD R 1, R 4 17 1 0 4 0 indeksointi R 4: llä = ADD R 1, =0(R 4) 5/25/2021 Liisa Marttinen kevät 2005 40

Symbolinen konekieli vs. konekieli (jatk) MUL R 1, @Taulu(R 2) 19 ensin osoite ja

Symbolinen konekieli vs. konekieli (jatk) MUL R 1, @Taulu(R 2) 19 ensin osoite ja sitten arvo muistista 1 2 2 ’ Taulu’ indeksointi R 2: llä 5/25/2021 Liisa Marttinen kevät 2005 41