Moderne processoren zijn complete apparaten die bugs kunnen bevatten. Daarnaast bevatten moderne x86-processoren interne code die ondersteuning voor de x86-instructieset implementeren, in plaats van rechtstreeks x86-instructies uit te voeren. De interne code wordt microcode genoemd. Microcode kan worden bijgewerkt om CPU-bugs te verhelpen of minder erg te maken.
Sommige CPU-bugs kunnen Firefox laten crashen. Van Firefox 57 en later is bijvoorbeeld bekend dat de browser af en toe kan crashen bij Broadwell-U-CPU’s met oude microcode op een manier die niet met nieuwere versies van de Broadwell-U-microcode is gezien.
Updates van microcode kunnen in de CPU worden geladen via firmware (doorgaans BIOS genoemd, zelfs op computers die technisch gesproken UEFI-firmware bevatten in plaats van een BIOS in oude stijl), of door het besturingssysteem. Microcode-updates blijven niet behouden bij een herstart van de computer, dus als de microcode-update niet via het BIOS wordt verzorgd, dienen in het geval van een dual-bootsysteem beide besturingssystemen de update aan te bieden.
Op Mac dienen alle OS X-systeemupdates en firmware-updates van Apple die in het paneel Updates van de App Store-app worden aangeboden te worden toegepast om een actueel systeem te houden.
Om Windows bijgewerkte microcode naar de CPU te laden laden, dient u ervoor te zorgen dat Windows Update is ingeschakeld en ingesteld voor het installeren van updates.
Om te zien welke microarchitectuur van de processor en welke revisie van de microcode wordt gebruikt, voert u de opdracht
reg query HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0
in op de opdrachtprompt van Windows. (U kunt de opdrachtprompt openen door op Windows + R te drukken, cmd
in te typen en op Return te drukken.) De regel met het label ‘VendorIdentifier’ toont de leverancier van de CPU (GenuineIntel voor Intel of AuthenticAMD voor AMD). De regel met het label ‘Identifier’ toont de microarchitectuur als drie cijfers: ‘Family’, ‘Model’ en ‘Stepping’. Deze zijn van belang om vast te stellen of een bepaalde CPU-bug relevant kan zijn voor de CPU in uw computer. De regel met het label ‘Update Revision’ toont de huidige revisie van de microcode (voor de bepaalde microarchitectuur) met aan beide kanten nullen. Voorbeeld: Update Revision REG_BINARY 000000001E000000
betekent dat de revisie 1E (hexadecimaal) is. De regel met het label ‘Previous Update Revision’ toont de microcoderevisie die vanuit het BIOS is geladen.
Als de leverancier GenuineIntel is, de family 6, het model 61 en de stepping 4, dient de revisie van de microcode 1A of hoger te zijn om crashes met Firefox 57 of hoger te vermijden.
Of updates van microcode standaard worden gebruikt, hangt af van de Linux-distributie en kan voor Intel- en AMD-CPU’s verschillen.
- In Debian-gebaseerde distributies, waaronder Ubuntu, worden microcode-updates voor Intel-processoren verzorgd door de het pakket
intel-microcode
, en microcode-updates voor AMD-processoren door het pakketamd64-microcode
. - In Arch worden microcode-updates voor AMD standaard geïnstalleerd, maar microcode-updates voor Intel vereisen speciale stappen.
- In Fedora worden microcode-updates standaard geïnstalleerd.
Om te zien welke microarchitectuur van de processor en welke revisie van de microcode wordt gebruikt, voert u de opdracht less /proc/cpuinfo
in in de terminal. De regel met het label ‘vendor_id’ toont de leverancier van de CPU (GenuineIntel voor Intel of AuthenticAMD voor AMD). De microarchitectuur wordt weergegeven als drie cijfers op regels met het label ‘cpu family’, ‘model’ en ‘stepping’. Deze zijn van belang om vast te stellen of een bepaalde CPU-bug relevant kan zijn voor de CPU in uw computer. De regel met het label ‘microcode’ toont het revisienummer van de microcode (voor de bepaalde microarchitectuur) in hexadecimale notatie.
Als de leverancier GenuineIntel is, de family 6, het model 61 en de stepping 4, dient de revisie van de microcode 0x1A of hoger te zijn om crashes met Firefox 57 of hoger te vermijden.