Erinevus horisontaalse ja vertikaalse mikroprogrammeerimise vahel

Mikrokoodide kirjutamise protsessi arvuti keskseadme juhtmälu jaoks nimetatakse mikroprogrammeerimiseks. Juhtmälu mikrokood genereeritakse pärast arvuti konfigureerimist ja selle mikro-programmeeritud juhtseadme loomist. Juhtmälu on osa juhtseadmest, kuhu salvestatakse kõik mikroprogrammid, mida ei saa sageli muuta. Mikroprogrammi iga rida tähistab mikrojuhendit, mis täpsustab ühte või mitut mikrotoimingut. Mikrojuhiseid saab korraldada kahel viisil: horisontaalselt ja vertikaalselt. Horisontaalsed mikrojuhised tähistavad mitmeid mikrotoiminguid, mis teostatakse korraga. Äärmuslikel juhtudel kontrollib iga horisontaalne mikrojuhis süsteemi kõiki riistvararessursse. Vastupidi, vertikaalne mikrojuhis sarnaneb tavapärase masinakeele vorminguga, mis koosneb ühest operatsioonist ja paarist operandist. Vastupidiselt horisontaalsetele mikrojuhistele tähistab vertikaalne mikrojuhis üksikuid mikrotoiminguid.

Horisontaalne mikroprogrammeerimine

Horisontaalses mikroprogrammeerimises identifitseeritakse iga bit konkreetselt ühe juhtpunktiga, mis näitab, et vastav mikrotoiming tuleb teostada. Kuna iga mikrokäsk on piisav mitme ressursi üheaegseks juhtimiseks, on selle eeliseks riistvara tõhusam kasutamine ja lisaks nõuab see väiksemat arvu mikro-juhiseid ühe mikroprogrammi kohta. See võimaldab suuremat paralleelsust minimaalse kodeeringuhulga ja eraldi juhtimisväljadega. Ressursse optimaalselt või tõhusalt kasutavate mikroprogrammide väljatöötamine on aga keeruline ülesanne. Horisontaalne mikroprogrammeerimine pakub suurt paindlikkust, kuna iga juhtbitt on üksteisest sõltumatu. Selle pikkus on suurem, nii et see sisaldab tavaliselt rohkem teavet kui vertikaalsed mikrojuhised.

Vertikaalne mikroprogrammeerimine

Vertikaalne mikroprogrammeerimine kasutab horisontaalse mikroprogrammeerimise asemel muutuvat vormingut ja kõrgemat kodeeringutaset. See mitte ainult ei lühenda mikrojuhise pikkust, vaid takistab ka suurenevat mälumahtu otseselt mõjutada mikrojuhise pikkust. Iga vertikaalne mikrojuhis tähistab üldiselt ühte mikrotoimingut. Iga teostatava mikrotoimingu jaoks kasutatakse koodi ja dekooder tõlgib koodi üksikuteks juhtsignaalideks. Kuna täpsustatakse ainult teostatavat mikrotoimingut, on mikrojuhiste väljad täielikult ära kasutatud. Lisaks on vertikaalseid mikroprogramme lihtsam kirjutada kui nende horisontaalseid programme. Vertikaalne mikrokorraldus sarnaneb tavapärase masinakeele vorminguga, mis koosneb ühest toimingust ja paarist operandist. Järelikult on seda mikroprogrammeerimiseks lihtne kasutada. Üldiselt koosneb see neljast kuni kuuest väljast, mis nõuavad umbes 16–32 bitti käsu kohta.

Horisontaalse ja vertikaalse mikroprogrammeerimise erinevus

Kodeerimine

Vertikaalne mikroprogrammeerimine kasutab horisontaalse mikroprogrammeerimise asemel muutuvat vormingut ja suuremat kodeeringut. Vertikaalses mikroprogrammeerimises kodeeritakse juhtbitid iga koodiga, mida kasutatakse iga toimingu jaoks, ja käskude dekooder dekodeerib koodi mitmeks juhtsignaaliks. Vastupidi, horisontaalne mikroprogrammeerimine hõlmab horisontaalseid mikrojuhiseid, mis ei kasuta üldse kodeeringut. Nad tähistavad iga juhtimisbitti andmemajas eraldatud eraldi bitiga mikrokäsu vormingus. Iga juhtväljal asuv bit on kinnitatud juhtliinile.

Järjestus

Horisontaalne mikroprogrammeerimine järgib üldjuhul järjestikust lähenemisviisi, et täpsustada järgmine mikrokäsk mikroprogrammis, sarnaselt tavapärasele masinakeele vormingule. Iga bitti identifitseeritakse konkreetselt ühe juhtimispunktiga, mis näitab, et vastav mikrotoiming tuleb teostada. Järjestuse purustamiseks on vajalikud spetsiaalsed tinglikud ja tingimusteta haru mikro-juhised. Vertikaalne mikroprogrammeerimine võib kasutada suhteliselt adresseerimisskeemi, kus suhtelise edasiliikumise või tagasi liikumise määramiseks on vaja paar bitti. See nõuab aadressi arvutamist igal sammul.

Kujundus

- Vertikaalsetel mikroprogrammidel on parem kooditihedus, mis on kasulik kontrollilao suuruse jaoks. Vertikaalne mikrokorraldus sarnaneb tavapärase masinakeele vorminguga, mis koosneb ühest toimingust ja paarist operandist. Iga vertikaalne mikrojuhis tähistab ühte mikrotoimingut, operandid võivad täpsustada andmete valamu ja allikat. Horisontaalsed mikroprogrammid seevastu tähistavad üldiselt mitut mikrotoimingut, mis teostatakse samal ajal. Äärmuslikel juhtudel juhib iga horisontaalne mikrokäsk samaaegselt mitut riistvararessurssi.

Paindlikkus

- Horisontaalsed mikroprogrammid pakuvad paremat paindlikkust, kuna iga juhtbitt on üksteisest sõltumatu. Selle pikkus on suurem, nii et see sisaldab tavaliselt rohkem teavet kui vertikaalsed mikrojuhised. Horisontaalsed mikrojuhised, milles on 48 või enam bitti, on üsna tavalised. Horisontaalsetel mikroprogrammidel on potentsiaalne eelis riistvara tõhusamal kasutamisel ning lisaks sellele nõuab see mikroprogrammide jaoks väiksemat arvu mikro-juhiseid. Vertikaalsed mikrojuhised on seevastu kompaktsemad, kuid vähem paindlikud kui horisontaalsed mikrojuhised. Vertikaalset lähenemist on järelikult lihtne mikroprogrammeerimisel kasutada.

Horisontaalne vs vertikaalne mikroprogrammeerimine: võrdlusdiagramm

Horisontaalse ja vertikaalse mikroprogrammeerimise kokkuvõte

Vastupidiselt horisontaalsetele mikrojuhistele tähistab vertikaalne mikrojuhis üksikuid mikrotoiminguid. Horisontaalsed mikroprogrammid võimaldavad suuremat paralleelsuse astet minimaalse koguse kodeerimise ja eraldi juhtimisväljadega, samas kui juhtimisbitid on kodeeritud vertikaalsetes mikroprogrammides. Kahe lähenemisviisi vahel tuleb valida hoolikalt. Kuid praktikas kasutavad disainerid horisontaalsete ja vertikaalsete mikrojuhiste vormingute kombinatsiooni, nii et saadud struktuur oleks kompaktne, kuid tõhus.