OSM-malli
Wikipedia
Operation state machine -malli (OSM) on yhdenaikaisuusmalli mikroprosessorin toiminnan mallintamiseksi. Malli esittää mikroprosessorin kahdessa keskenään vuorovaikutteisessa tasossa: operaatiotaso ja kovotaso.
Sisällysluettelo |
[muokkaa] Operaatiotaso
Operaatiotaso kuvaa prosessorin käskykannannan 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.
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 mm. laskutoimituksen operandien saatavuus.
[muokkaa] Kovotaso
Prosessorin suoritusresursseja kuvataan OSM-mallissa kovotason poletteihin perustuvalla varausjärjestelmällä. Järjestelmä koostuu poleteista ja polettimanagereista.
Poletti (engl. token) on varausmerkintä tientyntyyppiselle 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.
[muokkaa] Mescal Architecture Description Language
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:
- Define-osio: Globaalien muuttujien ja funktioiden esittely
- Manager-osio: Polettimanagereiden esittely.
- Machine-osio: Mallin rungon määrittely.
- Function-osio: Funktioiden määrittely.
- Operaatio-osio: Operaatiosyntaksin määrittely.
[muokkaa] Käytännön sovellukset
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 prosessorisuunnitelijat 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.
[muokkaa] Aiheesta muualla
- OSM-mallin kehittäjä, professori Wei Qin, [1]
- Mescal Architecture Description Language [2]
- Sim-it Arm [3]
[muokkaa] Lähteet
- Qin, Wei (2004): Modeling and Description of Embedded Processors for the Development of Software Tools. Princeton University. [4]