Luento 2 (verkkoluento 2) Ttk-91 järjestelmä

Samankaltaiset tiedostot
Luento 2 (verkkoluento 2) Ttk-91 järjestelmä

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori. Miksi konekieltä? Tietokone TTK-91. Miksi ei oikeaa konekieltä?

Jakso 2 TTK-91 -tietokone ja sen KOKSI -simulaattori

Jakso 2 TTK-91 -tietokone ja sen KOKSI -simulaattori

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Miksi konekieltä? Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori. Tietokone TTK-91. Miksi ei oikeaa konekieltä?

Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori

Luento 2 TTK-91 tietokone ja sen simulaattori. Miksi konekieltä? Tietokone TTK-91. Miksi ei oikeaa konekieltä? TTK-91 (1) TTK-91 laitteisto

Miksi konekieltä? Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori. Tietokone TTK-91. Miksi ei oikeaa konekieltä? TTK-91: tietotyypit (2)

Miksi konekieltä? Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori. Tietokone TTK-91. Miksi ei oikeaa konekieltä? TTK-91: rekisterit

Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori

Luento 5 (verkkoluento 5) Suoritin ja väylä

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

Luento 5 (verkkoluento 5) Suoritin ja väylä

Luento 3 (verkkoluento 3) Ttk-91 konekielinen ohjelmointi. Ohjelman esitysmuoto Konekielinen ohjelmointi ttk-91:llä (Titokone, TitoTrainer)

1. Keskusyksikön rakenne

Teemun juustokakku Rekisterien, välimuistin, muistin, levymuistin ja magneettinauhan nopeudet suhteutettuna juuston hakuaikaan juustokakkua tehdessä?

Jakso 5 Suoritin ja väylä

Jakso 5 Suoritin ja väylä

Tieto ja sen osoite (3) Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Osoitinmuuttujat. Tieto ja sen osoite (5)

Jakso 5 Suoritin ja väylä. Suorittimen rakenne Väylän rakenne Käskyjen suoritussykli Poikkeukset ja keskeytykset TTK-91:n ja KOKSI:n rakenne

Suoritin. Jakso 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Ttk-91 esimerkkitietokone ja sen simulaattori

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

Luento 5 Suoritin ja väylä

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 suorittimen rakenne (1) TTK-91 muistin rakenne. Käskyjen nouto- ja suoritussykli (5)

Luento 5 Suoritin ja väylä

Luento 5 Suoritin ja väylä

Luento 5 Suoritin ja väylä

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 suorittimen rakenne (1) TTK-91 muistin rakenne

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Aliohjelmien toteutus Suoritin ja väylä

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi

Tietokoneen toiminta, Kevät Copyright Teemu Kerola Järjestelmän eri tasot Laitteiston nopeus

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset

Tiedon sijainti suoritusaikana (3) Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Miten tietoon viitataan? (4)

Kertausluento luennoista 1-3 1

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset

Tiedon sijainti suoritusaikana. Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Tietokoneen toiminta Copyright Teemu Kerola Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio

Luento 4 Aliohjelmien toteutus

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Kertausluento 2 (lu04, lu05, lu06) Aliohjelmien toteutus Suoritin, väylä, tiedon esitys

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Muistihierarkia Kiintolevyt I/O:n toteutus

Tietokoneen toiminta, K Tavoitteet (4)

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Käyttöjärjestelmän rakenne

Järjestelmän ulkoinen muisti I/O

Muistihierarkia Kiintolevyt I/O:n toteutus

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

Käyttöjärjestelmät. Tietokoneen rakenne. Stallings, Luku 1. KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 1-1

Luento 4 Aliohjelmien toteutus

Jakso 4 Aliohjelmien toteutus

Luento 12 Yhteenveto. Tavoitteet. Keskeisiä asioita. Mitä hyötyä tästä on? Esimerkkikone: TTK-91 laitteisto. Tietokoneen toiminta 27.4.

Tietokoneen toiminta Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? Teemu Kerola, Copyright 2003

Tietokonejärjestelmä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja. TITO-kurssista. John von Neumann ja EDVAC, 1949.

Sisältöä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja TITO-kurssista. Tietokonejärjestelmä

ltöä rjestelmä Luento 2: LAITTEISTOSTA Tietokonejärjestelm KESKUSYKSIKKÖ Keskusyksikkö Kuva 1.1 KJ-I S2005 / Tiina Niklander & Auvo Häkkinen 2-1

Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Käskykannat. Tietokoneen rakenne. Ch [Sta06] Operaatioista Operandeista Osoitustavoista Pentium / PowerPC. Luento 7-1

Monipuolinen esimerkki

Luento 7: Käskykannat Tietokoneen rakenne / 2006 / Teemu Kerola 9/25/2006

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Luento 1 Tietokonejärjestelmän rakenne

Jakso 4 Aliohjelmien toteutus

Tietokoneen rakenne Käskysykli CPU suorittaa ohjelmaa konekielinen käsky kerrallaan

Jakso 4 Aliohjelmien toteutus

Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Jakso 4 Aliohjelmien toteutus. Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio

Luento 4 Aliohjelmien toteutus

Luento 4 Aliohjelmien toteutus

Luento 4 Aliohjelmien toteutus. Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio

Luento 2: LAITTEISTOSTA

Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus

Jakso 10 Ohjelman suoritus järjestelmässä

Tulkinta ja emulointi

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

Stallings, Luku 1. KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-2. KJ-I S2003 / Auvo Häkkinen 2-1

Luento 9 Järjestelmän ulkoinen muisti

Jakso 10 Ohjelman suoritus järjestelmässä. Käännös Linkitys Dynaaminen linkitys Lataus

Jakso 10 Ohjelman suoritus järjestelmässä

Luento 10 Käännös, linkitys ja lataus

Luento 10 Käännös, linkitys ja lataus. Käännös Linkitys Dynaaminen linkitys Lataus

Transkriptio:

Luento 2 (verkkoluento 2) Ttk-91 järjestelmä Käskyjen nouto- ja suoritussykli Ttk-91 laitteisto Tiedon sijainti Muistitilan käyttö Ttk-91 konekieli Tiedon osoitus ttk-91:ssä Indeksointi, taulukot, tietueet 1

Suorituksenaikainen suorittimen ja muistin sisältö muisti suoritin konekäskyjen suorituspiirit: suoritettava käsky (välimuisti) kirjastorutiinit Suoritettava ohjelma laiterekisterit käyttöjärjestelmä data väylä 2

TTK-91 suorittimen rakenne regs R0 R1 sisäinen väylä ALU R2 R3 R4 R6 R5 R7 Kontrollisignaalit PC IR CU SR TR MMU muistiväylä BASE LIMIT MAR MBR kontrolliväylä osoiteväylä dataväylä Bus ctl 3 3

TTK-91 konekieli Operaatio 8 bit Rj 3 b M 2 b Ri 3 b Attribuutti (arvo tai osoite) 16 bittiä Kukin käsky 32 bittiä. Oma operaatiokoodi kullakin käskyllä Käskyn rekisterien ja attribuuttien tulkinta riippuu käskystä ja osoitusmuodosta (M) Tietotyyppi: Vain 32-bittinen kokonaisluku (tai vain bittejä) EI: merkkejä, liukulukuja, totuusarvoja 4

Aliohjelmien toteutukseen (ei tavalliseen laskentaan) TTK-91 rekisterit 8 yleisrekisteriä vain näitä rekistereitä voi osoittaa tai lukea/kirjoittaa (suoraan) konekäskyillä kaikki laskenta tapahtuu rekistereiden avulla vain 8 muistipaikkaa varsinaista laskentaa varten R0 työrekisteri indeksirekisterinä == 0 (vakio nolla eli indeksirekisterinä R0:n käyttö tarkoittaa lukua 0 rekisterin R0 sisällön asemesta), eli ei indeksointia R1-R5 työ- ja indeksirekistereitä tyyppi riippuu rekisterin käytöstä konekäskyssä pino-osoitin SP (R6) ympäristöosoitin FP (R7) Stack Pointer Frame Pointer 5

TTK-91 Kontrolliyksikkö (CU) PC - Program Counter, käskyosoitin seuraavaksi suoritettavan konekäskyn osoite IR - Instruction Register, käskyrekisteri suorituksessa oleva konekäsky TR - Temporary Register, apurekisteri tilapäinen talletuspaikka käskyn suoritusaikana SR - State Register, tilarekisteri suorittimen tila ja rajoitukset tällä hetkellä 6

TTK-91 Tilarekisteri SR Tilatietoa siitä, mitä suorittimella tapahtui edellisen käskyn suorituksessa virhetilanteet, poikkeukset, keskeytykset konekäsky olikin käyttöjärjestelmän palvelupyyntö vertailun tulos Tilatietoa siitä, mitä systeemissä tapahtui viime aikoina käsittelemättömät laitteiden antamat signaalit (laitekeskeytykset, device interrupts) Tilatietoa siitä, mitä suoritin saa tehdä jatkossa etuoikeutettu vai tavallinen suoritustila? (kaikki muistialueet ja kaikki käskyt sallittuja) poikkeukset ja keskeytykset sallittuja vai ei? 7

Tilarekisteri SR (9) 32 bittiä (kunkin arvo 0 tai 1) SR: GEL OZUM IS P D???????? D = Interrupts Disabled (kesk. estetty) P = Priviledged 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 8

TTK-91 Muistinhallintayksikkö (MMU) Muistiinviittausrekisterit MAR - Memory Address Register, muistiosoite MBR - Memory Buffer Register, luettava/kirjoitettava arvo suorittimella Ohjelman käytössä oleva muistialue vain tähän alueeseen voi viitata (koodi, data) BASE - muistisegmentin alkuosoite LIMIT - muistisegmentin koko kaikki osoitteet suhteellisia BASE rekisterin arvoon esim. jos BASE=8000, niin ohjelman osoite 34 viittaa muistiosoitteeseen 8034 käyttöjärjestelmä asettaa ja valvoo memory 9

TTK-91 Kanta ja rajarekisterit Virtuaalinen osoiteavaruus Fyysinen osoiteavaruus 0: 23: 511: 512: JUMP 34 LOAD R1,=5 JZER R1, 100 ohjelman (suorittimen) käyttämät osoitteet 23 BASE: LIMIT: MMU < LIMIT? + BASE 1000 512 0: 1000: 1023: 1512: 1048575: JUMP 34 muistipiirien käyttämät osoitteet LOAD R1, =5 JZER R1, 100 10

Tiedon sijainti suoritusaikana Muistissa (=keskusmuistissa) iso hidas data-alueella vai konekäskyssä vakiona? Rekisterissä pieni nopea Esim. 256 MB, tai 64 milj. 32 bitin sanaa Esim. 50-150 ns Esim. 256 B, tai 64 kpl 32 bitin sanaa Esim. 1 ns TTK-91: 8 kpl + PC +... Milloin muuttujan X arvo pidetään muistissa ja milloin rekisterissä? Missä päin muistia? Miten siihen viitataan? Keskustele 11

TTK-91 Nouto- ja suoritussykli vielä vähän tarkemmin Hae käsky PC++ M=2 M>0 pura käsky, laske osoite lue muistista load, add, mul, M=0 pushr kirj. muistiin store push pushr suorita operaatio popr?? tarkista keskeytykset noutosykli Noutosykli suoritussykli Keskustele 12

Muistiinviittaukset TTK-91 operaatiot tavalliset: load & store, aritmetiikan yhteydessä pino-operaatiot (aliohjelmien toteuttamista varten) I/O käskyt Kokonaislukuoperaatiot Loogiset operaatiot totuusarvoille Bittien siirtokäskyt (shift instructions) Kontrollin siirtokäskyt mistä löytyy seuraavaksi suoritettava käsky? (ellei se ole seuraavassa muistipaikassa) Muut käskyt 13

LOAD TTK-91 muistiinviittausoperaatiot käskyä käytetään myös rekistereiden kopiointiin (Move operaatio) STORE tallettaa aina muistiin PUSH, POP, PUSHR, POPR aliohjelmien toteuttamista varten LOAD R1, X käsitellään myöhemmin POP LOAD R5, @ptrx LOAD R0, R5 STORE R2, X STORE R3, Tbl(R4) PUSH SP, R1 ; store to stack SP, R1 ; take from stack 14

IN TTK-91 I/O operaatiot lue arvo (kokonaisluku) rekisteriin annetulta laitteelta (vain KBD määritelty) OUT tulosta arvo (kokonaisluku) rekisteristä annetulle laitteelle (vain CRT määritelty) Laitteet? KBD - näppäimistö, stdin CRT - näyttö, stdout ei muita! (ei levyä, ei verkkoa, ) IN R3, =KBD OUT R2, =CRT 15

TTK-91 kokonaislukuoperaatiot LOAD ( move ) ADD, SUB LOAD R3, R1 ; R3 R1 ADD R3, X ; R3 R3+ Mem(X) MUL SUB R3, =1 ; R3 R3-1 MUL R3, Tbl(R1) ; R3 R3 * Mem(Tbl+R1) DIV, MOD LOAD R1,=14 DIV R1,=3 ; R1 4 LOAD R1,=14 MOD R1,=3 ; R1 2 Keskustele 16

TTK-91 loogiset (bitti)operaatiot (4) NOT, AND, OR, XOR kaikille 32 bitille yksi bitti kerrallaan LOAD R1, =12 ; R1 = 000 000 1100 LOAD R2, =5 ; R2 = 000 000 0101 AND R1,R2 ; R1 = 000 000 0100 OR R1,R2 ; R1 = 000 000 1101 XOR R1,R2 ; R1 = 000 000 1001 NOT R1 ; R1 = 111 111 0011 17

TTK-91 bittien siirtokäskyt SHL, SHR, SHRA siirrä bittejä vasemmalle tai oikealle täytä nollilla (tai etumerkkibitillä) LOAD R1,=5 ; R1 = 000 000 00101 = 5 SHL R1,=1 ; R1 = 000 000 01010 = 10 yhden bitin siirto vasemmalle on sama kuin 2:lla kertominen! (jos vas. puolinen etumerkkibitti ei vaihdu) positiivisilla luvuilla yhden bitin siirto oikealle on sama kuin 2:lla jakaminen! LOAD R1,=5 ; R1 = 000 000 00101 = 5 SHR R1,=1 ; R1 = 000 000 00010 = 2 LOAD R1,=-5 ; R1 = 111 111 11011 = -5 SHRA R1,=1 ; R1 = 111 111 11101 = -3 18

JUMP COMP TTK-91 kontrollin siirtokäskyt asettaa tilarekisteriin SR vertailun tuloksen: L, E tai G JLES, JEQU, JGRE, JNLE, JNEQU, JNGRE perustuu tilarekisterin tietoon eli viimeksi suoritettuun COMP-käskyyn JNEG, JZER, JPOS, JNNEG, JNZER, JNPOS perustuu annetun rekisterin arvoon CALL, EXIT SVC JUMP Loop COMP R3, =27 COMP R2, X (käsitellään myöhemmin) JGRE Loop JPOS R1, Loop SVC SP, =HALT ; ohjelman suoritus päättyy 19

TTK-91 muut käskyt NOP No OPeration, tyhjä käsky, älä tee mitään varaa kuitenkin muistia yhden sanan (32 bittiä) suoritetaan samoin kuin muutkin käskyt kuluttaa aikaa käskyllä voi olla osoite, johon voi hypätä OHI NOP JZER R4, OHI. NOP. 20

Tiedon osoitusmuodot TTK-91 Vain jälkimmäiselle operandille Ensimmäinen operandi on aina rekisteri Välitön operandi (ei muistiosoitusta) OPER Rj, =ADDR(Ri) M = 0 = 0b00 Jälkimmäinen operandi: ADDR+Ri Kumpi vain voi puuttua (ADDR=0 tai Ri=R0) Suora (indeksoitu) muistiosoitus OPER Rj, ADDR (Ri) M = 1 = 0b01 Jälkimmäinen operandi: Mem(ADDR+Ri) Epäsuora (indeksoitu) muistiosoitus OPER Rj, @ADDR(Ri) M = 2 = 0b10 Jälkimmäinen operandi: Mem(Mem(ADDR+Ri)) 21

Indeksointi Laske aina ensin ns. tehollinen muistiosoite (effective address, EA): Sitten katso moodia ja tee niin monta muistinoutoa kuin tarvitaan (tai ei yhtään) = : 0 kpl R4 201 (välitön) LOAD R4,=Tbl(R3) LOAD R4,Tbl(R3) LOAD R4,@Tbl(R3) tyhjä: 1 kpl R4 Mem[201] = 11 (indeksoitu) @ : 2 kpl (epäsuora) R4 Mem[ Mem[201] ] = Mem[ 11 ] = 300 EA= Tbl + (R3) = 201 pelkkä rekisterin nro @-merkin jälkeen vain 1 muistinouto STORE käsky 1 kpl vähemmän noutoja ja yksi tallennus Keskustele 22

Indeksoinnin käyttö taulukkojen ja tietueiden yhteydessä Taulukot taulukon alkuosoite vakiona taulukon indeksi indeksirekisterissä Tietueet tietueen alkuosoite indeksirekisterissä tietueen kentän suhteellinen osoite tietueen sisällä vakiona LOAD R5, Tbl(R3) 1854 14 LOAD R2, Salary(R5) 6 1244 23

TTK-91 assembler kääntäjän ohjauskäskyt Eivät generoi lainkaan konekäskyjä suoritetaan käännösaikana EQU - Equal antaa arvon symbolille symbolitauluun DC - data constant X DC 50 varaa yhden sanan tilaa muistista, antaa sille alkuarvon ja antaa osoitteen symbolin arvoksi (symbolitauluun!) esim. muuttujan tai ison vakion määrittely LOAD R1, X DS - data segment Tbl DS 200 varaa monta sanaa tilaa muistista, antaa arvon symbolille alkuarvot ovat epämääräisiä! LOAD R3,Tbl(R1) esim. taulukon tai tietueen tilan varaus Sata EQU 100 LOAD R1, =Sata Keskustele 24

TTK-91 symbolinen konekieliohjelma hello.k91 X DC 13 Y DC 15 MAIN LOAD R1, X ADD R1, Y OUT R1, =CRT SVC SP, =HALT 25

-- Loppu -- Some typical 80x86 intructions and their function Fig. 3.32 [PaHe98] 26