Különbség a vízszintes és a vertikális mikroprogramozás között

A számítógép központi processzora vezérlő memóriájának mikrokódjának írását mikroprogramozásnak nevezzük. A vezérlőmemória mikrokódját a számítógép konfigurálása és a mikroprogramozott vezérlőegység létrehozása után generálják. A vezérlőmemória a vezérlőegység része, amely tárolja az összes olyan mikroprogramot, amelyet nem lehet gyakran módosítani. A mikroprogram minden sora egy mikro utasításokat reprezentál, amelyek egy vagy több mikroműveletet határoznak meg. Két különféle módon lehet megszervezni a mikro-utasításokat: vízszintes és függőleges. A vízszintes mikro utasítások több mikro-műveletet képviselnek, amelyeket egyszerre hajtanak végre. Szélsőséges esetekben azonban minden vízszintes mikro-utasítás vezérli a rendszer összes hardver erőforrását. Éppen ellenkezőleg, a függőleges mikroinstrukció hasonlít a hagyományos gépi nyelvi formátumra, amely egy műveletet és néhány operandust tartalmaz. A vízszintes mikro-utasításokkal szemben a vertikális mikro-utasítás egyetlen mikroműveletet képvisel.

Vízszintes mikroprogramozás

A vízszintes mikroprogramozás során az egyes biteket külön-külön egyetlen vezérlőponttal azonosítják, amely jelzi, hogy a megfelelő mikroműveletet végre kell hajtani. Mivel mindegyik mikro-utasítás elég ahhoz, hogy több erőforrást egyidejűleg vezéreljen, azzal jár a hatékonyabb hardverhasználat előnye, és emellett mikroprogramonként kisebb számú mikro-utasítást igényel. Nagyobb fokú párhuzamosságot biztosít minimális mennyiségű kódolással és külön vezérlőmezőkkel. Az erőforrások optimális vagy hatékony felhasználását célzó mikroprogramok kidolgozása azonban összetett feladat. A vízszintes mikroprogramozás nagy rugalmasságot kínál, mivel minden vezérlő bit független egymástól. Hosszabb, ezért általában több információt tartalmaz, mint a vertikális mikro utasítások.

Függőleges mikroprogramozás

A vertikális mikroprogramozás változó formátumot és magasabb szintű kódolást alkalmaz, szemben a vízszintes mikroprogramozással. Ez nem csak lerövidíti a mikroinstrukció hosszát, hanem megakadályozza a növekvő memóriakapacitást is, amely közvetlenül befolyásolja a mikroinstrukció hosszát. Minden vertikális mikroinstrukció általában egyetlen mikroműveletet képvisel. Kódot használunk minden végrehajtandó mikroművelethez, és a dekóder a kódot egyedi vezérlőjelekké alakítja. Mivel csak a végrehajtandó mikroműveletet kell megadni, a mikro utasítások mezői teljes mértékben ki vannak használva. A függőleges mikroprogramokat könnyebben lehet írni, mint a vízszintes társaikat. A függőleges mikroinstrukció hasonlít a hagyományos gépi nyelvi formátumra, amely egy műveletet és néhány operandust tartalmaz. Következésképpen könnyen használható a mikroprogramozáshoz. Ez általában négy-hat mezőből áll, amelyek utasításonként megközelítőleg 16–32 bitet igényelnek.

Különbség a vízszintes és a vertikális mikroprogramozás között

kódolás

A vertikális mikroprogramozás változó formátumot és magasabb szintű kódolást alkalmaz, szemben a vízszintes mikroprogramozással. Függőleges mikroprogramozáskor a vezérlőbiteket minden egyes kóddal kódolják, minden egyes végrehajtandó művelethez felhasználva, és egy utasításdekóder dekódolja a kódot több vezérlőjelre. Éppen ellenkezőleg, a vízszintes mikroprogramozás olyan vízszintes mikro-utasításokat foglal magában, amelyek egyáltalán nem használnak kódolást. Mindegyik vezérlőbitet ábrázolják az adatpályán, külön bittel a mikroinstrukció formátumában. A vezérlőmező minden bitje hozzá van kötve egy vezérlősorhoz.

Sorrend

A vízszintes mikroprogramozás általában szekvenciális megközelítést követ, hogy meghatározza a következő mikroinstrukciót egy mikroprogramban, hasonlóan a hagyományos gépi nyelvi formátumhoz. Az egyes biteket külön-külön egyetlen vezérlőponttal azonosítják, ami jelzi, hogy a megfelelő mikroműveletet végre kell hajtani. Ezután speciális feltételes és feltétel nélküli mikro-utasításokra van szükség a sorozat megszakításához. A vertikális mikroprogramozás viszonylag címzési sémát használhat, amelyben néhány bitre van szükség a relatív előre vagy hátraugrás meghatározásához. Ehhez minden lépésnél kiszámítani kell a címet.

Tervezés

- A vertikális mikroprogramok jobb kódsűrűséggel bírnak, ami előnyös a kontroll tároló mérete szempontjából. A függőleges mikroinstrukció hasonlít a hagyományos gépi nyelvi formátumra, amely egy műveletet és néhány operandust tartalmaz. Mindegyik függőleges mikroinstrukció egyetlen mikroműveletet képvisel, míg az operandusok meghatározzák az adattárolót és a forrást. A vízszintes mikroprogramok viszont általában több mikro-műveletet képviselnek, amelyeket egyszerre hajtanak végre. Szélsőséges esetekben minden vízszintes mikroinstrukció egyidejűleg több hardver erőforrást irányít.

Rugalmasság

- A vízszintes mikroprogramok jobb rugalmasságot kínálnak, mivel minden vezérlő bit független egymástól. Hosszabb, ezért általában több információt tartalmaz, mint a vertikális mikro utasítások. A vízszintes, legalább 48 bites mikro utasítások nagyon gyakoriak. A vízszintes mikroprogramok azzal a potenciális előnnyel járnak, hogy a hardvert hatékonyabban használják fel, ráadásul mikroprogramonként kisebb számú mikro-utasítást igényel. A vertikális mikro utasítások viszont kompaktabbak, de kevésbé rugalmasak, mint a vízszintes mikro utasítások. A vertikális megközelítés következésképpen könnyen használható a mikroprogramozáshoz.

Vízszintes és függőleges mikroprogramozás: összehasonlító táblázat

A vízszintes és vertikális mikroprogramozás összefoglalása

A vízszintes mikro-utasításokkal szemben a vertikális mikro-utasítás egyetlen mikroműveletet jelent. A vízszintes mikroprogramok lehetővé teszik a magasabb fokú párhuzamosságot minimális mennyiségű kódolással és külön vezérlőmezőkkel, míg a vezérlőbiteket függőleges mikroprogramokban kódolják. A két megközelítés között óvatosan kell választani. A gyakorlatban azonban a tervezők a vízszintes és a függőleges mikroinstrukciók kombinációját használják, hogy a kapott szerkezet kompakt, mégis hatékony.