2010-03-01 8 views
15

Какова скорость доступа к кэшу для современных процессоров? Сколько байтов может быть прочитано или записано из памяти на каждый тактовый процессор процессора Intel P4, Core2, Corei7, AMD?Ширина кэша в кэше для современных процессоров

Пожалуйста, ответьте как теоретическими (ширина блока ld/sd с пропускной способностью в uOPs/tick), так и практические номера (даже тесты скорости памяти или тест STREAM), если они есть.

PS Это вопрос, связанный с максимальной скоростью загрузки/сохранения инструкций в ассемблере. Там может быть теоретическая скорость загрузки (все инструкции по тику - самые широкие нагрузки), но процессор может дать только часть такого, практического предела загрузки.

+0

@osgx: Перейдите на serverfault и т. Д., А не вопрос программирования? – TFD

+9

@TFD, нет, это * очень * связанный с программированием. –

+0

Проконсультируйтесь с «Анализ пропускной способности кэша на Intel Core 2 Архитектура» Роберта Шёона, Вольфганг Э. Нагель и Стефана Пфюгера, Центр информационных услуг и высокопроизводительных вычислений, Технический университет в Дрездене, 01062 Дрезден, Германия В данной статье представлены измеренные полосы пропускания между вычислительными ядрами и различными кэшами. Тест STREAM1 является одним из наиболее используемых ядер учеными для определения полосы пропускания . Для более глубокого понимания тест STREAM был переработан, чтобы получить точные значения для небольших размеров проблем. – osgx

ответ

7

Для 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 бит = 16 байт/такт чтения И 128 бит = 16 байт/часы написать (Могу ли я комбинировать читать и писать в одном цикле?)

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. 

Могут ли порты чтения и записи L2 и L3 использоваться в одночасовых режимах?

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

Задержка (тики), некоторые измеряются CPU-Z latencytool или lmbench-х lat_mem_rd - как использует длинный связанный список ходьбу, чтобы правильно оценивать современное испорченное ядро, как 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/  

И хорошим источником данных латентности является 7cpu web-site, например для Haswell: http://www.7-cpu.com/cpu/Haswell.html

Подробнее о программе lat_mem_rd находится в ее man page или here on SO.

+3

Отвечая на собственный вопрос? Вы все еще не объяснили, что именно вы пытаетесь достичь с помощью этой информации. Если да, вы можете получить лучший ответ. –

+0

Я изучаю архитектуры процессора и хочу их сравнить. – osgx

6

Продвинутое чтение/запись - 128 бит (16 байт) SSE load/store. Кадры L1/L2/L3 имеют разную полосу пропускания и задержки, и они, конечно, зависят от процессора. Типичная латентность L1 - это 2 - 4 такта на современных процессорах, но вы обычно можете выдать 1 или 2 инструкций нагрузки за такт.

Я подозреваю, что здесь где-то есть какой-то конкретный вопрос: чего вы на самом деле пытаетесь достичь? Вы просто хотите написать максимально возможную memcpy?

+0

Спасибо. Сколько SSE-нагрузок может быть выпущено за такт? Я хочу найти пиковую нагрузку/пропускную способность хранилища для нескольких поколений x86. Не только memcpy, но и простая запись и простая запись (ближе к эталонному тесту STREAM) – osgx

+1

@osgx - это зависит от процессора - Core 2 и Core i7 могут оба выпускать * 2 загрузки SSE за такт –

+0

О быстрой memcpy - Да, вопрос может быть заново задан как «Что такое теоретическая самая быстрая memcpy» (без реальной реализации), а не только для очень больших данных (как обычно), но и для небольших (до размера L1/2, до размера L2/2, L3/3). – osgx

 Смежные вопросы

  • Нет связанных вопросов^_^