Näytönohjain
Näytönohjain on tietokoneen komponentti, joka piirtää grafiikan tietokoneen näytölle. 
Erilliset näytönohjaimet nykyään koostuvat tyypillisesti grafiikkasuorittimesta, näyttömuistista kuten GDDR3, väylälogiikasta PCI Express -liityntään sekä liitännästä näyttölaitetta varten DVI-, DisplayPort- tai HDMI-liitännällä. Emolevylle yhdistetyt "integroidut" näytönohjaimet voivat käyttää tietokoneen keskusmuistia oman erillisen muistinsa sijaan.
Joissakin näytönohjaimissa on lisäominaisuuksia, mm. kiihdytetty 2D- ja 3D-grafiikan renderöinti, videokaappaus, TV-viritinadapteri, MPEG-2
/MPEG-4-purku, FireWire, valokynäliitäntä, TV-ulostulo ja mahdollisuus yhdistää useita näyttöjä. Näytönohjaimia käytetään graafisesti vaativiin tarkoituksiin kuten videopelien pelaamiseen ja yleisesti visualisointitarkoituksiin.
Näytönohjain voi olla emolevyyn rakennettu eli yhdysrakenteinen tai erillinen laajennuskortti. Matalan ja keskitason hintaluokkaan sijoittuvissa emolevyissä on usein pohjoissillan kehittäjän grafiikkapiiri emolevyyn rakennettuna (esim. NForce-emolevypiirisarja NVIDIA-näytönohjaimella tai Intel-emolevypiirisarja Intelin näytönohjaimella). Noin vuoden 2010 jälkeen grafiikkapiiri on eräissä suoritinmalleissa integroitu emolevyn sijaan itse suorittimeen (esim. Intel HD Graphics, AMD APU-mallisto).
Tällaisessa grafiikkapiirisarjassa on yleensä pieni määrä sisäistä muistia minkä lisäksi se ottaa osan tietokoneen keskusmuistista käyttöönsä. Integroitu näytönohjain on ei-toivottu vaihtoehto vaativia 3D-sovelluksia ajaville käyttäjille, sillä integroitujen grafiikkapiirien suorituskyky on alhainen. Lähes kaikissa emolevyissä integroitu grafiikkapiiri voidaan kytkeä pois päältä BIOS-asetuksista ja käyttää AGP- tai PCI Express-väylään liitettävää laajennuskorttimuotoista näytönohjainta paremman suorituskyvyn saavuttamiseksi.
Nykynäytönohjaimet koostuvat piirilevystä johon komponentit kiinnitetään.
Grafiikkasuoritin on grafiikan kiihdytykseen optimoitu suoritin. Grafiikkasuoritin on suunniteltu erityisesti liukulukulaskentaa varten, sillä liukulukujen tehokas laskeminen on 3D-grafiikan renderöinnissä hyvin keskeistä. Maaliskuussa 2017 ytimen kellotaajuudet vaihtelivat yleisesti 1000 ja 1 600 megahertsin välillä.
Grafiikkaprosessorien kehitys juontaa juurensa SGI:n työasemiin ja IRIS GL -rajapintaan. Myöhemmin teknologiaa on tullut myös kuluttajien saataville PC-tietokoneisiin.
Vuonna 1995 julkaistiin kuluttajille suunnatut, mm. Matroxin, Creativen, ATIn ja S3 Graphicsin kehittämät 2D/3D-näytönohjaimet.
Vuonna 1997 3dfx julkaisi kilpailevia tuotteita tehokkaamman Voodoo-grafiikkasirun, jossa oli uusia 3D-ominaisuuksia kuten mipmappaus, Z-puskurointi ja reunanpehmennys. Pian tämän jälkeen julkaistiin useita 3D-näytönohjaimia, muun muassa 3dfx:n Voodoo2 ja NVIDIAn TNT ja TNT2. Näiden vaatima kaistanleveys koetteli jo PCI-väylän rajoja, minkä vuoksi Intel kehitti moninkertaisesti nopeamman AGP-väylän. Vuonna 2000 NVIDIA osti 3dfx:n. Vuodesta 1999 vuoteen 2002 NVIDIA hallitsi näytönohjainmarkkinoita GeForce-sarjallaan. Tänä aikana tehdyt parannukset keskittyivät 3D-algoritmeihin ja grafiikkasuorittimen kellotaajuuteen. Myös videomuistia kehiteltiin: DDR-tekniikan käyttöönotto nosti muistin määrää GeForcen 32 megabitistä GeForce 4:n 128 megabittiin.
Video BIOS tai firmware sisältää perusohjelman, joka hallitsee näytönohjaimen toimintoja ja antaa ohjeet joiden avulla tietokone ja ohjelmisto kommunikoivat näytönohjaimen kanssa. Se voi sisältää tietoja muistin ajastuksesta, käyttönopeuksista, grafiikkasuorittimen ja välimuistin jännitteestä ynnä muusta. BIOS-asetuksia on joskus mahdollista muuttaa, mutta näin tekevät yleensä vain ylikellottajat. BIOSin muuttaminen on riskialtista, sillä se voi aiheuttaa näytönohjaimelle peruuttamatonta vahinkoa.
Näyttömuistiin tallennetaan näytölle piirrettävä kuva. Lisäksi näyttömuistissa voidaan säilyttää muuta tietoa, kuten Z-puskuroinnin dataa, tekstuureja, verteksipuskureita ja käännettyjä varjostinohjelmia.
Ensimmäiset erilliset näytönohjaimet sisälsivät pelkästään kuvadatan sisältävän näyttömuistin ja elektroniikan joka piirsi kuvan näytölle. Tällaisista näytönohjaimista käytetään nimeä "framebuffer".
Modernin näytönohjaimen muistin määrä vaihtelee 2 gigatavusta 12 gigatavuun. Koska grafiikkasuorittimen ja mikropiiristön on voitava käyttää näyttömuistia, käytetään yleensä erityisen nopeaa muistityyppiä kuten VRAM, WRAM tai SGRAM. Vuoden 2003 tienoilla käytettiin yleensä DDR-muistiteknologiaa. Myöhemmin valmistajat ovat siirtyneet käyttämään DDR2-, GDDR3-, GDDR4- ja GDDR5-muistityyppejä. Nykyään videomuistin kellotaajuus on tavallisesti 400 MHz – 3,8 GHz.
RAMDAC (Random Access Memory Digital-to-Analog Converter) muuntaa digitaaliset signaalit analogiliitäntäisten näyttöjen (kuten kuvaputkinäyttöjen) ymmärtämään muotoon analogisiksi signaaleiksi.
RAMDAC sisältää kolme D/A-muunninta, yhden kullekin RGB-järjestelmän päävärille ja niiden lisäksi kellopiirejä, joilla kuvan piirto ajoitetaan kuvaputkinäytön virkistystaajuuksiin. D/A-muunninten bittimäärä määrää kuinka monta väriä näytönohjain voi näyttää, kun taas niiden nopeus määrää millä resoluutiolla ja virkistystaajuudella kuvaa voi näyttää. D/A-muunninten nopeus on nykyisin 400–500 MHz.
Digitaalisten näyttöjen suosio ja RAMDACin integrointi grafiikkasuorittimen ytimeen on johtanut erillisen RAMDAC-sirun katoamiseen sen tarpeettomuuden vuoksi.
Näytönohjain voi käyttää paljon sähköä, josta osa muuttuu lämmöksi. Jäähdytyslaitteita käytetään siirtämään lämpöä muualle, sillä jos lämpöä ei häivytetä näytönohjain voi ylikuumentua ja vahingoittua. Näytönohjaimissa käytetään yleisimmin kolmea eri jäähdytyslaitetta:
VGA on 1980-luvun lopulla kehitelty analogipohjainen standardi, joka suunniteltiin kuvaputkinäyttöjä varten. Joitain VGA-standardin ongelmia ovat sähkömagneettinen häiriö, kuvan vääristyminen ja näytteenottovirheet pikseleiden arvioinnissa.
Digitaalinen standardi, joka on suunniteltu litteille näytöille (kuten LCD-, plasma- ja teräväpiirtonäytöille) ja videoprojektoreille. DVI ei kärsi analogitekniikan ongelmista kuten kuvan vääristymisestä ja sähkömagneettisista häiriöistä.
Vuonna 2003 julkaistu digitaalinen äänen ja videon yhteisliitäntä, jota käytetään usein pelikonsoleissa ja DVD-soittimissa näyttölaitteen kytkemiseen. HDMI tukee kopiosuojausta HDCP:n kautta.
Vuonna 2007 julkaistu digitaalinen äänen ja videon yhteisliitäntä, joka on lisenssimaksuton. DisplayPort tukee kopiosuojausta DPCP:n ja HDCP:n avulla. DisplayPortin tavoitteena on syrjäyttää DVI ja HDMI näyttölaitteen tietokoneeseen kytkemisessä.
Mahdollistaa kytkemisen televisioihin, DVD-soittimiin, videonauhureihin ja pelikonsoleihin. VIVO-liitännässä on yleisesti käytössä kaksi 9-pinnisen Mini-Din -liittimen variaatiota. VIVO-jakokaapelissa on yleensä joko 4 liitintä (S-video sisään ja ulos + komposiittivideo sisään ja ulos) tai 6 liitintä (S-video sisään ja ulos + komponentti Pb [sininen] ulos + komponentti Pr [punainen] ulos + komponentti Y [vihreä] ulos + komposiitti sisään).
Näytönohjaimien käyttämätä väyläliitännät ovat muuttuneet ajan myötä nopeampiin, nykyisin yleisin käytössä oleva on PCI Express.
Näytönohjainten kehittyessä tehokkaammiksi myös niiden energiantarve on kasvanut. Vaikka prosessori- ja virtalähdevalmistajat ovat kehittäneet hyötysuhteiltaan parempia tuotteita, näytönohjaimet kuluttavat yhä enemmän sähköä. Tämän vuoksi näytönohjain voi käyttää enemmän virtaa kuin mikään muu tietokoneen yksittäinen komponentti. Virrankulutuksen pullonkaula on PCI Express-väylä, josta saa enimmillään 75 wattia tehoa. Yli 75 wattia kuluttavan näytönohjaimen tehonsaanti varmistetaan käyttämällä 6 (75W)- tai 8 (150W) -pinnisiä lisävirtaliittimiä näytönohjainmallikohtaisen tarpeen mukaan.
Näytönohjaimen historiaan liittyy olennaisesti näyttötila, jonka näytönohjain kykenee esittämään.
Ensimmäiset IBM PC-tietokoneissa käytetyt näytönohjaimet kykenivät vain MDA tekstitilaan, jonka leveys oli 80 saraketta ja korkeus 25 riviä.
Näytönohjaimen suorituskykyyn vaikuttavat useat eri seikat. Suurimmassa määrin näytönohjaimen suorituskykyyn vaikuttavat verteksi- ja pikselivarjostinyksiköiden lukumääräMikrobitti 5/2007, s. 65 grafiikkasuorittimen kellotaajuus sekä näytönohjaimen muistin suorituskyky.
Grafiikkasuorittimen ominaisuudet ratkaisevat kuinka näyttävää grafiikkaa näytönohjain kykenee prosessoimaan jotta se näyttää liikkuvan sujuvasti. Suuresta rinnakkain tapahtuvasta laskennan määrästä johtuen grafiikkasuorittimien transistorimäärä on suurempi kuin keskusprosessoreissa. Keskussuoritin kykenee suorittamaan tyypillisesti 1–8-säikeisiä ohjelmia yhtäaikaisesti siinä missä grafiikkasuorittimen sisällä voi olla kymmenittäin rinnakkain toimivia säkeitä. Näytönohjain huolehtii itse piirrettävän grafiikan jakamisesta eri varjostinyksiköihin Kiihdytinpiirin nopeus koostuu pitkälti varjostinyksiköitten lukumäärästä, piirin kellotaajuudesta sekä muistiväylän leveydestä ja nopeudesta. Keskussuoritin antaa yleensä runsaasti isoja piirrettäviä alueita näytönohjaimelle. Grafiikkasuoritin kykenee jakamaan piirrettävän alueen pienempiin osa-alueisiin ja kykenee piirtämään sitä samanaikaisesti monesta eri suunnasta. Työstöön grafiikkasuoritin käyttää eri yksiköitä, jotka hoitavat piirtämisen omalla tavallaan. Perinteisessä tavassa yksiköitä on useita samalla näytönohjaimella, mutta uudemmissa näytönohjaimissa pohjataan Unified Shader yksikköön, jossa näytönohjaimen pikselinvarjostin ja verteksivarjostinyksiköt on yhdistetty yhdeksi isommaksi piiriksi. Verteksi- ja pikselinvarjostinyksiköiden tehtävänä on pääasiallisesti värittää oikeilla väreillä niille annetut monikulmiot. Varjostinyksiköt myös valaisevat kolmiot varjostinohjelmien määrittelemällä tavalla. Näytönohjaimessa on myös teksturointiyksikkö, joka värittää pikselit.Mikrobitti 6/2009 s. 47
Varjostinyksiköitten toiminnan kannalta oleellinen osa on näytönohjaimen muistin suorituskyky. Nopeammalla muistilla varjostinyksiköitten ei tarvitse odotella niin kauaa grafiikkadatan siirtymistä muistista varjostinyksiköihin tai toisinpäin.
Varjostinsuorittimet on suunniteltu erityisesti 3D-grafiikassa käytettävien matriisilaskujen ja laskutoimituksissa käytettävän ohjelmakoodien suorittamiseen. Ohjelmoitavien varjostinyksiköiden tulemisen myötä näytönohjain sai muitakin tehtäviä kuin monikulmioiden värittäminen annetuilla väreillä. Varjostinohjelma kykenee mallintamaan esimerkiksi veden pinnan käyttäytymistä suorittimen ohjeistaessa että paikassa X on vettä. Tämän jälkeen varjostinohjelma kykenee laskemaan itsenäisesti veden pinnan käyttäytymisen ilman että välitulosten kanssa tarvitsee neuvotella suorittimen kanssa. DirectX10 tulemisen myötä varjostinsuorittimet korvasivat aiemmin käytössä olleet pikselivarjostin- ja verteksivarjostinyksiköt. Tämän myötä ohjelmoijan työ helpottui. Ohjelmoitavuus nousi myös uuteen ulottuvuuteen, sillä DirecX10:n myötä mukaan tulivat myös geometriavarjostimet, jotka kykenevät luomaan uusia väritystä vaativia monikulmioita.
Kun varjostinyksiköt ovat värittäneet monikulmiot, kuva päätyy rasterointiyksikölle pikseleiksi muuntamista varten.
Lisäksi näytönohjaimen suorituskykyyn vaikuttaa muistiväylän leveys ja siinä käytettävien muistipiirien kellotaajuus ja sukupolvi. Muistin määrä ratkaisee näytönohjaimen näytettävissä olevien yksityiskohtien määrän. Muistin määrä ja muistin nopeus vaikuttavat näytönohjaimen suorituskykyyn. Muistin suorituskyky riippuu muistiväylän leveydestä ja muistin kellotaajuudesta. Muistiväylän kapeutta voidaan kompensoida käyttämällä korkealla kellotaajuudella toimivia muistipiirejä.
Nykyaikaiset PC-näytönohjaimet toimivat tyypillisesti AGP- tai PCI Express -laiteväylässä, mutta vanhemmissa tietokoneissa on vielä PCI- tai jopa VLB- tai ISA-laiteväylässä toimivia kortteja. Kannettavissa tietokoneissa ja joissakin pöytäkoneissa (myös PC:issä) näytönohjain on integroitu emolevylle. Kotitietokoneissa, pelikonsoleissa ja joissakin vanhemmissa grafiikkatyöasemissa näytönohjauslogiikka on yleensä varsin kiinteästi sidoksissa laitteen muuhun toimintaan, eikä sitä yleensä edes pysty vaihtamaan lisäkortin avulla.
Uusimmat PC-näytönohjaimet toimivat nykyään nopeammassa PCI-Express 16x -väylässä, joka on paranneltu versio vanhasta PCI-väylästä. Pci-e-väylien nopeus voidaan säätää dynaamisesti. PCI-Express 16x on parhaimmillaan monta kertaa nopeampi kuin AGP-väylä ja mahdollistaa NVIDIA:n ja ATI:n usean näytönohjaimen rinnakkain kytkemisen suorituskyvyn lisäämiseksi (NVIDIA:n SLI-ominaisuus ja ATI:lla CrossFire). Vastaava tekniikka oli myös joissakin Sunin ja SGI:n grafiikkatyöasemissa jo 1990-luvun alkupuolella sekä joissakin 3dfx Interactiven pelikäyttöön tarkoitetuissa Voodoo-näytönohjainperheen malleissa 1990-luvun lopulla.
Tietokonenäyttöjen ongelmana on se että kuva muodostuu kulmikkaista pisteistä. Kaarevien ja vinojen pintojen esittäminen näyttää sen vuoksi aina sahalaitaiselta. Ongelmaa kiertämään on kehitetty useita tapoja joiden perusideana on pyrkiä häivyttämään sahalaitaisuutta sopivan värisillä pisteillä sahalaitakuviossa. Tätä toteutusta kutsutaan reunanpehmennykseksi. Reunanpehmennyksessä piirrettävästä kuvasta tehdään suurempiresoluutioinen versio jonka avustuksella kuvapisteelle lasketaan lähimmän oikean värityksen keskiarvo. Reunanpehmennyksessä käytettävä kerroin kertoo kuinka monta kertaa suurempi pehmennykseen käytettävä kuva on kooltaan. Tämä tekniikka tarvitsee sujuvasti toimiakseen suuren määrän näyttömuistia. Suurempitarkkuuksisen kuvan laskeminen myös vie näytönohjaimelta paljon laskentatehoa.
Toinen yleisesti kuvanlaadun parantamisessa käytetty tekniikka on anisotrooppinen suodatus. Anisotrooppinen suodatus estää kaukaisia objekteja liialliselta sumentumiselta. Reunanpehmennystä voidaan käyttää myös näissä kohteissa mutta laskennallisesti se on liian raskas näytönohjaimille.
Näytönohjaimen suorituskykyyn vaikuttavat piiriarkkitehtuurin lisäksi myös käytetty ajuriversio.
Näytönohjainajurin tehtävänä on peristeisesti välittää ohjelmiston käskyt näytönohjainpiirille ja suorittaa käännöstehtävä näytönohjaimen ymmärtämään muotoon. Ajureilla kyetään tekemään moninaisia muutoksia suorituskyvyn lisäämiseksi. NVIDIAn ForceWareissa (sittemmin GeForce nimelle vaihtuneet ajurit) ja ATIn Catalysteissa on rutiineja jotka optimoivat ohjelmakoodia paremmin grafiikkapiirille sopivaan muotoon. Aiemmin näytönohjainvalmistajien kesken vallitsi yhteisymmärrys siitä että varjostinohjelmien piirtojärjestystä saa muokata mutta ohjelmien sisältöön ei saa vaikuttaa. Sittemmin tämä raja on hämärtynyt ja ajurit saattavat muuttaa alkuperäistä ohjelmakoodia hyvinkin paljon. Muutoksia luodaan esimerkiksi varjostinohjelmien sisältöön ja z puskurien luontijärjestykseen. Esimerkiksi ATIn Catalyst ajurit sisältävät AI-toiminnon jonka ollessa pois päältä ohjelmistokoodi kulkee kortille kutakuinkin siten kuin ohjelman ohjelmoijat ovat tarkoittaneet. AI-ominaisuuden päälläollessa ajurit vaikuttavat kuvan piirtämiseen jotka asetuksista riippuen tekevät koodiin esiasteisia optimointeja. Ohjelmistokoodi ajetaan eri piirivalmistajien näytönohjelmissa eri tavoin jolloin lopputulokset eivät ole identtisiä keskenään. Koska eri ajurit optimoivat ohjelmakoodia eri tavoin, lopputulokset eivät ole identtisiä keskenään.
Näytönohjaimet voidaan jakaa 2D-näytönohjaimiin ja 3D-näytönohjaimiin.
Tämäntyyppiset kalliimmat näytönohjaimet on suunniteltu tyypillisesti ammattikäyttöön, missä kuvan sekä värien terävyydelle asetetut kriteerit ovat hyvin korkeat. Useimmissa vanhoissa näytönohjaimissa ei ollut ollenkaan 3D-ominaisuuksia, joten ne luokitellaan myös tähän kategoriaan.
Tunnettu 2D-näytönohjaimien valmistaja on mm. Matrox.
3D-grafiikan tehokkaaseen piirtoon tarkoitettuja näytönohjaimia on käytetty ammattikäytössä jo 1980-luvulla, mutta nykyisin niiden selvästi laajin käyttökohde on tietokonepelit, joissa on perinteisesti kilpailtu aina vain näyttävämmästä graafisesta annista. Jo pitkään pelien grafiikasta on pyritty tekemään mahdollisimman realistista, ja mitä realistisemmaksi grafiikka halutaan, sitä enemmän laskentaa yksittäisen kuvan piirto vaatii.
3D-näytönohjainten valmistajista tällä hetkellä vain kaksi kilpailee markkinaherruudesta, AMD ja NVIDIA. Myös 3dfx oli tunnettu valmistaja, jonka Voodoo-piirisarjaan perustuva 3D-näytönohjain toi aikoinaan Sony Playstation -tyylisen laitteistotason 3D-peligrafiikan PC-pelaajien ulottuville. Kilpailu kuitenkin osoittautui 3dfx:lle liian kovaksi ja NVIDIA osti sen pian Voodoo 5 -piirin valmistuksen jälkeen.
3D-näytönohjaimen ero 2D-ohjaimeen on se, että 3D-näytönohjain sisältää erityisesti 3D-mallien tehokkaaseen piirtoon tarkoitettuja ominaisuuksia, alun perin mahdollisuuden piirtää teksturoituja kolmioita, nykyään myös mahdollisuuden laskea näiden kolmioiden paikka ruudulla sekä laskea kolmion pikseleille pikselikohtaisia efektejä näytönohjaimella olevilla pikselivarjostinsuorittimilla.
Näin laskentaa ei tarvitse suorittaa tietokoneen omalla suorittimella. Nykyisin vakio-ominaisuuksiin ovat myös PC-puolella tulleet sellaiset oheistoiminnot kuin ulostulo TV:lle, DVD:n rautapohjainen purku, S/PDIF-liitäntä sekä nk. multi-head-tuki kahdelle tai useammalle monitorille.
Näytönohjaimia valmistavat yritykset lisensoivat grafiikkasuoritin (GPU) tekniikan suoritinvalmistajilta kuten AMD, Intel ja Nvidia.
Kuluttajille suunnattuja näytönohjaimia valmistavat yhtiöt ja tuotemerkit: