Cos'è il CPU complex (CCX)

Alla conferenza HotChips AMD ha presentato ulteriori dettagli sull'architettura Zen che vedremo a bordo delle sue future CPU e APU x86.

Avatar di Tom's Hardware

a cura di Tom's Hardware

Gerarchia cache

amd zen cpu 10 JPG

Clicca per ingrandire

L'architettura della cache è stata un'altra area su cui si è concentrata AMD, spingendo 32 byte per ciclo tra i diversi livelli. Le pipeline più ampie garantiscono un throughput sufficiente per connettere tutti i core alla victim cache L3. L'architettura usa code più ampie per gestire i misses L1 e L2 e AMD ha migrato la cache L1 da una tecnica write-through più lenta a una write-back.

Core Complex

amd zen cpu 12 JPG

Clicca per ingrandire

AMD ha organizzato il CPU complex (CCX) con quattro core connessi a una cache L3 da 8 MB (16-way associative) centralizzata che divide in quattro parti. Tutti i core possono accedere all'intera cache L3 - probabilmente con la stessa latenza media. Ogni core ha anche una cache L2 privata da 512 KB. AMD connette più CCX insieme per creare processori con un maggior numero di core, quindi la CPU Summit Ridge a 8 core/16 thread (2 x CCX) usata per le presentazioni ha un totale di 16 MB di cache L3. In passato AMD usava la vecchia interconnessione HyperTransport per collegare i CCX, ma per quanto riguarda Zen l'azienda non ha chiarito quale tecnica usi.

SMT, Simultaneous Multi-Threading

Con Zen AMD è passata a un progetto SMT (Simultaneous Multi-Threading) rispetto al clustered multithreading (CMT) che puntava a mantenere tutte le strutture completamente disponibili al fine di aumentare le prestazioni single-threaded.

amd zen cpu 11 JPG

Clicca per ingrandire

La slide illustra le parti condivise della microarchitettura. Passare a SMT ha richiesto una "condivisione competitiva" delle cache, delle unità di decodifica, esecuzione e degli scheduler tra i thread.

Il processore condivide in modo competitivo alcune unità, ma dà priorità alle altre tramite una tecnica di priorità algoritmica. L'unità branch prediction e l'interfaccia dispatch monitorano costantemente i thread per assicurarsi che abbiano un throughput adeguato.

Le priorità thread sono regolate come richiesto. AMD ha cercato di non integrare unità di partizionamento statico basate sui thread, che consistono in una suddivisione fisica della struttura in due (una per ogni thread). AMD ha adottato il partizionamento statico per store queue, retire queue e micro-op queue, ma dice di essere riuscita a mantenere un throughput elevato in modalità SMT.