Rozdiel medzi horizontálnym a vertikálnym mikroprogramovaním

Proces zápisu mikrokódu pre riadiacu pamäť centrálnej procesorovej jednotky počítača sa nazýva mikroprogramovanie. Mikrokód pre riadiacu pamäť sa generuje po konfigurácii počítača a jeho mikroprogramovanej riadiacej jednotky. Riadiaca pamäť je súčasťou riadiacej jednotky, ktorá ukladá všetky mikroprogramy, ktoré nie je možné často meniť. Každá línia mikroprogramu predstavuje mikroinštrukciu, ktorá špecifikuje jednu alebo viac mikro-operácií. Existujú dva odlišné spôsoby usporiadania mikroinštrukcií: horizontálne a vertikálne. Horizontálne mikroinštrukcie predstavujú niekoľko mikro-operácií, ktoré sa vykonávajú súčasne. V extrémnych prípadoch však každá horizontálna mikroinštrukcia riadi všetky hardvérové ​​zdroje systému. Naopak, vertikálna mikroinštrukcia pripomína konvenčný formát strojového jazyka pozostávajúci z jednej operácie a niekoľkých operandov. Na rozdiel od horizontálnych mikroinštrukcií predstavuje vertikálna mikroinštrukcia jednotlivé mikrooperácie.

Horizontálne mikroprogramovanie

Pri horizontálnom mikroprogramovaní je každý bit špecificky identifikovaný jediným kontrolným bodom, čo naznačuje, že sa má vykonať zodpovedajúca mikrooperácia. Pretože každá mikroinštrukcia je schopná dostatočne riadiť niekoľko zdrojov súčasne, má potenciálnu výhodu účinnejšieho využitia hardvéru a navyše vyžaduje menší počet mikroinštrukcií na mikroprogram. Umožňuje vyšší stupeň rovnobežnosti s minimálnym množstvom kódovania a samostatných riadiacich polí. Vývoj mikroprogramov, ktoré využívajú zdroje optimálne alebo efektívne, je však zložitá úloha. Horizontálne mikroprogramovanie ponúka veľkú flexibilitu, pretože každý riadiaci bit je na sebe nezávislý. Má väčšiu dĺžku, takže zvyčajne obsahuje viac informácií ako vertikálne mikroinštrukcie.

Vertikálne mikroprogramovanie

Vertikálne mikroprogramovanie používa na rozdiel od horizontálneho mikroprogramovania variabilný formát a vyšší stupeň kódovania. Nielenže skracuje dĺžku mikroinštrukcie, ale tiež bráni zvyšovaniu kapacity pamäte priamym vplyvom na dĺžku mikroinštrukcie. Každá vertikálna mikroinštrukcia všeobecne predstavuje jednu mikrooperáciu. Pre každú mikrooperáciu, ktorá sa má vykonať, sa použije kód a dekodér prevedie kód na jednotlivé riadiace signály. Pretože je špecifikovaná iba mikrooperácia, ktorá sa má vykonať, sú mikroinštrukčné polia plne využité. Navyše vertikálne mikroprogramy sa ľahšie zapisujú ako ich horizontálne náprotivky. Vertikálna mikroinštrukcia pripomína konvenčný formát strojového jazyka pozostávajúci z jednej operácie a niekoľkých operandov. Preto je ľahké použiť ho na mikroprogramovanie. Spravidla pozostáva zo štyroch až šiestich polí, ktoré vyžadujú približne 16 až 32 bitov na inštrukciu.

Rozdiel medzi horizontálnym a vertikálnym mikroprogramovaním

kódovanie

Vertikálne mikroprogramovanie používa na rozdiel od horizontálneho mikroprogramovania variabilný formát a vyšší stupeň kódovania. Vo vertikálnom mikroprogramovaní sa riadiace bity kódujú tak, že každý kód sa používa pre každú akciu, ktorá sa má vykonať, a dekódovací dekódovací kód kód dekóduje do viacerých riadiacich signálov. Naopak, horizontálne mikroprogramovanie zahŕňa horizontálne mikroinštrukcie, ktoré vôbec nepoužívajú kódovanie. Predstavujú každý riadiaci bit v dátovom toku priradený samostatnému bitu vo formáte mikroinštrukcie. Každý bit v riadiacom poli je pripojený k riadiacej linke.

sekvencie

Horizontálne mikroprogramovanie sa spravidla riadi postupným prístupom k špecifikácii nasledujúcej mikroinštrukcie v mikroprograme, ktorý je podobný bežnému formátu strojového jazyka. Každý bit je špecificky identifikovaný jediným kontrolným bodom, čo naznačuje, že sa má vykonať príslušná mikrooperácia. Na prerušenie sekvencie sú potom potrebné zvláštne podmienené a nepodmienečné vetvy mikroinštrukcie. Vertikálne mikroprogramovanie môže používať schému relatívne adresovania, v ktorej je potrebných niekoľko bitov na špecifikovanie relatívneho skoku dopredu alebo dozadu. Vyžaduje si to výpočet adresy v každom kroku.

dizajn

- Vertikálne mikroprogramy majú lepšiu hustotu kódu, čo je výhodné pre veľkosť kontrolného skladu. Vertikálna mikroinštrukcia pripomína konvenčný formát strojového jazyka pozostávajúci z jednej operácie a niekoľkých operandov. Každá vertikálna mikroinštrukcia predstavuje jedinú mikrooperáciu, zatiaľ čo operandy môžu špecifikovať záchyt údajov a zdroj. Horizontálne mikroprogramy na druhej strane vo všeobecnosti predstavujú viacnásobné mikrooperácie, ktoré sa vykonávajú súčasne. V extrémnych prípadoch každá horizontálna mikroinštrukcia riadi niekoľko hardvérových zdrojov súčasne.

flexibilita

- Horizontálne mikroprogramy ponúkajú zlepšenú flexibilitu, pretože každý riadiaci bit je na sebe nezávislý. Má väčšiu dĺžku, takže zvyčajne obsahuje viac informácií ako vertikálne mikroinštrukcie. Horizontálne mikroinštrukcie so 48 alebo viac bitmi sú celkom bežné. Horizontálne mikroprogramy majú potenciálnu výhodu efektívnejšieho využitia hardvéru a navyše vyžaduje menší počet mikroinštrukcií na mikroprogram. Vertikálne mikroinštrukcie sú naopak kompaktnejšie, ale menej flexibilné ako horizontálne mikroinštrukcie. Vertikálny prístup je preto ľahko použiteľný na mikroprogramovanie.

Horizontálne vs. vertikálne mikroprogramovanie: porovnávacia tabuľka

Zhrnutie horizontálneho a vertikálneho mikroprogramovania

Na rozdiel od horizontálnych mikroinštrukcií predstavuje vertikálna mikroinštrukcia jednotlivé mikrooperácie. Horizontálne mikroprogramy umožňujú vyšší stupeň rovnobežnosti s minimálnym počtom kódovacích a samostatných riadiacich polí, zatiaľ čo kontrolné bity sú kódované vo zvislých mikroprogramoch. Je potrebné starostlivo zvoliť medzi týmito dvoma prístupmi. V praxi však dizajnéri používajú kombináciu horizontálnych a vertikálnych formátov mikroinštrukcie, takže výsledná štruktúra je kompaktná, ale účinná.