다중 채널 메모리?? 다중 채널 메모리 구조는 램(DRAM)과 메모리 컨트롤러 사이에 통신 채널을 하나 이상 더 추가하여 데이터 대역폭을 확충하는 기술이다. 정말 단순화하면 도로를 연상하면 이해하기 쉽다. 듀얼 채널이 2차선이라면 쿼드 채널은 4차선 도로에 비유할 수 있다. 동시에 더 많은 차량(데이터)이 지나갈 수 도로(대역폭)를 확충하는 것이 다중 채널 메모리 구조이다. 물론 쿼드 채널 메모리를 적용한다고 해서 무조건 2배의 성능이 나오는 것은 아니다. 애초에 차량 소통량(데이터 총량)이 2차선으로 충분하다면 4차선으로 늘어난다 하더라도 더 빨라질 수 없는 것과 같은 이치이다. 그러나 4차선에 해당하는 데이터가 이동할 때 2차선밖에 확보되어 있지 않다면? 이때 비로소 데이터 병목현상이 발생하고, 쿼드 채널일 때 듀얼 채널보다 성능 상 우위를 갖게 된다. 인텔은 이와 관련해서 이미 2008년 11월 출시한 i7-9X0 시리즈의 트리플 채널을 시작으로 2011년 4분기에 출시한 인텔® 코어™ i7-3960X 프로세서 익스트림 에디션부터 쿼드 채널 메모리를 지원하였고, 이때부터 하이엔드 데스크톱 제품군만 지원하게 되는 쿼드 채널 메모리는 단순 성능을 떠나서 PC 유저라면 한 번쯤 다루고 싶은 로망과도 같다. 이제 스레드리퍼를 통해서 AMD 데스크톱 제품군에서도 드디어 만나볼 수 있게 된 것이다. 2개의 제플린 다이가 탑재된 스레드리퍼! 필자가 단순히 쿼드 채널에 대한 로망으로 인해 쿼드 채널에 대한 테스트를 짚어보는 것도 있지만, 여기에는 또 다른 이유도 있다. 스레드리퍼는 2개의 CCX(Core Complex)로 구성된 제플린(Zeppelin) 다이가 2개 탑재되었다. (솔더링 안정성 등의 이유로 더미로 쓰인 제플린 다이 2개 포함 시 총 4개지만, 기능 상으로 2개만 작동한다.) CPU COMPLEX (CCX)
인피니티 패브릭을 통해 CCX와 제플린 다이가 상호 연결되어있는 라이젠 스레드리퍼
이는 하나의 제플린 다이로 구성된 라이젠을 보면 인피니티 패브릭으로 동일한 인터커넥트를 사용하고 있음에도 2개의 CCX의 상호 통신이 CCX 내부 통신보다 느릴 수 있는데, CCX의 단위보다 상위인 2개의 제플린 다이가 연결된 스레드리퍼는 제플린 다이 간 데이터 통신이 더 느릴 수밖에 없다는 의문이 들기 때문이다. 2개의 제플린 다이 구조에 의한 메모리 액세스 차이가 나타난다.
UMA(=Uniform Memory Access, 균일 기억 장치 접근)는 프로세서가 메모리를 공유하여 접근 시간이 동일하고 프래그래밍이 쉬운 장점이 있지만, CPU의 클럭과 코어 수가 증가할수록 하나의 프로세서만 메모리에 접근하고 있어 추가적인 연산을 위한 메모리 대기 시간을 줄이기가 더 어려워졌고 이를 타개하기 위해 알고리즘 개선과 보다 큰 L3 캐시 제공과 같은 방법을 적용해왔다. 하지만 이러한 방법은 OS와 프로그램의 비대화와 함께 난관에 봉착했고, 이에 대한 해결책 중 하나가 각각의 프로세서에 로컬 메모리를 제공하는 NUMA(=Non-Uniformed Memory Access, 불균일 기억 장치 접근)이다. 트랜잭션이 DRAM 전체에 균등하게 분산되는 UMA와 로컬 메모리를 최대한 활용하는 NUMA
스레드리퍼는 2개의 CCX가 탑재된 제플린 다이가 다시 2개 탑재된 MCM(Multi-chip module) 구조이기 때문에 얼핏 2개의 NUMA 노드처럼 보였으나, 스레드리퍼는 윈도우 상에서 단일 NUMA 노드로 작동한다고 밝히고 있으며, 이는 제플린 다이 간 통신 속도가 생각보다 느리지 않고 NUMA 노드를 구분하는 것보다 단일 NUMA 노드 구성일 때 더 나은 성능을 제공한다고 유추해볼 수 있다.
라이젠 마스터 유틸리티를 통해 메모리 접근 방식을 변경해줄 수 있다.
UMA는 메모리 대역폭에서, NUMA는 레이턴시에서 강점을 지녔다.
|