2010-03-01 2 views
15

최신 CPU의 캐시 액세스 속도는 얼마나됩니까? Intel P4, Core2, Corei7, AMD의 프로세서 클럭 틱마다 메모리에서 얼마나 많은 바이트를 읽거나 쓸 수 있습니까?최신 CPU의 틱당 캐시 대역폭

이론상 (처리량이 uOPs/tick 단위 인 ld/sd 단위의 너비) 및 실용적인 수 (심지어 memcpy 속도 테스트 또는 STREAM 벤치 마크) (있는 경우)로 답하십시오.

PS 최대 어셈블러 관련로드/저장 명령어 비율과 관련된 질문입니다. 이론적 인 로딩 속도가있을 수 있습니다 (모든 인스트럭션 당 똑딱 거리는 가장 넓은로드입니다). 그러나 프로세서는 로딩의 실질적인 제한 인 일부만을 제공 할 수 있습니다.

+0

@osgx : 프로그래밍 관련 질문이 아닌 serverfault 등으로 이동 하시겠습니까? – TFD

+9

@TFD, 아니오, 이것은 * 매우 * 프로그래밍 관련입니다. –

+0

Robert Schoon, Wolfgang E. Nagel 및 Stefan Pfluuger, 정보 서비스 및 고성능 컴퓨팅 센터, Technische Universitäat Dresden, 01062 드레스덴, 독일에서 "Intel 코어 2 아키텍처의 캐시 대역폭 분석"을 참조하십시오. 이 백서에서는 컴퓨팅 코어와 다른 캐시 사이의 측정 된 대역폭 인 이 제시됩니다. STREAM 벤치 마크 1은 과학자들이 대역폭 대역폭을 결정하는 데 가장 많이 사용되는 커널 중 하나입니다. 깊은 통찰력을 얻으려면 STREAM 벤치 마크를 다시 설계하여 작은 문제 크기에 대해서도 정확한 값 을 얻으십시오. – osgx

답변

7

: 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 바이트/클럭을 (물품 AND 128 비트 = 16 바이트/클럭 판독 I 읽고 쓰기 결합 할

단일주기?)

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. 

대기 시간 (클럭 틱), 일부는 LMbench에서의 lat_mem_rd CPU-Z의 latencytool 또는 측정 - 제대로 인텔 코어 i7과 같은 현대적인 순차적 (out-of-order) 코어를 측정하기 위해 모두 긴 연결 사용합니다 목록 도보

  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

나는 CPU 아키텍처를 연구하고 그것을 비교하기를 원한다. – osgx

6

가장 넓은 읽기/쓰기는 128 비트 (16 바이트) SSE로드/저장입니다. L1/L2/L3 캐시는 다른 대역폭과 대기 시간을 가지며 이는 물론 CPU에 따라 다릅니다. 일반적인 L1 대기 시간은 최신 CPU에서 2 - 4 클럭이지만 보통 클럭 당 1 또는 2로드 명령어를 발행 할 수 있습니다.

어딘가에 여기에 더 구체적인 질문이 숨어있는 것 같습니다. 실제로 달성하려는 것은 무엇입니까? 가능한 가장 빠른 memcpy를 쓰고 싶습니까? 할렘 들어

+0

감사합니다. 클럭 당 얼마나 많은 SSE로드를 발행 할 수 있습니까? 몇 세대의 x86에 대해로드/저장 대역폭이 최대가되도록하고 싶습니다. memcpy뿐만 아니라 일반 읽기 및 일반 쓰기 (STREAM 벤치 마크에 가깝습니다) – osgx

+1

@osgx - CPU에 따라 다릅니다 - 코어 2 및 코어 i7 모두 클록 당 2 개의 SSE로드를 발행 할 수 있습니다. –

+0

가장 빠른 memcpy 정보 - 예, 이 질문은 매우 큰 데이터 (평소와 같이)뿐 아니라 작은 (L1/2 크기까지, 최대 L2/2 크기까지) "이론적으로 가장 빠른 memcpy는 무엇인가?"라고 재검토 될 수 있습니다. L3/3 크기). – osgx