# Zen (microarchitettura)

Zen è il nome in codice di una microarchitettura di AMD, utilizzata per la prima volta nella serie di CPU Ryzen disponibili da marzo 2017.
Il primo sistema basato su Zen è stato dimostrato all'E3 2016, la prima serie di CPU basate su Zen si chiamata Summit Ridge ed è diventata disponibile a marzo 2017, con processori Opteron derivati da Zen previsti nel secondo quadrimestre 2017, seguiti a metà 2017 dalle APU basate.
Zen ha un disegno semplice che differisce dall'architettura Bulldozer.
I processori basati su Zen utilizzano processi di produzione a 14 nm FinFET, con miglioramenti sul fronte energetico e un incremento dell'IPC. È stato introdotto l'SMT, permettendo a ciascun core di eseguire 2 threads. Il sistema cache è stato ridisegnato, rendendo la L1 write-back. Inoltre, i processori basati su Zen adotteranno il socket AM4, portando supporto alla DDR4.

## Storia e sviluppo

AMD iniziò lo sviluppo della microarchitettura poco dopo aver assunto Jim Keller nell'Agosto del 2012. Il team del Zen è stato guidato da Keller fino alla sua uscita nel settembre 2015, 3 anni dopo. In novembre una fonte interna ad AMD ha riportato che i processori Zen erano stati testati, raggiungendo ogni aspettativa senza significanti complicazioni. A dicembre 2015 venne diffuso un rumor secondo il quale Samsung sarebbe diventata la costruttrice dei processori basati sulla lavorazione FinFET a 14 nm, per le serie Zen e Polaris. AMD chiarì la situazione a Luglio 2016, dicendo che Samsung ha prodotto con successo un FinFET. Anche se AMD stabilì di utilizzare Samsung solo se necessario, ciò avrebbe ridotto la dipendenza di AMD dalle fonderie.
Zen era stato originariamente programmato per il 2017 come seguito al core ARM K12, ma nel giorno di analisi finanziaria del 2015 AMD annunciò che il K12 era stato rimandato a favore del Zen, permettendogli di entrare nel mercato già a fine 2016, pubblicando le prime specifiche nel mese di ottobre.

## Architettura

Stando a quanto riportato da AMD, il principale obiettivo di Zen è aumentare le performance per core. Le nuove caratteristiche includono:
* La cache L1 è stata cambiata da write/through a write-back, permettendo una minore latenza ed un aumento di banda;
* L'architettura SMT (Simultaneous Multithreading), che consente ad ogni core di eseguire 2 threads, ed è un'evoluzione della CMT (Clustered Multi-Thread) usata dalla precedente architettura Bulldozer. Questa caratteristica era già stata precedentemente integrata da IBM, Intel ed Oracle;
* L'introduzione di una nuova cache per micro operazioni;
* Ogni core SMT può trasferire sino a 6 micro-operazioni intere e 4 micro-operazioni in virgola mobile per ciclo;
* Una cache L1 ed L2 quasi raddoppiata, la cache L3 totale quintuplicata;
* Clock gating
* Code di ritiro, carico e archiviazione più grandi;
* Migliorata la branch prediction utilizzando un sistema percettrone con [hash similmente all'architettura Bobcat, un sistema definito comparabile ad una rete neutrale dall'ingegnere Mike Clark di AMD;
* Predizione delle diramazioni disaccoppiata dalla fase di recupero;
* Stack Engine dedicato per modificare lo stack pointer, analogamente alle architetture Intel Broadwell ed Haswell;
* Eliminazione del movimento, caratteristica che permette una riduzione dei dati fisicamente trasportati, portando a una riduzione dei consumi;
* supporto a RDSEED, un generatore di numeri ad alte performance recentemente introdotto dalle CPU Intel.
«Questa è la prima volta dopo veramente tanto tempo che noi ingegneri abbiamo avuto la massima libertà di costruire un processore da un disegno e fare del nostro meglio. Questo è un progetto pluriennale di un team veramente grande. È come uno sforzo da maratona con qualche sprint in mezzo. Il team sta lavorando molto duramente, ma si riesce a vedere la linea del traguardo. Vi garantisco che porterà ad un miglioramento sostanziale nelle performance e nei consumi energetici rispetto alla precedente generazione.»
(Suzanne Plummer, Zen team leader, 19 Settembre 2015)
L'architettura Zen verrà costruita con un processo a 14 nm sub-appaltato a GlobalFoundries, dando maggiore efficienza rispetto ai processi di produzione a 32 e 28 nm della precedente serie di CPU FX e APU, rispettivamente. La famiglia di processori Summit Ridge userà il socket AM4 e supporterà le DDR4 con TDP di 95W. Mentre gli ultimi programmi non confermano il TDP dei prodotti per desktop, suggeriscono un range per prodotti mobili a bassa potenza con fino a 2 cores Zen da 5 a 15 W e da 15 a 35 per prodotti mobili fino a 4 cores Zen.
Ciascun core Zen può decodificare quattro istruzioni per ciclo di clock ed include una cache per micro-operazioni che alimenta due scheduler, uno per numeri interi, l'altro per segmenti a virgola mobile. Ogni core ha due unità di generazione di indirizzi, quattro unità a numeri interi, e quattro unità a virgola mobile. Due delle unità a virgola mobile sono per addizioni, mentre le altre due sono per moltiplicazioni. Ci sono anche miglioramenti nella predizione delle diramazioni. Le dimensioni della cache L1 sono di 64 KiB per le istruzioni e 32 KiB per i dati. La cache L2 ha 512 KiB per core, mentre la L3 è di 1-2 MB per core. La cache L3 offre una banda quintuplicata rispetto ai progetti AMD passati.

## Caratteristiche

Il disegno del Zen è notevolmente differente dal suo predecessore, con molti cambiamenti e miglioramenti sulla piattaforma cercando di rendere Zen più competitivo rispetto al passato con le microarchitetture Intel.

### Processo produttivo

I processori costruiti con il Zen utilizzeranno silicio lavorato a 14 nm. Questi processori verranno prodotti da GlobalFoundries, anche se alcuni report dicono che alcuni Zen potrebbero essere costruiti da TSMC. Prima di Zen, il più fine processo produttivo di AMD era a 28 nm (architetture Steamroller, Excavator). I rivali Intel Skylake e Kaby Lake utilizzano lo stesso processo, anche se Intel prevede di introdurre lavorazioni a 10 nm nel 2017.
A valori costanti, i die utilizzerebbero meno corrente o potenza alla stessa frequenza o voltaggio. Dato che solitamente utilizzano una quantità di potenza limitata (fino a 125 W per fissi e 45 W per mobili), transistor più piccoli permettono a frequenza costante un consumo ridotto, o frequenze maggiori a potenza costante.

### Performance

Uno dei maggiori obiettivi del Zen è quello di incrementare le performance per core del 40% in istruzioni per ciclo rispetto ai suoi predecessori. A suo tempo, la Excavator offrì miglioramenti tra il 4 e 15% rispetto ai suoi predecessori. L'implementazione del SMT permette a ciascun core di processare fino a 2 threads, sfruttando al meglio le risorse disponibili.
I processori Zen avranno anche sensori integrati per scalare dinamicamente la frequenza e la tensione di alimentazione. Ciò renderà la massima frequenza dinamicamente e automaticamente definita dal processore a seconda della dissipazione disponibile.

### Memoria

Le APU che utilizzano l'architettura Zen supporteranno anche la High Bandwidth Memory (HBM). Le precedenti APU costruite da AMD dovettero invece utilizzare la tradizionale DDR3 condivisa con la scheda video.
Zen supporta anche le memorie DDR4 (fino ad 8 canali).

### Consumi energetici e calore dissipato

I processori costruiti a 14 nm avranno consumi energetici ridotti rispetto alle precedenti lavorazioni non FinFET a 28 e 32 nm.
Si prevede anche che Zen utilizzerà blocchi di clock per migliorare i consumi energetici, riducendo la frequenza delle porzioni meno sviluppate del core, salvando potenza. Ci avverrà attraverso la tecnologia proprietaria SenseMI di AMD, utilizzando sensori sul chip per scalare dinamicamente la frequenza e la tensione.

### Sicurezza avanzata e virtualizzazione migliorata

Zen aggiunge anche il supporto alla AMD Secure Memory Encryption (SME) e Secure Encrypted Virtualization (SEV). Secure Memory Encryption è una criptazione in tempo reale per le entrate in pagina di tabella della RAM. Ad ogni avvio, il processore di sicurezza sulla board (ARM Cortex-A5) cripta ogni pagina, permettendo ad ogni memoria DDR4 (incluse variazioni non volatili) di essere criptata. L'AMD SME rende i contenuti della memoria più resistenti ad attacchi ad avvio fresco.
“ SME can be used to mark individual pages of memory as encrypted through the page tables. A page of memory that is marked encrypted will be automatically decrypted when read from DRAM and will be automatically encrypted when written to DRAM. The SME feature is identified through a CPUID function and enabled through the SYSCFG MSR. Once enabled, page table entries will determine how the memory is accessed. If a page table entry has the memory encryption mask set, then that memory will be accessed as encrypted memory. The memory encryption mask (as well as other related information) is determined from settings returned through the same CPUID function that identifies the presence of the feature. ”