Kopioi artikkelin PDF-versio
Järjestelmämikropiirit (System-on-Chip) ovat vahvasti tulossa arkipäivän elektroniikkasuunnitteluun. Useiden IP-lohkojen yhteen liittäminen on kuitenkin haasteellinen tehtävä. Sisäisten väylien johdotuksesta saattaakin tulla pullonkaula niin piirin suorituskyvylle kuin pinta-alallekin. Esittelemme uuden, ennakkoluulottoman lähestymistavan, jossa kommunikointi rakennetaan modulaarisin rakennuspalikoin mahdollisimman vähäisin signaalein. Vauhdin varmistaa uusi sovittelustrategia.
Mikropiirien integrointiasteen saavutettua nykyisen tasonsa järjestelmämikropiirit (SOC, System-on-Chip) ovat yleistymässä jokapäiväisessä suunnittelussa. Pakkaustiheyden kasvaessa transistoreita voidaan pakata enemmän puolijohdepiirille, mutta samalla sisäisten väylien johdotus monimutkaistuu.
Järjestelmämikropiirien käyttö mahdollistaa laajemman kokonaisuuden miniatyrisoinnin yhdelle piirille ja suunnittelua voidaan helpottaa käyttämällä hyväksi modulaarisia rakennelohkoja (IP, Intellectual Property). Tämä pätee teoriassa, mutta käytännössä IP-lohkojen yhteen liittäminen vaatii paljon räätälöityä logiikkaa väylien ja liitäntöjen yhteensovittamiseksi. Ongelmia aiheuttaa myös tiedonsiirron kannalta hyvin eri tyyppisten IP-lohkojen yhdistäminen, jotta kukin lohko saisi tarvitsemansa kaistan ja vasteajan.
Edellä mainitut lähtökohdat mielessään etenkin IP-lohkojen valmistajat ovat pyrkineet kehittämään vakioitua tapaa lohkojen kytkemiseksi. Usein prosessoriytimen valmistaja tarjoaa omaan tuotteeseensa sopivaa ratkaisua, mutta tällöin suoraan liitettäviä lohkoja ei tyypillisesti ole kovin monta. Väylän kapasiteetti saattaa myös loppua kesken uusien IP-lohkojen myötä ja koko suunnittelu joudutaan aloittamaan alusta.
Vuonna 1996 perustettu Virtual Socket Interface Alliance (VSIA) on ensimmäinen vakava yritys standardoida IP-lohkojen kytkentäratkaisuja, vaikka se aluksi keskittyikin ajamaan aineettomien oikeuksien (IPR) suojaamiseen liittyviä asioita. Standardointityö on edennyt kummallakin saralla, ja nyt jäsenillä on arvioitavana kakkosversio standardista Virtual Component Interface (VCI).
Väylä vallitsevana
Lähes kaikki esitellyt järjestelmämikropiirien kytkentäarkkitehtuurit perustuvat väylään tai hierarkkiseen väylärakenteeseen, jolloin väylä voidaan priorisoida nopeisiin ja hitaampiin osiin. Tällä on pyritty ratkaisemaan eri tyyppisten IP-lohkojen sijoittelu sopivimpaan kytkentäpisteeseen.
Toinen poikkeuksetta esiintyvä ratkaisu on keskitetty sovittelija (arbiter), joka on erillinen, fyysinen logiikkalohko. Sovittelija on kytketty ohjaus- ja kättelylinjoin jokaiseen väylään liitettyyn IP-lohkoon. Erityyppisten IP-lohkojen vaatimuksesta kommunikoinnin on tuettava erittäin monia ominaisuuksia, esimerkiksi välimuistien ohjausta sekä väylän varaus- ja vapautusmenetelmiä.
Tämä on johtanut koko joukkoon tiettyyn käyttöön tarkoitettuja ohjaus- ja tilasignaaleja varsinaisten kello-, data- ja osoiteväylien lisäksi. Esimerkiksi ARMin tarjomassa modernissa AMBA/AHB-väylässä on laskutavasta riippuen noin 25 tällaista signaalilinjaa. Haittana on johdotukseen käytettävän pinta-alan kasvu. Suunnittelun uudelleenkäytettävyys vaikeutuu, jos keskitetystä sovittelijasta on vedettävä erillisiä signaalilinjoja kullekin IP-lohkolle erikseen.
Ratkaisuna HIBI-väylä
Nykyisissä mikropiireissä juuri johdotuksesta on tulossa pullonkaula metallikerrosten lisääntymisestä huolimatta. Yleisemmin ongelma on tuttu moniprosessoriarkkitehtuureissa, joissa laskentaelementtien välinen tiedonsiirto on poikkeuksetta esteenä suorituskyvyn kasvattamiselle.
Vastauksena edellä mainittuihin haasteisiin TTKK:n Digitaali- ja tietokonetekniikan laitoksella on kehitetty kytkentäarkkitehtuuri, josta käytetään nimeä HIBI (Heterogeneous IP-Block Interconnection). Taustana kehitystyölle on ollut vahva osaaminen moniprosessorilaitteistojen toteutuksesta sekä käytännön kokemukset PCI- ja muista suorituskykyisistä väylistä.
HIBI-väylän suunnittelu aloitettiin 1997 Tekesin rahoittamassa "Älykkäästi konfiguroitavat multimediajärjestelmät" -tutkimushankkeessa, ja se tarkoitettiin alun perin dataintensiiviseen multimediajärjestelmään. Kehitystyötä on jatkettu Tekesin TLX-ohjelman "Advanced Wireless Terminals" -projektissa.
Tavoitteeksi asetettiin signaloinnin minimointi sekä mahdollisimman hyvä hyötysuhde minimoimalla odotusaikoja. Esimerkiksi tutussa PCI-väylässä väylän sovitteluun, kättelyihin ja odotusaikoihin kuluu runsaasti aikaa, eikä varsinaista dataa kyetä siirtämään lähellekään teoreettista maksimia. Toiseksi päätavoitteeksi asetettiin suunnittelun helpottaminen. Modulaarisen rakenteensa ansiosta uusi lohko olisi helppo lisätä suunnitteluun. Myöskään jo olemassa olevaan piirin piirikuvioon ei tarvitsisi tehdä muutoksia. Väylän lisäksi myös muut kytkentävaihtoehdot, kuten rengas, puu ja vapaasti koottu kytkentäverkko, tulisi voida toteuttaa.
Monipuolinen arkkitehtuuri
HIBIn ytimen muodostaa itsessäänkin syntesoitavana, erillisenä IP-lohkona tai kiinteästi jonkin IP-lohkon osana toimiva HIBI-lohko, jonka kautta kaikki IP-lohkot kytketään yhteen. Erillisten kytkentälohkojen käyttö kasvattaa piirin pinta-alaa, mutta integroinnin kasvaessa transistoreita voidaan sijoitella suhteessa enemmän kuin johdotusta. HIBIn hyöty kasvaa siten järjestelmän kasvaessa ja se sopii erinomaisesti myös tulevaisuuden miljardeista transistoreista koostuviin toteutuksiin (gigascale integration).
Nimensä mukaisesti HIBI mahdollistaa hyvinkin eri tyyppisten lohkojen kytkemisen. HIBI-väylä muodostuu kytkemällä kaikki järjestelmän HIBI-lohkot yhteen ja kaikille lohkoille vedetään täsmälleen samat signaalilinjat. Väylään kuuluvat erilliset, synteesin aikana skaalattavat data- ja osoitelinjat. Lisäksi käytössä on kolmibittinen ohjausväylä (ctrl), kello (clk), nollaus (rst) sekä lukkosignaali (lock). Koska erillistä sovittelijaa ei ole lainkaan, ei myöskään tarvita erityiskäyttöisiä signaalilinjoja. Tällä tavoin vanhaan suunnitteluun voidaan lisätä uusia lohkoja koskematta olemassa olevaan piirikuvioon.
HIBIn erityispiirteenä on kättelyiden puuttuminen niin sovittelussa kuin dataa lähettävän ja vastaanottavan lohkon välillä. Myöskään odotusjaksoja ei sallita tiedonsiirron aikana, jolloin lähettäjän on tiedettävä kuinka paljon dataa kerrallaan vastaanottaja kykenee käsittelemään. Käytännössä yhden lähettäessä kaikki muut aloittavat vastaanoton, ja vasta sen jälkeen saatua osoitetta tutkimalla ne toteavat kuuluuko data itselle vai voidaanko se hylätä.
Väylällä ei ole myöskään perinteistä lukukäskyä, vaan ainoastaan pyyntö toiselle lähettää dataa. Samoin välitetään esimerkiksi keskeytyspyynnöt ja muu korkeamman tason viestinvälitys. Lisäksi erillinen osoiteväylä siirtää dataa silloin, kuin osoitetta ei tarvita. Ideana on siis pitää väylä niin täynnä hyötydataa kuin mahdollista silloin kun siirto on aloitettu, ja vapauttaa se sitten nopeasti toisia varten.
Edellä kuvattu toiminta on mahdollinen vain hajauttamalla väylän sovittelu siten, että jokainen HIBI-lohko tietää muiden lohkojen prioriteetin sekä tiedonsiirtokapasiteetin ja -tarpeet. Tätä varten HIBI-lohkossa on konfigurointimuisti. Koko arkkitehtuuri alustetaan joko staattisesti suunnitteluaikana tai ajon aikana. Tällöin jokin järjestelmään muutenkin kuuluva prosessori kerää HIBI-lohkoilta tiedonsiirtotarpeet ja jakaa sovitteluratkaisun kaikille lohkoille. Kyseinen prosessori voi sen jälkeen toimia alkuperäisessä tehtävässään. Tarvittaessa sovittelu tehdään uudestaan, ja esimerkiksi virransäästön takia jotkut lohkot voidaan jättää kokonaan pois. Sammutetuilta lohkoilta vapautuva aika voidaan käyttää muiden hyväksi.
Kaksiosainen sovittelu jakaa väylän
HIBI-väylän sovittelussa käytetään hyväksi tietoa järjestelmän eri osien tiedonsiirtotarpeista. Esimerkiksi videon käsittelyssä toistuvat säännöllisin väliajoin dataintensiiviset siirrot. Toisaalta esiintyy väylän kannalta satunnaista, mutta määrältään vähäisempää liikennettä.
Sovittelu on järjestetty HIBI-väylässä kaksiosaiseksi. Näistä toinen on normaali prioriteettiin perustuva kilpailu ja toinen määrättyihin aikaikkunoihin perustuva jako. Kilpailu ja aikaikkunat voidaan jakaa mielivaltaisesti. Kaikki HIBI-lohkot tietävät jaon ja seuraavat väylän aikaa, joten muut kuin sallittu lohko eivät aikaikkunan kohdalla yritä saada väylää haltuunsa.
Kilpailujaksoja varten kaikille lohkoille määrätään prioriteettiarvo, joka määrää kuinka pian lohko voi yrittää väylää hallintaansa väylän vapauduttua edelliseltä. Prioriteetin 1 lohko saa väylän välittömästi haltuunsa, mutta esimerkiksi prioriteetilla 3 on odotettava 3 kellojaksoa. Prioriteettia voidaan myös muuttaa lohkojen kesken ajon aikana. Kuvattu menetelmä takaa nopeimman mahdollisen hajautetun sovittelun kilpailutilanteessa. Aikaikkunoita käytetään aina, kun siirto on aikakriittinen suhteessa johonkin tapahtumaan.
HIBI-väylän varaus osoitetaan yksinkertaisella lukkosignaalilla. Yksittäisen siirron voi tehdä kuka hyvänsä aikaikkunan ulkopuolella väylän ollessa vapaana. Jos siirto kestää enemmän kuin yhden kellojakson, lähettäjä vetää lukkosignaalin alas estämään yhteentörmäykset. Signaali nostetaan vastaavasti ylös yksi kellojakso ennen siirron loppumista, jolloin seuraava voi aloittaa siirron heti perään.
Testaukset videon-pakkausjärjestelmällä
HIBI-arkkitehtuuria on testattu järjestelmämikropiiriksi tarkoitetulla videonpakkausjärjestelmällä. Simuloinnit on tehty Mentor Graphicsin HW-SW-yhteisverifiointiin tarkoitetulla Seamless CVE -ohjelmistolla, joka yhdistää prosessorien käskykantasimulaatiot VHDL-simulointeihin. Simuloinnissa käytetyt tarkat prosessorimallit sekä VHDL-kielellä toteutettu HIBI-rakenne antavat kellojakson tarkkuudella realistisen käsityksen järjestelmän suorituskyvystä ja mahdollistavat tarkat analyysit.
Kattavan simuloinnin haittapuolena on pitkähkö simulointiaika. Käytännössä yhdellä kertaa ei ole mahdollista simuloida kuin lyhyen kuvasarjan pakkaaminen. Testiongelmana on käytetty pienen bittinopeuden omaavan H.263-videoenkooderin vaatimia toimenpiteitä sekvenssin ensimmäiselle kuvalle ja sitä seuraaville ennustetuille tai sellaisenaan pakatuille kuville. Oheisessa kuvassa toimenpiteet on merkitty kirjaimin, ja niitä vastaavat tiedonsiirtotapahtumat yhden INTRA-kuvan pakkaamiseksi on nähtävissä. Kuvan jaottelu on tehty käsin, ja sitä on käytetty väylän sovittelun suunnittelussa. Tiedonsiirto ja laskenta on järjestetty mahdollisimman päällekkäiseksi, jotta lohkojen odotteluaika jäisi vähäiseksi.
Taulukossa puolestaan esitetään esimerkki kellojaksoista, jotka tarvitaan tiedon siirtämiseksi HIBI-väylällä. Esimerkissä dataväylän leveys on vain kahdeksan bittiä eikä purskesiirtoa käytetä. Simulointien perusteella 33 megahertsin kellotaajuudella voidaan pakata 25 kappaletta QCIF-kokoista värikuvaa sekunnissa, jolloin dataa siirretään HIBI-väylällä 7,8 megatavua sekunnissa ja väylän keskimääräinen käyttöaste on 24 prosenttia. Tämä tarkoittaa sitä, että väylän kapasiteettia on vielä runsaasti jäljellä muuhun tiedonsiirtoon.
HIBIn purskesiirtoja käyttämällä kapasiteettia olisi jäljellä vieläkin enemmän. Yhteenvetona voidaan todeta, että HIBI-väylän avulla on onnistuttu ratkaisemaan tiedonsiirron suorituskyvylle ja suunnittelulle aiheuttama pullonkaula.
Testimikropiiri kehitteillä
HIBI-väylän perusrakenne on valmis, ja jatkotutkimus suuntautuukin toisaalta käytännön toteutuksiin ja toisaalta perusrakenteen päälle tehtävän hallintatason kehittämiseen.
Tällä hetkellä työn alla on 32-bittisiä osoite- ja dataväyliä käyttävä testitoteutus STMicroelectronicsin 0,25 mikrometrin HCMOS7-teknologialla. Testipiirin avulla päästään mittaamaan myös sähköisiä ominaisuuksia erilaisissa kuormitustilanteissa sekä arvioimaan uudelleen käytettävyyttä käytännössä. Hallintatason jatkokehitykseen kuuluu automaattinen aikaikkunointi sekä datan reititysmekanismi muissa kuin väyläpohjaisissa kytkentärakenteissa.
Aiheesta enemmän
HIBI-julkaisuja: http://www.tkt.cs.tut.fi/research/parallel.html
Virtual Socket Interface Alliance: http://www.vsia.com
AMBA: http://www.arm.com
Motorola IP-Interface (IPI): http://mot-sps.com/technology/srs/
A new on-chip interconnection architecture called Heterogeneous IP Block Interconnection (HIBI) is presented. An important driving force is the nature of evolving multimedia chips, which have to be redesigned at least partly when new blocks are included. On the other hand, customizing every IP block interface requires much design effort. Using hierarchical bus structures traditionally solves the problem of different data transfer needs of the IP blocks, but complicates the overall design. Different bus wrappers intended for interfacing standardized IP-blocks to different buses may cause too much overhead.
HIBI offers a scaleable, topology independent interconnection, which can be used for bus structures, point-to-point connections or custom topologies. Using the same communication mechanism, IP-blocks with different data transfer speeds and latencies can be connected. For example, processor cores, shared memory and low-speed I/O units can be located on the same bus without two-level bus structure.
Most buses have dedicated chip-select signals from an arbiter to the agents. The multitude of signals and these special structures limit and complicate the bus expandability. No physical central arbiter is involved in HIBI, but the arbitration is distributed among bus agents that know each other's communication needs. In this way all signal lines are exactly similar, and no dedicated lines are needed between each bus agent and the arbiter. The bus can be extended even without touching previously designed part of the chip.
A special feature is Time Assisted Arbitration, which ensures dedicated time-slots for delay-critical data. In addition, a competition based bus access is included. With these features, flexibility in design and very low latency can be obtained for data transfers.
HIBI has been verified in a System-on-Chip design of a video encoder using HW/SW co-verification tools. A prototype implementation is under works to measure HIBI performance in a real environment.
The HIBI design started in Tampere University of Technology in 1997. Currently the development is carried out in a TEKES TLX project "Advanced Wireless Terminals" led by Nokia Research Center. Contact person is Jarno Knuutila (Jarno.Knuutila@nokia.com).
Ennen kuin tietoa todella päästään siirtämään, on ratkaistava kuka saa siirtää ja saada väylän hallintaansa. Tämän sovitteluviipeen jälkeen saattaa esiintyä alustusviive, jossa osapuolet sopivat kättelemällä siirron aloituksesta. Siirron aikana saattaa esiintyä odotusviipeitä, jos jokin siirron osapuoli ei kykene muiden vauhtiin.
HIBI-väylässä ei ole lainkaan siirto- ja alustusviipeitä, eikä myöskään sovitteluviivettä aikaikkunoiden kohdalla. Kilpailussa sovitteluviive riippuu suoraan lohkon prioriteetista. Hyötysuhde voidaan määritellä jakamalla dataa siirtävät kellojaksot kaikilla kellojaksoilla. Jos sovittelu tapahtuu taustalla, kokonaisaikaan otetaan mukaan ainoastaan odotus- ja kättelyviipeet.
Purskesiirrossa (BWrite) lähettäjä antaa alkuosoitteen osoiteväylällä ja ensimmäisen datasanan dataväylällä. Lukkosignaali osoittaa väylän varauksen ja käskylinja toimenpiteen. Osoitteen perusteella oikea lohko tietää ottaa vastaan lähetyksen ja ohjata sen edelleen oikeaan paikkaan, muut hylkäävät lukemansa datan. Lukkosignaali vapautetaan yhtä kellojaksoa ennen lopetusta, jotta lohkot tietävät valmistautua seuraavan siirron aloitukseen heti edellisen jälkeen.
Lukutoiminto on jaettu pyyntö- ja kirjoitustoiminnoksi. Dataa haluava lohko antaa lukupyynnön (ReadRQ) komentoväylällä, osoiteväylällä mistä dataa halutaan ja dataväylällä mihin data siirretään. Väylä vapautuu tämän jälkeen muiden käyttöön, kunnes pyyntöön vastaava lohko lähettää tässä esimerkissä kaksi datasanaa eri muistipaikkoihin. Kaikki lohkot ovat mukana yhteisessä loogisessa muistiavaruudessa, jolloin osoite määrää yksikäsitteisesti lohkon sekä datan sijainnin ja merkityksen lohkon sisällä.
Kirjoittaja: Timo D. Hämäläinen toimii vanhempana tutkijana TTKK:n Digitaali- ja tietokonetekniikan laboratoriossa. Hän johtaa esitetyn kytkentäarkkitehtuurin kehitystyötä, joka on osa sulautettujen rinnakkaislaskenta-alustojen tutkimustyötä.
Yhteystieto: timo.d.hamalainen@tut.fi
Tutkimushanke: Advanced Wireless Terminals
Yhteistyössä: Nokia Research Center/Electronics, TTKK Digitaali- ja tietokonetekniikan laitos.
Teknologiaohjelma: TLX