toiminta, K2001 1512001 581305-6 toiminta (Computer Organization I) Teemu Kerola Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2001 Muuntokoulutettavien erikoiskurssi 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? 1 4 Aihepiiri Sovellukset Samanaikaisuus Teknologia Ohjelmointikielet toiminta: konekieli suorittimen (CPU) rakenne käyttöjärjestelmä tuki Käyttöjärjestelmät Suorituskyky Käyttöliittymät Historia Kurssien välisiä riippuvuuksia Käyttöjärjestelmät-I (2ov) Java ohjelmointi toiminta (2ov) Rinnakkaisohjelmointi (2ov) rakenne (2ov) Tietoliikenne-I (2ov) 2 5 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 Perusopinnot (kaikille yhteisiä cl-kursseja) KJ-I KJ-II KJ-metod toiminta Hajautetut järjestelmät Ohj sem Spes & verif perusteet Tietoliik järjest Valinnaiset l-kurssit (Haj järj & tietoliik) (2) Pakolliset l-kurssit (Haj järj ja tietoliikenne) rakenne Tietokonearkkiteht Tietoliikenne II Rinnakkaisohjelmistot Tietoliikenne-I 6 Luento 1, johdanto 1
toiminta, K2001 1512001 TiTo (2ov), suoritusmuodot Luentokurssi luennot, luentokalvot Tämä kurssi kurssikirjat, (luentomoniste,) laskuharjoitukset kurssikuulustelu (luentojen jälkeen) Loppukoe kirjoista [Stal99 ja Tane99] kurssikuvauksessa mainitut osat ohjelmointi TTK-91 symbolisella konekielellä KOKSI:n käyttö koe Koepisteet Tito S2000 koe vs LH 50 45 40 35 30 25 20 15 10 5 0 0 10 20 30 40 Harjoitustehtäväpisteet (HTP) Hyväksytyt Hylätyt Trendi (kaikki) 7 10 Luentokurssin suoritus Luennot luentokalvot verkossa, kopioi etukäteen opi perusasiat kunnolla luennolla Lue kirjasta samat asiat vähän eri tavalla esitettynä Tee laskuharjoitukset Osallistu laskuharjoituksiin Osallistu kokeeseen 4t / vk? 6t / vk? 2t / vk? 8 Oppimateriaali Stallings: Computer Org and Arch, 5th Ed Structure Computer Organ, 4th Ed Kurssimoniste: Auvo Häkkinen, toiminta, opetusmoniste D390, TKTL, 3011998 (pääpiirteittäin luvut 1-10) painos vuoden 1998 jälkeen (Java) KOKSI simulaattori & dokumentit Luentokalvot kopiot verkossa 11 Koe (max 60) TITO K2000 koe vs laskuharjoitukset 60 50 40 30 20 10 0 0 5 10 15 20 25 30 35 HTP (max 36) 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 Stallings Tanenbaum Patterson-Hennessy 9 12 Luento 1, johdanto 2
toiminta, K2001 1512001 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! 4t luentoja, 2t laskareita ja 6t omaa opiskelua per viikko (yht n 12t/viikko, eli n 72t) toiminta (TiTo, Comp Org I ) A := B + C; High level language MOV AX, B ADD AX, C MOV A, AX Assembler Logic circuits rakenne (TiKRa, Comp Org II) 13 16 WWW Informaatio (6) Kurssin kotisivu http://wwwcshelsinkifi/~kerola/tito/ Tämän lukukauden aikataulu /tito/k2001muunto/aikatauluhtml Luennot /k2001muunto/luennot/ Laskuharjoitukset /k2001muunto/laskuharj/ Vanhat kokeet /tito/kokeet/ Uutisryhmä hyopiskelutktltito toiminta -kurssin alin esitystaso 14 17 Muisti Suoritin Väylä Ohjain Levy TiTo: Mitä systeemissä tapahtuu? TiKRa: Miten CPU ja muisti on toteutettu? Miten kellopulssi saa käskyt suoritetuksi? rakenne -kurssin alin esitystaso CLOCK SIGNAL NOR A B NOT NAND CarryIn Adder Sum Carry 15 18 Luento 1, johdanto 3
toiminta, K2001 1512001 Kurssin sisältö (10) Johdanto: tietokonejärjestelmän rakenne 05 vk TTK-91 -tietokone ja sen KOKSI simulaattori 05 vk Konekielinen ohjelmointi 05 vk Aliohjelmien toteutus konekielen tasolla 05 vk Suoritin (CPU) ja väylä 05 vk Tiedon esitysmuodot 05 vk Tiedon muuttumattomuus, järj sis muisti 05 vk Ohjelman toteutus järjestelmässä 05 vk Järjestelmän ulkoinen muisti, I/O, levy 05 vk Ohjelmien suorittaminen järjestelmässä 10 vk Yhteenveto 05 vk Tietokonejärjestelmä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Käyttäjä Tietokone (computer) 19 22 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, 20 23 Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 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 21 24 Luento 1, johdanto 4
toiminta, K2001 1512001 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, 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 LOAD R2, Summa % R2 Mem(Summa) 439874387 ADD R2, =5 % R2 R2 + 5 544399765 JUMP Loop % hyppy osoitteeseen 25 28 Tietokoneohjelman sijainti ja esitysmuoto (jatkuu) (1) Suoritusaikana muistissa konekielisessä muodossa suoritin (CPU) väylä tai väylät muisti pitkäaikainen talletus Suoritusaikainen talletus 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 26 29 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ä 22345612 5437658756 käsky jaettu osiin (kenttiin) LOAD R1,Summa joidenkin kenttien arvot kuvattu symboleilla helpompi ihmisten lukea ja kirjoittaa Ohjelman esitysmuodot (4) käännös ks C-kielinen esimerkki (2 sivua) LOAD R1,40542 ADD R1,=1 STORE R1,40542 PUSH SP,R1 CALL 86488 muistissa 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ä 27 30 Luento 1, johdanto 5
toiminta, K2001 1512001 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 ohjelman nimi tuloskieli lähdekieli x86 ohjelman esitysmuoto Suorittimen ja muistin sisältö suoritin konekäskyjen suorituspiirit välimuisti väylä muisti kirjastorutiinit ohjelma laiterekisterit käyttöjärjestelmä data 31 34 Kääntäjä esimerkki (jatkuu) Laitteiston nopeus (7) 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, 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 35 Kääntäjä esimerkki (jatkuu) (5) Käännä ohjelma MyProg Pascalista konekielelle? syöte MyProg Pascal Käännä Pascal kääntäjä Pascalista konekielelle? Pascal MyProg x86 x86 tuloste suoritettava ohjelma? x86 x86? 33 Teemun Juustokakku (5) Rekisterien, välimuistin, muistin, levymuistin ja magneettinauhan nopeudet suhteutettuna juuston hakuaikaan juustokakkua tehdessä? Europa (Jupiter) käsi jääkaappi kuu pöytä 05 sek (rekisteri) 1 sek (välimuisti) 10 sek (muisti) 12 pv (levy) 4 v (nauha, ihminen) 36 Luento 1, johdanto 6
toiminta, K2001 1512001 -- Luennon 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/ 37 Luento 1, johdanto 7