La microprogramación en una Arquitectura de Computadoras consiste en reemplazar el Secuenciador Central cableado por un secuenciador programado. A cada instrucción de la Computadora le corresponde un micro-programa almacenado en una memoria de control, cuya ejecución genera las Señales de Gobierno que gobiernan la ejecución de la instrucción.
Se llama micro-instrucciones a las instrucciones del micro-programa. Ejecutar una micro-instrucción genera micro-órdenes.
La microprogramación permite tener ordenadores de código de instrucción variable, es decir que es posible modificar fácilmente el conjunto de instrucciones de una computadora micro-programada. Abre un campo entre hardware y software denominado firmware.
Los fundamentos de la microprogramación se definieron en el Modelo de Wilkes en 1951.
Codificación de las Micro-instrucciones
- Por campos: se dividen las micro-ordenes en grupos indepppendientes para que sea imposible que en cada grupo se den micro-órdenes simultáneas. Además, para la comodidad del programador, cada grupo corresponde a un tipo de función (apertura de puertas de Registros a Buses, gobierno de una unidad funcional, etc). Genera micro-instrucciones largas pero ofrece una decodificación más directa.
- Por tipo de instrucción: se le da a la micro-instrucción una estructura similar a la de una instrucción, con código de operación y dirección de operando. Su decodificación es compleja pero logra una longitud pequeña.
Direccionamiento de las Micro-instrucciones
- Secuencial: la próxima micro-instrucción es la de la dirección siguiente. Es simple y no alarga a la micro-instrucción. Requiere micro-instrucciones de salto.
- Explícito: similar al modelo de Wilkes, cada micro-instrucción tiene en sus bits de menor peso el formato
[A..][..I..][..B]y se calcula la siguiente micro-instrucción de esta manera:- Si siguiente micro-instrucción .
- Si siguiente micro-instrucción .

Acompasamiento de las Micro-instrucciones
- Ritmo fijo: se suele usar en microprogramación por campo.
- Ritmo variable: se suele usar en microprogramación por tipo de instrucción. Cada micro-instrucción define el ritmo que desea.
