OSM-malli

Wikipediasta
Siirry navigaatioon Siirry hakuun

Operation state machine -malli (OSM) on yhdenaikaisuusmalli mikroprosessorin toiminnan mallintamiseksi. Malli esittää mikroprosessorin kahdessa keskenään vuorovaikutteisessa tasossa: operaatiotaso ja kovotaso.

OSM-mallin kaksitasoinen rakenne. Punaiset ympyrät esittävät varattavia poletteja.

Operaatiotaso[muokkaa | muokkaa wikitekstiä]

Operaatiotaso kuvaa prosessorin käskykannan yksittäisten käskyjen käyttäytymisen. Operaatiotasoa kuvataan joukolla laajennettuja äärellisiä tilakoneita, joita kutsutaan OSM-tilakoneiksi. Jokainen OSM-tilakone esittää yhtä operaatiota. Tilakoneen solmut määrittävät esittämänsä operaation tämänhetkisen vaiheen ja sen kaaret mahdolliset seuraavat ajo-askeleet. Solmut ja kaaret yhdessä muodostavat OSM:n tilakoneen. Jotta lukkiumatilanteita ei pääsisi syntymään, ja jotta yksikään alikomponentti ei olisi eristyksissä, tulee tilakoneen olla tyypiltään nk. vahvasti yhtenäinen graafi.

Normaalisti samanlaisia tilakoneita on samanaikaisesti käytössä useampia. Tämä mahdollistaa esimerkiksi rinnakkaisen laskennan mallintamisen liukuhihnoitetun prosessorin tapauksessa.

Esimerkki OSM-tilakoneesta. Kyseinen esimerkki esittää tilakonetta, jolla voidaan mallintaa 5-portaisen liukuhihnoitetun prosessorin toimintaa.

Tilasiirtymien ohjaamiseksi jokaiseen kaareen OSM-tilakoneessa on yhdistetty ehto (katso kuvan e0-e5), jonka toteutuessa kone voi vaihtaa tilaansa. Ehto esittää prosessorin eri toiminnallisten alueiden resurssien vapauteen liittyviä vaatimuksia. Esimerkkejä tällaisille vaatimuksille ovat muun muassa laskutoimituksen operandien saatavuus.

Kovotaso[muokkaa | muokkaa wikitekstiä]

Prosessorin suoritusresursseja kuvataan OSM-mallissa kovotason poletteihin perustuvalla varausjärjestelmällä. Järjestelmä koostuu poleteista ja polettimanagereista.

Poletti (engl. token) on varausmerkintä tietyntyyppiselle resurssille. Poletti voi myös valinnaisesti sisältää jonkin data-arvon.

Polettimanageri (engl. token manager) hallinnoi kaikkia samantyyppisiä poletteja ja jakaa niitä kyseisen managerin polettipolitiikan perusteella OSM-tilakoneille varausten perusteella.

Varausjärjestelmällä voidaan mallintaa esimerkiksi liukuhihnoitetuissa prosessorissa rinnakkaiset fetch-decode-execute -jaksot.

Mescal Architecture Description Language[muokkaa | muokkaa wikitekstiä]

Käytännössä OSM-mallin operaatiotason ja kovotason toiminnot kuvataan Mescal Architecture Description Language -kuvauskielellä (MADL).

Kuvauskielessä toiminnot on jaettu viiteen erilliseen lohkoon eri kuvausalueiden perusteella:

  1. Define-osio: Globaalien muuttujien ja funktioiden esittely
  2. Manager-osio: Polettimanagereiden esittely.
  3. Machine-osio: Mallin rungon määrittely.
  4. Function-osio: Funktioiden määrittely.
  5. Operaatio-osio: Operaatiosyntaksin määrittely.

Käytännön sovellukset[muokkaa | muokkaa wikitekstiä]

OSM-mallin avulla pystytään mallintamaan jo olemassa olevia sekä suunniteltavia mikroprosessoreita. Malli tukee sekä liukuhihnoitettuja että liukuhihnoittamattomia prosessoreita. Se mahdollistaa myös prosessorin mikroarkkitehtuurin tarkan mallintamisen mukaan lukien sen käskykanta, liukuhihnoitus, rakennehasardit, kontrollihasardit, muuttujaviiveet, data-ohitukset, skedulointi, sekä datahasardit.

Mallinnetusta prosessorista voidaan luoda automaattisilla työkaluilla prosessorille sopiva assembler-kääntäjä, käskykantasimulaattori, disassembler, kellojakson tarkkuudella toimiva simulaattori (Cycle Accurate Simulator, CAS), käskyjen binäärinen purkaja ja varausasemataulujen luontityökalu.

Valmista mallia muuntelemalla prosessorisuunnittelijat voivat kokeilla erilaisten kovoratkaisuiden vaikutusta valmiin prosessorin suorituskykyyn ja muihin toimintaparametreihin (esimerkiksi virrankulutus).

Mallin avulla on luotu esimerkiksi kehittynyt kellojakson tarkkuudella toimiva simulaattori StrongArm-arkkitehtuurille.

Lähteet[muokkaa | muokkaa wikitekstiä]

  • Qin, Wei: Modeling and Description of Embedded Processors for the Development of Software Tools. Princeton University, 2004. [1] (Arkistoitu – Internet Archive)

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]

  1. OSM-mallin kehittäjä, professori Wei Qin, [2] (Arkistoitu – Internet Archive)
  2. Mescal Architecture Description Language [3]
  3. Sim-it Arm [4]
Tämä tietotekniikkaan liittyvä artikkeli on tynkä. Voit auttaa Wikipediaa laajentamalla artikkelia.