| 
   1 
   | 
  
  
  
  
   - Lukujärjestelmät
 
   - Kokonaisluvut
 
   - Liukuluvut
 
   - Merkit, merkkijonot
 
   - Totuusarvot
 
   - Kuvat, äänet, hajut(?)
 
    
    
   
   
   | 
 
 
  | 
   2 
   | 
  
  
  
  
   - Kommunikointi ihmisen kanssa
 
   
   - Laitteiston sisäinen talletus
 
   
    - kuvaformatit, ääniformatit, pakkausstandardit, ...
 
    - kokonaisluvut, liukuluvut, merkit, merkistöt
 
    - ohjelmat
 
    
   - Suorittimen omana lajinaan ymmärtämät tyypit
 
   
    - on olemassa konekäskyjä tälle tietotyypille
 
    - kokonaisluvut
 
    - liukuluvut (useimmat suorittimet nykyään)
 
    - totuusarvot (jotkut suorittimet)
 
    - merkit (jotkut suorittimet)
 
    - konekäskyt
 
    
   
   
   | 
 
 
  | 
   3 
   | 
  
  
  
  
   - Kaikki tieto koneessa on binääribitteinä (0 tai 1)
 
   
    - binäärijärjestelmän numerot: 0, 1
 
    - helppo toteuttaa piireillä
 
    - helppo suunnitella logiikkaa Boolen algebran avulla
 
    
   - Muisti jaettu tasapituisiin sanoihin
 
   
    - sana = word = 32 bittiä  (16
        bittiä, 64 bittiä, …)
 
    
   - Usein sana on jaettu tasapituisiin 
 
              8-bittisiin tavuihin 
   
   
   | 
 
 
  | 
   4 
   | 
  
  
  
  
   - Tietoa siirretään muistiväylää pitkin sanoina
 
   
    - joskus useampi kuin yksi sana kerrallaan (lohko)
 
    
   - Suorittimen rekisterit ovat yleensä yhden tai kahden sanan mittaisia
 
   
    - 1 sana: kokonaisluku, pieni liukuluku
 
    - 1 sana: 1 merkki tai 4 merkkiä
 
    - 2 sanaa: pitkä kokonaisluku, iso liukuluku
 
    
    
   
   
   | 
 
 
  | 
   5 
   | 
  
  
  
  
   - Kysymys: miten esittää eri tyyppisiä tietoja?
 
   - Vastaus: koodataan ne biteiksi
 
   
    - kaikki tieto on koneessa bitteinä
 
    
   - Kaikelle käsitellylle tiedolle on omat koodausmenetelmänsä
 
   
    - kaikkia koodausmenetelmiä ei ole standardoitu
 
    - samalla tietotyypille voi olla useita koodausmenetelmiä
 
    
     - kokonaisluvut, liukuluvut, merkit, merkkijonot, kuvat, ...
 
     
    - ongelma: ymmärtävätkö koneet toisiaan?
 
    
     - tiedon esitysmuotoa voidaan joutua muuttamaan, 
 
                  kun tietoa siirretään koneelta toiselle 
     
    
   
   
   | 
 
 
  | 
   6 
   | 
  
  
  
  
   - Kaikki tieto koneessa on koodattuna biteiksi
 
   - Muistissa voidaan esittää kaikki tieto millä tahansa sovitulla
       esitystavalla (koodauksella)
 
   - Suoritin osaa tehdä operaatioita joillakin esitystavoilla koodatuille
       tiedoille
 
   
    - kokonaisluvut ja liukuluvut (aina)
 
    - totuusarvot, merkit ja merkkijonot (joskus)
 
    - kuvat ja äänet (ei yleensä ellei erikoistunut suoritin)
 
    - hajut (ei vielä)
 
    
   - Muiden tietojen käsittely tapahtuu ohjelmallisesti
 
   
    - esim. merkkejä voidaan käsitellään kokonaislukuoperaatioilla ja
        aliohjelmilla
 
    
   
   
   | 
 
 
  | 
   7 
   | 
  
  
  
  
   - Kantaluku 2, numerot 0 ja 1
 
   
    - numeroiden painoarvot oikealta vasemmalle:
 
                1=20, 2=21, 4=22, 8=23,
        16=24, 32=25, … 
    - kymmenjärjestelmässä painoarvot ovat
 
                1=100, 10=101, 100=102,
        1000=103, … 
    
   
   
   | 
 
 
  | 
   8 
   | 
  
  
   | 
 
 
  | 
   9 
   | 
  
  
   | 
 
 
  | 
   10 
   | 
  
  
  
  
   - Binääriluvuilla voi olla myös binääriosa
 
              (vrt. desimaaliosa) 
   
   
   | 
 
 
  | 
   11 
   | 
  
  
   | 
 
 
  | 
   12 
   | 
  
  
  
  
   - 2-järjestelmä  Þ 10-järjestelmä
 
   
   - 10-järjestelmä  Þ 2-järjestelmä
 
   
    - kokonaisosa ja desimaaliosa erikseen
 
    - kokonaisosa:
 
    
     - jaa toistuvasti 2:lla, kunnes 0 jäljellä
 
     - ota jakojäännökset käännetyssä järjestyksessä
 
      
      
     
    
   
   
   | 
 
 
  | 
   13 
   | 
  
  
   | 
 
 
  | 
   14 
   | 
  
  
  
  
   - Kerrotaan toistuvasti desimaaliluvun desimaaliosa 2:lla, kunnes
 
   
    - desimaaliosa = 0  (tarkka
        binääriesitys)
 
    - tarpeeksi numeroita haluttuun tarkkuuteen
 
    
   - Tulos saadaan ottamalla saatujen desimaalilukujen kokonaisosat (0 tai 1)
       lasketussa järjestyksessä
 
   
   
   | 
 
 
  | 
   15 
   | 
  
  
   | 
 
 
  | 
   16 
   | 
  
  
  
  
   - Binäärilukuja käyttö on tarpeellista, mutta niitä on ikävä kirjoittaa
 
   
   - Kirjoitetaan ne 16-järjestelmässä eli heksadesimaalijärjestelmässä
 
   - 4 bittiä vastaa aina yhtä 16-järjestelmän numeroa
 
   - Yksi 16-järjestelmän numero vastaa aina 4 bittiä
 
   - 16-järjestelmän numerot ovat:
 
              0,1,2,3,4,5,6,7,8,9, A, 
       B,  C,  D, 
       E ja F 
   
   
   | 
 
 
  | 
   17 
   | 
  
  
   | 
 
 
  | 
   18 
   | 
  
  
   | 
 
 
  | 
   19 
   | 
  
  
  
  
   - Miten monitavuiset arvot talletetaan?
 
   
   
   | 
 
 
  | 
   20 
   | 
  
  
  
  
   - Monitavuisen tiedon (sana-) osoite on sama molemmissa tapauksissa
 
   - Tavujen järjestys on erilainen
 
   - Suorittimen suunnittelija päättää
 
   
    - Matematiikkapiirien tulee tietää miten luvut esitetty
 
    - Täytyy ottaa huomioon siirrettäessä tietoa verkon yli
 
    
   - Power-PC: bi-endian - molemmat moodit käytössä
 
   
    - voidaan valita ohjelmakohtaisesti
 
    - etuoikeutetussa tilassa voidaan vielä valita erikseen
 
    - suoritin osaa laskea kummallakin tavalla talletetuilla luvuilla
 
    
   
   
   | 
 
 
  | 
   21 
   | 
  
  
  
  
   - Etumerkkibitti erikseen
 
   - Yhden komplementtiesitys
 
   - Kahden komplementtiesitys
 
   - Vakiolisäys
 
   
    - Esim lisää 127 (=28 –1)
 
    - Talleta etumerkittömänä
 
    
   
   
   | 
 
 
  | 
   22 
   | 
  
  
  
  
   - Useimmiten käytössä
 
   - Etu: vain yksi nolla
 
   
    - yhden komplementissa kaksi nollaa
 
    
     - +0 = 0000 0000     -0 = 1111
         1111
 
     
    
   - Helpot muunnokset: arvo ↔ esitysmuoto
 
   
    - miten arvo -57 esitetään?
 
    
    - mitä arvoa esitysmuoto 1100 0111 tarkoittaa?
 
    
     - - (0011 1000 +1) = -0011 1001 = -57
 
     
    
   
   
   | 
 
 
  | 
   23 
   | 
  
  
  
  
   - Tietokoneessa ei ole realilukuja tai rationaalilukuja (matemaattiset
       käsitteet)
 
   - Aina rajallinen esityksen tarkkuus
 
   
    - lukuja p (pii), SQRT(2),
        tai 1/3 ei voi esittää tarkasti
 
    - esim. luvut 1.000000000 ja luvut 1.000000001 ovat yhtäsuuria (joissakin
        esityksissä)
 
    
   - Yleinen realilukuja vastaava esitysmuoto on liukukuesitysmuoto
 
   
    - 32 bittiä, noin 7-8 desimaalinumeron tarkkuus
 
    - 64 bittiä, noin 16-17 desimaalinumeron tarkkuus
 
    
    
   
   
   | 
 
 
  | 
   24 
   | 
  
  
   | 
 
 
  | 
   25 
   | 
  
  
  
  
   - Etumerkki
 
   
    - 1 bitti, 1Þ “-”,  0 Þ “+”
 
    - etumerkkibitti S  Þ etumerkin
        arvo =  (-1)S
 
    
     - +:n eli 0:n arvo on +1
 
     - -:n eli 1:n arvo on -1
 
     
    
   
   
   | 
 
 
  | 
   26 
   | 
  
  
  
  
   - 8 bittiä eksponentille, lisättynä 127:llä
 
   
    - esitysmuodot 0 ja 255 erikoistapauksia
 
    
     - laajennettu arvoalue: hyvin pienet luvut, NaN,  ±¥
 
     
    - talletettu arvoalue: 1 - 254 Þ tod. arvoalue:  -126 
        - 127
 
                                        (esitysmuoto)                           (arvoalue) 
    
   
   
   | 
 
 
  | 
   27 
   | 
  
  
  
  
   - 23 bittiä mantissalle, siten että ...
 
   
   
   
   | 
 
 
  | 
   28 
   | 
  
  
   | 
 
 
  | 
   29 
   | 
  
  
   | 
 
 
  | 
   30 
   | 
  
  
  
  
   - Yleensä 1 tavu per merkki
 
   - ASCII, 7 bittiä/merkki (+ tark. bitti?)
 
   - EBCDIC, 8 bittiä/merkki
 
   - ISO/IEC 8859-15 ('Latin-9'),
 
   
    - 8-bittiä/merkki, 256 eri merkkiä käytössä
 
    - mukana myös ä, ö, š, €
 
    
   
   
   | 
 
 
  | 
   31 
   | 
  
  
  
  
   - UCS - Universal Character Set
 
   - Samat merkistöt, eri standardit
 
   - 2 tavua eli 16 bittiä per merkki
 
   
    - 65536 merkkiä koko maailmassa käytössä oleville 
 
                n. 200000 symbolille 
    
   - Kontrollimerkit
 
   
    - 0x0000-001F and 0x0080-009F
 
    - 0x007F = DELETE,  0x0020 = SPACE
 
    
   - UCS:ssä myös 8-bittiset koodi ”rivit”
 
   
    - eri alueille tai tarkoituksiin (zone) omat 8-bittiset koodinsa
 
    
   
   
   | 
 
 
  | 
   32 
   | 
  
  
  
  
   - Merkit välillä 0x0000-00FF (16 bittiä) samassa järjestyksessä kuin
       Latin-9 merkistössä (8 bittiä)
 
   
    - 16-bittisen UCS:n ”rivi 00” = 8-bittinen Latin-9
 
    
   - Myös muut aakkoset:
 
   
    - I-zone = Kanji  (0x4E00-9FFF,
        20992 merkkiä)
 
    
   - Ei omia konekäskyjä, manipulointi aliohjelmilla
 
   
   
   | 
 
 
  | 
   33 
   | 
  
  
  
  
   - Yleensä peräkkäin talletettu joukko tavuja
 
   - Lisäksi tarvitsee jollain tavalla koodata merkkijonon pituus
 
   
    - laitetaan loppuun erikoismerkki, tai
 
    
    - toteutetaan tietueena
 
    - ei omia konekäskyjä, manipulointi aliohjelmilla
 
    
     - kokonaisluku- ja bittimanipulointikäskyt
 
     - joissakin koneissa ”strcopy” ja ”strcmp” konekäskyt
 
     
    
   
   
   | 
 
 
  | 
   34 
   | 
  
  
  
  
   - Boolen TRUE ja FALSE
 
   - Yleensä koodattu TRUE=1, FALSE=0
 
   
    - muttei aina!
 
    - Totuusarvolauseke A and B = kokon.lukulauseke A*B
 
    
   - Usein Boolen arvo per sana
 
   
    - loput 31 bittiä nollia
 
    - ohjelmointikielten Boolen muuttujat
 
    
   - Joskus pakatussa muodossa 32 arvoa per sana
 
   - Ei omia konekäskyjä, manipulointi aliohjelmilla
 
   
    - kokonaisluku- ja bittimanipulointikäskyt
 
    - haluttu konekäsky ”JTRUE ...” voidaan toteuttaa 
 
                konekäskynä ”JPOS …”   (jos
        TRUE = 1) 
    
   
   
   | 
 
 
  | 
   35 
   | 
  
  
  
  
   - Monta kuvastandardia
 
   
    - yleisyys, siirrettävyys, pakkaustiheys
 
    - näyttöä varten tarvittavan laskennan määrä
 
    
   - Kuvatiedoston alussa otsake kertoo talletusformaatin
 
   - Viiva- ja vektorikuvat
 
   
    - kuva koodattuna objekteina
 
    
     - ympyrä, monikulmio, käyrä, alueen väri
 
     
    
   - Rasterikuvat
 
   
    - kuva koodattuna pisteinä
 
    
     - kunkin pisteen väri koodattu esim. 24 bitillä
 
     
    
   
   
   | 
 
 
  | 
   36 
   | 
  
  
  
  
   - Kuvat ovat yleensä pakattu mahdollisimman vähän tilaa vievää muotoon
 
   
    - optimoitu tilan, ei laskennan mukaan
 
    - purkaminen voi vaatia paljon laskentaa
 
    
   - GIF, JPEG, TIFF, BMP, ….
 
   - Ei omia konekäskyjä, manipulointi aliohjelmilla
 
   
   
   | 
 
 
  | 
   37 
   | 
  
  
  
  
   - Vie hyvin paljon muistitilaa
 
   - Talletus kuva kerrallaan, esim. 25 kuvaa/sek
 
   
    - 1 sekunti hyvälaatuista videokuvaa pakkaamattomassa muodossa 20 MB
 
    
   - Talletus ”incrementaalisesti”
 
   
    - kun seuraava kuva poikkeaa edellisestä vain vähän ...
 
    - talleta vain muutokset edelliseen
 
    
   
   
   | 
 
 
  | 
   38 
   | 
  
  
  
  
   - MPEG (Moving Pictures Expert Group)
 
   - AVI (Audio Visual Interleave)
 
   - MOV, INDEO, FLI, GL, DVD, ...
 
   - Ei omia konekäskyjä, manipulointi aliohjelmilla tai ...
 
   - Erikoisprosessoreilla (GPU), joiden käskykanta suunniteltu (jonkin
       standardin mukaisten kuvien) kuvankäsittelyyn
 
   
   
   
   | 
 
 
  | 
   39 
   | 
  
  
  
  
   - Esim. 4-64 MB VRAM (dual-port) muistia ...
 
   
    - 2 lukua/kirjoitusta samanaikaisesti
 
    
   - ... tai ”tavallista”, mutta hyvin nopeaa RAMia
 
   - Nopea väylä (ennen PCI, nyt AGP) suorittimelle
 
   - Näytönohjaus monitoristandardien (VGA, XGA, RGB, ...) mukaisesti
 
   - Oma suoritin (GPU)
 
   
    - lukee videodataa ja generoi 
 
                näytettävän kuvan näyttö- 
                puskuriin, josta monitori  
                sen näyttää 
    
   - Voi olla integroitu 
 
              emolevyn kanssa 
   
   
   | 
 
 
  | 
   40 
   | 
  
  
  
  
   - Täydellinen äänidata
 
   
    - 44100 näytettä/sek, 16 b/näyte, 88KB /sek
 
    
   - Syntetisoitu ääni
 
   
    - MIDI-käskyjä
 
    
     - Music Instrument Digital Interface
 
     - ”Soita nuotti N voimakkuudella V”
 
     
    
   - Ei omia konekäskyjä, manipulointi aliohjelmilla tai ...
 
   - Erikoisprosessoreilla, joiden käskykanta suunniteltu äänen käsittelyyn
 
   
   
   
   | 
 
 
  | 
   41 
   | 
  
  
  
  
   - Esim. 4-64 MB 
 
              VRAM tai  
              RAM muistia 
   - Nopea väylä 
 
              (esim. PCI)  
              suorittimelle 
   - Oma suoritin, joka lukee äänidataa ja generoi äänet kaiuttimille tai
       vahvistimeen
 
   
    - kaiuttimet tai vahvistin kiinni äänikortilla
 
    
   - Voi olla integroitu emolevyn 
 
              (tai grafiikkakortin) kanssa 
    
    
   
   
   | 
 
 
  | 
   42 
   | 
  
  
  
  
   - Tähtien kirkkaus, hajut,
 
              veneen tyyppi, tunteen palo, …. 
   - Toteutus sovelluskohtaisesti, ei vielä yleisiä standardeja
 
   
    - kokonaisluvut (diskreetti data)
 
    - liukuluvut (jatkuva data)
 
    
   - Ei omia konekäskyjä, manipulointi omilla aliohjelmilla
 
   
   
   | 
 
 
  | 
   43 
   | 
  
  
   |