Tietokoneen toiminta (Computer Organization I)

Samankaltaiset tiedostot
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

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

Aihepiiri Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Aihepiiri Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Aihepiiri Tietokoneen toiminta (Computer Organization I) Tavoitteet (4) Mitä hyötyä tästä on? (4) Kurssien välisiä riippuvuuksia

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I) Aihepiiri. Mitä hyötyä tästä on? (3) Tavoitteet. Kurssien välisiä riippuvuuksia

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I) Mitä hyötyä tästä on? (4) Kurssien välisiä riippuvuuksia. Aihepiiri.

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

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

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

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

Kertausluento luennoista 1-3 1

Tietokoneen toiminta, K Tavoitteet (4)

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Kurssin esittely Tavoitteet Komponentit

Kurssin esittely Tavoitteet Komponentit

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

Tietokoneen toiminta (Computer Organization I)

Luento 0, Hallinto, yleisesittely 1

Tietokoneen toiminta (Computer Organization I)

Tietokoneen rakenne (2 ov / 4 op) Syksy 2007 Liisa Marttinen. Helsingin yliopisto Tietojenkäsittelytieteen laitos

Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

Tietokoneen toiminta (Computer Organization I)

Luento 0: Kurssihallinto Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

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

Tietokoneen toiminta, K Tavoitteet (4)

Luento 12 Yhteenveto. Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? Teemu Kerola, K2000

Luento 12 Yhteenveto. Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat?

Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? Teemu Kerola, Copyright Tavoitteet (4)

Luento 12 Yhteenveto

Tavoitteet (4) Luento 12 Yhteenveto. Keskeisiä asioita. Mitä hyötyä tästä on? (2) Esimerkkikone: TTK-91 laitteisto suoritin - CPU

Luento 12 Yhteenveto. Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? 29/01/2001 Teemu Kerola, Copyright 2001

Luento 12 Yhteenveto

Luento 12 Yhteenveto

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

Luento 12 Yhteenveto. Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? Teemu Kerola, Copyright 2010

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

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

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

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

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

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

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

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

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

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

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

4. Lausekielinen ohjelmointi 4.1

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Muistihierarkia Kiintolevyt I/O:n toteutus

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

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

LUENTO 0. Tervetuloa! Käyttöjärjestelmät II 2 ov Teemu Kerola. Helsingin yliopisto Tietojenkäsittelytieteen laitos

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

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

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

Ohjelmoinnin perusteet Y Python

Käännös, linkitys ja lataus

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

Jakso 10 Ohjelman suoritus järjestelmässä

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

Luento 4 Aliohjelmien toteutus

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

Jakso 4 Aliohjelmien toteutus

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

Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus

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

Jakso 4 Aliohjelmien toteutus

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

1. Keskusyksikön rakenne

Luento 4 Aliohjelmien toteutus

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

2 Konekieli, aliohjelmat, keskeytykset

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

Jakso 10 Ohjelman suoritus järjestelmässä

Jakso 4 Aliohjelmien toteutus

Järjestelmän ulkoinen muisti I/O

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

Lausekielestä suoritukseen (3) Luento 10 Käännös, linkitys ja lataus. Assembler-kielinen käännösyksikkö (2) Käännösyksikkö (4) Objektimoduuli (8)

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

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

Oppimistavoitteet kurssilla Tietokoneen toiminta

Tiedon esitysmuodot. Luento 6 (verkkoluento 6) Lukujärjestelmät Kokonaisluvut, liukuluvut Merkit, merkkijonot Äänet, kuvat, muu tieto

Transkriptio:

581305-6 Tietokoneen toiminta (Computer Organization I) Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2004 1 Aihepiiri Sovellukset Teknologia Samanaikaisuus Ohjelmointikielet Tietokoneen toiminta: konekieli suorittimen (CPU) rakenne käyttöjärjestelmä tuki Käyttöjärjestelmät Suorituskyky Käyttöliittymät Historia 2

Tavoitteet (4) Ymmärtää tietokonejärjestelmän keskeiset piirteet sillä suoritettavan ohjelman näkökulmasta Miten tietokonejärjestelmä suorittaa sille annettua ohjelmaa? Miten/minne ohjelmakoodi ja data on talletettu laitteistossa? Minkälaista koodia suoritin ymmärtää? Mikä on käyttöjärjestelmän rooli? 3 Mitä hyötyä tästä on? (4) Ohjelman suoritusnopeus perustuu suorittimen (CPU) suorittamiin konekäskyihin eikä ohjelman korkean tason kielen (C, Pascal, Java) esitysmuotoon Ylemmän tason asioiden ymmärtäminen on helpompaa/mahdollista, kun ymmärtää alemman tason asiat (ohjelman suoritus konekielen tasolla) Miksi Java-ohjelma (byte-koodi) kannattaisi kääntää? Mitä Java-ohjelmien kääntäminen tarkoittaa? Mitä Java-ohjelmien suorittaminen tarkoittaa? Mitä C-ohjelmien suorittaminen tarkoittaa? 4

Kurssien välisiä riippuvuuksia Tietokoneen toiminta (2ov) Käyttöjärjestelmät I (2ov) Tietokoneen rakenne (2ov) Javaohjelmointi Rinnakkaisohjelmointi (2ov) Tietoliikenne I (2ov) 5 Tito-kurssin (2ov), suoritus Luentokurssi luennot, luentokalvot luentomoniste Häkkinen: Tietokoneen toiminta, opetusmoniste D390, HY/TKTL 1998 harjoitukset koe 16.6. klo 17-21 uusintakuulustelut: la 4.9. klo 9-13, la 2.10. klo 9-13 Muu kirjallisuus: Tanenbaum: Structured Computer Organisation, 4th ed. 1999 Stallings: Computer Organisation and Architecture, 6th ed. 2003 (5th ed. 1999 OK!) 6

Luentokurssin suoritus Luennot luentokalvot verkossa, kopioi etukäteen opi perusasiat kunnolla luennolla Lue monisteesta/kirjasta samat asiat vähän eri tavalla esitettynä 6 t Tee harjoitukset 2 t / vk? Osallistu harjoituksiin Lue ja harjoittele itsenäisesti Osallistu kokeeseen 6 t / vk x 4vk = 24 t 2 t / vk? 2 t / vk? 6 t / vk x 6 vk = 36 t 20 t = x t /vk esim. 2+8+10 t/vk 7 TITO K2002 koe vs. laskuharjoitukset 60 50 Koe (max 60) 40 30 20 10 0 0 5 10 15 20 25 30 35 HTP (max 36) 8

TiTo K2002 koe vs. laskuharjoitukset 60 50 Koepisteet 40 30 20 hylätyt hyväksytyt 10 0 0 5 10 15 20 25 30 35 Harjoitustehtäväpisteet 9 Oppimateriaali Kurssimoniste: Auvo Häkkinen, Tietokoneen toiminta, opetusmoniste D390, TKTL, 30.1.1998 (pääpiirteissään luvut 1-8.2, 10) painos vuoden 1998 jälkeen (Java) Luentokalvot kopiot verkossa Harjoitukset tehtävät verkossa; ratkaisut harjoituksissa KOKSI-simulaattori & -dokumentit Kirjat: Stallings ja Tanenbaum (eivät ole välttämättömiä) 10

Huomaa! Nämä kalvot on tehty luentojen (ja luentomonisteen) tueksi Kalvot eivät sisällä kaikkea luennolla ollutta asiaa Kalvot eivät korvaa oppikirjaa Jos haluat opiskella itsenäisesti, niin lue siihen tarkoitettuja oppikirjoja Tanenbaum Stallings 11 Motto (2) Kunto ei nouse, jos ei tule hiki ( It is not good exercise, if you do not sweat ) Ei tämä silti mikään maratoni ole! 24 t luentoja, 12t laskareita ja noin 44 omaa opiskelua => 80 t kuuden (5 ja 1/2) viikon aikana. 12 t + 12 t + 12 t + 14 t + 14 t + 10 t 12

WWW Informaatio (6) Kurssin kotisivu http://www.cs.helsinki.fi/u/marttine/tito/avoink04 Luennot /luennot/ Laskuharjoitukset.../harjoitukset/ Vanhat kokeet /tito/kokeet/ Uutisryhmä hy.opiskelu.tktl.tito 13 Muisti Suoritin Väylä Ohjain Levy TiTo: Mitä systeemissä tapahtuu? Miten CPU ja muisti on toteutettu? Miten kellopulssi saa käskyt suoritetuksi? Näitä ei käsitellä tällä kurssilla! (TiKRa) 14

Suorittimen toteutushierarkia Konekieliarkkitehtuuri ADD R1, R2 Moduulit adder, register, ALU Loogiset portit and, or Piirisuunnittelu TikRa virrankulutus, ajoitus, piuhojen sijoitus Toteutuslaitteisto elektroniputki, transistori, mikropiiri TiTo 15 Tietokoneen toiminta (TiTo, Comp. Org. I ) A := B + C; Korkean tason kieli MOV AX, B ADD AX, C MOV A, AX Konekieli Tietokoneen rakenne (TiKRa, Comp. Org. II) Loogiset piirit (porttitasolla) 16

Tietokoneen toiminta -kurssin alin esitystaso 17 Kurssin sisältö (12) 1. Johdanto: tietokonejärjestelmän rakenne 2 t 2. TTK-91 -tietokone ja sen KOKSI simulaattori 2 t 3. Konekielinen ohjelmointi 2 t 4. Aliohjelmien toteutus konekielen tasolla 2 t 5. Suoritin (CPU) ja väylä 2 t 6. Tiedon esitysmuodot 2 t 7. Tiedon muuttumattomuus, järj. sis. muisti 2 t 8. Ohjelman toteutus järjestelmässä 2 t 9. Ulkoinen muisti, I/O-toteutus, I/O-laitteet 2 t 10. Käännös, linkitys ja lataus 2 t 11. Tulkinta ja emulointi 2 t 12. Yhteenveto 2 t 18

19 Jakso 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 20

Tietokonejärjestelmä Tietokonelaitteisto Käyttäjä Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 21 suoritin (CPU) mm Tietokone (3) Muisti mm väylä tai väylät laiteohjaimet Liitännät muiden koneiden kanssa Ethernet, modem,... Liitännät laitteiden kanssa DVD, CD, disk, diskette, printer,... Liitännät ihmisten kanssa Mouse, joystick, monitor, game pad,... 22

Tietokoneohjelman sijainti ja esitysmuoto (4) Käyttäjän kannalta jossain tietokonelaitteistossa jossain muodossa helppo suorittaa napauta ikonia hiirellä anna ohjelman nimi ja parametrit tekstuaaliselle käyttöliittymälle DOS tai UNIX kehotteen jälkeen sijoittamalla CD-levy CD-asemaan 23 Tietokoneohjelman sijainti ja esitysmuoto (jatkuu) (4) Pitkäaikainen talletus jollain laitteella, jossa tieto säilyy myös ilman sähkövirtaa kovalevy, levyke, magneettinauha, CD, DVD jollain kielellä kuvattuna ohjelmointikielet: Java, Fortran, C, tietokannan kuvauskielet: SQL, SQL*Forms, suorittimen konekieli: x86, MIPS, PA-RISC,... pakattuna ehkä jollain tavoin zip, tar, gz,... 24

Tietokoneohjelman sijainti ja esitysmuoto (jatkuu) (1) Suoritusaikana muistissa konekielisessä muodossa suoritin (CPU) väylä tai väylät muisti Suoritusaikainen talletus pitkäaikainen talletus 25 Konekieli (3) Suorittimen konekielen käskykanta määrittelee tietokoneen käskykantaarkkitehtuurin ISA - Instruction Set Architecture Kukin käsky on esim. 10- numeroinen kokonaisluku Usein esitetty symbolisella konekielellä 2234563212 5437658756 käsky jaettu osiin (kenttiin) LOAD R1,Summa joidenkin kenttien arvot kuvattu symboleilla helpompi ihmisten lukea ja kirjoittaa 26

Symbolinen konekieli Yleinen esitystapa konekielisille ohjelmille luettavassa muodossa oleva konekieli Helppo muuttaa konekieleksi suora vastaavuus konekieleen usein mielletään (vähän väärin, muttei paljon): symbolinen konekieli konekieli 129543876 439874387 544399765 LOAD R2, Summa ; R2 Mem(Summa) ADD R2, =5 ; R2 R2 + 5 JUMP Loop ; hyppy osoitteeseen (koodi) (; kommentti) 27 Ohjelma vs. konekieli Ongelma: Ohjelma on talletettu ohjelmointikielellä (esim. Java) pitkäaikaismuistiin (esim. kovalevy), mutta suoritusta varten sen tulee olla suoritettavan tietokonelaitteiston prosessorin konekielellä laitteiston muistissa. Ratkaisu: esitysmuodon muunnokset käännös linkitys lataus ohjelmointikieli konekieli paketoidaan kirjasto-ohjelmat mukaan sijoitetaan ohjelma muistiin suoritettavaksi 28

Ohjelman esitysmuodot (4) käännös eri moduulissa linkitys Sum := Sum+1; Print (Sum); LOAD R1, Sum ADD R1,=1 STORE R1, Sum PUSH SP, R1 CALL IOMod.Print LOAD R1,40542 ADD R1,=1 STORE R1,40542 PUSH SP,R1 lataus CALL 86488 samassa muistissa moduulissa LOAD R1, Sum ADD R1, =1 STORE R1, Sum PUSH SP, R1 CALL PrintRoutine PrintRoutine... levyllä 29 Kääntäjäesimerkki (4) Pascal-kääntäjä kääntää Pascal-kielisen ohjelman (esim.) Intel x86 konekielelle (Pentium PC:lle) Pascal-kääntäjä on ohjelma, joka suoritetaan (esim.) Intelin Pentium-prosessori pohjaisessa laitteistossa Pascal-kääntäjän esitysmuoto käännösaikana (suoritusaikana) täytyy olla Intel x86 -konekieli ohjelma lähdekieli Pascal kääntäjä x86 Suoritettavan ohjelman esitysmuoto x86 (sopiva Intel x86 suorittimelle) tuloskieli 30

Kääntäjä esimerkki (jatkuu) Pascal-kääntäjä on ohjelma, joka on alkuaan kirjoitettu jollain ohjelmointikielellä C-kielellä? Pascal-kielellä? Pascal-kääntäjä x86 C / Pascal Ennen suoritusta myös Pascal-kääntäjä täytyy olla käännettynä laitteiston konekielelle Intel x86, PA-RISC,... Pascal-kääntäjä x86 x86 31 Kääntäjä esimerkki (jatkuu) (5) Käännä ohjelma MyProg Pascalista konekielelle? MyProg MyProg Pascal Pascal-kääntäjä x86 x86 syöte x86 tuloste suoritettava ohjelma? Käännä Pascal-kääntäjä Pascalista konekielelle? Pascal-kääntäjä x86 Pascal-kääntäjä x86 Pascal Pascal-kääntäjä x86 x86 x86? 32

Suorittimen ja muistin sisältö muisti suoritin konekäskyjen suorituspiirit laiterekisterit Kirjastorutiinit Ohjelma Data Välimuisti Käyttöjärjestelmä Väylä 33 Laitteiston nopeus (7) Järjestelmän eri komponenteilla on suuret nopeuserot laiterekisterit kaikkein nopeimmat välimuisti lähes yhtä nopea muisti jo aika kaukana laitteet hyvin kaukana eräät laitteet todella hyvin kaukana magneettinauha, ihmisen käyttöliittymät muut tietokoneet todella hyvin kaukana 34

Juustokakun tekeminen (5) Rekisterien, välimuistin, muistin, levymuistin ja magneettinauhan nopeudet suhteutettuna juuston hakuaikaan juustokakkua tehdessä? Europa käsi pöytä jääkaappi kuu (Jupiter) 0.5 sek (rekisteri) 1 sek (välimuisti) 10 sek (muisti) 12 pv (levy) 4 v (nauha, ihminen) 35 -- Jakson 1 loppu -- VA6 - PC133 ATX Mainboard Väyläkontrolli (chip set), piuhat piilossa muissa kerroksissa) Suoritin eli prosessori (CPU) Muistin liittimet I/O-laitteiden liittimet http://www.abit.nl/english/product/ 36