Suoritin | tärkeä osa jokaista tietokonetta

Keskusyksikkö (CPU) on tärkeä osa jokaista tietokonetta. Keskusyksikkö lähettää signaaleja, joilla ohjataan tietokoneen muita osia, lähes samalla tavalla kuin aivot ohjaavat kehoa.

Suoritin on elektroninen kone, joka työskentelee tietokoneen tekemien asioiden, niin sanottujen ohjeiden, perusteella. Se lukee käskiluettelon ja suorittaa (executes) jokaisen käskyn järjestyksessä. Luettelo ohjeista, jotka CPU voi suorittaa, on tietokoneohjelma.

Kellotaajuus eli suorittimen sisäisten osien nopeus mitataan hertseinä (Hz). Nykyaikaiset prosessorit toimivat usein niin nopeasti, että niiden sijaan käytetään gigahertsin (GHz) mittausta. Yksi GHz on 1 000 000 000 sykliä sekunnissa.

Useimmat pöytätietokoneissa (kotitietokoneissa) käytetyt suorittimet ovat joko Intelin tai Advanced Micro Devicesin (yleensä lyhennettynä AMD) valmistamia mikroprosessoreita. Muita suorittimia valmistavia yrityksiä ovat ARM (jonka Nvidia osti äskettäin), IBM ja AMD ATI Technologiesin alaisuudessa, joka on tällä hetkellä johtava yritys. Suurinta osaa niiden suorittimista käytetään sulautetuissa järjestelmissä erikoistuneemmissa asioissa, kuten matkapuhelimissa, autoissa, videopelikonsoleissa tai armeijassa.




  Pentium-suoritin tietokoneen sisällä  Zoom
Pentium-suoritin tietokoneen sisällä  

Suoritintyypit

1900-luvulla insinöörit keksivät monia erilaisia tietokonearkkitehtuureja. Nykyään useimmat pöytätietokoneet käyttävät joko 32-bittisiä tai 64-bittisiä suorittimia. 32-bittisen suorittimen ohjeet ovat hyviä käsittelemään 32 bitin kokoista dataa (useimmat ohjeet "ajattelevat" 32-bittisessä suorittimessa 32-bittisesti). Vastaavasti 64-bittinen suoritin on hyvä käsittelemään 64-bittistä dataa (ja usein myös 32-bittistä dataa). Sitä datan kokoa, jota suoritin käsittelee parhaiten, kutsutaan usein suorittimen sanakooksi. Monissa vanhoissa 70-, 80- ja 90-luvun alun suorittimissa (ja monissa nykyaikaisissa sulautetuissa järjestelmissä) on 8- tai 16-bittinen sanakoko. Kun suorittimet keksittiin 1900-luvun puolivälissä, niissä oli monia eri sanakokoja. Joissakin oli eri sanakoot käskyille ja tiedoille. Vähemmän suosittuja sanakokoja ei myöhemmin enää käytetty.

Useimmat suorittimet ovat mikroprosessoreita. Tämä tarkoittaa, että prosessori on vain yksi siru. Joissakin mikroprosessoripiirissä on myös muita komponentteja, ja ne ovat kokonaisia yhden sirun "tietokoneita". Tätä kutsutaan mikrokontrolleriksi.


 

Rekisterit

Kun CPU suorittaa tietokoneohjelmaa, sen on tallennettava jonnekin tiedot, joita käskyt käyttävät (tiedot, joita ne lukevat ja kirjoittavat). Tätä tallennustilaa kutsutaan rekisteriksi. CPU:lla on yleensä useita rekistereitä. Rekistereihin on päästävä käsiksi (lukemaan ja kirjoittamaan) hyvin nopeasti. Siksi ne ovat osa itse suorittimen piiriä.


 

Muisti

Kaikkien tietojen tallentaminen rekistereihin tekisi useimmista suorittimista liian monimutkaisia (ja hyvin kalliita). Siksi rekistereihin tallennetaan yleensä vain ne tiedot, joita suoritin käsittelee "juuri nyt". Loput ohjelman käyttämästä datasta tallennetaan RAM-muistiin (Random Access Memory). Mikrokontrollereita lukuun ottamatta RAM-muisti on yleensä tallennettu suorittimen ulkopuolelle erillisille siruille.

Kun CPU haluaa lukea tai kirjoittaa RAM-muistissa olevia tietoja, se antaa osoitteen kyseisille tiedoille. Jokaisella RAM-muistissa olevalla tavulla on muistiosoite. Osoitteiden koko on usein sama kuin sanan koko: 32-bittinen CPU käyttää 32-bittisiä osoitteita jne. Pienemmät suorittimet, kuten 8-bittiset suorittimet, käyttävät kuitenkin usein osoitteita, jotka ovat sanakokoa suurempia. Muuten ohjelman maksimipituus olisi liian lyhyt.

Koska osoitteiden koko on rajoitettu, myös muistin enimmäismäärä on rajoitettu. 32-bittiset prosessorit pystyvät yleensä käsittelemään enintään 4 Gt:n RAM-muistia. Näin monta eri tavua voidaan valita 32-bittisellä osoitteella (jokaisella bitillä voi olla kaksi arvoa - 0 ja 1 - ja 232 tavua on 4 Gt). 64-bittinen prosessori voi käsitellä jopa 16 EB RAM-muistia (16 exatavua, noin 16 miljardia gigatavua eli 16 miljardia miljardia miljardia tavua). Käyttöjärjestelmä saattaa rajoittaa sen käyttämään pienempiä määriä.

RAM-muistiin tallennetut tiedot ovat yleensä haihtuvia. Tämä tarkoittaa, että ne häviävät, jos tietokone sammutetaan.

Muistinhallintayksiköt (MMU) ja virtuaalimuisti

Nykyaikaisissa suorittimissa käytetään usein muistinhallintayksikköä (MMU). MMU on komponentti, joka kääntää CPU:lta tulevat osoitteet (yleensä) eri RAM-osoitteisiin. Kun käytetään MMU:ta, ohjelmassa käytetyt osoitteet eivät (yleensä) ole "todellisia" osoitteita, joihin tiedot on tallennettu. Tätä kutsutaan virtuaalimuistiksi (todellisen muistin vastakohta). Tässä luetellaan muutamia syitä, miksi MMU:n käyttö on hyvä asia:

  • MMU voi "piilottaa" muiden ohjelmien muistin ohjelmalta. Tämä tapahtuu siten, että mitään osoitteita ei käännetä "piilotettuihin" osoitteisiin ohjelman ollessa käynnissä. Tämä on hyvä asia, koska se tarkoittaa, että ohjelmat eivät voi lukea ja muokata muiden ohjelmien muistia, mikä parantaa turvallisuutta ja vakautta. (Ohjelmat eivät voi "vakoilla" toisiaan tai "astua toistensa varpaille").
  • Monet MMU:t voivat tehdä joistakin muistin osista kirjoituskelvottomia, lukukelvottomia tai suorituskelvottomia (eli kyseiseen muistin osaan tallennettua koodia ei voi suorittaa). Tämä voi olla hyvä vakauden, turvallisuuden ja muiden syiden vuoksi.
  • MMU:t mahdollistavat sen, että eri ohjelmilla on eri "näkymät" muistiin. Tämä on kätevää monissa eri tilanteissa. Esimerkiksi ohjelman "pääkoodi" voi aina olla samassa (virtuaali)osoitteessa ilman, että se törmää muihin ohjelmiin. Se on kätevää myös silloin, kun ohjelmat jakavat keskenään monia eri koodinpätkiä (kirjastoista).
  • MMU:t mahdollistavat sen, että kirjastojen koodi ilmestyy eri osoitteisiin joka kerta, kun ohjelma ajetaan. Tämä on hyvä asia, koska jos ei tiedetä, missä asiat ovat muistissa, hakkereiden on usein vaikeampi saada ohjelmia tekemään pahoja asioita. Tätä kutsutaan osoiteavaruuden satunnaistamiseksi.
  • Kehittyneet ohjelmat ja käyttöjärjestelmät voivat käyttää MMU:n avulla temppuja, joiden avulla voidaan välttää tietojen kopioiminen eri muistipaikkojen välillä.

 

Cache

Nykyaikaisissa tietokoneissa RAM-muisti on paljon hitaampaa kuin rekisterit, joten RAM-muistin käyttö hidastaa ohjelmien toimintaa. Muistin käytön nopeuttamiseksi RAM-muistin ja suorittimen pääosien väliin on usein sijoitettu nopeampi muistityyppi, jota kutsutaan välimuistiksi. Välimuisti on yleensä osa itse suorittimen piiriä, ja se on tavua kohden paljon kalliimpi kuin RAM-muisti. Välimuisti tallentaa samat tiedot kuin RAM-muisti, mutta on yleensä paljon pienempi. Siksi kaikki ohjelman käyttämä data ei välttämättä mahdu välimuistiin. Välimuistiin pyritään tallentamaan tietoa, jota todennäköisesti käytetään paljon. Esimerkkejä ovat äskettäin käytetty data ja data, joka on muistissa lähellä äskettäin käytettyä dataa.

Usein on järkevää käyttää "välimuistia välimuistia varten", aivan kuten on järkevää käyttää välimuistia RAM-muistia varten. Monitasoisessa välimuistissa on useita välimuisteja, joita kutsutaan L1-välimuistiksi, L2-välimuistiksi ja niin edelleen. L1-välimuisti on nopein (ja kallein tavua kohden) ja se on "lähimpänä" prosessoria. L2-välimuisti on askeleen päässä ja hitaampi kuin L1-välimuisti jne. L1-välimuistia voidaan usein pitää L2-välimuistin välimuistina jne.


 

Bussit

Tietokoneväylät ovat johtoja, joita keskusyksikkö käyttää kommunikointiin RAM-muistin ja muiden tietokoneen komponenttien kanssa. Lähes kaikissa suorittimissa on ainakin dataväylä, jota käytetään tietojen lukemiseen ja kirjoittamiseen, ja osoiteväylä, jota käytetään osoitteiden antamiseen. Muut prosessorin sisällä olevat väylät kuljettavat tietoja prosessorin eri osiin.


 

Käskykokonaisuudet

Ohjekokonaisuus (jota kutsutaan myös ISA:ksi - Instruction Set Architecture) on kieli, jota tietty suoritin ymmärtää suoraan. Näitä kieliä kutsutaan myös konekoodiksi tai binäärikieleksi. Ne kertovat, miten käsket suorittimen tehdä erilaisia asioita, kuten ladata dataa muistista rekisteriin tai laskea yhteen kahden rekisterin arvot. Jokaisella käskysarjan käskyllä on koodaus, joka tarkoittaa, miten käsky kirjoitetaan bittijonona.

C:n ja C++:n kaltaisilla ohjelmointikielillä kirjoitettuja ohjelmia ei voi ajaa suoraan suorittimella. Ne on käännettävä konekoodiksi, ennen kuin prosessori voi ajaa niitä. Kääntäjä on tietokoneohjelma, joka tekee tämän käännöksen.

Konekoodi on pelkkä 0:n ja 1:n sarja, minkä vuoksi ihmisten on vaikea lukea sitä. Sen luettavuuden parantamiseksi konekoodiohjelmat kirjoitetaan yleensä assembler-kielellä. Kokoonpanokielessä käytetään tekstiä 0:n ja 1:n sijasta: Voit esimerkiksi kirjoittaa "LD A,0" ladataksesi arvon 0 rekisteriin A. Ohjelmaa, joka kääntää assemblerikielen konekieleksi, kutsutaan assembleriksi.


 

Toiminnallisuus

Seuraavassa on lueteltu joitakin perusasioita, joita suoritin voi tehdä:

  • Lue tietoja muistista ja kirjoita tietoja muistiin.
  • Lisää yksi numero toiseen numeroon.
  • Testaa, onko yksi luku suurempi kuin toinen luku.
  • Siirrä luku paikasta toiseen (esimerkiksi rekisteristä toiseen tai rekisterin ja muistin välillä).
  • Siirry toiseen kohtaan käskyluettelossa, mutta vain jos jokin testi on tosi (esimerkiksi vain jos jokin luku on suurempi kuin toinen).

Jopa hyvin monimutkaisia ohjelmia voidaan tehdä yhdistelemällä monia tällaisia yksinkertaisia ohjeita. Tämä on mahdollista, koska jokaisen käskyn suorittaminen kestää hyvin vähän aikaa. Monet suorittimet pystyvät nykyään suorittamaan yli miljardi (1 000 000 000) ohjetta yhdessä sekunnissa. Yleisesti ottaen mitä enemmän prosessori pystyy tekemään tietyssä ajassa, sitä nopeampi se on. Yksi tapa mitata prosessorin nopeutta on MIPS (Million Instructions Per Second). Flopit (liukulukuoperaatiot sekunnissa) ja suorittimen kellotaajuus (yleensä mitattuna gigahertseinä) ovat myös tapoja mitata, kuinka paljon työtä prosessori pystyy tekemään tietyssä ajassa.

Suoritin on rakennettu logiikkaporteista; siinä ei ole liikkuvia osia. Tietokoneen keskusyksikkö on elektronisesti yhteydessä tietokoneen muihin osiin, kuten näytönohjaimeen tai BIOSiin. Tietokoneohjelma voi ohjata näitä oheislaitteita lukemalla tai kirjoittamalla numeroita tietokoneen muistin erityisiin paikkoihin.


 

Käskyputket

Jokainen suorittimen suorittama käsky suoritetaan yleensä monessa vaiheessa. Esimerkiksi käskyn "INC A" (kasvattaa rekisteriin A tallennettua arvoa yhdellä) suorittaminen yksinkertaisella suorittimella voi tapahtua seuraavasti:

  • Lue käsky muistista,
  • dekoodata käsky (selvittää, mitä käsky tekee) ja
  • lisätään yksi rekisteriin A.

Suorittimen eri osat tekevät näitä eri asioita. Usein on mahdollista suorittaa joitakin eri ohjeiden vaiheita samanaikaisesti, mikä nopeuttaa suorittimen toimintaa. Voimme esimerkiksi lukea käskyn muistista samaan aikaan, kun dekoodaamme toisen käskyn, koska nämä vaiheet käyttävät eri moduuleja. Tätä voidaan ajatella niin, että monta ohjetta on samanaikaisesti "putkessa". Parhaassa tapauksessa kaikki moduulit käsittelevät eri ohjeita samanaikaisesti, mutta tämä ei ole aina mahdollista.


 

Useita ytimiä

Moniydinprosessorit yleistyivät huomattavasti 2000-luvun alussa. Tämä tarkoittaa sitä, että samalle piirille on rakennettu useita prosessoreita, jotta ne voivat suorittaa useita ohjeita kerralla. Joissakin prosessoreissa voi olla jopa kuusikymmentäneljä ydintä, kuten AMD:n tulevassa Epyc "Milan"-sarjassa. Jopa kuluttajille tarkoitetuissa prosessoreissa on monta ydintä, kuten 16-ytimisessä AMD Ryzen 9 5950x -prosessorissa.


 

Multithreading

Joissakin prosessoreissa on monisäikeistystekniikka. Tämä tarkoittaa useamman kuin yhden "säikeen" suorittamista käyttöjärjestelmässä. Monissa nykyaikaisissa prosessoreissa tätä käytetään suorituskyvyn parantamiseen raskaissa monisäikeisissä ohjelmissa, kuten vertailuohjelmissa.


 

Valmistajat

Seuraavat yritykset valmistavat tietokoneiden suorittimia:

  • ARM
  • Intel
  • Advanced Micro Devices
  • MCST
  • SRISA
  • Sun Microsystems

 

Lisätietoja



 

Kysymyksiä ja vastauksia

Q: Mikä on prosessori?


V: CPU (keskusyksikkö) on tärkeä osa jokaista tietokonetta. Se lähettää signaaleja, joilla ohjataan tietokoneen muita osia, melkein samalla tavalla kuin aivot ohjaavat kehoa. Keskusyksikkö on elektroninen kone, joka toimii tiettyjen tehtävien suorittamiseksi annettujen ohjeiden perusteella.

K: Miten CPU toimii?


V: Keskusyksikkö lukee käskiluettelon ja suorittaa (executes) jokaisen käskyn järjestyksessä. Ohjeluettelo, jonka CPU voi suorittaa, on tietokoneohjelma.

K: Millä mitataan suorittimen kellotaajuutta tai nopeutta?


V: Suorittimen sisäisten osien kellotaajuus tai nopeus mitataan hertseinä (Hz). Nykyaikaiset prosessorit toimivat usein niin nopeasti, että sen sijaan käytetään gigahertsiä (GHz) - yksi GHz on 1 000 000 000 sykliä sekunnissa.

K: Mitkä yritykset valmistavat suorittimia?


V: Joitakin suorittimia valmistavia yrityksiä ovat Intel, Advanced Micro Devices (AMD), ARM (jonka Nvidia osti hiljattain), IBM ja AMD ATI Technologies, joka on tällä hetkellä markkinajohtaja.

K: Missä käytetään eniten suorittimia?


V: Useimmat pöytätietokoneissa käytettävät suorittimet ovat joko Intelin tai AMD:n valmistamia mikroprosessoreita, kun taas useimpia muita käytetään sulautetuissa järjestelmissä, joita käytetään erikoistuneemmissa laitteissa, kuten matkapuhelimissa, autoissa, videopelikonsoleissa tai sotilassovelluksissa.

AlegsaOnline.com - 2020 / 2023 - License CC3