Tietokone ja käyttöjärjestelmä
Prosessori ja muisti selitettynä: kumpi ratkaisee nopeuden
Prosessori tekee työn, keskusmuisti pitää työpöydän auki. Ne eivät korvaa toisiaan, ja siksi väärän osan kasvattaminen ei tunnu käytössä miltään.
Lyhyt vastaus
Prosessori ratkaisee, kuinka nopeasti yksittäinen tehtävä valmistuu, ja keskusmuisti ratkaisee, kuinka monta asiaa voi olla auki yhtä aikaa ilman että kone joutuu siirtämään dataa levylle. Jos kone tuntuu hitaalta yhdessä raskaassa tehtävässä, pullonkaula on yleensä prosessori. Jos hitaus alkaa vasta kun ohjelmia ja välilehtiä on paljon auki, muisti on loppumassa. Lisämuisti ei nopeuta konetta lainkaan silloin kun muistia on jo riittävästi, koska ylimääräinen muisti ei tee mitään työtä.
Sisällys
- Ydin, säie ja kellotaajuus arkikielellä
- Miksi ytimien tuplaus ei tuplaa nopeutta
- Tehokkaat ja säästävät ytimet jakavat työn
- Keskusmuisti ei ole nopeutta vaan tilaa
- Mitä tapahtuu kun muisti loppuu
- Näytönohjain ja integroitu grafiikka
- Näin mittaat oman pullonkaulasi
- Usein kysytyt kysymykset
- Lähteet ja lisälukemista
Koneen nopeudesta puhutaan kolmella luvulla: gigahertseinä, ytiminä ja gigatavuina. Kaksi ensimmäistä koskee prosessoria ja kolmas muistia, ja ne mittaavat niin eri asioita, ettei niitä voi laskea yhteen. Silti tavallisin kysymys kuuluu, kumpi kannattaa hankkia isompana. Vastaus riippuu siitä, mikä koneessa oikeasti loppuu kesken, ja sen näkee mittaamalla eikä katalogista.
Työnjako on helpoin ymmärtää työpöytävertauksen kautta. Prosessori on se, joka tekee työn: lukee, laskee, kirjoittaa. Keskusmuisti on pöytälevy, jolle avatut asiat mahtuvat leviteltäviksi. Nopea työntekijä pienellä pöydällä joutuu jatkuvasti hakemaan papereita kaapista. Iso pöytä hitaan työntekijän kanssa taas pysyy siistinä, mutta työ ei siitä valmistu nopeammin.
Ydin, säie ja kellotaajuus arkikielellä
Prosessorin ydin on itsenäinen laskentayksikkö, joka suorittaa käskyjä peräkkäin. Kellotaajuus kertoo, montako kertaa sekunnissa ydin ottaa uuden askeleen. Gigahertsi tarkoittaa miljardia jaksoa sekunnissa, ja siksi luku näyttää vaikuttavalta. Se ei kuitenkaan kerro, kuinka paljon työtä yhdellä askeleella tehdään.
Juuri tähän vertailu kaatuu. Uudempi prosessori tekee samalla kellotaajuudella enemmän työtä jaksoa kohti kuin vanha, koska se osaa ennakoida haarautumisia, suorittaa käskyjä osittain rinnakkain ja hakea dataa etukäteen välimuistiinsa. Kahden eri sukupolven prosessorin vertaaminen kellotaajuudella on siis suunnilleen yhtä pätevää kuin moottorien vertaaminen kierrosluvulla. Saman mallisarjan sisällä luku kertoo jotain, sen ulkopuolella ei juuri mitään.
Säie on yhden ytimen suoritusvuoro. Moni prosessori esittää yhden ytimen käyttöjärjestelmälle kahtena säikeenä, jolloin ydin voi hyödyntää odotusaikoja: kun toinen säie odottaa dataa muistista, toinen ehtii tehdä jotain. Ydin ei siitä kahdennu, mutta se joutuu harvemmin joutilaaksi. Käyttöjärjestelmä jakaa vuorot säikeille omalla vuorotusalgoritmillaan, kuten artikkelissa käyttöjärjestelmän roolista kuvataan.
Prosessorin nopeuteen vaikuttaa kolmas asia, joka näkyy tuotetiedoissa harvoin: sen oma välimuisti. Keskusmuistista hakeminen kestää ytimen mittakaavassa pitkään, joten ydin pitää lähellään pientä nopeaa muistia, johon viimeksi käytetty data ja sen naapurusto kopioidaan. Kun ohjelman käsittelemä data mahtuu sinne, ydin ei jää odottamaan. Kun ei mahdu, ydin odottaa suuren osan ajastaan riippumatta kellotaajuudesta. Tämä selittää, miksi kahden prosessorin ero voi olla toisessa työssä olematon ja toisessa selvä.
Kellotaajuus ei myöskään ole vakio. Prosessori nostaa taajuutta kuormituksen alkaessa ja laskee sitä, kun lämpötila tai virrankulutus nousee rajalle. Kannettavassa raja tulee vastaan nopeammin kuin pöytäkoneessa, koska jäähdytystä on vähemmän. Siksi sama prosessorimalli voi olla tuntuvasti eri nopeuksinen kahdessa eri koneessa.
Miksi ytimien tuplaus ei tuplaa nopeutta
Useampi ydin auttaa vain silloin, kun työ voidaan jakaa osiin, jotka eivät odota toisiaan. Tällaisia töitä ovat videon pakkaaminen, kuvien eräajo, käännöstyö ja isojen tiedostojen pakkaus. Ne skaalautuvat hyvin, koska jokainen pala voidaan laskea erikseen.
Suuri osa arjen työstä ei skaalaudu. Verkkosivun piirtäminen, taulukkolaskennan kaavaketju ja moni vanhempi ohjelma etenee askel kerrallaan, koska seuraava askel tarvitsee edellisen tuloksen. Tällaisessa työssä kymmenen ydintä ei ole yhtä nopea kuin yksi kymmenen kertaa nopeampi ydin. Käytännössä tämä tarkoittaa, että napin painalluksen jälkeinen viive riippuu yhden ytimen nopeudesta, vaikka koneen ytimet olisivat muuten joutilaina.
Ytimien määrä ratkaisee toisenlaisen asian: kuinka monta raskasta työtä kone kestää yhtä aikaa. Jos videopuhelu, taustapäivitys ja pakkaus pyörivät samaan aikaan, ytimet loppuvat ennen kuin yksikään niistä on erityisen raskas. Tämä on tavallinen tilanne etätyössä ja se on eri ongelma kuin yksittäisen ohjelman hitaus.
Tehokkaat ja säästävät ytimet jakavat työn
Nykyisissä prosessoreissa ytimet eivät ole keskenään samanlaisia. Osa on suunniteltu nopeaksi ja osa vähän virtaa kuluttavaksi. Tehokkaat ytimet ottavat vastaan sen työn, jota käyttäjä odottaa ruudun ääressä. Säästävät ytimet hoitavat taustan: synkronoinnin, indeksoinnin, päivitysten latauksen ja ilmoitukset.
Jaon tekee käyttöjärjestelmän vuorottaja, joka saa prosessorilta vihjeitä siitä, millaista työtä säie tekee. Onnistuessaan järjestely näkyy siinä, että kannettavan akku kestää selvästi pidempään ilman että käyttötuntuma kärsii, koska suurin osa taustatyöstä ei koskaan herätä nopeita ytimiä täyteen vauhtiin. Epäonnistuessaan se näkyy siinä, että jokin ohjelma tuntuu hitaalta ilman selvää syytä, koska sen työ on päätynyt väärille ytimille.
Käyttäjälle tästä seuraa yksi käytännön asia: ytimien lukumäärää ei voi lukea suoraan tuotetiedoista tehon mittarina, koska luvussa on kahdenlaisia ytimiä. Kaksi konetta, joissa molemmissa on sama määrä ytimiä, voivat erota tuntuvasti sen mukaan, kumpia ytimiä niissä on enemmän.
Keskusmuisti ei ole nopeutta vaan tilaa
Keskusmuisti on nopea väliaikainen työtila, jonka sisältö katoaa virran katketessa. Kaikki mitä ohjelma käsittelee on siellä: avatut asiakirjat, verkkosivut, kuvat, ohjelman oma koodi. Muistin määrä ilmoitetaan gigatavuina, ja tavu on kahdeksan bittiä, joten luvut ovat suoraan verrattavissa tallennustilan lukuihin, vaikka käyttötarkoitus on aivan toinen.
Yleisin väärinkäsitys koskee muistin käyttöastetta. Kun tehtävienhallinta näyttää muistista suuren osan varatuksi, se ei kerro ongelmasta. Käyttöjärjestelmä käyttää vapaana olevan muistin levyvälimuistiin, koska tyhjä muisti ei tee mitään hyödyllistä. Muisti vapautuu heti, kun jokin ohjelma sitä tarvitsee. Oikea mittari ei ole käyttöaste vaan se, joutuuko järjestelmä siirtämään dataa levylle.
Toinen väärinkäsitys koskee muistin ja tallennustilan suhdetta. Ne mitataan samoilla yksiköillä, mutta muisti on työtila ja tallennustila on varasto. Tallennustilan loppuminen estää tiedostojen tallentamisen, muistin loppuminen hidastaa konetta. Kumpikaan ei korvaa toista, vaikka käyttöjärjestelmä lainaakin tallennustilaa muistin jatkeeksi silloin kun on pakko.
Muistin laajennettavuus on syytä tarkistaa ennen ostoa eikä sen jälkeen. Osassa koneista muistipiirit on juotettu suoraan emolevyyn, jolloin määrä on lukittu ostohetkellä. Osassa on irrotettavat muistikammat, jolloin muistia voi lisätä myöhemmin, kunhan uusi muisti on tyypiltään sama kuin koneen tukema. Kannettavissa juotettu muisti on tavallisempaa kuin pöytäkoneissa.
Muistin nopeudella ja kanavien määrällä on merkitystä, mutta selvästi vähemmän kuin määrällä. Poikkeus on integroitu näytönohjain, joka käyttää samaa keskusmuistia kuin prosessori. Silloin muistin kaista jaetaan kahden käyttäjän kesken ja nopeampi muisti näkyy myös grafiikan suorituskyvyssä.
Mitä tapahtuu kun muisti loppuu
Kun muisti täyttyy, käyttöjärjestelmä ei ilmoita siitä suoraan. Se alkaa siirtää vähiten käytettyjä muistisivuja tallennustilaan ja hakea niitä takaisin, kun niitä taas tarvitaan. Järjestely on osa virtuaalimuistia, ja se on suunniteltu pehmentämään loppumista, ei estämään sitä.
Hinta on suuri. Tallennustila on nopeimmillaankin monta kertaluokkaa hitaampi kuin keskusmuisti, ja ero näkyy välittömästi. Tyypillinen oire on se, että kone toimii normaalisti niin kauan kuin ohjelmia on vähän, mutta muuttuu tahmeaksi tietyn rajan jälkeen ja tuntuu erityisen hitaalta ohjelmien välillä vaihdettaessa. Levyn kuormitus on tällöin korkea, vaikka mitään suurta tiedostoa ei siirretä. Levytekniikan vaikutusta käsitellään erikseen artikkelissa kiintolevystä ja SSD:stä.
Puhelimessa ja tabletissa sama tilanne ratkaistaan toisin: järjestelmä sulkee taustalla olevia sovelluksia. Käyttäjä huomaa sen siitä, että sovellus latautuu uudelleen alusta, kun siihen palaa. Työpöytäkoneessa vastaava näkyy siinä, että selain lataa taustavälilehden sisällön uudelleen.
Tästä seuraa myös vastaus siihen, milloin lisämuisti kannattaa. Se auttaa vain, jos muisti on oikeasti loppumassa. Jos sivutusta ei tapahdu, lisämuisti ei tee mitään, koska muisti ei tee työtä vaan säilyttää sitä.
Näytönohjain ja integroitu grafiikka
Näytönohjain on erikoistunut laskin, joka tekee suuren määrän yksinkertaisia laskutoimituksia rinnakkain. Se sopii kuvan piirtämiseen, videon pakkaukseen ja kaikkeen työhön, joka jakautuu tuhansiin samanlaisiin osiin.
Integroitu grafiikka on prosessorin sisällä ja käyttää keskusmuistia. Se riittää työpöytäkäyttöön, videoiden katseluun ja kevyeen kuvankäsittelyyn, ja se kuluttaa vähän virtaa. Erillinen näytönohjain on oma piirinsä, jolla on oma nopea muistinsa. Ero näkyy pelien lisäksi videoeditoinnissa ja kolmiulotteisessa mallinnuksessa. Näytön tarkkuus ja virkistystaajuus vaikuttavat siihen, kuinka paljon työtä piirtämisestä syntyy, ja niitä käsitellään artikkelissa näytön tarkkuudesta ja virkistystaajuudesta.
Näytönohjaimen muistin määrä on noussut esiin uudesta syystä: kielimallin ajaminen omalla koneella vaatii, että mallin parametrit mahtuvat muistiin. Muistintarve seuraa suoraan parametrien määrää ja sitä tarkkuutta, jolla ne on tallennettu, ja kvantisointi eli parametrien tallentaminen karkeammalla tarkkuudella on juuri se keino, jolla malli saadaan mahtumaan tavalliseen laitteeseen. Aihetta käsitellään tarkemmin artikkelissa mallin koosta ja parametreista.
Näin mittaat oman pullonkaulasi
Mittaaminen kannattaa tehdä silloin kun kone tuntuu hitaalta, ei silloin kun se on juuri käynnistetty. Etene näin:
- Avaa käyttöjärjestelmän oma seurantatyökalu, Windowsissa tehtävienhallinta ja macOS:ssä toimintojen monitori.
- Tee se asia, joka tuntuu hitaalta. Älä katso lukuja tyhjäkäynnillä, koska silloin mikään ei ole pullonkaula.
- Katso prosessorin käyttöaste. Jos yksi ohjelma pitää käyttöastetta korkealla koko hitauden ajan, pullonkaula on prosessori.
- Katso muistin käyttö ja erikseen sivutuksen tai muistin paineen mittari. Jos dataa siirretään jatkuvasti levylle, muisti on loppu.
- Katso levyn käyttöaste. Jos levy on jatkuvasti täydellä kuormalla mutta prosessori ja muisti eivät, pullonkaula on tallennustila.
- Kirjaa ylös, mikä mittari oli korkealla juuri hitauden aikana. Tämä on ainoa tieto, jonka perusteella osan vaihtaminen kannattaa.
| Oire | Todennäköinen pullonkaula | Mitä mittarissa näkyy | Mikä auttaa |
|---|---|---|---|
| Yksi raskas tehtävä kestää kauan | Prosessori | Yksi ydin tai koko prosessori täydellä kuormalla | Nopeampi prosessori, työn jakaminen |
| Hitaus alkaa vasta monen ohjelman jälkeen | Keskusmuisti | Muisti täynnä ja sivutusta levylle | Lisämuisti, ohjelmien sulkeminen |
| Käynnistys ja ohjelmien avaus takkuaa | Tallennustila | Levyn käyttöaste korkea, muut matalia | Nopeampi levy, käynnistysohjelmien karsinta |
| Kuva nykii peleissä tai videoeditoinnissa | Näytönohjain | Grafiikkapiirin kuorma korkea | Tehokkaampi näytönohjain, kevyemmät asetukset |
| Kone hidastuu vasta pitkän kuormituksen jälkeen | Jäähdytys | Kellotaajuus laskee lämpötilan noustessa | Puhdistus, alustan vaihto, tuuletus |
Jos mikään mittari ei ole korkealla mutta kone tuntuu silti hitaalta, kyse on todennäköisesti muusta kuin laitteistosta: taustaohjelmista, verkkoyhteydestä tai ohjelman omasta odotuksesta. Näitä syitä käydään läpi artikkelissa tietokoneen hidastumisesta, ja itse ostopäätöstä artikkelissa laitteen valinnasta tarpeen mukaan. Mittaus on silti ensimmäinen askel, koska se erottaa arvauksen tiedosta.
Usein kysytyt kysymykset
Kumpi kannattaa hankkia isompana, prosessori vai muisti?
Se riippuu siitä, kumpi loppuu kesken. Jos kone hidastuu vasta kun ohjelmia ja välilehtiä on paljon auki, muisti on pullonkaula. Jos yksittäinen raskas tehtävä kestää kauan vaikka muuta ei ole auki, prosessori on pullonkaula.
Nopeuttaako lisämuisti aina konetta?
Ei nopeuta. Lisämuisti auttaa vain silloin, kun muisti on oikeasti loppumassa ja järjestelmä joutuu siirtämään dataa levylle. Jos sivutusta ei tapahdu, ylimääräinen muisti seisoo käyttämättömänä eikä nopeuta mitään.
Miksi tehtävienhallinta näyttää muistin lähes täytenä?
Koska käyttöjärjestelmä käyttää vapaan muistin levyvälimuistiin ja vapauttaa sen heti kun ohjelma tarvitsee tilaa. Korkea käyttöaste on normaali tila. Ongelmasta kertoo vasta sivutus levylle tai muistin paineen mittari.
Onko enemmän ytimiä aina parempi?
Ei ole. Moni arjen tehtävä etenee askel kerrallaan eikä jakaudu monelle ytimelle, joten yhden ytimen nopeus ratkaisee tuntuman. Ytimien määrä auttaa silloin kun raskaita töitä on monta yhtä aikaa tai kun ohjelma osaa jakaa työn, kuten videon pakkauksessa.
Mitä kellotaajuus oikeasti kertoo?
Se kertoo, montako askelta ydin ottaa sekunnissa, ei sitä paljonko työtä yhdellä askeleella tehdään. Saman mallisarjan sisällä luku on vertailukelpoinen, mutta eri sukupolvien välillä ei, koska uudempi prosessori tekee enemmän työtä jaksoa kohti.
Tarvitseeko tavallinen käyttäjä erillisen näytönohjaimen?
Ei tarvitse, jos käyttö on selailua, toimistotyötä, videoiden katselua ja kevyttä kuvankäsittelyä. Integroitu grafiikka riittää näihin ja kuluttaa vähemmän virtaa. Erillinen näytönohjain kannattaa peleissä, videoeditoinnissa, kolmiulotteisessa mallinnuksessa ja mallien ajamisessa omalla koneella.