b'\n_START_ARTICLE_\nOSM-malli\n_START_PARAGRAPH_\nOperation state machine -malli (OSM) on yhdenaikaisuusmalli mikroprosessorin toiminnan mallintamiseksi. Malli esitt\xc3\xa4\xc3\xa4 mikroprosessorin kahdessa kesken\xc3\xa4\xc3\xa4n vuorovaikutteisessa tasossa: operaatiotaso ja kovotaso.\n_START_SECTION_\nOperaatiotaso\n_START_PARAGRAPH_\nOperaatiotaso kuvaa prosessorin k\xc3\xa4skykannan yksitt\xc3\xa4isten k\xc3\xa4skyjen k\xc3\xa4ytt\xc3\xa4ytymisen. Operaatiotasoa kuvataan joukolla laajennettuja \xc3\xa4\xc3\xa4rellisi\xc3\xa4 tilakoneita, joita kutsutaan OSM-tilakoneiksi. Jokainen OSM-tilakone esitt\xc3\xa4\xc3\xa4 yht\xc3\xa4 operaatiota. Tilakoneen solmut m\xc3\xa4\xc3\xa4ritt\xc3\xa4v\xc3\xa4t esitt\xc3\xa4m\xc3\xa4ns\xc3\xa4 operaation t\xc3\xa4m\xc3\xa4nhetkisen vaiheen ja sen kaaret mahdolliset seuraavat ajo-askeleet. Solmut ja kaaret yhdess\xc3\xa4 muodostavat OSM:n tilakoneen. Jotta lukkiumatilanteita ei p\xc3\xa4\xc3\xa4sisi syntym\xc3\xa4\xc3\xa4n, ja jotta yksik\xc3\xa4\xc3\xa4n alikomponentti ei olisi eristyksiss\xc3\xa4, tulee tilakoneen olla tyypilt\xc3\xa4\xc3\xa4n nk. vahvasti yhten\xc3\xa4inen graafi. _NEWLINE_Normaalisti samanlaisia tilakoneita on samanaikaisesti k\xc3\xa4yt\xc3\xb6ss\xc3\xa4 useampia. T\xc3\xa4m\xc3\xa4 mahdollistaa esimerkiksi rinnakkaisen laskennan mallintamisen liukuhihnoitetun prosessorin tapauksessa._NEWLINE_Tilasiirtymien ohjaamiseksi jokaiseen kaareen OSM-tilakoneessa on yhdistetty ehto (katso kuvan e0-e5), jonka toteutuessa kone voi vaihtaa tilaansa. Ehto esitt\xc3\xa4\xc3\xa4 prosessorin eri toiminnallisten alueiden resurssien vapauteen liittyvi\xc3\xa4 vaatimuksia. Esimerkkej\xc3\xa4 t\xc3\xa4llaisille vaatimuksille ovat muun muassa laskutoimituksen operandien saatavuus.\n_START_SECTION_\nKovotaso\n_START_PARAGRAPH_\nProsessorin suoritusresursseja kuvataan OSM-mallissa kovotason poletteihin perustuvalla varausj\xc3\xa4rjestelm\xc3\xa4ll\xc3\xa4. J\xc3\xa4rjestelm\xc3\xa4 koostuu poleteista ja polettimanagereista._NEWLINE_Poletti (engl. token) on varausmerkint\xc3\xa4 tietyntyyppiselle resurssille. Poletti voi my\xc3\xb6s valinnaisesti sis\xc3\xa4lt\xc3\xa4\xc3\xa4 jonkin data-arvon._NEWLINE_Polettimanageri (engl. token manager) hallinnoi kaikkia samantyyppisi\xc3\xa4 poletteja ja jakaa niit\xc3\xa4 kyseisen managerin polettipolitiikan perusteella OSM-tilakoneille varausten perusteella._NEWLINE_Varausj\xc3\xa4rjestelm\xc3\xa4ll\xc3\xa4 voidaan mallintaa esimerkiksi liukuhihnoitetuissa prosessorissa rinnakkaiset fetch-decode-execute -jaksot.\n_START_SECTION_\nK\xc3\xa4yt\xc3\xa4nn\xc3\xb6n sovellukset\n_START_PARAGRAPH_\nOSM-mallin avulla pystyt\xc3\xa4\xc3\xa4n mallintamaan jo olemassa olevia sek\xc3\xa4 suunniteltavia mikroprosessoreita. Malli tukee sek\xc3\xa4 liukuhihnoitettuja ett\xc3\xa4 liukuhihnoittamattomia prosessoreita. Se mahdollistaa my\xc3\xb6s prosessorin mikroarkkitehtuurin tarkan mallintamisen mukaan lukien sen k\xc3\xa4skykanta, liukuhihnoitus, rakennehasardit, kontrollihasardit, muuttujaviiveet, data-ohitukset, skedulointi, sek\xc3\xa4 datahasardit._NEWLINE_Mallinnetusta prosessorista voidaan luoda automaattisilla ty\xc3\xb6kaluilla prosessorille sopiva assembler-k\xc3\xa4\xc3\xa4nt\xc3\xa4j\xc3\xa4, k\xc3\xa4skykantasimulaattori, disassembler, kellojakson tarkkuudella toimiva simulaattori (Cycle Accurate Simulator, CAS), k\xc3\xa4skyjen bin\xc3\xa4\xc3\xa4rinen purkaja ja varausasemataulujen luontity\xc3\xb6kalu. _NEWLINE_Valmista mallia muuntelemalla prosessorisuunnittelijat voivat kokeilla erilaisten kovoratkaisuiden vaikutusta valmiin prosessorin suorituskykyyn ja muihin toimintaparametreihin (esimerkiksi virrankulutus)._NEWLINE_Mallin avulla on luotu esimerkiksi kehittynyt kellojakson tarkkuudella toimiva simulaattori StrongArm-arkkitehtuurille.'