2010-03-01 18 views
15

Che cos'è una velocità di accesso alla cache per le moderne CPU? Quanti byte possono essere letti o scritti dalla memoria ogni tick del processore da Intel P4, Core2, Corei7, AMD?Larghezza di banda cache per tick per CPU moderne

Si prega di rispondere sia con la parte teorica (larghezza dell'unità ld/sd con il suo throughput in uOPs/tick) sia con i numeri pratici (se presenti anche i test di velocità Memcpy o STREAM).

PS è una domanda, relativa alla velocità massima di carico/istruzioni di magazzino nell'assemblatore. Ci può essere una velocità teorica di caricamento (tutte le istruzioni per tick sono carichi più ampi), ma il processore può fornire solo una parte di tale limite, un limite pratico di caricamento.

+0

@osgx: passare a serverfault ecc., Non è una domanda di programmazione? – TFD

+9

@TFD, no, questo è * molto * relativo alla programmazione. –

+0

Consultare "Analisi della larghezza di banda della cache nell'architettura Intel Core 2 " di Robert Sch¨one, Wolfgang E. Nagel e Stefan Pflüuger, Centro per i servizi di informazione e calcolo ad alte prestazioni, Technische Universitat Dresda, 01062 Dresda, Germania In questo documento vengono presentate le larghezze di banda misurate tra i nuclei di elaborazione e le diverse cache. Il benchmark STREAM1 è uno dei kernel più utilizzati dagli scienziati per determinare la larghezza di banda della memoria . Per una visione più approfondita, il benchmark STREAM è stato ridisegnato per ottenere i valori esatti anche per piccole dimensioni dei problemi. – osgx

risposta

7

Per Nehalem: rolfed.com/nehalem/nehalemPaper.pdf

Each core in the architecture has a 128-bit write port and a 
128-bit read port to the L1 cache. 

128 bit = 16 byte/orologio segnava E 128 bit = 16 byte/orologio scrivere (Posso combinare leggere e scrivere a ciclo unico?)

The L2 and L3 caches each have a 256-bit port for reading or writing, 
but the L3 cache must share its port with three other cores on the chip. 

Le porte di lettura e scrittura L2 e L3 possono essere utilizzate in un singolo orologio?

Each integrated memory controller has a theoretical bandwidth 
peak of 32 Gbps. 

latenza (orologio zecche), un po 'misurata dalla CPU-Z di latencytool o lmbench di lat_mem_rd - sia la lista di cammino usi a lungo legata a misurare correttamente moderni nuclei out-of-order come Intel Core i7

  L1  L2  L3, cycles; mem    link 
Core 2  3  15  --   66 ns   http://www.anandtech.com/show/2542/5 
Core i7-xxx 4  11  39   40c+67ns   http://www.anandtech.com/show/2542/5 
Itanium  1  5-6 12-17  130-1000 (cycles) 
Itanium2 2  6-10 20   35c+160ns  http://www.7-cpu.com/cpu/Itanium2.html 
AMD K8   12     40-70c +64ns  http://www.anandtech.com/show/2139/3 
Intel P4 2  19  43   200-210 (cycles) http://www.arsc.edu/files/arsc/phys693_lectures/Performance_I_Arch.pdf 
AthlonXP 3k 3  20     180 (cycles)  --//-- 
AthlonFX-51 3  13     125 (cycles)  --//-- 
POWER4  4  12-20 ??   hundreds cycles --//-- 
Haswell  4  11-12 36   36c+57ns   http://www.realworldtech.com/haswell-cpu/5/  

E buona fonte sui dati di latenza è 7cpu web-site, ad esempio per Haswell: http://www.7-cpu.com/cpu/Haswell.html

di più sul programma lat_mem_rd è nella sua man page o here on SO.

+3

Rispondere alla tua stessa domanda? Non hai ancora spiegato cosa stai cercando di ottenere con queste informazioni. Potresti ottenere una risposta migliore se lo fai. –

+0

Studio le architetture della cpu e voglio confrontarle. – osgx

6

Le letture/scritture più lunghe sono 128 bit (16 byte) di carico/archiviazione SSE. Le cache L1/L2/L3 hanno diverse larghezze di banda e latenze e sono ovviamente specifiche della CPU. La latenza tipica di L1 è di 2 - 4 clock sulle CPU moderne, ma in genere è possibile emettere 1 o 2 istruzioni di caricamento per orologio.

Sospetto che ci sia una domanda più specifica in agguato qui da qualche parte: cosa stai cercando di ottenere? Vuoi solo scrivere la memcpy più veloce possibile?

+0

Grazie. Quanti carichi SSE possono essere emessi per orologio? Voglio trovare il carico di picco/memorizzare la larghezza di banda per diverse generazioni di x86. Non solo la memcpy, anche una semplice lettura e scrittura semplice (più vicina al benchmark STREAM) – osgx

+1

@osgx - dipende dalla CPU - Core 2 e Core i7 possono entrambi * emettere * 2 carichi SSE per orologio –

+0

Informazioni sulla memcpy più veloce - Sì, la domanda può essere ripetuta come "Qual è la memoria teorica più veloce" (senza implementazione effettiva) e non solo per dati molto grandi (come al solito), ma anche per piccoli (fino a dimensioni L1/2, fino a dimensioni L2/2, Formato L3/3). – osgx

Problemi correlati