메모리 대역폭 계산, stream?

Raewoo의 이미지

DDR3 4G PC3-10600 4개가 장착된 컴퓨터 시스템의 메모리 대역폭은 어떻게 계산하는지 궁금합니다. CPU는 Intel I7-2700K 입니다. 예를들어, 10.6 GB/s * 2 = 21.2 GB/s로 계산 가능한지요.

그리고 메모리 대역폭 뒤에 21.2GB (stream) 이라고 쓰여있는데, 혹시 여기서 stream이 무슨 뜻인지도 궁금합니다.

Raewoo의 이미지

답변 감사합니다. (위의 영문 위키를 포함하여) 구글 검색은 이미 해보았지만 확신이 서지 않아 질문을 올렸던 것입니다. 지적해 주신 부분을 보고 질문을 좀 더 구체화하여 다시 정리해 보았습니다.

1. STREAM convention 관련 (영문 위키 http://en.wikipedia.org/wiki/Memory_bandwidth에서)
1-1. bcopy convention: counts the amount of data copied from one location in memory to another location per unit time. For example, copying 1 million bytes from one location in memory to another location in memory in one second would be counted as 1 million bytes per second.
-> 이것은 초당 1MB를 복사(read+wirte)했으므로 대역폭이 1MB/s 란 말이므로 직관적으로 이해가 됩니다.
1-2. STREAM convention: sums the amount of data that the application code explicitly reads plus the amount of data that the application code explicitly writes. Using the previous 1 million byte copy example, the STREAM bandwidth would be counted as 1 million bytes read plus 1 million bytes written in one second, for a total of 2 million bytes per second.
-> 그런데, 이 말은 무슨 뜻인지 이해가 안됩니다. 예를들어, bcopy convention으로 1MB/s의 대역폭은 가진 메모리가 읽기/쓰기 속도 비율이 1:1로 같다면 STREAM convention에서는 2MB/s가 된다는 말인지 궁금합니다. 다시 말해, STREAM 대역폭= 읽기 대역폭 + 쓰기 대역폭 인지 궁금합니다.

2.
그러면, 실제 시스템으로 돌아와서, CPU가 내장 메모리 컨트롤러를 가진 I7-2700K 이고, 메인 메모리가 SAMSUNG DDR3 PC3-10600로 네 개 장착된 컴퓨터 시스템의 이론적 메모리 대역폭(STREAM convention)은 어떻게 계산하는지 궁금합니다.


Raewoo의 이미지

결국 구글링해서 답을 얻었습니다 ㅠ.
DDR3 PC-10600 DIMM모듈들을 듀얼 채널로 구성했을 때 얻을 수 있는 최대 메모리 대역폭은 10.6GB/s * 2(dual channels)= 21.2GB/s입니다[1]. 그러나 I7-2700K의 내장 메모리 컨트롤러의 한계[2]로 인해 21.0GB/s에서 제한이 걸립니다. (이 제한이 소숫점을 버림한 것이 아니라면) 그래서 I7-2700K에서 DDR3 PC-10600 모듈들을 듀얼 채널로 구성하였을 때 얻을 수 있는 최대 메모리 대역폭은 21GB/s라는 결론을 내게 되었습니다.

[2]에 Max Memory bandwidth is the maximum rate at which data can be read from or stored into a semiconductor memory by the processor (in GB/s)라는 말이 있는 것으로 보아 그 메모리 대역폭 수치는 STREAM convention을 따르는 것으로 생각됩니다.

[1] http://techreport.com/review/15967/exploring-the-impact-of-memory-speed-on-core-i7-performance
[2] http://ark.intel.com/products/61275/Intel-Core-i7-2700K-Processor-8M-Cache-up-to-3_90-GHz?q=i7-2700K

lasid03의 이미지

4개 장착했다 하더라도 dual channel로 구성되기 때문에 1 channel 당 10.6GB/s 씩 해서 total 10.6 * 2 = 21.2GB/s 가 맞습니다.
내장 메모리 컨트롤러 한계로 인해 21.0GB/s 제한은 잘못된 이야기 같네요. (소수점 버리고 표현한게 맞습니다.)
물론 실제 Bandwidth는 21.2GB/s 보다 낮게 나오며 (CPU와 병목 현상, Bank 인터리빙 및 Dimm 에 따른 Efficiency 등 여러가지 이유로 인해) 약 20~30% 낮추면 될 것 같습니다.