Mikä on tietokone PUNOMO NETWORKS OY 22.7.2016 pva, piirroskuvat J. Mansikkaviita Henkilökohtaisesti olen aina valmis oppimaan, vaikka en välitäkään tulla opetetuksi. - Winston Churchill Tietokone on elektroninen laite, joka suorittaa sille annettua tehtävää eli ohjelmaa. Tietokone tosin ei tiedä yhtään mitään. Se osaa vain laskea. Ja kun se ei tunne muita numeroita kuin 1 ja 0, ei sen laskentataitokaan kovin kaksinen ole. Mutta kun se tekee laskentaa hyvin, hyvin nopeasti, lopputulos on ihmeellistä. Tietokone voi olla yleiskäyttöinen, - moneen erilaiseen tehtävään soveltuva, kuten PC, tai johonkin tiettyyn erityistarkoitukseen valmistettu, - jollaisia kaikki sulautetut järjestelmät ovat. Älykännykät ovat pieneen tilaan paketoituja, mutta suuret ominaisuudet omaavia tietokoneita. Raspberry Pi tietokone Pankkikortin kokoinen ohjelmoinnin opiskeluun tehty tietokone, RaspberryPi. hinta 35 $. Käyttöjärjestelmä ja muut ohjelmat on asennettu SD-muistikortille. Liittimet: nettiyhteyttä varten, näytölle, kameralle, kuulokkeille, USB-laitteille ja input/outputpiikkirima. 1
Mistä tietokone koostuu ja mitä se tekee? Tietokoneen tärkeimmät komponentit: mikroprosessori (CPU, Central Prosessing Unit) ohjelmamuisti - lukumuisti datamuisti - luku/kirjoitus-muisti 1. Tietokone käsittelee tietoa. Tiedon käsittely - työstäminen ja siis ohjelmien ajo tapahtuu ohjelmakoodin ohjaamana tietokoneen keskusyksikössä, mikroprosessorissa, CPU, Central Prosessing Unit, apuna se käyttää erilaisia muisteja ja muita oheislaitteita. 2. Miten tietoa käsitellään? Jossain on oltava ohjeet tiedonkäsittelyyn. Ohjeet, käskyjono, ovat ohjelmassa, jonka ohjelmoija, koodari, on kirjoittanut. Ohjelma määrää miten tietoa käsitellään oli se sitten tekstiä, kuvaa, ääntä tai muuta. Sitä säilytetään ohjelmamuistissa, joka on flash tai kiintolevy, tai joku muu paikka, kuitenkin sellainen, ettei koodi katoa bittiavaruuteen sähkönsyötön katkettua. 3. Mistä ohjeet ja työstettävä tieto haetaan ja minne käsitelty tieto viedään? CPU osoittaa osoiteväylän (nippu rinnakkaisia johtoja) avulla ohjelmamuistia kun sieltä haetaan ko. osoitteesta käsky CPU:n käskynkäsittely-yksikköön. Osoitetta tarvitaan myös, kun haetaan työstettävä tieto datamuistista tai ulkoisesta laitteesta (kiintolevyltä, tai antureilta, tai näppäimistöltä, tai netistä...), tai kun käsitelty tieto tallennetaan jonnekin tai viedään ohjaamaan ulkoista laitetta. Elektronikko näkee prosessorin, joka - sisältää tuhansittain (miljoonittain) MOSFET-transistoreita, - joista on tehty o portteja, kiikkuja, laskureita, multipleksereitä, koodereita... Ohjelmoija näkee prosessorin, joka - sisältää rekistereitä (esim 8-bitin muistipaikka) ja - käskyt, joilla rekistereitä manipuloidaan 2
Mitä CPU sisältää? Mikroprosessori on mikrotietokoneen keskusyksikkö, joka suorittaa sille ohjelmakoodina annettua tehtävää. CPU koostuu kolmesta toimintalohkosta. 1. Datan käsittely-yksikkö 2. Käskyn käsittely-yksikkö 3. Osoitteen käsittely-yksikkö 1. Datan eli tiedonkäsittely-yksikkö jossa tiedon työstäminen tapahtuu.tiedon käsittely: hoituu ACCUrekisterin ja ALUn, Aritmeettis-Looginen yksikkö, yhteistyönä. Tiedon käsittely voi olla: - tiedon siirtoa jostain rekisteristä toiseen tai varsinaiseen muistiin - tai päinvastoin, - jonkin rekisterin alustus (arvon asettaminen) (rekisterissä tallennetaan on 8/16/32/64 rinnakkaista bittiä) Parhaimmillaan se on varsinaista tiedon manipulointia, kuten yhteenlaskua, vähennyslaskua, inkrementointia, dekrementointia, vertailua, AND-operaation tekoa, jne. 2. Käskyn käsittely-yksikkö Tiedonkäsittelyn ohjeet ovat ohjelmassa, jonka ohjelmoija on kirjoittanut. Siis prosessorissa on oltava osa joka hakee, tunnistaa ja toimii noiden ohjeiden mukaan. Ohjeiden tulee olla yksinkertaisia, joten niitä tarvitaan paljon. Ohjeet ovat pieniä, peräkkäisiä käskyjä, joita tietokone käsittelee hirmuisella nopeudella. Koodin tulkinta ja toteutus tapahtuu käskyn käsittely-yksikkössä, Instruction Decoder. Sen kaverina toimii ohjaus- ja valvontaosa, Control Unit, joka tahdittaa CPU:n sisäisiä toimintoja ja valitsee liitäntäpiirit ja ohjaa niiden kautta kytkettyjen toimilaitteiden työskentelyä. 3. Osoitteen käsittely-yksikkö CPU osoittaa osoiteväylän (nippu rinnakkaisia johtoja) avulla ohjelmamuistia kun sieltä haetaan ko. osoitteesta käsky käskyrekisteriin. Osoitetta tarvitaan myös, kun haetaan käsiteltävä tieto muistista tai ulkoisesta piiristä, tai kun käsitelty tieto tallennetaan tai viedään ohjaamaan ulkoista laitetta. Tämän hoitaa Ohjelmalaskuri, Program Counter. Osoiterekisteri pitää kirjaa ohjelmasta ja osoittaa seuraavaksi noudettavan käskyn osoitteeseen, tai manipuloitavan tietoaihion, tavun, osoitteeseen. Ohjelmalaskuri nollautuu tietokoneen käynnistyessä, joten osoitteessa 0x0000 tulee olla (tietokoneen käynnistys-) ohjelman ensimmäinen käsky. Toinen tärkeä osoiterekisteri on pinomuistin osoitusrekisteri, Stack Pointer. Pinomuisti on data-muistista varattu muistialue, johon keskeytyksen tullessa pääohjelman paluuosoite ja muuttujat tallennetaan. Kun keskeytysohjelma on suoritettu, pääohjelman paluuosoite palautetaan pinosta CPU:n ohjelmalaskurin arvoksi ja pääohjelma jatkuu siitä mihin jäätiin. Näin ajatellen monimutkaisen CPU:n toiminta on helppo ymmärtää. Ja mikä parasta, kaikki prosessorit toimivat samalla periaatteella pienimmästä AVR Tinysta suurimpaan PC:n Pentiumiin, ARMista puhumattakaan. Idea on sama, vain tehokkuus vaihtelee. 3
Mikroprosessori versus mikro-ohjain Mikro-ohjain on yhdelle piipalalle integroitu tietokone. Siinä on mikroprosessorin ympärille rakennettu kaikki tietokoneen tarvitsemat oheislaitteet, kuten muistit ja input/output-piirit. Tässä on lohkokaaviokuva 8-bittisestä AVR-mikro-ohjaimesta. RaspberryPi-3:ssa on 64-bittinen ARM-ohjain. Ero tehokkuudessa on valtava: AVR käsittelee dataa 8-bitin paketeissa, ARM 64-bitin paketeissa. 4
Puolijohdemuistit Valmis tietokoneohjelma pitää tallentaa johonkin, josta se on saatavissa käyttöön aina, kun sitä tarvitaan. Myös käsiteltävä, tai käsitelty, tieto pitää tallentaa johonkin. Koodin ja datan tallennukseen käytetään puolijohdemuisteja. Puolijohdemuisti on elektroninen piiri, joka tallentaa numeroita sähköisessä muodossa. Muistiin tallennetaan binäärilukuja, jotka ovat joko käskyjä tai tietoa (dataa). Jokaisella muistipaikalla on oma osoite ja kussakin muistipaikassa on tallessa yksi binääriluku, tavu, joka puolestaan koostuu kahdeksasta bitistä. Bitit tallennetaan muistikennoihin. Muistien toiminta ja käyttö eroaa tuon tallennustavan perusteella. Tänä päivänä sulautetuissa järjestelmissä on käytössä kolmea muistityyppiä: Datamuisti, Data Memory Datamuisti on käyttömuistia jota pitää voida lukea ja kirjoittaa tavu kerrallaan. SRAM-muistikenno (Static Random Access Memory), siis se mihin yksittäinen bitti tallennetaan, koostuu MOSFETtransistoreista rakennetuista kiikuista (flip-flop). Tieto häviää käyttösähkön katkettua. SRAM-muisti. 5
Ohjelmamuisti, Program Memory Ohjelmamuistin tulee olla haihtumatonta ROM-tyyppistä muistia (Read Only Memory), eli se säilyttää tietonsa sähkökatkoksen yli. Ohjelmointi, bittien tallentaminen muistikennoon, tapahtuu ennen muistin käyttöönottoa. Flash-muisti on tämänpäivän ohjelmamuistia. Siinä bitti talletetaan FET-transistorin gate-kapasitanssiin (kondensaattoriin). Flash-muistia ei voi käsitellä RAM-muistin tapaan bitti bitiltä, vaan kokonainen muistilohko pitää alustaa ja ohjelmoida kerrallaan. Alustettuna eli tyhjennettynä flash-muistin kaikki bitit ovat loogiselta tilaltaan ylhäällä, siis '1'. Lukeminen kyllä onnistuu tavu (8 bittiä) kerralla. Ohjelmamuisti. 6
Mikrotietokone on laite, - joka suorittaa ohjelmamuistiin tallennettujen käskyjen ( =ohjelma) avulla mikroprosessorin (=CPU) ohjauksessa tiedonsiirtoa työmuistin (RAM) ja syöttö/tulostuslaitteiden (input/output) välillä - ja ennenkaikkea tiedonkäsittelyä. Mikroprosessori, suoritin, CPU on komponentti, - jonka toiminta on ohjattavissa muistiin tallennetuilla käskyillä (=ohjelma) se voi käskyjen mukaan: - siirrellä tietoa - suorittaa aritmetiikka (+, -, inkrementointi, dekrementointi...) ja loogisia operaatioita (AND, OR...) - tehdä päätöksiä (if-else) Mikro-ohjain, mikrokontrolleri on komponentti, jossa samaan piiriin on integroitu * mikroprosessori, * ohjelma- ja työmuistit * ja Input/Output-piirit. Se on siis yhdelle piirille (=chip) integroitu tietokone. 7