Proces zápisu mikrokódu pro řídicí paměť centrální procesorové jednotky počítače se nazývá mikroprogramování. Mikrokód pro řídicí paměť je generován po konfiguraci počítače a jeho mikroprogramované řídicí jednotky. Řídicí paměť je součástí řídicí jednotky, která ukládá všechny mikroprogramy, které nelze často měnit. Každá řádka mikroprogramu představuje mikroinstrukci, která specifikuje jednu nebo více mikrooperací. Existují dva odlišné způsoby uspořádání mikroinstrukcí: horizontální a vertikální. Horizontální mikroinstrukce představují několik mikrooperací, které jsou prováděny současně. V extrémních případech však každá horizontální mikroinstrukce řídí všechny hardwarové zdroje systému. Vertikální mikroinstrukce se naopak podobá konvenčnímu formátu strojového jazyka, který zahrnuje jednu operaci a několik operandů. Na rozdíl od horizontálních mikroinstrukcí představuje vertikální mikroinstrukce jednotlivé mikrooperace.
V horizontálním mikroprogramování je každý bit specificky identifikován jediným kontrolním bodem, což znamená, že odpovídající mikrooperace má být provedena. Protože každá mikroinstrukce je schopna dostatečně řídit několik zdrojů současně, má potenciální výhodu efektivnějšího využití hardwaru a navíc vyžaduje menší počet mikroinstrukcí na mikroprogram. Umožňuje vyšší stupeň rovnoběžnosti s minimálním množstvím kódování a samostatných řídících polí. Vývoj mikroprogramů, které využívají zdroje optimálně nebo efektivně, je však složitý úkol. Horizontální mikroprogramování nabízí velkou flexibilitu, protože každý řídicí bit je na sobě nezávislý. Má větší délku, takže obvykle obsahuje více informací než vertikální mikroinstrukce.
Vertikální mikroprogramování využívá na rozdíl od horizontálního mikroprogramování variabilní formát a vyšší stupeň kódování. Nejenže zkracuje délku mikroinstrukce, ale také zabraňuje zvýšení kapacity paměti přímým ovlivněním délky mikroinstrukce. Každá vertikální mikroinstrukce obecně představuje jednu mikrooperaci. Pro každou mikrooperaci, která má být provedena, se použije kód a dekodér převede kód do jednotlivých řídicích signálů. Protože je specifikována pouze mikrooperace, která má být provedena, jsou mikroinstrukční pole plně využita. Plus vertikální mikroprogramy se snadněji zapisují než jejich horizontální protějšky. Vertikální mikroinstrukce se podobá konvenčnímu formátu strojového jazyka, který zahrnuje jednu operaci a několik operandů. V důsledku toho je snadné použití pro mikroprogramování. Obecně sestává ze čtyř až šesti polí, která vyžadují přibližně 16 až 32 bitů na instrukci.
Vertikální mikroprogramování používá na rozdíl od horizontálního mikroprogramování variabilní formát a vyšší stupeň kódování. Ve vertikálním mikroprogramování jsou řídicí bity kódovány tak, že každý kód je použit pro každou akci, která má být provedena, a dekodér instrukce dekóduje kód do více řídicích signálů. Naopak horizontální mikroprogramování zahrnuje horizontální mikroinstrukce, které vůbec nepoužívají žádné kódování. Reprezentují každý kontrolní bit v datové cestě přiřazený samostatným bitem ve formátu mikroinstrukce. Každý bit v ovládacím poli je připojen k ovládací lince.
Horizontální mikroprogramování obecně sleduje postupný přístup k určení další mikroinstrukce v mikroprogramu, který je podobný běžnému formátu strojového jazyka. Každý bit je specificky identifikován jediným kontrolním bodem, což indikuje, že má být provedena odpovídající mikrooperace. Pro zlomení sekvence jsou pak zapotřebí zvláštní podmíněné a nepodmíněné mikroinstrukce větví. Vertikální mikroprogramování může používat schéma relativně adresování, ve kterém je vyžadováno několik bitů pro určení relativního skoku vpřed nebo vzad. To vyžaduje výpočet adresy v každém kroku.
- Vertikální mikroprogramy mají lepší hustotu kódu, což je výhodné pro velikost úložiště kontrol. Vertikální mikroinstrukce se podobá konvenčnímu formátu strojového jazyka, který zahrnuje jednu operaci a několik operandů. Každá vertikální mikroinstrukce představuje jednu mikrooperaci, zatímco operandy mohou specifikovat dřez a zdroj dat. Horizontální mikroprogramy na druhé straně obecně představují více mikrooperací, které jsou prováděny současně. V extrémních případech každá horizontální mikrostruktura ovládá několik hardwarových zdrojů současně.
- Horizontální mikroprogramy nabízejí zlepšenou flexibilitu, protože každý řídicí bit je na sobě nezávislý. Má větší délku, takže obvykle obsahuje více informací než vertikální mikroinstrukce. Horizontální mikroinstrukce se 48 a více bity jsou zcela běžné. Horizontální mikroprogramy mají potenciální výhodu efektivnějšího využití hardwaru a navíc vyžadují menší počet mikroinstrukcí na mikroprogram. Na druhé straně vertikální mikroinstrukce jsou kompaktnější, ale méně flexibilní než horizontální mikroinstrukce. Vertikální přístup je proto snadno použitelný pro mikroprogramování.
Na rozdíl od horizontálních mikroinstrukcí představuje vertikální mikroinstrukce jednotlivé mikrooperace. Horizontální mikroprogramy umožňují vyšší stupeň rovnoběžnosti s minimálním množstvím kódovacích a samostatných řídicích polí, zatímco řídicí bity jsou kódovány ve vertikálních mikroprogramech. Je třeba pečlivě zvolit mezi těmito dvěma přístupy. V praxi však designéři používají kombinaci horizontálních a vertikálních formátů mikroinstrukce, takže výsledná struktura je kompaktní a přitom efektivní.