|
Johdanto
Tietokoneen ja digitaalisen laskennan eräänä lähtökohtana pidetään helmitaulua. Tämä yksinkertainen keksintö mahdollistaa aritmeettisten ongelmien ratkaisun käyttäjän muistamien ohjelmointisääntöjen avulla. Ensimmäinen varsinainen automaattinen digitaalinen tietokone lienee Blaise Pascalin 1600 luvulla suunnittelema mekaaninen laite, jolla voitiin laskea yksinkertaisia yhteenlaskuja. Tietokonelaskennan teoreettista pohjaa vei roimasti eteenpäin Charles Babbage 1800-luvun alkupuolella Cambridgen yliopistossa, jolloin hän myös suunniteli ja yritti toteuttaa kahta mekaanista tietokoneen esisastetta.
Ensimmäisenä onnistuneena elektronisena tietokoneena pidetään yleensä 1946 valmistunutta ENIAC:ia (Electronic Numerical Intergator and Computer). ENIAC:issa oli n. 19 000 elektroniputkea, 1 500 relettä ja satoja tuhansia vastuksia, kondensaattoreita ja keloja. Sähkötehoa tämä tonnien painoinen laite kulutti lähes 200 kW. Transistorin keksiminen mahdollisti tietokoneen pienentämisen ja luotettavuuden huomattavan lisäämisen ja ensimäiset transistoripohjaiset kaupalliset tietokoneet syntyivät 1950-luvulla. Kolmas merkittävä kehitysaskel tietokoneen historiassa oli integroitujen piirien kehittäminen. Tällöin pystyttiin aikaisemmin erilliskomponenteista rakennettu monimutkainen kytkentä toteuttamaan yhdellä piirillä. Tämän jälkeen kehitys on mm. keskittynyt laskentaytimen arkkitehtuurin toteuttamiseen, muistien kehittämiseen sekä ohjelmoinnin kehitykseen. Lopputuloksena ovat mm. tätäkin tekstiä lukiessa tarvittavat PC:n eri prosessorit.
Binäärilukujärjestelmä
Helmitaulu selventää koneellisen laskennan ja numeroiden esitysmuodon problematiikkaa digitaalisessa numeroiden esittämisessä. Itse helmitaulun helmet eivät suoraan esitä mitään käyttämämme kymmenjärjestelmän numeroarvoa, jonka johdosta helmitaulun laskukyky ei aukene asiasta tietämättömälle. Helmitauluun liittyy lisäksi käyttäjän päässä oleva ohjelma, jonka mukaan laskutoimitukset suoritetaan. Kuten kurssin alkuosassa jo mainittiinkin, digitaalisessa järjestelmässä alkeellisin numeron esitysmuoto on bitti, joka voi saada vain arvon yksi tai nolla. Tämä tavallaan vastaa helmitaulun helmen asentoa helmitaulun lukujärjestelmässä. Yhdistämällä useampia bittejä (tai helmiä), voidaan esittää suurempia lukuarvoja.
Binäärilukujärjestelmässä, eli kaksikantaisesssa lukujärjestelmässä, tavoitteena on esittää mikä tahansa lukuarvo kahdella loogisella symbolilla ja näiden kombinaatioilla. Ihmisen logiikan kannalta nämä symbolit voisivat olla "tosi" ja "epätosi". Elektroniikassa loogisen arvon esittämiseen on luontevaa käyttää jännitettä ja virtaa. Tyypillisesti tämä on käytännössä toteutettu sopimalla jänniterajat, jolloin tietyn tason alapuolella jännite esittää toista tilaa (alhaalla) ja tietyn tason yläpuolinen jännite esittää toista symbolia (ylhäällä). Yleisen käytännön mukaan digitaalielektroniikassa näiden loogisten symbolien esittämiseen käytetään symboleita nolla ja yksi - 0 ja 1. Yksinkertaisella digitaalisella signaalilla ei ole kuin kaksi arvoa eli tilaa: tosi ja epätosi (on - ei, 1 - 0, ylhäällä - alhaalla).
Digitaalipiirit ovat siis yleensä binäärisia, eli niissä on kaksi tilaa: piirissä kulkee virta/ei kulje tai jännitetaso on korkea/matala - BITTI on joko 1 tai 0.
Esimerkiksi ennen hyvin yleinen TTL-logiikka (transistor-transistor logic) käyttää loogisen tilan ilmaisuun jännitettä, jossa 0-0.4 V vastaa loogista nollaa (epätosi) ja 2.4 - 5.0 V vastaa loogista ykköstä (tosi) positiivisen logiikan tapauksessa. Välialue 0.4 - 2.4 V on "kielletty" alue, jossa looginen tila ei ole määritelty. Tällä välialueella ei tavallisesti olla kuin hetki tilanvaihdossa, siis vaihdettaessa looginen arvo 0 -> 1 tai päinvastoin, seuraava kuva.
TTL-logiikan loogisen tilan esittämiseen käytetään jännitetasoja. Positiivisen logiikan tapauksessa yli 2.4 V:n jännite vastaa loogista arvoa 1 ja alle 0,4 V:n jännite arvoa 0. b-kuvassa tyypillinen digitaalinen jännitteen pulssikuvio ajan suhteen, joka voisi esittää esimerkiksi tietokoneen kellosignaalia.
Digitaalinen laskenta ja kaksiarvoinen numerojästelmä vaatii hieman erilaista lähestymistapaa numeroiden käsittelyyn verrattuna ihmiselle läheisempään kymmenjärjestelmään ja kymmenjärjestelmässä opittuihin laskusääntöihin. Toisaalta on ymmärrettävää, että sormien lukumäärästä alunperin lähtöisin oleva kymmenjärjestelmä ei välttämättä parhaalla tavalla sovellu koneelliseen laskentaan.
|
|