^
Sisällysluettelo
<<Open Source -elokuvailtaOpen Collection – muotia, brändejä ja kangasta>>

Open Cores – vapaata rautaa

Open Source -ideologian jatkaminen kirjallisuuteen ja muille luoville aloille on aika ilmeistä. Mutta toinen mielenkiintoinen kysymys on, jos tietokoneohjelmia voidaan tuottaa ja levittää avoimella mallilla, niin mitenkäs sitten itse tietokoneet? Jos pystyn nyt käyttämään kauttaaltaan Linuxia ja muita Open Source -ohjelmia tietokoneellani, niin milloin itse tietokoneesta tulee yhtä avoin? Tavallaanhan PC-tietokoneet ovat avoin arkkitehtuuri siinä mielessä, että tietyt standardit täyttävistä komponenteista voi vapaasti valiten koota oman tietokoneensa. Mutta nämä komponentit ja niiden tuotantoprosessit eivät itsessään ole mitenkään avoimia.

Äkkiseltään voisi ajatella, että Open Source -malli ei toimi tietokoneiden komponenteissa, eli niin sanotusti "raudassa". Ohjelmien lähdekoodilla, kirjan tekstillä, elokuvilla ja äänitiedostoilla on kaikille yhteistä se, että digitaaliseen muotoon tallennettua informaatiota voidaan kopioida rajattomasti ja käytännössä ilmaiseksi. Tietokoneiden komponentit taas ovat ihan oikeaa fyysisen maailman materiaa, joille pätee perinteiset kysynnän ja tarjonnan lait. Empiiriset havaintomme maailmasta sanovat, että yksi tietokone on yksi tietokone, eikä se siitä mihinkään leviä.

Mutta empiirisistä kokemuksistamme huolimatta, on olemassa projekteja Open Source -tyyppisten tietokonekomponenttien valmistamiseksi. Ja ainakin tunnetuin näistä, Opencores.org108 näyttäisi menestyvän hyvin ja saaneen jo joitakin tuotteita sarjavalmistukseen ja markkinoille! Mistä siis on kysymys?

Minähän en elektroniikasta ymmärrä sen enempää kuin sinäkään, mutta ennen kuin jatkamme olisi meidän kuitenkin tässä vaiheessa hyvä paneutua integroitujen piirien valmistukseen.

Tietokoneen komponenttejahan ovat esimerkiksi mikroprosessori, erilaiset ram-muistit, modeemi tai verkkokortti internet-yhteyttä varten, yksi kortti johon näyttö kytketään ja toinen joka tuottaa ääntä kaiuttimiin. Kaikki nämä erilliset komponentit ovat kiinni emolevyssä, joka itsessään on jo elektroniikan mestarinäyte, sisältäen useampia yksittäisiä mikrosiruja sekin. Kuluttajanäkemyksen mukaanhan nämä komponentit tulevat ulos jostakin tehtaasta, pakattuna erilaisiin muovi- ja pahvipaketteihin ja sitten ne kootaan yhteen, lisätään näppäimistö, hiiri, kaiuttimet ja näyttö ja tietokone on valmis.

Mutta nyt paljastuukin, että näiden erilaisten mikrosirujen valmistus muistuttaakin itse asiassa kovasti juuri ohjelmointia. Niiden valmistusta ei tosin yleensä kutsuta ohjelmoinniksi, vaan suunnitteluksi, eli designiksi. Mikrosirujen suunnitteluun on jopa ihan omat ohjelmointikielensäkin. Yleisimmät kielet ovat nimeltään VHDL109 ja Verilog. Nämä VHDL- tai Verilog-kielellä kirjoitetut integroitujen piirien kuvaukset ovatkin sitten tosi rankkaa kamaa. Niitä lukeakseen pitäisi ymmärtää vähän sekä elektroniikkaa että ohjelmointia, ja tällainen tavallinen pulliainen kuin minä saa niistä yleensä vaan päänsäryn. Mutta ne jotka tätä kieltä osaavat, valmistavat siis meidän joka päivä käyttämiämme mikrosiruja. Enkä nyt puhu pelkästään tietokoneista. Mikrosirujahan on niin jääkaapeissamme kuin autoissakin, sellutehtaissa ja hisseissä.

Näistä VHDL-kieltä sisältävistä tiedostoista saadaan suhteellisen automaattisilla prosesseilla tehtyä ensin ns. porttitason kuvaus ja näistä loogisista porteista edelleen piirin fyysinen malli, layout. Tästä valmistetaan lopulta maski, eli eräänlainen muotti, jonka avulla sitten piikiekolle valetaan tai säteilytetään pieniä transistoreita ja johtimia.

Näin siis mikrosirutehtaan valmistuslinja suhteellisen automaattisesti muokkaa puolijohdemateriaalista ohjeiden mukaisen valmiin sirun, joka pakataan ja lähetetään tietokonetehtaalle, autotehtaalle tai jääkaappitehtaalle. Tietenkin tällaisen valmistuslinjan rakentaminen ja ylläpito on ihan oma juttunsa sekin. Muun muassa nämä tehtaat ovat leikkaussaliakin puhtaampia, täysin pölyttömiä. Samaten valmistusprosessiin liittyy paljon muutakin magiaa, mihin emme tässä nyt kovin syvällisesti paneudu. Aikaavievä työvaihe piirin suunnittelussa on muun muassa ns. ajastus. Koska olemme nyt tekemisessä fysiikan maailman kanssa, niin täytyy ottaa huomioon, että sähkösignaali liikkuu piirissä ainoastaan valon nopeudella, ei yhtään nopeammin. Siksipä loogisesti oikein suunnitellusta VHDL-tiedostosta ei vielä synny oikein toimivaa mikrosirua, ellei ensin varmisteta, että sähkösignaali oikeasti ehtii transistorista A transistoriin B tarpeeksi nopeasti ja toisaalta ei liian nopeasti. Mutta tämä yleistajuisuuteen pyrkivä tarinamme ei kuitenkaan sukella tämän syvemmälle, vaan meille riittää uskoa, että tästä on kyse: VHDL-tiedoston ohjeista valmistetaan muotti, jonka avulla puolijohdemateriaalista saadaan valmis mikrosiru.

Eli on osoittautunut, että suurin työ yksittäisen mikrosirun valmistuksessa onkin itse asiassa sen suunnittelu. Tarvitaan ohjelmoijia, jotka kirjoittavat koodia, eli sitä VHDL-kieltä. Sitten tarvitaan testaajia, jotka testaavat, että siru toimii suunnitellusti. Testaaminenkin tehdään luonnollisesti ennen kuin yhtäkään sirua on oikeasti valmistettu, muodostamalla VHDL-tiedostosta malli tietokoneohjelman sisään, jonka avulla sirun toimintaa simuloidaan. Testaaminen onkin mikrosirujen valmistuksessa erittäin tärkeää ja sen osuus suunnittelutyöstä on huomattavasti suurempi kuin esimerkiksi tietokoneohjelmien valmistuksessa. Tämähän johtuu tietenkin siitä, että mikrosiruja ei ole kovin helppoa korjailla jälkeenpäin, joten niiden pitää olla käytännössä virheettömiä, ennen kuin valmistuslinja viritetään tuottamaan niitä tuhatmäärin.

Tämä yksinkertaistettu selostukseni ei sentään päde ihan kaikkiin mikrosiruihin. Esimerkiksi uusiin tietokoneisiin laitettavien nopeiden Pentium, Opteron tai Athlon prosessorien valmistaminen on oikeasti melkoista salatiedettä, jossa jatkuvasti uhmataan fysiikan lakeja. Näidenkin prosessorien suurin työsarka on suunnittelussa, eikä niiden valmistus siltä osin periaatteessa eroa muista mikrosiruista. Kuitenkin näiden huippuprosessorien viimeiset tehot saadaan irti tuotantolinjaan varta vasten tehtävillä virityksillä ja muulla käsityöllä. Menemättä taaskaan yksityiskohtiin, niin haasteena on saada mahdollisimman paljon transistoreja ja johtimia sijoiteltua puolijohteelle mahdollisimman tiheään. Ja sitten kun tuotantolinja saadaan tekemään tarpeeksi pieniä transistoreja, niin seuraava ongelma onkin, että miten ne sähkösignaalia kuljettavat elektronit saadaan pysymään oikeassa johtimessa. Jos johtimet ovat liian pieniä ja liian tiheässä, sähkösignaalit pomppivat yhdestä johtimesta toiseen, kaikki menee sekaisin ja prosessori on käyttökelvoton.

Näin siis uusimpien ja hienoimpien mikroprosessoreiden kohdalla. Sen sijaan monien muiden prosessorien valmistus on – näin minulle on kerrottu – oikeasti lähes niin helppoa kuin yllä kuvasin, silloin kun ei tarvitse lyödä mitään nopeusennätyksiä. Viedään valmis VHDL-tiedosto mikrosiruja valmistavalle alihankkijalle ja hetken kuluttua toisesta päästä saadaan valmiita prosessoreita.

Opencores saikin runsaasti julkisuutta,110 kun sen Open Source -koodista joulukuussa 2003 tosiaan valmistettiin ihan oikea integroitu piiri. Nyttemmin samaa sirua ovat valmistaneet useammatkin valmistajat, mutta ensimmäisen historiallisen Open Source -sirun valmisti Flextronics Semiconductor, eli sama yhtiö joka valmistaa alihankintana siruja niin kännyköitä valmistavalle Nokialle, kuin suurimman osan internetin reitittimistä valmistaneelle Ciscolle. Tämä viimeistään todisti, että Open Source voi toimia myös tietokoneen komponenteissa, eli ns. rautatasolla.

Ei niin, etteikö Opencoresin siruja olisi toteutettu jo paljon aikaisemmin niin kutsuttuina FPGA-siruina.111 FPGA-siruja käytetään elektroniikassa laajalti niiden joustavuuden takia, mutta ne ovat myös Opencoresin ja muiden integroituja piirejä opetusmielessä tai harrastuksenaan suunnittelevien suosiossa. Kyseessä on eräänlainen yleiskäyttöinen mikrosiru. Se tulee tehtaalta tyhjänä ja käyttäjä voi itse "ladata" siihen haluamansa toiminnot, jotka hän siis on ensin kirjoittanut vaikkapa VHDL-kielellä. Lyhenteessä esiintyvä P-kirjain tuleekin juuri sanasta "programmable", ohjelmoitava. Prototyyppien teossa FPGA-sirut ovat arvatenkin korvaamattomia, sillä ne ovat yleensä uudelleen ohjelmoitavia. Eli sirun testauksen jälkeen omaa VHDL-koodiaan voi muokata ja saman sirun voi sitten käyttää uudelleen uuden version kokeilemiseen.

FPGA-piirin "lataaminen", eli ammattikielellä ohjelmoiminen, voidaan tehdä tietokoneeseen kytkettävällä erityisellä laitteella, johon tyhjä FPGA-piiri asetetaan. Jotkut FPGA-piirit kuitenkin unohtavat sisältönsä aina kun tietokone sammutetaan ja nämä piirit ladataan lennossa uudelleen joka kerta tietokoneen käynnistyessä. Periaatteessa FPGA-piirejä voisi verrata polttaviin CD-asemiin. Alunperinhän me kaikki elimme siinä luulossa, että CD-levyjä voi valmistaa vain CD-levytehtaissa. Mutta sitten joku keksi polttavat CD-asemat, jonka jälkeen CD-levyjä pystyikin valmistamaan millä tahansa kotitietokoneella. Tietenkään kotipolttoiset levyt eivät ole yhtä laadukkaita ja kestäviä kuin tehtaassa prässätyt, eikä kotona muutenkaan kannata suuria määriä valmistaa. Mutta polttavien CD-asemien ansiosta kuka tahansa musiikin harrastaja voi halutessaan julkaista oman CD-levyn. Vastaavasti sähköinsinööri voi FPGA-siruilla tehdä ihka oman prosessorinsa.

Ja vaikka Pentiumin ja Opteronin tehoihin ei näillä yleiskäyttöisillä siruilla päästäkään, niin kuulemma moderneilla FPGA-siruilla on jo mahdollista valmistaa teholtaan muinaista 486dx:ää vastaava mikroprosessori. Suomeksi sanottuna tämä tarkoittaa sitä, että reipas sähköinsinööri voisi kotikonstein rakentaa itselleen 90-luvun alun tasoa olevan tietokoneen, joka koostuisi täysin Open Source -komponenteista! FPGA-sirun lataamiseen tarvittavat laitteet eivät edes ole kalliita. Kiinnostuneille tiedoksi, että erilaisia Development-kittejä löytyy muun muassa Altera ja Xilinx nimisiltä yhtiöiltä, ja niiden hinnat ovat noin sata tai sitten tuhansia dollareja. Sitä paitsi pitää muistaa, että oikein reipas sähköinsinöörihän voi rakentaa myös lataamisessa käytetyn piirilevyn itse, jolloin se ei maksa juuri mitään.


108http://www.opencores.org

109Kukapa näistä kirjainyhdistelmistä ottaa selvää, mutta VHDL on lyhenne sanoista "VHSIC Hardware Description Language". VHSIC taas on lyhenne sanoista "Very High Speed Integrated Circuits".

110"Open Source päätyy vihdoin piille", otsikoi esimerkiksi nörttien suosima verkkosivusto Slashdot 8. joulukuuta 2003: http://slashdot.org/articles/03/12/08/2326236.shtml
Itse sirusta lisää osoitteessa: http://www.opencores.org/projects.cgi/web/or1k/silicon

111Tässä kohden on hyvä selventää käytettyä terminologiaa. Opencores.org projektin osallistujat tuntuvat käyttävän termiä FPGA laajasti, kuvaamaan kaikenlaisia ohjelmoitavia mikrosiruja. Tämän takia sitä käytetään tässä merkityksessään myös tässä kappaleessa. Todettakoon kuitenkin tasapuolisuuden vuoksi, että monien tämän alan insinöörien mielestä FPGA:t ovat vain yksi ohjelmoitavien sirujen alatyyppi. Kiinnostuneille lisätietoja löytyy taas kerran Wikipediasta: http://en.wikipedia.org/wiki/Programmable_logic_device


^
Sisällysluettelo
<<Open Source -elokuvailtaOpen Collection – muotia, brändejä ja kangasta>>

Kirjan "Avoin Elämä: Näin toimii Open Source" verkkoversio on luettavissa ilmaiseksi.
Halutessaan siitä on kuitenkin mahdollista, ja suotavaakin, antaa kirjailijalle pientä tippiä.