Suoritin

Kohteesta Wikipedia
Loikkaa: valikkoon, hakuun
Hakusana ”prosessori” ohjaa tänne. Prosessori oli myös elektroniikkaan ja tietokonetekniikkaan erikoistunut aikakauslehti.
Intel Pentium 100 MHz -suorittimen liitinpuoli.
Alkukantaisen tietokoneen suorittimeen kuuluvia kymmeniä elektroniputkia.

Suoritin tai prosessori (engl. Central Processing Unit eli CPU) on tietokoneen osa, joka suorittaa tietokoneohjelman sisältämiä konekielisiä käskyjä. Se on tietokoneen keskeisimpiä osia. Nykyisissä suorittimissa kaikki osat on pakattu yhdelle mikropiirille, joten ne ovat mikroprosessoreita (MPU). Emolevy ja BIOS määrittelevät sopivat suoritintyypit.

Yksittäinen suoritin voi suorittaa kerrallaan vain yhtä ohjelmaa, mutta sen tehtäviä voidaan vaihdella erittäin nopeasti, jolloin suoritus näyttää käyttäjästä rinnakkaiselta. Moniydinsuorittimessa on samaan mikropiiriin rakennettu kaksi tai useampia suorittimia, ytimiä, jolloin se vastaa pitkälti useampaa erillistä suoritinta, mutta niihin verrattuna käyttää hieman vähemmän sähköä ja tuottaa vähemmän lämpöä.[1] Yleensä moniydinsuorittimen kaikki ytimet kuitenkin jakavat samat oheislaiteväylät ja käyttävät samaa keskusmuistia. Kun erilliset prosessorit omine erillisine ympäristöineen voivat ajaa täysin eri koodia täysin omissa tahdeissaan, moniydinprosessorin ytimien on keskenään pysyttävä niiden ulkomaailman suhteen ainakin jossain määrin synkronissa.

Suorittimia suunnitellaan useisiin erilaisiin käyttötarkoituksiin. Päätarkoituksen mukaan prosessoreissa puhutaan mm. PC-, yleis-, sulautetuista -, signaali-, grafiikka- ja fysiikkaprosessoreista. Osa optimoidaan erittäin pieneen tehonkulutukseen, osa suureen laskentatehoon tietynlaiselle datalle, osa taas mahdollisimman laajaan yleiskäyttöisyyteen, jolloin sama mikropiiri saattaa sisältää useita eri oheislaitteita ja kymmeniä liityntäväyliä. Näytöllisten älylaitteiden myötä tärkeäksi ryhmäksi ovat nousseet pitkälle integroidut ns. järjestelmäpiirit, joissa parhaimmillaan on samassa piirissä mukana mm. muisteja, signaaliprosessori ja monipuolinen näytönohjain.

Arkkitehtuurit[muokkaa | muokkaa wikitekstiä]

Suoritinarkkitehtuurit voidaan jakaa ryhmiin esimerkiksi konekäskyjen perusrakenteen mukaan seuraavasti:

  • CISC (Complex Instruction Set Computer)
  • RISC (Reduced Instruction Set Computer)
  • VLIW (Very Long Instruction Word)
  • TTA (Transport Triggered Architecture)

Ominaisuudet[muokkaa | muokkaa wikitekstiä]

Tietokoneen yleisnopeus riippuu paljon juuri suorittimen nopeudesta.[2] Suorittimen nopeus riippuu sekä sen käyttämästä arkkitehtuurista että kellotaajuudesta. Kellotaajuus ilmoitetaan yleensä megahertseinä (MHz) tai gigahertseinä (GHz), ja suoritin toimii sen tahdissa. Nykyään pelkän kellotaajuuden merkitys suorittimen laskentatehon määrittämisessä on kuitenkin vähentynyt, ja suorittimen tehokkuuteen vaikuttavat monet tekniset ratkaisut, kuten

  • kuinka leveitä prosessorin lukuja käsittelevät yksiköt ja liityntäväylät ovat (yleensä 4, 8, 16, 32 tai 64 bittiä),
  • kuinka monta ja minkä tyyppisiä käskyjä suoritin kykenee suorittamaan samanaikaisesti (liukuhihna),
  • kuinka suuria välimuisteja suorittimessa on, ja
  • miten tehokkaasti edelliset on toteutettu ja niihin liittyvät ongelmatilanteet on arkkitehtuurissa ratkaistu.

Prosessorin erikoiskäskyistä voi olla suurta hyötyä etenkin matemaattisissa sovelluksissa. Yksi erikoiskäsky voi korvata kymmeniä peruskäskyjä, vaikka sen suoritukseen aikaa kuluu vain saman verran yhden tai muutaman peruskäskyn suoritukseen. Välimuistin hyöty on, että muistista haettava ja sinne kirjoitettava tieto saadaan nopeasta välimuistista huomattavasti nopeammin kuin hitaammasta keskusmuistista. Merkittäviä nopeusetuja saadaan myös kirjoittamalla tehokasta ohjelmakoodia.

Valmistustekniikan kehittyessä mikropiirien sisältämien transistorien määrä kaksinkertaistuu noin puolessatoista vuodessa, kuten ns. Mooren laki on ennustanut. Suorittimien kohdalla tämä on toistaiseksi pitänyt melko hyvin paikkansa, mikä on mahdollistanut yhä monimutkaisempien ja paremman suorituskyvyn mahdollistavien arkkitehtuurien toteuttamisen. Lisäksi on mahdollista integroida samalle piirille useita suoritinytimiä, suurempia ja monitasoisempia välimuisteja, sekä tukipiirejä kuten 2D- tai 3D-grafiikan käsittelyyn erikoistunut grafiikkasuoritin tai muistinhallintayksikkö.

Suorittimen keskeiset osat ovat laskentayksikkö (engl. Arithmetic Logical Unit, ALU)[2], valvontayksikkö (engl. Control Unit, CU) [2] ja yleensä useita rekistereiksi kutsuttuja käsiteltävän tiedon tallentavia muistipaikkoja.[2] Prosessorin toimintaa on noutaa muistista käsky ja siihen liittyvä luku tai luvut, suorittaa kyseinen käsky ALU-yksikössään ja palauttaa tulos muistiin. Yksittäinen käsky voi olla esim. "laske yhteen rekisterin A ja muistipaikan xx sisältö ja siirrä tulos rekisteriin B".

Suorittimet tuottavat toimiessaan hukkalämpöä, joka saattaa vaikuttaa suorittimen toiminnan luotettavuuteen tai liiallisena jopa tuhota suorittimen. Hukkalämmön johtamiseksi pois suorittimesta voidaan käyttää esimerkiksi jäähdytysripaa, jota muotonsa vuoksi monesti kutsutaan jäähdytyssiiliksi, ja siihen usein liitettyä ilman virtausta tehostavaa tuuletinta, tai nestejäähdytystä.

Nykyaikaisissa suorittimissa on muistinhallintayksikkö (MMU) ja matematiikkasuoritin (FPU) integroituna samalle piirille.

Moniprosessointi[muokkaa | muokkaa wikitekstiä]

Pääartikkeli: Moniprosessointi

Yksittäinen tietokone voi sisältää yhden tai useampia suorittimia, jolloin kyseessä on moniprosessointi.

Moniytimellisyys[muokkaa | muokkaa wikitekstiä]

Suorittimissa voi olla kaksi tai useampia ytimiä. Moniytimellisyys mahdollistaa sen, että monia raskaita laskutehtäviä vaativia ohjelmia voidaan ajaa tietokoneella samanaikaisesti ilman, että muiden prosessien suoritus häiriintyy, ja että monisäikeisien yksittäisien prosessien suoritus voidaan jakaa usean ytimen kesken nostaen sen suoritustehoa.

Ytimet voivat olla joko identtisiä, tai ne voivat olla erikoistuneita erilaisiin tehtäviin. Eräissä suorittimissa on Digitaalinen signaaliprosessori (DSP) varsinaisen CPU-ytimen lisäksi.

Monisäikeistys[muokkaa | muokkaa wikitekstiä]

Monisäikeistys engl. multithreading on tekniikka, jolla sama ydin voi suorittaa kahta tai useampaa erillistä ohjelmasäiettä yhtäaikaisesti (rinnakkain). Tekniikka on yksi kehityssuunta suorituskyvyn lisäämiseen ja aiheesta on julkaistu useita tutkimuksia.[3]

Kaksi kehityssuuntausta ovat:

  • engl. Simultaneous multithreading (SMT), prosessorin on oltava superscalar
  • engl. Temporal multithreading, tai engl. Interleaved multithreading, myös nimellä engl. super-threading

Eri valmistajilla on eri tuotenimiä tekniikan toteuttamisesta, näitä ovat mm. Intelin Hyper-threading ja SPARC CoolThreads. IBM POWER8 käyttää yleistä termiä engl. Simultaneous Multi-Threading (SMT).[4]

Symmetrinen monisäikeistys on jatkokehitystä superscalar- ja moniprosessointi-tekniikkaan nähden ja hyödyntää ohjelmissa olevaa sekä käskytason rinnakkaisuutta (engl. Instruction Level Parallelism, ILP) että säietason rinnakkaisuutta (engl. Thread Level Parallelism, TLP).[5]

Suoritinperheitä[muokkaa | muokkaa wikitekstiä]

Suorittimet voidaan jakaa perheisiin niiden yhteensopivuuden mukaan. Tyypillisesti saman perheen uudempi suoritin pystyy suorittamaan ohjelmia, jotka on tehty saman perheen aikaisimmille suorittimille. Toisinpäin tämä ei välttämättä ole mahdollista erilaisten käskykantalaajennusten vuoksi.

Suoritinperheet voidaan edelleen jakaa arkkitehtuureihin niiden iän ja sukupolven mukaan. Esimerkiksi SPARC-perheen aikaisemmat arkkitehtuurit, HyperSPARC ja SuperSPARC, toteuttavat SPARC v7 -käskykannan ja uudemmat arkkitehtuurit 64-bittisen SPARC v9 -käskykannan, jonka toteuttavia malleja ovat Sun Microsystemsin valmistaman UltraSPARCin eri mallit ja Fujitsun SPARC64.

PC-yhteensopivissa suorittimissa on ollut useita kilpailevia valmistajia, joiden suorittimet käyttävät kaikki IA-32-käskykantaa (Intelin määrittelemä 32-bittinen käskykanta). Jokaisella valmistajalla on useita arkkitehtuureita, jotka jakaantuvat useisiin malleihin. Esimerkiksi AMD:n Athlon-suorittimen ensimmäinen malli on mallinumeroltaan K7, toinen malli on K75, ja myöhempi neljäs on "Thunderbird"-malli. Edelleen eri malleja on saatavilla eri kellotaajuuksilla.

Käskylaajennukset[muokkaa | muokkaa wikitekstiä]

Lähes jokainen PC-prosessoreiden valmistaja ja suoritinsukupolvi laajentaa suorittimen käskykantaa uusilla käskyillä. Tällaisia laajennuksia ovat mm. MMX, VIS, 3DNow!, SSE ja AltiVec, joista on kaikista lisäksi useampia versioita uusien arkkitehtuurien mukana. Jotkin uudemmat PC-yhteensopivat suorittimet määrittelevät myös oman käskykantansa IA-32-käskykannan lisäksi. Esimerkiksi AMD:n uudemmat suorittimet pystyvät ajamaan oman 64-bittisen käskykantansa, AMD64:n, mukaisia ohjelmia IA-32-ohjelmien lisäksi, muodostaen siten tosiasiassa oman suoritinperheensä. Intelillä oli oma IA-64-käskykanta, jota yritys käytti Itanium-suoritinperheessä, mutta se ei ollut taaksepäin yhteensopiva IA-32-käskykantaan, minkä vuoksi se ei menestynyt kuin palvelimissa, niissäkin heikosti. Intel lisensoi AMD:n AMD64-käskykannan ja täten Intelin ja AMD:n valmistamat suorittimet ovat yhteensopivia. Kyse oli lisenssien vaihdosta, sillä AMD maksaa Intelille x86-arkkitehtuurista lisenssimaksuja.

Toimintatilat[muokkaa | muokkaa wikitekstiä]

Useat suorittimet toteuttavat supervisor tilan, jossa käyttöjärjestelmän kerneli yleensä suoritetaan. Tässä tilassa suoritin asettaa vähemmän rajoituksia kuin käyttäjätilassa (engl. user mode).

Nykyiset suorittimet lisäävät virtualisointitukea hypervisor ominaisuuksilla.

Katso myös[muokkaa | muokkaa wikitekstiä]

Lähteet[muokkaa | muokkaa wikitekstiä]