Avkodningssteg
Steget där hämtade instruktioner tolkas och översätts till de interna mikrooperationer (µops) som CPU:ns exekveringsenheter faktiskt förstår. För x86 är detta ovanligt komplext eftersom instruktionerna har variabel längd och varierande komplexitet.
Mekanik: avkodaren tar de råa instruktionsbytena och bestämmer vad de betyder — vilken operation, vilka operander — och bryter ned dem till en eller flera enkla, fasta mikrooperationer. x86-utmaningen: instruktioner är 1-15 byte långa (man vet inte var nästa börjar förrän man avkodat den nuvarande), och en enda komplex instruktion kan bli många µops → avkodning är dyr och svårparallelliserad. RISC-arkitekturer (ARM, RISC-V) har fasta, enkla instruktioner som är mycket lättare att avkoda många i parallell. Lösningar i x86: flera avkodare, micro-op-cache (hoppa över avkodning för het kod), och en mikrokod-ROM för de mest komplexa instruktionerna. Avkodningsbredden är ofta en front-end-flaskhals. En central skillnad i RISC-vs-CISC-debatten. Hör ihop med instruktionshämtning och RISC vs CISC.