Tietotekniikan kuriositeetti

Luin uusimmista Verkkokauppa.com:n myymistä prosessoreista speksejä kilpakumppaneiden lasten vanhempien rahastustekniikasta, kun en ole muutamaan vuoteen seurannut tietotekniikan tilanteen kehittymistä [verkkokauppa.com]. Nykyiset prosessorit perustuvat yksikiteisen piin kasvattamiseen ja valottamiseen [muropaketti]. Myös muista aineista voi valmistaa kristallia, jos ovat riittävän puhtaita.

Oman uusimman tietokoneeni ostamisen jälkeiseltä ajalta on tullut 16 nm– ja jopa 14 nm-valmistutekniikka yleiseen kuluttajatuotantoon, joten jotain kehitystä sillä saralla on tapahtunut [wiki/14nm]. Prosessoreissa kellotaajuudet ovat parhaimmillaan 5 Ghz, joka valonnopeudella on 6 cm / kellojakso. Ytimiä näytti olevan jopa 16, jonka verran löytyi vain palvelinprosessoreista muutaman vuotta sitten [verkkokauppa.com/AMD].

Kuva 1. Pistettynä 10 k€ Assembly-pelikoneeseen, niin ei paljoa tunnu 17 euroa intiaaniateriasta. Jos omista varoista joutuu maksamaan lounaansa, niin voi harmittaa. [twitter]
Tietotekniikassa prosessorit ovat saavuttaneet tason, jossa binäärilogiikan suorittaminen mitä erilaisimmissa tarpeissa on hyvin optimaalista. Liukuluvut eli ”binääriset desimaaliluvut” ja monet muut aiemmin monimutkaiset suoritukset ovat hyvin tyypillisiä, jopa alkeellisimmissa sulautettujen järjestelmien prosessoreissa. Näiden lisäksi ohjelmien suorittamista X86-akkitehtuurilla on optimoitu mahdollisimman paljon, jotta 40 vuotta vanhasta konekoodista peräisin oleva käskykanta saadaan suoritettua nykyaikaisilla prosessoreilla mahdollisimman nopeasti.

Nykyajan binäärisessä tietotekniikassa olemme kohta saavuttamassa vastaavan tason, kuin aikoinaan kohtasivat mekaaniset datankäsittelijät, relekoneet, elektoniset tietokoneet ja transistoriset minitietokoneet. Olemme saapumassa aikaan, jossa nykyistä kehityssuuntaa ja perustaa tulee miettiä uudestaan.

Koko kehitystyön tekeminen uudelle tekniikalle on suuri ja pelottava tekijä, jonka jokainen tietotekniikan parissa ollut tietää. Joskus se työ kannattaa, kannattaa tehdä uusi pääversio. Tupustakin on erilaisia pääversioita kirjoittajana, ehkä joskus vielä minun kannattaa hylätä nykyinen blogini ja aloittaa uusi. Kaikkien nykyisten artikkeleideni korjaaminen on liian raskasta. Luotan ketterään menetelmään kirjoittaessani, joten ehkä vielä selviän jonnekin aikaan asti nykyiselläni.

Mikä sitten on se ongelma nykyisessä tekniikassa, kun aiemmin sanoin, että mitä hyvää on saavutettu. Ongelma ohjelmissa on se, että ne suoritetaan usein silmukoissa, joissa on uusia silmukoita, joissa on uusia silmukoita, joissa on uusia silmukoita, joissa on uusia silmukoita. Tietyssä mielessä tätä voidaan kutsua rekursioksi, tietotekniikassa hyväksi todettu malli. Silmukassa olemassa olevaa koodia käydään looppaamalla läpi, rekursiossa luodaan uutta suoritettavaa ohjelmakoodia esim. kutsumalla samoja aliohjelmia sisäkkäin. Ongelma ydin on kuitenkin sama, joka perustuu yhdessä säikeessä tapahtuvan prosessoinnin rajoittumiseen miljardeihin suorituksiin sekunnissa, käskykannan optimoinnista huolimatta.

Video. Indian explains recursion.

Itse analysoin omalta osaltani tätä ongelmaa niin, että minun itse tekemässäni Patterimato-pelissä on ohjelman suoritusnopeus rajoitettu käyttämällä tyhjää/tyhmää silmukkaa. Se on tehty vanhalle yksi ytimiselle Athlon-prosessorille. Mielenkiintoiseksi asian tekee se, että suoritusnopeus on melkein täysin riippuvaista prosessorin nopeudesta, koska minun tekemäni ohjelman suorittamat käskyt ovat hyvin puhdasta perus- C-kieltä, joka on lähellä konekielen käskykantaa. Sellaisen ohjelman suorituskyvyssä ei ole tapahtunut perustavaa muutosta prosessoreissa, joten ohjelman toiminta on hyvin verrannollinen prosessorin kellotaajuuteen.

Kuva 2. Minkä nuorena oppii, niin sen vanhana taitaa.

Elämme nyt siten mielenkiinoistia aikoja, kun voimme seurata, että luovummeko kauan hyväksi todetusta binäärilogiikasta – X86-arkkitehtuurista, vai selviämmekö jollain pienemmällä muutoksella tulevina vuosikymmeninä. Pidän mahdollisena, että nykyinen binäärinen logiikka pitää pintansa omassa sarjassaan, mutta rinnalle tulee uusia esim. neuroverkkojen tarpeisiin paremmin sopivia tekniikoita. DNA ja yleisesti kemiallinen tietotekniikka on ison tutkimuksen kohteena. Ehkä sitäkin isommat odotukset on kvanttilaskennalla, jolla voisimme päästä tästä silmukkaongelmasta eroon, välttäen raskaiden silmukoiden käyttöä ohjelmistoissa. Tällä hetkellä se on ainut toimivaksi tiedetty tapa tehdä tiettyjä asioita, joten se on mm. tiedonsalauksen yksi keskeinen suunniteluperiaate.

Tähän asti neljä ydintä prosessorissa on riittänyt hyvin nykyisiin tarpeisiin. Kun yksi ydin on varattu käyttöjärjestelmälle ja kaksi haittaohjelmille, niin yksi ydin on jäänyt vapaaksi halutulle ohjelmalle. Useampien ytimien hyödytyminen vaatii hyvin paljon, mutta esimerkiksi funktionaaliset ohjelmointikielet tukevat jo nyt sitä itsestään. Tietotekniikka on tunnettua siitä, että melko uudeksi alaksi ei kykene helposti mm. yhteensopivuuden ja uuden oppimisen takia luopumaan huonoksi tiedetyistä tekniikoista ja standardeista. Eräs tällainen on QWERTY-näppäimistö, jonka tunnistaa vasemmasta yläkulmasta näppäimien aakkosia katsomalla.

Intel Xeon Phi – 72 ydintä
Wiki: Intel 8086 vuodelta 1979 (PC:n prosessorin arkkitehtuuri X86 tulee tästä. Luutavasti sinunkin tietokoneesi tukee samaa konekoodia.)

Vastaa

Sähköpostiosoitettasi ei julkaista.

This site uses Akismet to reduce spam. Learn how your comment data is processed.