Het doel van AMD met Zen 4 was om double digit-ipc-verbeteringen en hogere kloksnelheden te halen, gecombineerd met een effectievere cache die ook een lagere latency heeft. AMD stelt dat het met Zen 4 gemiddeld 13 procent betere prestaties per kloktik bereikt dan met Zen 3. Dit cijfer is een gemiddelde van 22 verschillende workloads. Per test lopen de verbeteringen redelijk uiteen. Cinebench R23 vertoont bijvoorbeeld een verbetering van 9 procent, terwijl wPrime er maar liefst 39 procent op vooruitgaat.
Verbeteringen aan de frontend
Dit deel van een cpu-core haalt x86-instructies op, die meestal lang en ingewikkeld zijn, en verdeelt ze waar mogelijk in zogenaamde micro-ops waarmee de rekeneenheden daadwerkelijk aan de slag kunnen. In de frontend zijn er twee manieren om dit doel te bereiken. De traditionele, maar relatief langzame manier haalt instructies op uit de L1-cache, zet ze in de wachtrij en decodeert ze een voor een. De alternatieve en veel snellere manier kan worden gebruikt als een gedecodeerde instructie al in de micro-opcache staat. In de praktijk komen instructies vaak meer dan eens terug, waardoor telkens opnieuw decoderen niet nodig is.
Onveranderd is het formaat van de instructiecache, die sinds Zen 2 al 32 kilobyte bedraagt. AMD heeft met Zen 3 de werking ervan geoptimaliseerd en om de bitrate van de micro-opcache nog verder te verhogen, heeft AMD de micro-opcache flink vergroot ten opzichte van Zen 3. Daarmee kan deze cache nu ruim 6700 in plaats van 4096ops bevatten. Bovendien is het aantal macro-ops per kloktik toegenomen van zes naar negen bij de nieuwe architectuur. Voor het sneller aanvoeren van lange instructies is de branch target buffer flink vergroot, op zowel L1- als L2-niveau. Daarin worden vertakkingen en de benodigde cache-informatie bijgehouden. Het eerste cacheniveau kan nu 1536 regels bevatten, tegenover 1024 regels bij Zen 3. De cache van het tweede niveau is van 6500 regels bij Zen 3 opgevoerd naar 7000 regels bij Zen 4.
Verbeteringen aan de execution-engine
Bij de integer-units zijn de gecombineerde alu- en agu-schedulers van Zen 3 gebleven, en ook bij Zen 4 kan elke scheduler 24 entry's verwerken, waardoor het totaal met 4 schedulers nog steeds op 96 uitkomt. De verbetering hier is echter dat de aansluitende registers zijn verbreed, van 192 entry's op Zen 3 naar 224 op Zen 4.
Voor de floatingpoint-units is, net als voor de integer-units, de register file vergroot. Bij Zen 4 is deze 20 procent groter geworden en kan hij 192 entry's bevatten. Een noemenswaardige en opvallende toevoeging is dat Zen 4-processors ook AVX-512 ondersteunen. Dit heeft AMD bereikt door de verdubbelde schedulers elk 256bit te laten afhandelen en vervolgens samen te voegen, wat wel een extra cycle vereist. Dat dit niet exact dezelfde snelheid als een volledige 512bit-opstelling geeft, erkent AMD zelf ook, maar volgens de fabrikant is de behaalde versnelling wel aanzienlijk, met als voordeel dat het energiegebruik beperkt blijft en de kloksnelheden er geheel niet onder te lijden hebben. Daarbij mag gezegd worden dat de lijst van ondersteunde extensies van AVX-512 vrij uitgebreid is. Voor de meeste consumenten is AVX-512 vandaag de dag vrijwel niet relevant, maar voor het professionele segment en de enterprisemarkt is dat anders.
Verbeteringen in de loads en stores
Een moderne x86-processor werkt efficiënt door continu gebruik van L1-cachegeheugen, waarbij data aan de lopende band wordt geplaatst en weer opgehaald. Ook hier borduurt AMD verder op de eigenschappen van Zen 3, waarbij het aantal lees- en schrijfacties per kloktik eveneens uitkomt op drie loads en twee stores. De verbetering zit hier in de grotere loadqueue. Bij Zen 3 werd de storequeue weliswaar vergroot van 48 naar 64 entry's, maar de loadqueue werd met rust gelaten. Met Zen 4 is nu ook de loadqueue 22 procent groter gemaakt, waardoor de capaciteiten van de core zelf beter benut kunnen worden. Om dit mogelijk te maken, en eveneens ruimte te bieden aan de eerder genoemde AVX-512, is de data translation lookaside buffer twee keer zo groot gemaakt en is er 1MB aan L2-cache per core, tegenover 512kB op Zen 3.