OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012 Luento 16: Tietokoneen rakenne, osa 2 Tekijät: Antti Virtanen, Timo Lehtonen, Matti Kujala, Kirsti Ala-Mutka, Petri M. Gerdt et al.
Viikkoharjoitusten suorittamisesta Viikkoharjoitus on suoritettu vain ja ainoastaan, jos pistelistasta löytyy arvosana 1,00. 0,83; 0,91; yms eivät ole hyväksyttyjä suorituksia Mikäli vaillinaisia pisteitä löytyy, tehkää koko oppitunti uudestaan! Ongelmatilanteissa apua voi kysyä assareilta viikkoharjoituksissa. Moodle päästää eteenpäin riittävän monen väärän vastauksen jälkeen, mutta ilmoittaa kyllä että pisteitä ei ole saatu: varmistakaa siis että jokaisen tehtäväsivun vastaus on oikein ja pisteitä ansaittu 1.
Harkkaryhmät vielä ke ja to Keskiviikkona klo 14-16 ja 16-18 PC201A Torstaina klo 14-16 PC201A
Kertausluentokysely auki vielä keskiviikkoon klo 10 saakka Moodlessa viime viikon kohdalla
Jossakin rakennuksessa poistumisharjoitus tällä viikolla... Palohälytyksen ilmaantuessa, poistutaan salista rauhallisesti ja pääsisäänkäynnin kautta suoraan ulos Tavarat mukaan salista Jos ette ehdi saada takkianne, menkää vaikkapa toiseen rakennukseen lämmittelemään Naulakoilla voi olla ruuhkaa... Rakennukseen palataan vasta kun saadaan lupa Luento jatkuu, mikäli aikaa on jäljellä Samoin viikkoharjoitukset
Tentti lähestyy Salijako selviää ilmoittautumisen loputtua, tarkistakaa tiedot viimeistään tenttipäivänä Titepk:n tentissä laskin ei ole sallittu Noin 10 tehtävää, pisteitä per tehtävä kerättävänä 1-4 Pikkukysymyksiä, sananselityksiä Pidempiä kysymyksiä Ei kuitenkaan essee-tyylisiä tehtäviä Läpipääsyyn vaaditaan noin puolet pisteistä Muistakaa pitää mukana opiskelijakorttia tai henkilöllisyystodistusta!
Tietokoneen perusrakenne 1/2 Kerrataan tietokoneen fyysinen perusrakenne... Tietokoneen peruskomponentit ovat karkeasti yleistettyinä seuraavat: suoritin eli prosessori keskusmuisti oheislaiteohjaimet ja oheislaitteet väylä
Tietokoneen perusrakenne 2/2 Suoritin eli prosessori ohjaa koneen toimintaa Englanniksi CPU (Central Processing Unit) Keskusmuisti sisältää suoritettavan ohjelman ja käsiteltävät tiedot Oheislaiteohjaimet ohjaavat tietokoneeseen liitettyjä oheislaitteita ja kommunikoivat suorittimen ja muistin kanssa Väylä toimii kommunikaatiokanavana suorittimen, muistin ja oheislaiteohjainten välillä
Tietokoneen perusrakenne: oheislaitteet Oheislaiteohjainten kautta tietokoneeseen voidaan liittää erilaisia oheislaitteita Näiden avulla tietokone voi sitten olla yhteydessä ulkomaailmaan Näytön kautta voidaan välittää tietoa käyttäjälle Näppäimistöllä käyttäjä voi syöttää tietoa tietokoneeseen Kytkimiä, antureita ja moottoreita käyttäen voidaan tietokone liittää erilaisiin laitteisiin ja kojeisiin
Tietokoneen perusrakenne: keskusmuisti 1/3 Keskusmuisti on joukko muistipaikkoja, johon voidaan tallettaa lukuja Muistipaikkaa voi ajatella liitutaululle piirretyksi laatikoksi, johon mahtuu kirjoittamaan yhden luvun Muistipaikan sisältämä luku voidaan tulkita myös esim. kirjaimeksi tai suorittimen konekäskyksi. Muistipaikat on numeroitu nollasta alkaen 0, 1, 2 jne. Muistipaikan numeroa sanotaan yleensä muistiosoitteeksi. Keskusmuistia kutsutaan myös käyttömuistiksi
Tietokoneen perusrakenne: keskusmuisti 2/3 Muistipaikat sijaitsevat peräkkäin ja jokaisella paikalla on yksilöivä numero, jonka avulla siihen voidaan viitata Esimerkiksi muistipaikan 4 arvo (10100001) on desimaalilukuna 161
Tietokoneen perusrakenne: keskusmuisti 3/3 Keskusmuistissa muistipaikkojen numeroita sanotaan muistiosoitteiksi Muistipaikkoja voidaan käsitellä mielivaltaisessa järjestyksessä (Random Access Memory, RAM) ja niihin voidaan lukea ja kirjoittaa Muistia, josta voidaan vain lukea, nimitetään ROMmuistiksi (Read Only Memory), ja sen sisältö säilyy virran katkaisun jälkeenkin Aikaisemmilta luennoilta on toivottavasti muistissa ROM-muistin osuus tietokoneen käynnistämisessä...
Käyttöjärjestelmän lataus kaaviokuvana Keskusmuisti Keskusmuisti ROM Levymuist i ROM Latausohjelma Latausohjelma Levymuisti Haihtuva muisti Haihtuva muisti Käyttöjärjestelm ä Käyttöjärjestelmä Käyttöjärjestelmä Kone käynnistyy suorittamalla muistissa valmiina olevan latausohjelman. Käyttöjärjestelmä on tallennettuna tukimuistiin. Latausohjelma huolehtii käyttöjärjestelmän lataamisesta keskusmuistiin ja aloittaa sen suorituksen
Entä muut muistityypit? Kiintolevy / kovalevy Massamuistia, levymuisti Määrää voi usein itse säädellä tarpeen mukaan Ulkoiset kovalevyt Myös SSD (solid-state drive) on massamuistia Flash-muisti, sähköisesti tyhjennettävä ja uudelleenohjelmoitava erityisesti pienet kevyet laitteet CD-rom, DVD, ym. optiset mediat Muistikortit
Mainosten ja teknisten tietojen lukemisesta... Keskusmuisti ja kiintolevy mainitaan erikseen Keskusmuisti se pienempi luku, esimerkiksi 4 Gt Kiintolevy huomattavasti suurempi luku, esimerkiksi 500 Gt
Tietokoneen perusrakenne: suoritin 1/4 Suoritin eli prosessori on tietokoneen toiminnan kannalta oleellisin osa Suoritin on integroitu piiri, jonka elektroniikka kykenee suorittamaan muistiin talletettuja konekäskyjä Integroida: yhdentää, muodostaa yhtemäisemmäksi kokonaisuudeksi Mikropiiri: pieni elektroniikan komponentti, jolle on integroitu suuri määrä elektronikkakomponentteja Suoritin suorittaa ohjelmaa askel (käsky) kerrallaan Suorittimen suorittamat käskyt ovat toiminnaltaan hyvin yksinkertaisia Käskyjä ovat usein mm. yhteenlasku, lukujen vertailu, luvun muistista hakeminen, jne
Tietokoneen perusrakenne: suoritin 2/4 Suorittimen perusosat ovat ohjausyksikkö ja ALU (Arithmetic and Logic Unit) Ohjausyksikkö noutaa konekäskyjä muistista ja vastaa niiden suorittamisesta ALU taas toimii ohjausyksikön käskyjen alaisena ja suorittaa yksinkertaisia lasku- ja vertailutoimenpiteitä AND, OR, NOT,... Yhteen- ja vähennyslaskut Kerto- ja jakolaskut
Suorittimen rekisterit Yleisrekisterit: väliaikainen suorittimen tietojen tallentaja ALUn piirien tiedot, tulosten vastaanotto Ohjausyksikössä erikoisrekisterejä: ohjelmalaskuri, käskyrekisteri ja pino-osoitin Ohjelmalaskuri: seuraavan suoritettavan käskyn osoite Käskyrekisteri: parhaillaan suoritettava käsky Pino-osoitin: osoitin ohjelman parametreihin, eräänlainen kirjanpitäjä suorituskohdasta sekin
Yleinen muistirakenne? Rekisterit Välittömästi meneillään olevan toiminnon suoritukseen tarvittavat tiedot Keskusmuisti Lähitulevaisuudessa tarvittavat tiedot Massamuistit Pidempään säilytettävä tieto, ei välttämättä tarvita aivan heti
Tietokoneen perusrakenne: suoritin 3/4 Normaalisti suoritin hakee muistin muistipaikoista konekäskyjä numeroinnin mukaisessa järjestyksessä ja suorittaa ne vuorollaan Väylä: nippu johtimia, hoitaa suorittimen ja keskusmuistin välistä tiedonsiirtoa Eri valmistajien suorittimet eroavat usein paljon toisistaan Suorittimien ymmärtämät konekielet voivat olla täysin erilaisia Niinpä yhdelle suoritintyypille (esim. Intel) sopiva ohjelma ei sovi välttämättä toiselle (esim. Motorola)
Tietokoneen perusrakenne: suoritin 4/4
Konekäskyt Suorittimen suorittamia käskyjä Kategoriat: Tiedon siirtämiskäskyt Load, store,.. Aritmeettis-loogiset käskyt AND, OR, XOR,... Ohjauskäskyt: ohjaavat toimintaa, eivät käsittele tietoa Jump, branch,.. ehdottomat ja ehdolliset hypyt,
Mihin käskykategoriaan seuraavat kuuluvat? 1. Hae arvo keskusmuistista ja sijoita se rekisteriin 2. Hae toinen arvo keskusmuistista ja sijoita se toiseen rekisteriin 3. Aktivoi yhteenlaskupiiri: syötteinä rekisterit 1 ja 2 4. Tallenna tulos keskusmuistiin 5. Lopeta
Suorittimen käskykanta Suorittimella on käskykanta, joka sisältää kaikki konekieliset käskyt, jotka se tuntee Esimerkki käskystä: ADD R0, R1, R2 (laske yhteen R1 + R2 ja sijoita tulos R0:aan) Montako konekielistä käskyä tarvitaan, jotta voidaan toteuttaa mikä tahansa tietokoneohjelma? (eli millainen käskykanta riittää) Veikkauksia: 1000? 500? 250? 100? 10? 1?
Yksinkertaisen suorittimen käskykanta Suorittimen konekäskyt koostuvat kahdesta osasta: Operaatiokoodi kertoo, mitä käskyn pitäisi tehdä Osoiteosa määrää, mille luvuille tai muistipaikoille käskyn toiminta suoritetaan MOVE Mi,Mj (siirto) ADD Mi,Mj,Mk (lasku) MUL Mi,Mj,Mk (lasku) SUB Mi,Mj,Mk (lasku) DIV Mi,Mj,Mk (lasku) ENTER M,N (vakio) JUMP M (hyppy) JZER K,M (hyppy, jos K on nolla) JPOS K,M (hyppy, jos K on positiivinen) IN M (syöttö) OUT M (tulostus) HALT (lopetus) Yllä olevan käskykannan avulla voitaisiin koneeseen ohjelmoida mikä tahansa tietokoneohjelma!
Yksinkertainen ohjelma Ohjelma lukee lukuja näppäimistöltä ja laskee niitä yhteen, kunnes syötetään 0 Lopuksi ohjelma tulostaa summan Vasemmalla olevat luvut ilmoittavat, missä muistipaikassa mikin käsky muistissa sijaitsee 0:ENTER 10,0 talletetaan muistipaikkaan 10 luku 0 1:IN 11 luetaan näppäimistöltä luku muistipaikkaan 11 2:JZER 11,5 jos muistipaikassa 11 on 0, hypätään muistipaikkaan 5 3:ADD 10,10,11 lasketaan yhteen muistipaikkojen 10 ja 11 sisältö ja talletetaan se muistipaikkaan 10 4:JUMP 1 siirrytään muistipaikkaan 1 5:OUT 10 tulostetaan muistipaikan 10 sisältö, siirrytään seuraavaan muistipaikkaan 6:HALT odotetaan, lopetetaan ohjelman suoritus 10:- (tila summalle) 11:- (tila luvulle)
Lisää suorittimesta: bittisyys Tehokkaat työasemaprosessorit käsittelevät yhtä tavua (8 bittiä) suurempia datamääriä kerrallaan Tyypillinen määrä on 32 bittiä, ollaan parhaillaan siirtymässä 64 bittiin Puhutaan 32- ja 64-bittisistä prosessoreista Prosessorin datarekisterien sisältämä datamäärä Vain harvoin hyötyä normaalissa käytössä Rekisterejä käytetään kuitenkin myös muistiosoitteiden säilömiseen 32 bittiä riittää teoriassa osoittamaan 4GB muistia Käytännössä osa mahdollisista muistiosoitteista menee oheislaitteiden tarpeisiin -> 32 bittiset PC:t pystyvät yleensä hyödyntämään 3GB tai 3,5GB muistia
Lisää suorittimesta: liukuhihnoitus Nopeuden lisäämiseksi nykyaikaiset prosessorit suorittavat peräkkäisiä käskyjä limittäin: Käsky 1:n lopputulosta ollaan tallettamassa Käsky 2:n laskua ollaan suorittamassa Käsky 3:n dataa ollaan siirtämässä aluun valmiiksi laskettavaksi Käsky 4:ta ollaan hakemassa muistista Koska yhden osavaiheen suoritus kestää paljon vähemmän aikaa kuin koko käskyn suoritus, saadaan käskyjä enemmän suoritettua aikayksikössä Ongelmia tulee jos edellisen käskyn lopputulosta tarvitaan suoraavan käskyn suorittamiseen tai ehdollisen hyppykäskyn seurauksena seuraava suoritettava käsky ei olekaan seuraava muistissa
Lisää suorittimesta: kellosignaali Prosessorin ja koko tietokoneen toimintaa täytyy ohjata niin, että tiedetään koska edellinen operaatio on valmis ja seuraava voidaan aloittaa Tähän käytetään prosessorissa säännöllistä pulssia, kellosignaalia
Kellosignaali Kellosignaalin pulssien määrää sekunnissa sanotaan kellotaajuudeksi Kunkin pulssin aikana suoritetaan operaatioita, normaalisti liukuhihnalla olevat käskyt etenevät yhden suoritusaskeleen Aina näin ei tapahdu, ja joissain suorittimissa saatetaan tehdä enemmänkin operaatioita tehon lisäämiseksi Kellopulssi kohden tehtävä työ siis vaihtelee -> kellotaajuus ei suoraan kerro suorittimen tehokkuutta
Lisää suorittimesta: kellosignaali Konekäskyjen suorittamisesta yms. operaatioista ei ole mitään kuittausta operaation valmistumisesta Kellotaajuus tulee mitoittaa siten, että kaikki operaatiot ovat varmasti valmiit ennen seuraavaa kellopulssia Jos jokin operaatio ei olekaan valmis, saattaa tapahtua melkein mitä vain datan arvot menevät pieleen ohjelma toimii väärin kone lukkiuttuu ja mitään ei enää tapahdu
Lisää suorittimesta: kellosignaali Tietokoneen valmistajat joutuvat jättämään hieman pelivaraa että myytävät koneet varmasti toimivat luotettavasti Kellotaajuutta on siis yleensä mahdollisuus hieman kasvattaa Tätä kutsutaan ylikellottamiseksi Jos prosessoria ei muuten muuteta, on prosessorin viemän sähkön määrä ja täten syntyvän lämmön määrä suorassa suhteessa kellotaajuuteen
Lisää suorittimesta: keskeytykset Prosessoriin menee erityisiä signalointijohtoja, keskeytyslinjoja. Keskeytyksen tullessa ohjelmalaskurin arvo talletetaan keskusmuistiin ja sinne ladataan uusi arvo ennalta määrätystä paikasta keskusmuistia. Suoritettavana oleva ohjelma siis keskeytyy, ja suoritukseen tulee uusi ohjelma. Koska ohjelmalaskurin arvo otettiin talteen, voidaan keskeytynyttä ohjelmaa jatkaa siitä missä oltiin menossa Keskeytykset ovat välttämättömiä nykyaikaisen moniajon toteuttamiseen. Tästä puhuttiin myös käyttöjärjestelmäluennoilla...
Lisää suorittimesta: välimuisti Keskusmuisti on suorittimeen verrattuna todella hidasta Prosessorin operoidessa keskusmuistissa olevan datan kanssa joutuu se odottamaan datan kulkemista 90% ajastaan Välimuisti on nopeaa erikoismuistia, joka nykyään sijaitsee samalla mikropiirillä prosessorin kanssa Välimuisti on erittäin kallista verrattuna keskusmuistiin nykyään 512kB 8 MB
Lisää suorittimesta: välimuisti Välimuistin toimivuus perustuu siihen, että tosielämän ohjelmat ovat hieman aiemman esimerkkiohjelman kaltaisia: lyhyehköä ohjelmanpätkää toistetaan Tämä toistettava pätkä mahtuu siis pienehköönkin välimuistiin Älä sekoita virtuaali- eli näennäismuistiin!
Entäs se virtuaalimuisti? Kutsutaan myös näennäismuistiksi Osa prosessorin muistista sijaitsee keskusmuistin sijasta massamuistissa eli esimerkiksi kovalevyllä Osoiteavaruus ja muistiavaruus
PC-koneen rakenne
Mitä tapahtuu kun PC käynnistyy? 1. Koneen pysyväismuistissa oleva alkulatausohjelma ajetaan. Tästä vastaa BIOS (Basic Input Output System). 2. BIOS diagnosoi lyhyesti ongelmia, jotka voivat estää koneen käynnistämisen Esimerkiksi näppäimistön puuttuminen 3. Alkulataaja hakee aivan kovalevyn alusta käynnistyssektorin, joka luetaan ja ajetaan 4. Tästä eteenpäin kovalevyltä haettu koodi vastaa suorituksen etenemisestä Tämä koodi on osa käyttöjärjestelmää 5. Käyttöjärjestelmä suorittaa omia alustustoimintojaan