Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

2. TTK-91 –tietokone 2.0 Mikä TTK-91? Ja mitä hyötyä siitä on?

Samankaltaiset esitykset


Esitys aiheesta: "2. TTK-91 –tietokone 2.0 Mikä TTK-91? Ja mitä hyötyä siitä on?"— Esityksen transkriptio:

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 01/01/2019 Liisa Marttinen kevät 2005

2 2.0 Miksi TTK.91 ja mihin? 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 01/01/2019 Liisa Marttinen kevät 2005

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

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

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

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

7 2.1 TTK-91-tietokoneen rakenne
Prosessori eli suoritin CPU ohjausyksikkö CU aritmeettislooginen yksikkö ALU muistinhallinta yksikkö MMU rekisterit keskusmuisti muistipaikat 32 bittiä, samoin rekisterit laiteohjaimet väylät 01/01/2019 Liisa Marttinen kevät 2005

8 TTK-91-tietokone Keskusmuisti CPU Muistinhallinta-yksikkö
(myös välimuisti) Ohjelmat + niiden data Käyttöjärjestelmä Kirjastorutiinit Rekisterit Aritmeettis- looginen yksikkö (ALU) Ohjausyksikkö VÄYLÄT Oheislaitteiden ohjaimet

9 TTK-91:n keskusyksikkö Prosessori (CPU) Rekisterit
Väy lät Rekisterit R0 R1 R2 R3 R4 R5 SP FP KESKUS-MUISTI väylät MMU LIMIT BASE MAR MBR CONTROL UNIT TR IR PC SR IN1 IN2 OUT ALU Prosessori (CPU) OHJAIMET

10 TTK-91-rekisterit kahdeksan ohjelmoitavaa yleisrekisteriä
R0 työrekisteri indeksirekisterinä == 0 eli ei indeksointia R1-R5 työ- ja indeksirekistereitä pino-osoitin SP (stack pointer) (R6) ympäristöosoitin FP (frame pointer) (R7) aliohjelmien suorittamisessa kaikki laskenta näiden rekisterien avulla 01/01/2019 Liisa Marttinen kevät 2005

11 Yleisrekisterit 8 ohjelmoitavaa yleisrekisteriä
konekäskyt käyttävät suoraan vain näitä rekisterejä laskennassaan R0 työrekisteri ; ei voi käyttää indeksirekisterinä R1-R5 työ- ja indeksirekistereitä SP on myös pino-osoitinrekisteri FP on myös ympäristöosoitin R6- ja R7-rekistereitä voi käyttää myös indeksi- ja työrekistereinä Rekisterit R0 R R R R R R6 (SP) R7 (FP) LOAD R3, luku

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

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

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

15 D = keskeytykset estetty P = etuoikeutettu tila S = SVC palvelupyyntö
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)

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

17 Ohjelman osoitteet ovat suhteellisia BASE-rekisterin arvoon
Muisti Esim jos BASE = 2000, niin ohjelman osoite 54 viittaa muistiosoiteesseen BASE + 54 = 2054 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

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

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

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

21 Symbolinen konekieli 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

22 Esimerkkejä: viite OPER Rj, M ADDR(Ri) taas ADD R2, @Taulu(R3)
LOAD R4, =100 ohi STORE R1, Tulos JUMP taas Turhat osat voidaan jättää pois 01/01/2019 Liisa Marttinen kevät 2005

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

24 TTK-91: Konekäskyn rakenne
käskyn esitys bittitasolla käskykoodi OPER Rj M Ri osoiteosa ADDR 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 01/01/2019 Liisa Marttinen kevät 2005

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

26 Symbolisen konekielen osoitusmoodit
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 01/01/2019 Liisa Marttinen kevät 2005

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

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

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

30 Suora rekisteriosoitus
Käsky ilmoittaa, missä rekisterissä operandi on M ’LOAD’ 01 00 10 LOAD R1, R2 R1 <= R2 =100 ADD R1, R2 R1 <= R1 + R2 = =200 100 R2: 01/01/2019 Liisa Marttinen kevät 2005

31 Lyhennemerkintöjä LOAD R1, R2 = LOAD R1, =0(R2)
ADD R3, R3 = ADD R3, =0(R3) LOAD = LOAD R1, 0(R2) ADD = ADD R3, 0(R3) ADD R4, (R2) = ADD R4, 0(R2) HUOM! LOAD R1, R3(R2) on virheellinen käskymuoto! 01/01/2019 Liisa Marttinen kevät 2005

32 Epäsuora rekisteriosoitus
Käsky ilmoittaa rekisterin, jossa on operandin osoite ’LOAD’ 01 10 LOAD R1<= MEM[R2]= MEM[100] = 10 ADD R1 <= R1 + MEM[R2] = 10 + MEM[100]=10+10=20 M 100 R2: 100: 10 01/01/2019 Liisa Marttinen kevät 2005

33 Osoitteen indeksointi
osoite (effektiivinen osoite) = käskyn osoiteosa + indeksirekisterin arvo R0 = ei indeksointia 00 R2 100 indeksirekisteri osoiteosa Osoite = R2 = = 120 R2: 20 HUOM! Ensin indeksointi, sitten mahdolliset muistinoudot! 01/01/2019 Liisa Marttinen kevät 2005

34 Miksi indeksointi? taulukoiden (= peräkkäisten muistipaikkojen) käsittely Esim. 100 peräkkäisen muistipaikan summa alkaen paikasta 200 ADD R1, 200 ADD R1, 201 ADD R1, 202 ADD R1, 299 01/01/2019 Liisa Marttinen kevät 2005

35 Peräkkäisten alkioiden summa indeksoinnin avulla
LOAD R1, = R1 <= 0 LOAD R2, = R2 <= 0 Sum ADD R1, 200(R2) R1<= R1+ MEM[200+R2] ADD R2, = R2 <= R2+1 COMP R2, = R2 <= > 100 ? JLES Sum R2 < 100 01/01/2019 Liisa Marttinen kevät 2005

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

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

38 Miten toimivat seuraavat käskyt?
103: 100 LOAD ADD R2, 101 (R3) DIV R2, R3 LOAD R2, =100(R1) LOAD Muisti rekis-terit 01/01/2019 Liisa Marttinen kevät 2005

39 Symbolinen konekieli vs. konekieli
LOAD R2, 22 arvo muistipaikasta 22 2 1 22 ei indeksointia 01/01/2019 Liisa Marttinen kevät 2005

40 Symbolinen konekieli vs. konekieli (jatk)
ADD R1, R4 = ADD R1, =0(R4) arvo rekisterista 17 1 4 indeksointi R4:llä 01/01/2019 Liisa Marttinen kevät 2005

41 Symbolinen konekieli vs. konekieli (jatk)
MUL ensin osoite ja sitten arvo muistista 19 1 2 ’ Taulu’ indeksointi R2:llä 01/01/2019 Liisa Marttinen kevät 2005


Lataa ppt "2. TTK-91 –tietokone 2.0 Mikä TTK-91? Ja mitä hyötyä siitä on?"

Samankaltaiset esitykset


Iklan oleh Google