tietojenkäsittelyyn käytetty laite From Wikipedia, the free encyclopedia
Tietokone on laite, joka käsittelee numeeris-loogista tietoa ohjelmointinsa mukaisesti. Arkikielessä tietokoneella tarkoitetaan yleensä yleiskäyttöistä laitetta, joka on tarkoitettu suorittamaan monenlaisia tietojenkäsittelytehtäviä. Myös esimerkiksi pelikonsolit ja matkapuhelimet ovat perusluonteeltaan tietokoneita, vaikka erikoistuneiden käyttötarkoitustensa takia niitä ei sellaisiksi yleensä kutsuta. Myös sulautetuissa järjestelmissä on laitteen sisällä tietokone, vaikka käyttäjä ei aina ole siitä edes tietoinen.
Tietokoneiden edeltäjinä voidaan pitää yhtäältä reikäkorttien käsittelyyn tarkoitettuja reikäkorttikoneita ja toisaalta esimerkiksi mekaanisia laskimia. Ensimmäiset varsinaiset ohjelmoitavat tietokoneet rakennettiin 1940-luvulla ja niitä käytettiin muun muassa toisen maailmansodan aikaan salakirjoitusten murtamiseen (brittiläinen Colossus), tykistön ammusten ratojen laskentaan (yhdysvaltalainen ENIAC) ja lentokonesuunnittelun lujuuslaskentoihin (saksalainen Z3).
Matematiikan professori Charles Babbage kehitti jo 1800-luvulla mekaanisen tietokoneen nimeltä Analyyttinen kone. Yksi tunnetuimmista tietokoneen matemaattisista malleista on Turingin kone, jonka kehitti englantilainen matemaatikko Alan Turing. Tietojenkäsittelyn ekvivalenssiperiaatteen mukaan kaikki tietokoneet pystyvät suoriutumaan samoista tehtävistä, mikäli käytössä on riittävästi tallennustilaa ja aikaa. Jos siis koneella tai formaalilla järjestelmällä (esimerkiksi ohjelmointikielellä) voi toteuttaa Turingin koneen, sillä voi toteuttaa myös minkä tahansa algoritmin tai ohjelman, jonka Turingin kone pystyy ratkaisemaan.
Nykyaikaiset yleiskäyttöiset tietokoneet perustuvat John von Neumannin mallin mukaiseen rakenteeseen. Erikoissovelluksissa voi olla käytössä Neumannin mallista poikkeavia tietokoneita. Esimerkiksi signaalinkäsittelyyn tarkoitetut suorittimet ovat usein Harvard-arkkitehtuurin mukaisia. Useimmat tietokoneet toteuttavat John von Neumannin mallia, jossa sekä ohjelma että sen käsittelemä tieto ovat samaan muistiin tallennettua dataa. Harvinaisemmassa Harvard-arkkitehtuurissa ohjelma ja sen käsittelemä tieto ovat omissa muisteissaan.[1]
Varhaisissa tietokoneissa käytettiin kymmenjärjestelmää ennen binäärijärjestelmän yleistymistä, jota von Neumann ehdotti EDVAC:in ratkaisuna. Nykyään suorittimien alkeellisimmat perusosat suorittavat Boolen algebraan kuuluvia perusoperaatioita.[2] Koska Boolen algebra perustuu kahteen totuusarvoon, on luontevaa käyttää niitä kaiken käsiteltävän tiedon ilmaisemiseen: esimerkiksi lukuja on teknisesti yksinkertaisinta käsitellä, jos ne on esitetty binäärijärjestelmän avulla. Yksittäisestä totuusarvosta (binäärijärjestelmän numerosta 1 tai 0) käytetään nimitystä bitti (lyhenne englannin sanoista binary digit, binääriluku).[3]
Tietokoneen toimintaa ohjaa suoritin eli prosessori, joka tulkitsee konekielisiä käskyjä ja ohjaa niiden mukaan tietokoneen eri toimintoja. Suoritin suorittaa ohjelmaa lukemalla peräkkäisiä muistipaikkoja alueelta johon ohjelmakoodi on tallennettu, ja tulkitsemalla lukemansa bittijonot konekielisiksi käskyiksi. Käsky suorittaa yleensä jonkin yksinkertaisen alkeisoperaation, kuten luvun lukemisen muistipaikasta, kahden luvun välisen laskutoimituksen tai ohjelman suoritusosoitteen ehdollisen vaihtamisen. Käskyn suorituksen päätteeksi suorittimen sisäisissä muistipaikoissa, ns. rekistereissä sijaitsevat laskennan lopputulokset tallennetaan toisella käskyllä takaisin muistiin.
Mekaanisten tietokoneiden (kuten Babbagen Analyyttinen tietokone) sijaan elektroniikkaan perustuvat tietokoneet yleistyivät. Digitaalinen tietokone korvasi analogiset tietokoneet. 1940-luvulla tietokoneet olivat releisiin tai elektroniputkiin perustuvia. Näiden jälkeen tulivat transistoritietokoneet, joita seurasivat useita transistoreja integroivat mikropiireihin perustuvat tietokoneet. Nykyiset tietokoneet perustuvat integroituihin piireihin eli mikropiireihin.
Nykyään yhdelle mikropiirille integroitu mikroprosessori voi sisältää monta suoritinta – puhutaan suoritinytimistä tai vain ytimistä. Henkilökohtaisissa tietokoneissa on tyypillisesti 4–8 suoritinydintä yhdellä integroidulla piirillä. Suurissa palvelimissa ja supertietokoneissa suoritinytimiä on tuhansia.[4]
Suorittimien lisäksi tietokoneessa on yleensä myös muita piirejä tai apusuorittimia, jotka suorittavat erikoistuneempia tietojenkäsittelytehtäviä ja vapauttavat siten varsinaiset suorittimet näistä tehtävistä. Esimerkiksi:
Vaikka kaikki tietokoneet pystyvätkin periaatteessa suorittamaan samat tehtävät, jotkin ovat huomattavasti soveltuvampia joihinkin tehtäviin kuin toiset. Suorituskykyä erityyppisissä tehtävissä mitataan vertaillen profiloimalla ja suorituskykymittauksilla. Riittävän suorituskyvyn lisäksi merkittäviä tekijöitä ovat muun muassa koneen vakaus, vikasietoisuus, virrankulutus, fyysinen koko, ohjelmistoyhteensopivuus sekä hankinta- ja käyttökustannukset.
Arkipuheessa tietokoneita asetetaan usein paremmuusjärjestykseen vertailemalla suoraan esimerkiksi suorittimien kellotaajuuksia. Kellotaajuus voi antaa suurpiirteisen vihjeen esimerkiksi henkilökohtaisen tietokoneen teknisestä iästä ja siten sen yleisestä suorituskyvystä ja luotettavuudesta useimmissa tehtävissä, mutta pelkkiin numeerisiin suureisiin katsominen voi esimerkiksi koneen ominaisuuksia arvioitaessa olla hyvinkin harhaanjohtavaa. Suorittimen arkkitehtuurilla on käytännössä erittäin suuri vaikutus siihen miten paljon työtä prosessori saa yhden kellojakson aikana tehtyä, ja mikä lopullinen suorituskyky tulee olemaan. Suurtietokoneiden painopiste on transaktioprosessoinnissa, jossa laitteisto I/O-nopeus voi olla merkittävämpi tekijä kuin suorittimen nopeus. Virran kulutus voi olla sulautetuissa järjestelmissä ja mobiililaitteissa merkittävämpi tekijä kuin suoritusnopeus.
Historiallisesti tietokoneet on luokiteltu kokoluokan mukaan usein eri tavoin:
Supertietokoneella tarkoitetaan tietokonetta, joka valmistuessaan on tehokkaimpien tietokoneiden joukossa.
Muita luokitteluja ovat muun muassa käyttötavan (mm. henkilökohtainen tietokone) ja teknisen ratkaisun mukaan.
Tietokoneet on jaoteltu tekniikan mukaan eri sukupolviin.[5] Tietokoneluokat syntyivät ensimmäisen ja toisen sukupolven tietokoneiden myötä ja kehittyivät kolmannen sukupolven suoritintekniikan myötä.[5] Mikroprosessoreista on tullut yksittäinen määrittävä teknologia kaikissa tietokoneluokissa.[5]
Tietokoneen kehitys vuosikymmenittäin
Tietokoneen merkittävin etu taskulaskimeen verrattuna on mahdollisuus ohjelmoitavuuteen ja mahdollisuus suorittaa eri ohjelmia. Taskulaskimella on helppo laskea muutama luku yhteen, mutta tuhansien lukujen laskeminen on työlästä. Tietokoneohjelma suoriutuu tehtävästä lyhyellä komentosarjalla. Churchin–Turingin teesin mukaan "kaikki laskettavissa oleva on laskettavissa Turingin koneella."
Seuraava esimerkki on kirjoitettu MIPS-suorittimen assembly-kielellä. Kyseinen ohjelma laskee kokonaislukujen 1 – 1000 summan:
begin:
addi $8, $0, 0 # summa on alussa nolla
addi $9, $0, 1 # ensimmäinen yhteenlaskettava luku on 1
loop:
slti $10, $9, 1000 # tarkista, onko luku vähemmän kuin 1000
bne $10, $0, finish # jos luku on 1000 tai yli, lopeta laskeminen
# (mutta MIPSissä seuraava käsky ehditään vielä suorittaa)
add $8, $8, $9 # laske yhteen summaan
addi $9, $9, 1 # siirry seuraavaan lukuun
j loop # aloita silmukka alusta (slti-käskyn kohdalta)
finish:
add $2, $8, $0 # sijoita summa tulosrekisteriin
Tietokonearkkitehtuureista yleisimmät ovat Von Neumannin arkkitehtuuri ja Harvardin arkkitehtuuri. Näiden lisäksi on muita luokitteluja.
Tietokonejärjestelmään kuuluvat
Ohjelmisto jaetaan edelleen
Tietokoneen laitteiston perusrakenne (niin sanottu Von Neumannin arkkitehtuuri) on säilynyt suunnilleen samana aina 1940-luvulta asti. Laitteistoon kuuluvat
Mooren lakina tunnettu kehitys on ollut voimassa useita vuosikymmeniä, mutta kehitys on hidastunut.[6] Painopiste on siirtynyt suurempaan rinnakkaisuuteen ja tämä vaikuttaa myös ohjelmistojen kehitystapaan.[7]
Tämä kehitys merkitsee:lähde?
Tietokoneiden tulevaisuus on tietokoneverkoissa. Mullistusta tietokonetekniikassa on esitetty kvanttitietokoneista.