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.
@osgx: passare a serverfault ecc., Non è una domanda di programmazione? – TFD
@TFD, no, questo è * molto * relativo alla programmazione. –
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