Mikroohjelmointi on tapa toteuttaa tietokoneen ohjausyksikkö systemaattisesti. Lyhyesti sanottuna se on prosessi, jossa luodaan mikrokoodi mikroprosessorille. Mikrokoodi on apukoodi, joka määrää, kuinka mikroprosessorin tulee toimia, kun se suorittaa konekielisiä käskyjä, ja mikrokoodia kutsutaan joskus mikroohjelmaksi, kun sitä käytetään tietyssä toiminnossa. Mikroohjelmoitu ohjausyksikkö puolestaan tallentaa binääriohjausarvot sanoiksi muistiin.
Horisontaalinen mikroohjelmointi vs vertikaalinen mikroohjelmointi
Ero horisontaalisen mikroohjelmoinnin ja vertikaalisen mikroohjelmoinnin välillä on niiden tuki, mikroohjelmoinnin rinnakkaisuuden aste ja joustavuus. Molemmat eroavat toisistaan, kun on kyse bittikoodauksesta. Ne eroavat myös suunnittelultaan ja käsittelyltään, mikä mahdollistaa tietojen selvittämisen.
Vaakasuuntaisen mikroohjelmoidun ohjausyksikön ohjaussignaalit esitetään dekoodatussa binäärimuodossa. Jokainen bitti horisontaalisessa mikroohjelmoinnissa liittyy yhteen ohjauspisteeseen, mikä osoittaa, että soveltuva mikrotoiminto on suoritettava. Koska jokainen mikrokäsky voi ohjata useita resursseja samanaikaisesti, se voi parantaa laitteiston käyttöä samalla, kun se vähentää mikroohjelmaa kohti vaadittavien mikrokäskyjen määrää.
Pystysuuntaisen mikroohjelmoidun ohjausyksikön ohjaussignaalit on koodattu binäärimuodossa. Jokaisella mikrooperaatiolla on koodinsa, jonka dekooderi muuntaa erillisiksi ohjaussignaaleiksi. Mikrokäskykentät hyödynnetään täysin, koska vain suoritettava mikrooperaatio on määritelty. Lisäksi pystysuuntaiset mikroohjelmat ovat yksinkertaisempia kirjoittaa kuin vaakasuuntaiset mikroohjelmat.
Vertailutaulukko vaaka- ja pystysuuntaisen mikroohjelmoinnin välillä
Vertailuparametrit | Horisontaalinen mikroohjelmointi | Pystysuora mikroohjelmointi |
Yhdensuuntaisuuden aste | korkeampi rinnakkaisuusaste | alhainen rinnakkaisuusaste |
Joustava | Se on vähemmän joustava | Se on joustavampi |
Koodaus | Se käyttää vähemmän ROM-koodausta kuin pystysuora mikroohjelmointi | Se käyttää enemmän ROM-koodausta |
Lisälaitteisto | Lisälaitteistoa ei tarvita | Lisälaitteistoja on dekooderien muodossa |
Järjestys | Se käyttää vaakasuuntaista mikroohjetta | Se käyttää pystysuoraa mikroohjetta |
Mitä on horisontaalinen mikroohjelmointi?
Vaakasuuntaisessa Micro-ohjelmoidussa ohjausyksikössä ohjaussignaalit näytetään dekoodatussa binäärimuodossa, eli 1but/CS, siellä n ohjaussignaalia tarvitsee n mutta koodauksen.
Jokainen bitti horisontaalisessa mikroohjelmoinnissa liittyy yksittäiseen ohjauspisteeseen, mikä osoittaa, että asiaankuuluva mikrotoiminto on suoritettava. Koska jokainen mikrokäsky voi hallita useita lomakohteita samanaikaisesti, se voi parantaa laitteiston käyttöä samalla, kun se vaatii vähemmän mikrokäskyjä mikroohjelmaa kohti. Vaakasuuntaiset mikroohjelmat puolestaan edustavat tyypillisesti sarjaa mikrooperaatioita, jotka suoritetaan samanaikaisesti.
Se mahdollistaa suuremman rinnakkaisuuden, samalla kun käytetään vähemmän koodausta ja ohjauskenttien erottelua. Toisaalta resursseja optimaalisesti tai tehokkaasti käyttävien mikroohjelmien kehittäminen on vaikea haaste. Koska jokainen ohjausbitti on riippumaton muista, horisontaalinen mikroohjelmointi tarjoaa paljon vapautta. Koska se on pidempi kuin pystysuuntaiset mikrokäskyt, se tarjoaa yleensä enemmän tietoa.
Horisontaalinen mikroohjelmointi, kuten perinteinen konekieli, käyttää peräkkäistä tapaa ilmaista seuraavat määritykset rationaalisissa ohjelmistoissa. Jokainen bitti on linkitetty yhteen komentokohtaan, mikä osoittaa, että se vastaa asianomaista ohjauspistettä. Tehdään mikroleikkaus. Haarat, jotka ovat sekä ehdollisia että ehdottomia. Tämän jälkeen sarja on katkaistava ohjausominaisuuksien avulla.
Mikä on pystysuora mikroohjelmointi?
Ohjaussignaalit määritellään koodatussa binäärimuodossa pystysuuntaisissa mikroohjelmoiduissa ohjausyksiköissä, ja n-ohjaussignaalit vaativat log2n-bittikoodauksen. Vertikaalinen mikroohjelmointi, toisin kuin horisontaalinen mikroohjelmointi, käyttää joustavaa muotoa ja korkeampaa koodausastetta. Se ei vain lyhennä mikrokäskyn pituutta, vaan myös välttää sen, että lisääntynyt muistikapasiteetti vaikuttaa suoraan mikrokäskyn pituuteen. Useimmissa tapauksissa jokainen pystysuora mikrokäsky edustaa yhtä mikrooperaatiota.
Pystysuuntaisilla mikroohjelmilla on suurempi kooditiheys, mikä hyödyttää ohjausvaraston kokoa. Pystysuora mikrokäsky on samanlainen kuin perinteinen konekielityyli, joka koostuu vain yhdestä operaatiosta ja muutamasta operandista. Pystymikroohjelmien kirjoittaminen on helpompaa kuin vaakasuuntaisten mikroohjelmien kirjoittaminen. Pystysuora mikrokäsky muistuttaa klassista konekieltä, jossa on vain yksi toiminta ja muutama operandi. Tämän seurauksena mikroohjelmointi on yksinkertaista toteuttaa. Se koostuu tyypillisesti neljästä kuuteen kentästä, joista jokainen vaatii 16-32 bittiä käskyä kohden.
Pystysuuntaisilla mikroohjelmilla on korkeampi koodikyllästys, mikä hyödyttää ohjausvaraston kapasiteettia. Pystysuora mikrokäsky on samanlainen kuin perinteinen konekielityyli, joka koostuu vain yhdestä funktiosta ja muutamasta käsittelyelementistä. Jokainen pystysuora mikrokäsky määrittelee tietyn mikrooperaation, jossa operandit osoittavat datan lähteen ja nielun.
Suurin ero horisontaalisen mikroohjelmoinnin ja pystysuuntaisen mikroohjelmoinnin välillä
- Horisontaalinen mikroohjelmointi mahdollistaa suuremman rinnakkaisuuden; jos aste on n, niin n ohjaussignaalia otetaan käyttöön samanaikaisesti. Toisaalta horisontaalinen mikroohjelmointi mahdollistaa vähäisen rinnakkaisuuden; jos aste on joko 0 tai 1, vain yksi ohjaussignaali on käytössä kerrallaan.
- Horisontaalinen mikroohjelmointi on vähemmän joustavaa kuin pystysuora mikroohjelmointiohjausyksikkö.
- Horisontaalinen mikroohjelmointi käyttää vähemmän RaoM-koodausta, kun taas vertikaalinen mikroohjelmointi käyttää enemmän ROM-koodausta ohjaussanan pituuden lyhentämiseksi.
- Vaakasuuntaiseen mikroohjelmointiin ei tarvita lisälaitteita, mutta pystysuorassa mikroohjelmoinnissa lisälaitteita on dekooderien muodossa, joita tarvitaan ohjaussignaalien tuottamiseen.
- Vaakasuuntainen mikroohjelmointi käyttää vaakasuuntaista mikrokäskyä, jossa jokainen ohjauskentän bitti liittyy ohjauslinjaan. Toisaalta pystysuora mikroohjelmointi käyttää pystysuoraa mikrokäskyä, jossa jokaiselle toiminnolle osoitetaan koodi, joka sitten muunnetaan yksittäisiksi ohjaussignaaleiksi dekoodeilla.
Johtopäätös
Mikroohjelmointi oli erittäin tehokas ratkaisu ohjainten systemaattisen rakentamisen haasteeseen, ja sitä käytettiin suurimmassa osassa prosessoreita (pienin muutoksin) 1960-luvun puolivälistä 1980-luvun lopulle.
Pystysuuntaiset mikrokäskyt, toisin kuin vaakasuuntaiset mikrokäskyt, edustavat yksittäisiä mikrooperaatioita. Pystysuuntaiset mikroohjelmat koodaavat ohjausbitit, mutta vaakasuuntaiset mikroohjelmat mahdollistavat suuren rinnakkaisuuden alhaisella koodauksella ja erillisillä ohjauskentillä. Vaakasuuntainen mikroohjelmointi on nopeampaa kuin pystysuora mikroohjelmoitu ohjausyksikkö.
Horisontaalinen mikroohjelmointi tukee pidempiä ohjaussanoja, kun taas vertikaalinen mikroohjelmointi tukee lyhyempiä ohjaussanoja. Päätös näiden kahden tavan välillä on tehtävä harkiten. Käytännössä suunnittelijat kuitenkin yhdistävät vaaka- ja pystysuuntaiset mikrokäskytyypit luodakseen rakenteen, joka on sekä kompakti että tehokas.