miniatura|O microcódigo (e o "nanocódigo") do Motorola 68000 está armazenado nos dois grandes blocos quadrados no canto superior direito, e é controlado por circuitos à direita deles. Ele ocupa uma parte significativa da superfície total do chip. Em projeto de processadores, o microcódigo serve como uma camada intermediária situada entre o hardware da unidade central de processamento (UCP ou CPU) e a arquitetura do conjunto de instruções visível ao programador de um computador. Consiste em um conjunto de instruções ao nível do hardware, que implementam as instruções de código de máquina de nível superior ou controlam o sequenciamento interno da máquina de estados finitos em muitos componentes de processamento digital. Embora o microcódigo seja utilizado em CPUs de uso geral da Intel e da AMD, em desktops e laptops contemporâneos, ele funciona apenas como um recurso alternativo para cenários em que a unidade de controle fixa mais rápida, não consegue lidar.

Alojado em uma memória especial de alta velocidade, o microcódigo traduz instruções de máquina, dados da máquina de estados ou outras entradas em sequências de operações detalhadas em nível de circuito. Ele separa as instruções de máquina dos circuitos eletrônicos subjacentes, permitindo assim maior flexibilidade no projeto e na alteração das instruções. Além disso, facilita a construção de instruções complexas de múltiplas etapas, ao mesmo tempo que reduz a complexidade dos circuitos do computador. O ato de escrever microcódigo é frequentemente chamado de microprogramação, e o microcódigo em uma implementação específica de processador às vezes é denominado microprograma.

Por meio de extensa microprogramação, microarquiteturas de menor escala e simplicidade podem emular arquiteturas mais robustas com comprimentos de palavra maiores, unidades de execução adicionais e assim por diante. Essa abordagem fornece um método relativamente simples de garantir a compatibilidade de software entre diferentes produtos dentro de uma família de processadores.

Ligações externas

Categoria:Arquitetura de computadores Categoria:BIOS Categoria:Firmware Categoria:Unidade central de processamento