IP-lohkot laitteistoratkaisuissa

(IPRinfo 2/2003)

Käyttäjät haluavat yhä pienempiä, kevyempiä ja vähemmän energiaa kuluttavia laitteita. Siksi laitteet suunnitellaan yhä useammin yksilöllisistä järjestelmäpiireistä. IP-lohkojen perusidea on tehostaa kallista ja aikaavievää laitteistosuunnittelua hyödyntämällä muiden kerran tekemiä ratkaisuja hallitusti useampien ongelmien ratkaisussa.

Loogisen ajattelun etu on olemassaolevien ratkaisuiden tehokas uudelleenkäyttö. Tietokoneen idea perustuu tälle ajattelulle. Tietotekniikan ohjelmistosuunnittelussa tämä näkyy komponenttiajattelun voimakkaana käyttönä ja laitteistosuunnittelussa taas ns. IP-lohkojen hyödyntämisenä.

Tietotekniset ratkaisut pohjautuvat pääasiassa loogisiin järjestelmiin. Näiden järjestelmien etuna on jo tehtyjen ratkaisujen käyttömahdollisuus uusia järjestelmiä toteutettaessa. Eli kerran keksittyä ei tarvitse keksiä uudelleen.

Yleensäkin liiketoiminnassa kate saadaan luomalla uusi asia kerran, monistamalla sitä useita kertoja ja myymällä tuote asiakkaalle ainutkertaisena kokemuksena melkein uuden luomisen kustannusten hinnalla. Tietoteollisuudessa, ja nykyään myös musiikki- ja elokuvateollisuudessa, tämä onnistuu erityisen hyvin, sillä ohjelman tai sovelluksen tekeminen on työlästä, mutta monistaminen erittäin halpaa, käytännössä ilmaista.

Tästä menestyksellisen liiketoiminnan lähteestä, luomisen raskauden ja monistamisen helppouden välisestä kustannuserosta, kumpuavat käytännössä kaikki riidat. Siksi tilanteen vakauttamiseksi tarvitaan lainsäädännöllisiä ja teknologisia apukeinoja.

Perinteinen tietotekniikka

Ohjelmistotekniikassa ymmärrettiin jo hyvin varhaisessa vaiheessa, että ohjelmistotyön tuottavuuden nostamiseksi oli ohjelmistojen uudelleenkäyttö ratkaisevassa asemassa. Aliohjelmat, moduulit ja ohjelmakirjastot olivat työkaluja ohjelmistojen uudelleenkäytön helpottamiseksi.

Nykyisin taas komponenttiajattelu on saanut voimakkaasti sijaa ohjelmistojen suunnittelutyössä. Erilliset kokonaisuudet toteutetaan selkeiksi yleiskäyttöisiksi komponenteiksi, joilla on hyvin määritellyt liitynnät ulkomaailmaan ja joita voi tarvittaessa hyödyntää muiden ohjelmistojen teossa.

Esimerkiksi nykyisin graafiset käyttöliittymät on usein toteutettu erilaisia komponentteja (esim. liukusäädin tai graafi) käyttäen. Vastaavantyyppistä ajattelua on myös autoteollisuudessa. Autot kootaan standardikomponenteista (esim. jarrusylinteri), joita voidaan käyttää useissa erilaisissa automalleissa. Hyvin suunniteltuja osakokonaisuuksia voidaan käyttää useissa eri kohteissa, ja näin saadaan kehityskustannuksia jaetuksi, ja suunnittelutyön tuottavuus kasvaa.

Perinteisesti tietotekniset ratkaisut ovat pohjautuneet ohjelmoitavaan tietokonearkkitehtuuriin. Siinä tietokoneen sydän, kallis laskentalaite (ALU, aritmeettis-looginen yksikkö) voidaan helposti vaihdettavan ohjelman avulla saada ratkaisemaan täysin erilaisia tehtäviä. Tästä syystä tietokoneesta tuli niin suuri menestys. Ensimmäistä tietokonetta käytettiin ammusten ballistiikan määrittämiseen, atomipommilaskentaan ja väestönlaskentaan; näin koneen valtavat rakennuskustannukset saatiin jaettua kolmen eri viraston kesken.

Tietokoneen suunnittelu on erittäin kallista, mutta niitä voidaan valmiista suunnitelmista rakentaa samanlaisia kappaleita edullisesti. Erillisen koneeseen ladattavan ohjelman avulla tämä massatuotettu tietokone voidaan yksilöllistää ratkaisemaan juuri haluttuja tehtäviä. Tämän yleiskäyttöisyyden idean – eli ei kannata rakentaa jokaista ongelmaa varten erillistä konetta, vaan kehittää helposti muunneltavissa oleva ongelmanratkaisija – tajusivat jo 1940-luvulla John von Neumann ja Alan Turing.

Tietokoneen rakenteen suunnittelu on muuttunut

Tietokoneen perusidea on kantanut hyvin pitkään. Puolijohdetekniikan kehittymisen myötä yksinkertainen tietokone kyettiin 1970-luvun alkupuolella toteuttamaan yhdelle mikropiirille (IC, Integrated Circuit). Tällaisen yhdellä mikropiirillä rakennetun tietokoneen, mikroprosessorin, valmistuskustannukset ovat erittäin alhaiset.

Mikroprosessorin keksimisen jälkeisten 30 vuoden aikana puolijohdetekniikka on kehittynyt voimakkaasti. Mikropiirille voidaan rakentaa valtavasti enemmän aktiivisia kytkentäkomponentteja, transistoreita. Perinteinen tietokoneen rakennustapa, ohjelmoitava arkkitehtuuri, ei enää kykene täysimääräisesti hyödyntämään kaikkia uusia transistoreita, joita on mahdollista mikropiirille rakentaa.

Tilanne on sama kuin jos perinteiselle rakennustyömaalle tuotaisiin tuhatkertainen määrä työmiehiä. Löytyykö kaikille työtekijöille tehokasta käyttöä perinteisellä rakennustyömaalla, vai täytyykö rakentamisen arkkitehtuuria kehittää esimerkiksi jakamalla työ useille alihankkijoille, jotka organisoivat uudet resurssit tehokkaasti?

von Neumann näki ongelman jo 1950-luvun alussa ja ideoi rakennettaan muuttavan ongelmanratkaisijan. Tämäntyyppisessä uudelleen konfiguroitavassa arkkitehtuurissa tietokoneen rakennetta voidaan muuttaa, jotta se soveltuisi mahdollisimman hyvin kulloisenkin ongelman ratkaisuun. Uudelleen konfiguroitavan arkkitehtuurin laskentakapasiteetti puolijohdepinta-alaan nähden on tyypillisesti 10-1000 -kertainen ohjelmoitavaan arkkitehtuuriin verrattuna.

Ohjelmoitavassa arkkitehtuurissa tietokoneen rakenne pysyy aina samanlaisena, se tarvitsee suunnitella vain kerran. Uudelleen konfiguroitavassa arkkitehtuurissa rakenne on suunniteltava uudelleen jokaista ongelmaa varten. Koska rakennetta ei voida suunnitella vain kerran ja monistaa miljoonia, itse tietokoneen rakenteen suunnittelua on tehostettava.

Keinoäly helpottaa arkielämää

Mikroprosessorien avulla keinotekoista älykkyyttä on kyetty upottamaan yhä halvempiin laitteisiin. Mikroaaltouunit, puhelinvastaajat ja hissit ovat tyypillisiä esimerkkejä arkielämän laitteista, ns. sulautetuista järjestelmistä, joissa on mikroprosessoritekniikan suomaa pienimuotoista älykkyyttä. Tätä älykkyyttä halutaan nykyään yhä pienempiin laitteisiin, esimerkiksi kameroihin, kelloihin ja kännyköihin. Näiden kaikkien laitteiden ongelmana on myös rajallinen sähköenergian määrä, koska ei haluta raskaita akkuja laitteen painoa lisäämään.

Nykyiset keinotekoista älykkyyttä sisältävät laitteet suunnitellaan useista mikropiireistä; itse mikroprosessorista, muistikomponenteista sekä erilaisista oheispiireistä. Puolijohdeteknologian kehittyessä yhdelle mikropiirille voidaan sisällyttää kaikki tarvittavat komponentit; mikroprosessori, muistit ja oheiskomponentit. Tällaisia kaiken tarvittavan yhdellä mikropiirillä sisältäviä kokonaisuuksia kutsutaan järjestelmäpiireiksi (SoC, System-on-Chip).

Koko laitteisto on suunniteltava yhtä sovellusta varten

Kehitys on hyvin nähtävissä vaikkapa matkapuhelimissa. Ensimmäiset GSM-puhelimet sisälsivät toistakymmentä mikropiiriä, joista monet olivat ns. standardikomponentteja. Modernit GSM-puhelimet on rakennettu korkeintaan viidestä mikropiiristä, joista suurin osa on vartavasten tätä tarkoitusta varten suunniteltuja ns. asiakaspiirejä (ASIC, Application Specific Integrated Circuit).

Enää ei voida turvautua valmiisiin mikropiireihin, jotka ohjelmallisesti määrätään toimimaan halutulla tavalla, vaan koko laitteisto täytyy suunnitella tiettyä sovellusta varten. Niinpä koko- ja tehonkulutusvaatimusten ja kustannuspaineiden vuoksi muokkaus tiettyä sovellusta varten tulee ohjelmistotasolta yhä lähemmäs laitteistoa.

IP-lohkot

Helpointa sulautettujen järjestelmien suunnittelu olisi käyttäen standardeja mikropiirejä, mutta tehokkuusvaatimukset sekä koko- ja kustannusrajoitukset pakottavat käyttämään räätälöityjä järjestelmätoteutuksia. Komponentit joudutaan suunnittelemaan vain tiettyä sovellutusta varten.

Suunnittelutyö olisi hyvin työlästä, jos jokainen mikropiirin transistori pitäisi suunnitella erikseen. Siksi suunnittelutyötä on pyritty osaksi automatisoimaan luomalla suunnittelutyötä tehostavia laitteistokuvauskieliä (HDL, Hardware Description Languages), joilla voidaan operoida inhimilliselle suunnittelijalle tutuimmilla korkeamman tason käsitteillä.
Tästä huolimatta suunnittelu ei ole taloudellisesti järkevää, jos kaikki joudutaan suunnittelemaan alusta alkaen. Siksi laitteistosuunnitteluun on kehitetty IP-lohkon käsite (IP = tässä: Intellectual Property, ei siis Internetin osoite, IP Internet Protocol Address).

IP-lohko voi olla vaikkapa kertolaskuyksikön fyysinen mikropiiritoteutus tai laitteistokuvauskielinen kuvaus GSM-puhelimen kantataajuisesta signaalinkäsittelystä. Järjestelmäpiirisuunnittelija voi hankkia IP-lohkon yrityksen omalta IP-lohkosuunnittelijalta, tai IP-lohkon voi ostaa kolmannelta osapuolelta.

Hankittuaan sopivan IP-lohkon suunnittelija muokkaa tai parametrisoi IP-lohkoa ja liittää sen osaksi laajempaa kokonaisuutta. Tämä vastaa tarkoin ohjelmistotekniikasta tuttua komponenttiajattelua: haluttu järjestelmä rakennetaan käyttäen mahdollisimman paljon valmiita komponentteja, tässä tapauksessa IP-lohkoja.

Tyypillisesti järjestelmäpiirien suunnittelu tehdään käyttäen erityistä suunnitteluympäristöä (esimerkiksi Mentor Graphics ja Cadence), jotka tukevat yhtenäisesti koko suunnitteluketjua alkusuunnittelusta testaukseen.
IP-lohkojen valmistamisesta on tullut oma teollisuudenhaaransa, vastaavasti kuin komponenttialihankkijoista autoteollisuudessa. Jotkut yritykset tekevät piirisuunnittelun ohessa valmiita IP-lohkoja, esim. Synopsys tai suomalainen VLSI Solutions Oy.

IP-lohko voi olla periaatteessa melkein mitä tahansa, mutta helpoimmin käytettäviä ja kilpailutettavia eri alihankkijoiden kesken ovat IP-lohkot, jotka toteuttavat jonkin hyvin standardoidun toiminteen, esim. USB- tai Bluetooth -liitynnän.

Lisenssit ja maksuperiaatteet vaihtelevat

IP-lohkon käyttämisestä peritään yleensä korvaus. Korvausperiaatteet vaihtelevat tapauskohtaisesti. Suurempien asiakkaiden kanssa hinnoittelu sovitaan aina erikseen. On rajoittamattoman käytön sallivia kertakorvauslisenssejä ja käytön mukaan erikseen laskutettavia lisenssejä.

Yleensä IP-lohkon sisäistä rakennetta ei paljasteta, vaan ainoastaan sen liitännät ulkopuoliseen maailmaan sekä sen käyttämät resurssit. Siksi IP-lohkon kopiointi on hankalaa, ja lisenssiehtojen pitävyys voidaan vahvistaa tekniikan keinoin.
Joissain suunnitteluympäristöissä, kuten Alteran Quartuksessa, on Open Core Plus -lisenssin avulla mahdollista käyttää IP-lohkoja, jotka toimivat rajoitetun ajan, esimerkiksi 48 tuntia. Näin saadaan varmuus siitä, että koko järjestelmä toimii halutulla tavalla, minkä jälkeen maksetaan lisenssimaksu ja saadaan rajoittamaton käyttöoikeus IP-lohkoon.

On myös olemassa Open Cores -ryhmittymän kehittämiä ilmaiseksi käytettäviä IP-lohkoja vastaavaan tapaan kuin ohjelmistopuolella ns. GPL-lisenssin pohjalta toimiva vapaa ohjelmakoodi. Näiden ongelmana on vaihteleva laatu ja avoimet vastuukysymykset.

IP-lohkojen toimintavirheet aiheuttavat oikeudellisia pulmia

IP-lohkojen korvaukset eivät yleensä aiheuta suuria pulmia. Erittäin hankala ongelma sen sijaan on IP-lohkojen toiminnallisuuksien mahdollinen puutteellisuus. Voi olla, että lohkossa on pieniä virheitä tai sen suorituskyky ei ole haluttu.
Pahimmassa tapauksessa puutteellisesti toimivan IP-lohkon muutosten teettäminen lohkon tekijällä vastaamaan tarkasti omia vaatimuksia maksaa enemmän kuin lohkon toiminnallisuuksien tekeminen suoraan itse. Tällöin puhutaan ns. Intellectual dead end -tilanteesta.

Tilaajan ja toimittajan vastuunjako epäselvä

Kuinka hankittaessa ulkopuoliselta IP-lohkoa voidaan määritellä riittävän tarkasti mitä halutaan ja mitkä ovat sanktiot? Entä miten määritellään IP-lohkon tekijän ja käyttäjän vastuut, jos lohkon sisältävä järjestelmä aiheuttaa vahinkoa ulkopuoliselle kolmannelle osapuolelle?

Ongelmat ovat vaikeita, koska vaaditaan sekä vahvaa teknologista asiantuntemusta että sopimusjuridiikan ymmärrystä. Lisäksi esimerkiksi amerikkalainen oikeuskäytäntö eroaa vastuukysymysten määrittelyssä eurooppalaisesta käytännöstä lähinnä yksiselitteisempien vastuumäärittelyiden osalta, eli vastuut pyritään rajaamaan mahdollisimman tarkoin.
Mielenkiintoinen oikeudellinen ongelma syntyy myös, jos IP-lohkon tekijä on tahattomasti tai tahallisesti käyttänyt patenttisuojattuja menetelmiä lohkon toteutuksessa. Kuka silloin vastaa patenttirikkomuksesta?

IP-lohkon tekijä voi myös lopettaa lohkon kehittämisen ja jättää lohkon käyttäjän täysin omilleen. Koska standardit muuttuvat jatkuvasti, IP-lohkon tuen lopettaminen on suuri tappio. Tämän takia esimerkiksi suuri eurooppalainen mikroelektroniikkavalmistaja ST Microelectronics luottaa vain valittuun joukkoon IP-toimittajia, joiden kanssa on muotoutunut vakiintunut asiakassuhde.

Odotettavissa on oikeudellisia ongelmia

Tulevaisuudessa uudelleen konfiguroitavat arkkitehtuurit kehittyvät siihen suuntaan, että järjestelmät kykenevät muuttamaan itse omaa rakennettaan eli sopeutumaan kulloinkin vallitseviin ympäristöolosuhteisiin. Entä jos tällaisten modifikaatioiden tuloksena syntyykin jo patentoitu rakenne, kuka on silloin vastuussa patenttirikkomuksesta?

Mikäli IP-lohkon tekijä ja käyttäjä ovat eri organisaatioissa, muodostuu näiden välille oikeudellinen ja mahdollisesti myös oikeuskulttuurillinen rajapinta, jonka operoiminen on haastava tehtävä. On kyettävä samanaikaisesti hallitsemaan sekä vaativa teknologia että monimutkaiset sopimusoikeudelliset määritelmät ja rakenteet.

 Jarkko Vuori
Professori
Jyväskylän yliopisto/Tietotekniikan laitos

Kirjallisuutta:

Davis, M.: Engines of Logic, Norton, 2000
Ashenden, P., J., et. al.: System-on-Chip Methodologies & Design Languages, Kluwer, 2001
http://www.opencores.org/