Il microcodice è un insieme di istruzioni che non sono accessibili dal programma. Le istruzioni sono in genere scritte su chip di memoria di sola lettura utilizzati dall’hardware per istruzioni specifiche. Una scheda video o un’altra scheda aggiuntiva utilizzata in un computer può contenere tale codice per aiutarlo a completare i propri compiti.
Molti microprocessori utilizzano il microcodice per gestire le istruzioni della macchina e assistere i chip o la CPU nelle operazioni. Gli aggiornamenti a questo codice possono essere contenuti nel firmware, che sostituisce il codice esistente. Poiché non è accessibile mentre l’hardware è in esecuzione, in genere esiste un modo specifico in cui il nuovo codice deve essere caricato, a seconda del dispositivo.
Alcuni router o firewall hardware memorizzano i propri sistemi operativi in EPROM e non dispongono di dischi rigidi per memorizzare la programmazione. Le configurazioni per questi dispositivi sono archiviate sia nella memoria di sola lettura, in modo che il dispositivo possa perdere l’alimentazione senza perdere la configurazione, sia nella memoria ad accesso casuale, in cui la configurazione viene archiviata mentre il dispositivo è in funzione. Gli aggiornamenti al software del sistema operativo di questi dispositivi sono esempi di microcodice memorizzati su chip EPROM che devono essere gestiti in un certo modo per essere applicati correttamente.
Il software di microcodice può adattarsi alle condizioni dei chip su cui esiste meglio di cose scritte nei circuiti dei chip. Ciò aiuta gli sviluppatori e gli altri che lavorano con l’hardware a mantenere aggiornato il chip senza dover costantemente rilasciare una nuova scheda con circuiti diversi. L’uso di tale codice può far risparmiare denaro sia al consumatore che al venditore a lungo termine.
I produttori di chip possono anche mantenere la retrocompatibilità da un chip all’altro perché il microcodice può essere progettato per consentire all’hardware più recente di aggiungere nuove istruzioni quando sono disponibili. Quando una CPU rileva altre installazioni hardware, potrebbe essere trovato del codice che può aiutare la CPU e la nuova scheda a interagire meglio all’interno del sistema. Il codice può anche consentire emulazioni, che potrebbero essere simili a qualcosa che un’applicazione potrebbe utilizzare all’interno di un sistema operativo. Ad esempio, allo stesso modo in cui una copia precedente di un’applicazione può essere eseguita in modalità compatibilità in Windows®, le configurazioni hardware possono essere emulate tramite codice per consentire alle versioni precedenti dell’hardware di funzionare insieme o al posto delle loro controparti più recenti.