AMD, quando decise di sviluppare Zen, prese una decisione piuttosto drastica per quanto concerne il design, al fine di poter realizzare soluzioni Multi-Core a blocchi grazie all’esperienza sviluppata con Bulldozer. Per questa ragione, in tutte le CPU, i SoC e le APU che utilizzeranno Zen troveremo almeno un blocco/modulo da 4 core. In questo blocco la Cache L1 ed L2 hanno un design standard: queste si interfacciano singolarmente con i 4 Core di ogni blocco, nel classico design (Relativo alle attuali CPU 8 Core) 8 x 64 KB & 8 x 32 KB (Cache L1) e 8 x 512 KB (Cache L2). La Cache L3 (2x8MB), di tipo Associativo, opera alla medesima frequenza dei Core (Full Speed) ed è comune a tutti i 4 core del CCX.
AMD con Ryzen ha pubblicizzato la funzionalità secondo cui ogni Core può operare ad una frequenza diversa dall’altro, e teoricamente risulta perfettamente possibile se teniamo conto delle sole Cache L1 ed L2, individuali per ogni core. Per la Cache L3 le cose si fanno più complicate, in quanto la Cache L3 opera alla frequenza del core con la freqquenza più elevata all'interno del CCX. Cosa accade, quindi, a quei Core che operano a frequenza più bassa, quando devono andare a sfruttare i dati nella Cache L3 che invece opera a frequenze più elevate?
AMD ha cercato di trovare una soluzione ad eventuali problemi integrando due variabili, chiamate CPUFID e CPUDFSId, che attraverso delle formule matematiche cercano di mantenere una coerenza tra frequenza e moltiplicatori nei vari pState (Anche per questo gli step di frequenza sono stati ridotti da 100 MHz a 25 MHz, garantendo maggiore granularità). Queste feature, comunque, non risultano perfette al 100%, in quanto in combinazione con le DDR4 operanti a certe frequenze si possono avere problemi di instabilità (Ad esempio con le DDR4 operanti a 3000 MHz, e la qual cosa è decisamente ironica se pensiamo che AMD ha fornito a noi recensori dei kit di Corsair da 3 GHz!). Sempre per questo motivo, quando si settano le memorie a 2667MHz con profilo XMP, in realtà le memorie operano a 2660MHz con il FSB lasciato a default (Vedere Screenshot di CPUz qui di seguito).
Altra questione saltata agli onori della cronaca in queste settimane è la difficile gestione dei Thread da parte del Sistema Operativo, a causa del design CCX con relativa interconnessione dei due blocchi da 4 core. Le voci apocalittiche che vogliono un innalzamento estremo delle latenze, nel passaggio dei vari thread da un blocco ad un altro, sono del tutto fuori luogo. È effettivamente possibile che le latenze siano maggiori di quelle presenti in un ipotetico e classico design monolitico da 8 Core, ma sicuramente la soluzione di AMD è altrettanto pregevole in quanto permette di creare, in maniera relativamente economica, CPU da 16, 32 o più core, abbinando blocchi da 4 o 8 core tra loro. D'altra parte anche Intel si è scontrata con questa difficoltà, cioè quella di creare CPU con un elevato numero di Core, ed ha optato per l'integrazione di un Ring Bus. La soluzione di Intel garantisce effettivamente latenze più basse rispetto a quella di AMD quando i vari Core devono comunicare tra loro, ma è altrettanto vero che risulta più costosa, in quanto necessita di un design monolitico (Di questa caratteristica avevamo parlato qui).