Kopioi artikkelin PDF-versio

Resurssientuhlaus kuriin

Kännykkä on pian radiotietokone

Tulevaisuudessa käyttäjä voi ladata kännykkäänsä radio-sovelluksia suoraan netistä tai kavereilta. Ohjelmistoradio mahdollistaa radio-toimintojen muokkaamisen ohjelmallisesti. Huomispäivän kännykkä osaa toimia monen-laisissa verkkoympäristöissä.

Radioiden kantataajuustoiminnat toteutetaan nykyisissä älypuhelimissa erillisin laiteratkaisuin. Langattoman viestinnän standardit kehittyvät kuitenkin edelleen nopeasti, mikä houkuttelee siirtämään toimintoja laitteistolta ohjelmoitaville prosessoreille.

Nykyisissä kannettavissa laitteissa halutaan käyttää useaa radiota samanaikaisesti. Kustannusten ja tehon säästämiseksi samanaikaisten radioiden olisi kyettävä jakamaan laitteistoresursseja tehokkaasti.

Kyky ohjelmallisesti muokata kännykän radio-osa toimimaan useilla eri radiostandardeilla nopeuttaisi laitteiden tuotekehitystä ja kehitettyjen tekniikoiden uudelleenkäyttöä.

Kohti radiotietokonetta

Ohjelmistoradio mahdollistaa radion toimintojen muokkaamisen ohjelmallisesti, joten suoritettavaa ohjelmaa muuttamalla voidaan samaa laitteistoa käyttää toteuttamaan eri radiostandardeja.

Tyypillinen ohjelmistolla toteutettu radion osa on kantataajuuslaskenta, mutta piiritekniikoiden kehittyessä radiotaajuusosienkin ohjelmallinen muokkaaminen on mahdollista. Yhtäläisyytenä perinteiseen laitteistoradioon on säilynyt yhden radion suorittaminen kerrallaan. Tämä onkin helpottanut suunnittelutyötä merkittävästi, koska kaikki ohjelmistoradioalustan resurssit ovat ajettavan radion käytettävissä.

Seuraavana askelmana ohjelmistoradion kehityksessä ovat piiriratkaisut, jotka voidaan muuntaa käytön aikana toteuttamaan eri radiostandardeja. Monen radiostandardin tukeminen samanaikaisesti (multiradio) voi perustua joko laitteisto- tai ohjelmistopohjaiseen arkkitehtuuriin.

Piirien pinta-alaa voidaan säästää jakamalla laitteistoresursseja ajon aikana. Jopa yksittäinen laitealusta saadaan tukemaan multiradiotoimintoja lataamalla, käynnistämällä ja sammuttamalla ohjelmistoja samaan tapaan kuin mikrojen kanssa tehdään.

Tietokonemainen radiojärjestelmä asettaa ohjelmoinnille haasteita. Jos halutaan samanaikaisesti ohjelmoida ja operoida useita erilaisia radioita, laitteistoresurssit voivat loppua kesken. Koska radiot ovat reaktiivisia, niiden tarkka käyttäytyminen ei ole etukäteen tiedossa. Toiminta riippuu elektroniikan lisäksi muistakin radioyhteyden osapuolista tai radiotien laadusta. Esimerkiksi heikkolaatuinen yhteys voi lisätä uudelleenlähetysten määrää, jolloin suorituskapasiteetti voi jäädä vajaaksi.

Radiotietokoneen on siksi pystyttävä suorittamaan rinnakkain useaa samanaikaista radiota, käyttämään laitteistoa tehokkaasti jakamalla se ajonaikaisesti useille eri radioille sekä havaitsemaan ja ratkaisemaan mahdolliset ajonaikaiset resurssiongelmat eri radioiden välillä.

Ohjelmistorajapinta helpottaa versiointia

Radioiden ohjelmointirajapinta erottaa erityiset radio-ohjelmistot alla toimivasta muusta laitteistosta. Niiden elinkaari ja niihin tehtävät panostukset voivat ajan kanssa hyvinkin ylittää yksittäisen laitteistoversion elinkaaren ja panostukset.

Erillisyytensä ansiosta voidaan käyttää kumpaankin parhaiten sopivia tekniikoita. Erillisyys puhelimen muusta osasta mahdollistaa radio-osalle myös paremmat mikroarkkitehtuurit ja nopeammat valmistusprosessit. Ohjelmistoissa puolestaan voidaan omassa tahdissa hyödyntää parhaiten sopivia algoritmeja, toimintoja ja tulevia standardeja.

Avoimia standardeja hyödyntäen voidaan osa kehitystyöstä teettää tai ostaa kolmansilta osapuolilta. Avoimia rajapintoja pohditaan jo standardoitaviksi ETSI:n RRS-komiteassa. Radio-ohjelmiston käännin hyväksyy ideaalisessa tapauksessa myös laitteistoriippumatonta lähdekoodia ja luo siitä radiopaketin, joka sisältää ajettavan ohjelmakoodin sekä kaikkien laitteisto-osien asetustiedot. Käytännössä ohjelmistoja joudutaan aina jonkin verran optimoimaan ja sovittamaan käytetylle alustalle hinta- ja tehovaatimusten takia.

Kovia tutkimushaasteita

Keskeisiä haasteita multiradiojärjestelmien kehittämisessä ovat radiokäyttöjärjestelmä ja ohjelmistoradion arkkitehtuuri sekä tehokas resurssienhallinta.

Resurssienhallinnan olisi tuettava monen radion samanaikaista toimintaa ja sen olisi mukauduttava yksittäisten radioiden tiukkoihin tosiaikavaatimuksiin, jotta radiot voidaan kehittää ja varmentaa toisistaan riippumatta. Omat haasteensa liittyvät myös radioiden ohjelmointimalliin. Näitä kaikkia pyritään selvittämään Giga-ohjelmaan liittyvässä ohjelmistoradion demonstraatioprojektissa. SDR-ohjelmassa kehitetyn radiotietokoneen esittelyssä keskitytään laitteen kantataajuus-alijärjestelmään.

Radiotietokoneen arkkitehtuuri

Laiteresurssien optimointi jokaista mahdollista usean radion käyttötapausta varten olisi kovin epäkäytännöllistä radioiden ja niiden mahdollisten yhdistelmien runsaan lukumäärän vuoksi. Radioiden suunnittelun modulaarisuuden tähden on tärkeää, että yksittäisiä radioita voidaan suunnitella ja verifioida muista riippumatta.

Radiotietokoneen on kyettävä suorittamaan näitä toisistaan riippumatta suunniteltuja radio-ohjelmistoja siten, että samanaikaisesti käytettävät radiot pystyvät jakamaan laiteresursseja, mutta ne eivät saisi häiritä toistensa virheetöntä toimintaa. Radiotietokoneen toiminnallinen arkkitehtuuri määrittää käyttäjän ja radio-ohjelmiston näkemän liitäntärajapinnan radiotietokoneeseen, radiotietokoneen ylätason ohjelmistokomponentit ja niiden toiminnot sekä mallin radio-ohjelmiston ja radiotietokoneen aikatason käyttäytymiselle. Toiminnallinen arkkitehtuuri Eri radiostandardeista on kehitetty yhtenäinen kuvaus toiminnallista arkkitehtuuria varten. Yksittäiset radiot seuraavat elinkaarta, joka on sarja hallinnollisia tiloja: asentamaton, asennettu, ladattu, aktiivinen. Hallinnollisen tilan muutoksen yhteydessä radiotietokone voi tarkastaa, että uuden tilan vaatimat resurssit ovat saatavana. Esimerkiksi asennuksen yhteydessä on hyvä tarkastaa, että radiotietokone tukee asennettavaa radiota, ja latauksen yhteydessä, että käyttömuisti riittää radion kaikkien ohjelmistokomponenttien lataamiseen. Aktiivisessa tilassa radiota voidaan käyttää kommunikointiin. Resurssienkäytön tehostamiseksi aktiivitila jaetaan toimintatiloihin, jotka määritellään resurssien tarpeen ja kommunikoinnin mukaan. Toimintatilasta toiseen siirtymisen voi laukaista olosuhteiden muutos kuten käyttäjän tai radiolinkin tarve. Esimerkkejä ovat toimeton, synkronointi, ohjauskanavan kuunteleminen ja kommunikointi.

Toimintatilajako on radiokohtaista. Perusperiaatteena on löytää kullekin radiolle ominaiset tilat, jotka poikkeavat toisistaan oleellisesti resurssien käytön suhteen ja ovat riittävän pitkäkestoisia. Liian usein tapahtuva toimintatilan vaihto aiheuttaa tarpeetonta kuormitusta radiotietokoneelle sen suorittaessa resurssien uudelleenkohdentamista. Taulukossa on esimerkki GSM- ja WLAN -radioiden käyttäytymisen jakamisesta toimintatiloihin.

MURI-rajapinta avuksi

Radiotietokonetta käyttäville sovelluksille tehty MURI-rajapinta (Multi-Radio Access Interface) tarjoaa palvelut siirtymisiin radioiden hallinnollisten tilojen välillä (esim. asenna radio, lataa radio), sekä aktiivisten radioiden yhteydenhallintaan ja dataliikenteen ohjaukseen (esim. etsi muita laitteita, muodosta assosiaatio, muodosta datayhteys). MURI-rajapinnan kautta tapahtuu myös varsinainen hyötydatan siirto. Radio-ohjelmistojen toteuttamisessa noudatetaan standardien asettamia vaatimuksia, mutta ne on sovitettava myös URAI-rajapintaan (Unified Radio Application Interface), jotta niitä voidaan suorittaa osana radiotietokonetta. URAI määrittää radion tehtäväksi samantapaiset palvelut, jotka näkyvät radiotietokoneen käyttösovelluksille. Toisaalta käyttöjärjestelmä tarjoaa radioille palvelut laiteresurssien ja spektrin käyttöön.

Perinteisesti ohjelmistoradio varaa ajettavalle radiolle laskenta- ja laitteistoresursseja ääritapauksen perusteella. Tämä johtaa usein ylipessimistiseen resurssienkäyttöön. Esimerkiksi puhelujen välillä GSM-radio kuuntelee saapuvia puheluja ja lähettää sijaintipäivityksiä, mikä vie vähän laskentaresursseja verrattuna puheluun.

Resurssienkäytön optimoimiseksi radiolle on taattu resurssit vain kulloisenkin toimintatilan vaatimusten mukaisesti. Kantataajuuslaskenta kuvataan toimintatilakohtaisin laajennetuin synkronisin datavuomallein. Näistä voidaan käännösaikana laskea radiolle toimintatilakohtaiset resurssibudjetit, jotka sisältävät tiedon laskenta- ja viestintäkapasiteetin sekä muistin tarpeesta. Tieto tallennetaan radiotietokoneeseen ladattavaan radiopakettiin ajonaikaista resurssienhallintaa varten. Ajonaikainen resurssienhallinta Kun aktiivinen radio muuttaa toimintatilaansa, lähettää se radiokäyttöjärjestelmälle URAI-rajapinnan kautta viestin muuttuneesta resurssientarpeesta. Resurssienhallinta yhdistää aktiivisten radioiden resurssibudjetit, kohdentaa kantataajuuslaskennan suoritinytimille ja luo vuorotuksen siten, että radioiden reaaliaikavaatimukset otetaan huomioon. Uuden vuorotuksen luonti on laskennallisesti raskas, mikä pitää ottaa huomioon radion toimintatiloja määriteltäessä. Tiloista ei pidä tehdä liian hienojakoisia aikatasossa. Esimerkiksi puhelun alkaminen ja päättyminen tai WLAN-radion siirtyminen virransäästötilaan ja pois siitä ovat sopivia toimintatilan muutostilanteita. Jotta resurssien käyttö saadaan tehokkaaksi, radiotietokone voi jakaa resurssin usealle samanaikaisesti aktiiviselle radiolle. Koska radioiden keskinäinen aikakäyttäytyminen ei yleensä ole etukäteen tiedossa, radiot voivat tarvita jaettua resurssia samanaikaisesti ja resurssinhallinta pitää suorittaa ajon aikana. Resurssikonfliktin ajonaikainen havaitseminen on mahdollista, koska radiotietokoneessa on radioiden dynaamista aikakäyttäytymistä seuraava komponentti MRC (Multi-Radio Controller). Resurssienjako-ongelma ratkaistaan kaksivaiheisesti.

Resurssien kohdentamisvaiheessa (joka tehdään aina radion toimintatilan vaihdon yhteydessä) tehty jakopäätös kerrotaan MRC:lle, jolle luodaan tätä varten uusi ajoitussääntö resurssia jakaville radioille.

Radioiden ajon aikana MRC havaitsee mahdollisen ristiriidan ja ratkaisee sen esimerkiksi estämällä alemman prioriteetin radion toiminnan kyseisen ajanjakson aikana tai ajastamalla toisen radion toimimaan konfliktista vapaalla ajanhetkellä, mikäli se on sallittua. Radiotietokone voi seurata MRC:n havaitsemien resurssiristiriitojen määrää ja reagoida, jos alemman prioriteetin radion saama palvelutaso laskee liikaa. Kehitettävää riittää Radiostandardien määrän kasvu tarkoittaa tulevaisuudessa yhä useampaa radiomodeemia mobiililaitteissa. Ohjelmistoradiot voivat vähentää niihin tarvittavien komponenttien määrää ja sitä kautta helpottaa laitteiden valmistamista.

Ohjelmistoradion avulla laitteiden suunnittelua voidaan nopeuttaa ja niistä tulee helpommin mukautuvia uusiin järjestelmiin. Todellinen radiotietokone vie tätä kehitystä vieläkin pidemmälle. Kaupallisesti valmistettavaa, kaikki toiminnot sisältävää ohjelmistoradiota ei voida (vielä) toteuttaa. Kantataajuuslaskennassa hyödynnettävien vektoriprosessoreiden ohjelmointi tuo edelleen lisähaasteita. Tyypillisesti näitä ohjelmoidaan konekielitasolla tai läheisellä C-kielellä. Ohjelmat eivät ole siirrettävissä toisentyyppiselle prosessorille.

Radiotaajuusosissa on edelleen fysikaalisia rajoituksia, jotka rajoittavat niiden jakamismahdollisuutta useiden radioprotokollien kesken. Tosin lisäämällä RF-osien ohjattavuutta voidaan ajonaikaista jakoa hyödyntää niissäkin. Ongelmaksi muodostuu näiden fysikaalisten ominaisuuksien kuvaus sellaisessa muodossa, jota radiotietokone voisi hyödyntää.

Protokollapinot on nykyään suunniteltu erillisiksi ja itsenäisiksi ohjelmistoiksi. Joihinkin yhteyskäytäntöihin on lisätty yleensä jälkikäteen yhteistoimintamäärittelyjä, jos niiden on todettu tai ajateltu olevan samaan aikaan käytössä ja häiritsevän toisiaan. Radiotietokoneessa tämä yhteistoiminnan määritelmä on käännetty päälaelleen: Varaudutaan etukäteen siihen, että kaikki radion toiminta saattaa häiritä toista, samassa laitteessa olevaa radiota.n


From SDR towards radio computer

Beyond multi-standard operation, software defined radio (SDR) for consumer handsets should also aim at multi-radio operation: supporting multiple active radio standards simultaneously on a shared hardware platform ("radio computer"). In such a radio computer, individual radio applications are dynamically loaded, started, and stopped. A radio operating system manages all hardware resources with real-time guarantees for all admitted radio applications. Our technology demonstrator in the Tekes program Giga shows that unifying of interfaces and programming models can solve the main problems of radio computerization. Efficient resource sharing is achieved by resource allocation based on radio operational states, where a radio in power-save state consumes fewer resources than one in communicating state. Radio applications are programmed and verified independently of one another, while their run-time co-existence is coordinated by common multi-radio scheduling framework. Contact person for the project is Mauri Honkanen (mauri.honkanen@nokia.com).

Ensimmäinen radiotietokone

SDR-hankkeen radiotietokone-demonstraation tavoitteena oli osoittaa, että useita radioita voidaan asentaa, ladata, käynnistää, pysäyttää ja poistaa dynaamisesti yhtenäisen MURI-rajapinnan kautta.

Demonstraatio vahvisti, että useaa radiota voidaan ajaa koordinoidusti, minkä lisäksi yksittäiset radiot toteuttavat tosiaikaisuuden vaatimukset. Laiteresurssejakin voitiin jakaa radioiden välillä tehokkaasti.

Radioiden kaikkia yksityiskohtia ei otettu huomioon niitä ohjelmoitaessa. Projektissa käytettiin radioista resurssimalleja, jotka toteuttavat kaikki tärkeimmät rajapintatoiminnot ja sisältävät tiedot ajonaikaisesta resurssien käytöstä kuten kellojaksoista ja muistinkäytöstä.

Radioiden ylimmät protokollakerrokset voitiin mallintaa kommunikoivina tilakoneina UML-ohjelmointityökaluin niiden pehmeän reaaliaikaisuuden ansiosta. Kantataajuussignaalin tiukan tosiaikaiset käsittelyfunktiot sen sijaan mallinnettiin moodiohjattuina datavuokaavioina (MCDF).

Kukin solmu on ohjelmoitu C-kielellä lisättynä MCDF-primitiivejä tukevalla ohjelmointirajapinnalla. Niihin voidaan liittää pisin mahdollinen suoritusaika, kun tiedetään, missä ytimessä suoritus tapahtuu.

Radiokääntimen avulla voitiin luoda radion lähdekoodista ja laitteiston kuvauk-sesta radiopaketti, joka sisältää joukon dynaamisesti ladattavia ajotiedostoja radiotietokoneen eri prosessoriytimille, laitteiston konfigurointitiedostot ja toimintatilakohtaiset resurssibudjetit.

Käännösmallissa suoritetaan lisäksi radion MCDF-mallin perusteella suorituskykyanalyysi, vuorotellaan samassa ytimessä ajettavat laskentaosatehtävät staattisesti ja kootaan ne yhdeksi prosessiksi. Lisäksi lasketaan vuorottelevan ajoituksen asetukset ja kommunikointiin tarvittavien puskurien koot.

Radioiden lataus ja ajo

Radiopaketit asennettiin aluksi radiotietokoneen tietokantaan, joka sijaitsee Linux-koneessa. Asennetun radion voi ladata ja siinä vaiheessa tarkistetaan resurssien saatavuus kaikissa alijärjestelmissä.

Onnistuneen tarkistuksen jälkeen muisti- ja vuororesurssit järjestetään ja radiosovellus voidaan luoda. Radion lataaminen kantataajuusalijärjestelmään tapahtuu hakemalla ajettavat komponentit tietokannasta, asettamalla nämä varatuille muistialueille ja linkittämällä koodi erityisiin SoD-käyttöjärjestelmän kirjastoihin. Radion protokollapino ladataan Linux-koneeseen.

SoD on kevyt käyttöjärjestelmä, joka on suunniteltu tietovirtamallisen laskennan reaaliaikaiseen suorittamiseen. SoD käyttää round-robin-vuorotusta ja tukee FIFO-viestipuskureita prosessien väliseen kommunikointiin.

EVP- ja ARM-prosessorein suoritettavat radiotehtävät ladataan vektoriprosessorikorttiin ja ajetaan SoD-käyttöjärjestelmäytimen päällä. SoD-prosessit luodaan ja lisätään vuorotuksen tehtävälistalle radion latausvaiheessa. Lisäksi luodaan prosessien kommunikointiin käyttämät portit ja niitä yhdistävät FIFO-puskurit.

Tarvittavat tiedot saadaan radiopaketin laitteistorakenteesta, jonka perusteella resurssienhallintalohko osaa komentaa SoD:n verkonhallintaa (SoD NM). Nämä hallintalohkot ja muut ei-reaaliaikaiset toiminnot ajetaan ARM-ytimessä μC/OS-käyttöjärjestelmän alaisuudessa.

Ladattu radio voidaan aktivoida graafisesta käyttöliittymästä, jolloin se rekisteröidään radiotietokoneen resurssienhallintaan URAI-rajapinnan kautta ja on valmis käytettäväksi.

Aktivoitua radiota voidaan pyytää etsimään muita laitteita kuten WLAN-verkkoa ja muodostamaan yhteys löydettyyn laitteeseen. Käyttäjän dataa varten voidaan luoda dataputki, jolloin käyttöliittymän kautta on mahdollista siirtää suoraan esimerkiksi ääntä, videokuvaa tai tiedostoja.

Putkista voidaan pystyttää yksitellen useita radiopareja toisiinsa kytketyille prototyyppikorteille siten, että muut aktiivisten radioiden dataputket eivät häiriinny. Lopulta kaikki radiot saadaan toimimaan yhtaikaa toisiaan häiritsemättä.

Monen radion ajonaikainen hallinta

MRC-lohkolla on keskeinen asema ratkaistaessa radioiden yhteiskäytössä esiintyviä konflikteja kuten RF-häiriöitä. Sitä voidaan käyttää myös jakamaan laitteistoresursseja kuten RF-lähetintä tai vastaanotinta tai niiden osia. Tämä tapahtuu vuorottelemalla radioiden lähetys- ja vastaanottotoimia. Demonstraatiolaitteistossa ei ole RF-osia, mutta kaksi prototyyppikorttia on kytketty toisiinsa kaapelilla, joka kuvaa jaettua RF-resurssia. Lähettävä radiotietokone suorittaa kolmea radiota, joita käyttää kolme eri käyttösovellusta. Lähetteillä on eri tärkeystasot.

Kutakin radiota ja niitä käyttävää sovellusta ajetaan erillään toisistaan vailla muita yhteensopivuusratkaisuja. Standardoituja kahden radion välisiä yhteensopivuusratkaisuja voidaan helpottaa radioiden dynaamista aikakäyttäytymistä laskevin MRC-komponentein.

Uusia radioita voidaan aktivoida niin, että jo aktiiviset sopeuttavat toimintansa ilman, että radioiden kokoonpanoja tunnetaan edeltä. Tämä edellyttää radiotietokoneen ohjelmointirajapintojen käyttöä resurssienhallintaan kytkeytymiseksi.


Taustat

Kirjoittajat: Antti Piipponen, Kalle Raiskila, Sverre Slotte, Tommi Zetterman, Nokia Research Center

Yhteyshenkilö: mauri.honkanen@nokia.com

Yhteistyössä: NXP, ST-Ericsson

Tutkimus: Configurable Terminal Platform

Tekes-ohjelma: Giga


Linkkipankki

www.prosessori.fi/linkit

Prosessorin 11/2009 linkkipankkiin on listattu aiemmat lehdessä julkaistut ohjelmistoradiota ja kognitiivista älyradiota käsittelevät artikkelit. Mukana on lisäksi linkkejä alueen kansainvälisiin järjestöihin ja tutkimusyhteisöihin.