Mikro-ohjelma

Wikipedia
Loikkaa: valikkoon, hakuun

Mikro-ohjelma tai mikrokoodi on osassa suorittimia käytetty suorittimen sisäinen ohjelma, jonka avulla varsinaiset konekielen käskyt on toteutettu.

Mikro-ohjelman piirteitä[muokkaa | muokkaa wikitekstiä]

Mikro-ohjelmalle on tyypillistä pitkä käskysana, jonka bitit ohjaavat suoraan suorittimen sisäisiä toimintoja. Mikro-ohjelmalle näkyvät suorittimen eri toimiyksiköt, kuten rekisterit tai akut, väylät, liukuhihnat, aritmeettis-looginen yksikkö ja niin edelleen. Tästä seuraa se, että ohjelman abstraktiotaso on erittäin matala, mutta hyvä ohjelmoija pystyy käyttämään suorittimen sisäistä rinnakkaisuutta hyväkseen.

Mikro-ohjelmat olivat aiemmin erittäin yleisiä niin sanotuissa CISC-tyyppisissä koneissa, joissa käskyt ja osoitusmuodot olivat monimutkaisia. Näiden taas tuli olla monimutkaisia, jotta pieneen keskusmuistiin mahtuisi koko tarvittava ohjelma. RISC-arkkitehtuuri toi mukanaan ajatuksen, että käskyjen tulee olla yksinkertaisia. Tällöin ei tarvita mikro-ohjelmaa konekäskyjen toteuttamiseen.

Tyypillisesti pienet suorittimet eivät ole mikro-ohjelmoituja tai vain hankalimmat käskyt on toteutettu mikro-ohjelmalla. Mitä monimutkaisempi suoritin, sitä todennäköisemmin sen toteutuksessa on hyödynnetty myös mikro-ohjelmaa.

Samankaltaisia lähestymistapoja[muokkaa | muokkaa wikitekstiä]

Erityistarkoituksiin on suunniteltu koneita, joissa ei ole varsinaisia konekäskyjä, vaan niitä ohjelmoidaan samaan tapaan kuin mikro-ohjelmaa. Tällainen laite oli esimerkiksi FPS-164 [1]. [2] Myöhemmin on kehitetty leveän käskysanan (VLIW) arkkitehtuuri, jossa käskysanan eri osat sisältävät eri toimilohkojen konekäskyjä. Leveällä käskysanalla päästään suorittimen sisäisen rinnakkaisuuden hyödyntämiseen, mutta ohjaus ei ole niin yksityiskohtaista kuin varsinaisessa mikro-ohjelmassa.

Mikro-ohjelman muokattavuudesta[muokkaa | muokkaa wikitekstiä]

Mikro-ohjelma on tavallisesti ollut kiinteä, eli sitä ei ole voinut vaihtaa. Alun perin sanalla firmware tarkoitettiinkin lähinnä mikro-ohjelmaa. Toisaalta osa koneista (Burroughs 1700 ja sen sukulaiset [3] [4]) mahdollisti jopa sen, että prosessinvaihdon yhteydessä vaihdettiin myös mikro-ohjelma. Näin voitiin tehdä eri ohjelmointikielille niille sopivin käskykanta. Myös mikro-ohjelmakääntäjiä on olemassa.

Lähteet[muokkaa | muokkaa wikitekstiä]

  1. [1]http://www.rz.rwth-aachen.de/computing/etc/historie.php?navbar=off
  2. [2] http://www.scl.ameslab.gov/Publications/Gus/Replicated/ReplicatedVLSI.html
  3. [3]http://www.answers.com/topic/burroughs-b1700
  4. [4]http://www.mdronline.com/publications/epw/issues/epw_16.html