581305-6 Tietokoneen toiminta (Computer Organization I) Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2001 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 Luento 1, johdanto 1
Tavoitteet (4) Ymmärtää tietokonejärjestelmän keskeiset piirteet sillä suoritettavan ohjelman näkökulmasta Miten tietokonejärjestelmä suorittaa sille annettua ohjelmaa? 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, ei pelkästään ohjelman korkean tason esitysmuotoon Ylemmän tason asioiden ymmärtäminen on helpompaa (mahdollista), kun ymmärtää alemman tason asiat Miksi java ohjelma (byte koodi)kannattaisi kääntää? Miksi MHz eivät kerro suoritusnopeutta? 4 Luento 1, johdanto 2
Kurssien välisiä riippuvuuksia Java ohjelmointi Tietokoneen toiminta (2ov) Käyttöjärjestelmät I (2ov) Rinnakkaisohjelmointi (2ov) Tietokoneen rakenne (2ov) Tietoliikenne I (2ov) 5 Perusopinnot (kaikille yhteisiä cl-kursseja) Tietokoneen toiminta (2) Pakolliset l-kurssit (Haj järj ja tietoliikenne) Käyttöjärj I Rinnakkaisohjelmistot Tietoliikenne I Tietokoneen rakenne Käyttö järj II Hajautetut järjestelmät Spes & verif perusteet Tietoliikenne II KJ-metod Ohj sem Tietoliik järjest Valinnaiset l-kurssit (Haj järj & tietoliik) Tietokonearkkiteht 6 Luento 1, johdanto 3
TiTo (2ov), suoritusmuodot Luentokurssi luennot, luentokalvot luentomoniste, laskuharjoitukset koe la 166 lo 9-13 uusintakuulustelut: la 89 klo 9-13 la 1610 klo 9-13 Loppukokeena sovittava erikseen 852001 7 Luentokurssin suoritus Luennot luentokalvot verkossa, kopioi etukäteen opi perusasiat kunnolla luennolla Lue monisteesta/kirjasta samat asiat vähän eri tavalla esitettynä Tee laskuharjoitukset Osallistu laskuharjoituksiin Osallistu kokeeseen 6 t / vk? 9t / vk? 3t / vk? 8 Luento 1, johdanto 4
TITO K2000 koe vs laskuharjoitukset 60 50 Koe (max 60) 40 30 20 10 0 0 5 10 15 20 25 30 35 HTP (max 36) 9 TiTo K2000 koe vs laskuharjoitukset 60 50 Koepisteet 40 30 hylätyt hyväksytyt 20 10 0 0 5 10 15 20 25 30 35 Harjoitustehtäväpisteet 10 Luento 1, johdanto 5
Oppimateriaali Kurssimoniste: Auvo Häkkinen, Tietokoneen toiminta, opetusmoniste D390, TKTL, 3011998 (pääpiirteittäin luvut 1-10) painos vuoden 1998 jälkeen (Java) KOKSI simulaattori & dokumentit Luentokalvot kopiot verkossa 11 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 Patterson-Hennessy 12 Luento 1, johdanto 6
Motto (2) Kunto ei nouse, jos ei tule hiki ( It is not good exercise, if you do not sweat ) 24t luentoja, 12t laskareita ja noin 40t omaa opiskelua => 76t 45 viikon aikana => noin 18 t /viikko 852001 13 WWW Informaatio (6) Kurssin kotisivu http://wwwcshelsinkifi/~marttine/tito/kevat01 Luennot /luennot/ Laskuharjoitukset /harjoitukset/ Vanhat kokeet /tito/kokeet/ Uutisryhmä hyopiskelutktltito 852001 14 Luento 1, johdanto 7
Muisti Suoritin Väylä Ohjain Levy TiTo: Mitä systeemissä tapahtuu? TiKRa: Miten CPU ja muisti on toteutettu? 15 Tietokoneen toiminta (TiTo, Comp Org I ) A := B + C; High level language MOV AX, B ADD AX, C MOV A, AX Assembler Tietokoneen rakenne (TiKRa, Comp Org II) Logic circuits 16 Luento 1, johdanto 8
Tietokoneen toiminta -kurssin alin esitystaso 17 Tietokoneen rakenne -kurssin alin esitystaso CLOCK SIGNAL NOR NOT A 32 B 32 NAND CarryIn Adder 32 Sum Carry 18 Luento 1, johdanto 9
Kurssin sisältö (10) Johdanto: tietokonejärjestelmän rakenne 2 t TTK-91 -tietokone ja sen KOKSI simulaattori 2 t Konekielinen ohjelmointi 2 t Aliohjelmien toteutus konekielen tasolla 2 t Suoritin (CPU) ja väylä 2 t Tiedon esitysmuodot 2 t Tiedon muuttumattomuus, järj sis muisti 2 t Ohjelman toteutus järjestelmässä 2 t Järjestelmän ulkoinen muisti, I/O, levy 2 t Ohjelmien suorittaminen järjestelmässä 4 t Yhteenveto 2 t 19 Jakso 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 20 Luento 1, johdanto 10
Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 21 Tietokone (3) suoritin (CPU) muisti 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 Luento 1, johdanto 11
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 Luento 1, johdanto 12
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 2234563212 5437658756 Usein esitetty symbolisella konekielellä käsky jaettu osiin (kenttiin) joidenkin kenttien arvot kuvattu symboleilla helpompi ihmisten lukea ja kirjoittaa LOAD R1,Summa 26 Luento 1, johdanto 13
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): 129543876 439874387 544399765 symbolinen konekieli konekieli LOAD R2, Summa % R2 Mem(Summa) ADD R2, =5 % R2 R2 + 5 JUMP Loop % hyppy osoitteeseen 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 ohjelmointikieli konekieli linkitys lataus paketoidaan kirjasto-ohjelmat mukaan sijoitetaan ohjelma muistiin suoritettavaksi 28 Luento 1, johdanto 14
Ohjelman esitysmuodot (4) LOAD R1,40542 ADD R1,=1 STORE R1,40542 PUSH SP,R1 CALL 86488 muistissa käännös linkitys lataus Sum := Sum+1; Print (Sum); LOAD R1, Sum ADD R1,=1 STORE R1, Sum PUSH SP, R1 CALL IOModPrint LOAD R1, Sum ADD R1, =1 STORE R1, Sum PUSH SP, R1 CALL 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 lähdekieli esitysmuoto ohjelma Pascal kääntäjä x86 x86 tuloskieli 30 Luento 1, johdanto 15
Kääntäjä esimerkki (jatkuu) Pascal-kääntäjä on ohjelma, joka on alkuaan kirjoitettu jollain ohjelmointikielellä C-kielellä? Pascal-kielellä? Ennen suoritusta myös Pascal-kääntäjä täytyy olla käännettynä laitteiston konekielelle Intel x86, PA-RISC, 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 Luento 1, johdanto 16
Suorittimen ja muistin sisältö muisti suoritin konekäskyjen suorituspiirit välimuisti kirjastorutiinit ohjelma laiterekisterit käyttöjärjestelmä data 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 Luento 1, johdanto 17
Juustokakun tekeminen (5) Rekisterien, välimuistin, muistin, levymuistin ja magneettinauhan nopeudet suhteutettuna juuston hakuaikaan juustokakkua tehdessä? Europa (Jupiter) käsi jääkaappi pöytä kuu 05 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) Muisti I/O-laitteet http://wwwabitnl/english/product/ 36 Luento 1, johdanto 18