Микропрограм
Микропрограм је високоспецијализовани рачунарски програм који омогућава једној рачунарској микроархитектури да емулира другу, обично сложенију структуру. Микропрограм је обично веома мали у односу на обичан софтвер, и отуда његово име. Такође је веома пажљиво дизајниран и оптимизовам зарад најбржег могућег извршавања.
Као и остали рачунарски програми, микропрограми се састоје од серија микроинструкција. Ове микроинструкције обично контролишу процесор рачунара (ЦПУ) на врло фундаменталном нивоу.
Микропрограм се такође назива микрокодом процесора. Део меморије у коме се налази микропрограм се назива контролна меморија (control store). Микрокод може бити смештен у ROM-у (као вид фирмвера) или учитан у РАМ меморију као део иницијализацијоног процеса централне процесорске јединице (процесора).
Разлози за микропрограмирање
уредиКада су први рачунари развијани, брзина процесора је била приближна брзини главне меморије, и свака инструкциона реч прочитана из меморије је могла ефикасно командовати извршавањем појединачне операције од стране процесора. Међутим, када је логички дизајн постао напреднији, постало је могуће да процесор извршава операције много брже него што се инструкционе речи узимају из меморије.
Микропрограмирање је било одговор за овај дебаланс. Омогућавањем свакој инструкцији добављеној из меморије да позове микросубрутину, инструкције добављене из меморије би могле да командују процесору у извођењу врло комплексних операција, као што је сабирање бројева у покретном зарезу или извршавање комплетних операција на стринговима карактера.
У скорије време, напредак у брзини меморије је учинио микропрограмирање мање неопходним, што води повратку рачунарских архитектура са директним извршавањем (РИСЦ).
Друге користи
уредиМикропрограмирани процесор је процесор чији су хардверски алати различите (обично једноставније) архитектуре од оне која је видљива обичном програмеру; та простија архитектура (микроархитектура) се користи за извршавање микропрограма који имплементира архитектуру видљиву за програмера. Ова под-архитектура не мора да има икакву фиксну везу са резултујућом архитектуром која је видљива програмеру. Ово знатно олакшава имплементирање одређене видљиве архитектуре на широк спектар хардверских микроархитектура.