기글하드웨어 특집과 정보 게시판
특집 기사나 르포, 컴퓨터 사용이나 생활에서 두고두고 유용한 도움을 줄 수 있는 정보들을 쓸 수 있는 곳입니다. 내용이 짧거나 한시적인 경우 뉴스 리포트를 사용해 주시고, 심도 깊은 내용은 스페셜 게시판으로 이동됩니다.
AMD K10 플랫홈의 메모리 모드에 대한 글입니다. 출처는 http://www.pcpop.com/doc/0/338/338767.shtml 하지만 글 스타일을 보면 다른곳 같군요.
K10 시스템을 켜면 이런 문구를 볼 수 있습니다. Unganged Mode, 64-bit. 듀얼채널 메모리가 2개의 64비트 메모리 컨트롤러를 사용하여 128비트 메모리와 같은 대역폭을 제공하는 것이니, 이것은 이 시스템이 제대로 된 듀얼채널을 사용하지 않는 것으로 보일 수 있습니다.
실제로 K8 플랫홈에서는 듀얼채널 128비트라고 뜨니까요.
그러나 CPU-Z에서는 듀얼채널이라고 표시되고 있습니다. 다만 여전히 Unganged 64비트일 뿐.
바이오스에는 이를 조절하는 옵션이 있습니다. DCTs Mode를 Unganged와 Ganged로 선택할 수 있습니다. 그렇다면 Ganged로 선택하면?
128비트로 바뀝니다.
여기서도 Ganged로 바뀝니다.
그렇다면 이쯤에서 많은 사람들은 128비트가 64비트보다 좋으니 Ganged가 Unganged보다 나을 것이라고 판단해버리겠지요. 그럼 도대체 이것들의 차이는 뭘까요.
그 원인은 AMD 플랫홈의 메모리 컨트롤러부터 이야기해야 되겠습니다. CPU는 메모리를 연산 데이터를 잠시 저장하는 용도로 사용하지만, 전통적인 아키텍처에서 메모리는 CPU와 거리가 상당히 멉니다. 중간에 메인보드의 노스브릿지 메모리 컨트롤러가 있기 때문에 대역폭을 감소시키고 딜레이가 생기게 됩니다. 인텔은 이를 극복하기 위해 CPU 내부의 빠른 액세스를 통해 메모리의 접근을 줄이는 방법을 사용하지만, 하지만 이것은 제조 공정을 높인 후에나 가능한 것이었고 AMD의 제조 공정 기술은 인텔보다 떨어졌기에 메모리 컨트롤러를 노스브릿지에서 CPU 내부로 옳겨 CPU가 메모리를 엑세스하는 능력을 강화시켰으며, 이것이 AMD K8 아키텍처의 제일 큰 특징이 되었습니다.
메모리 컨트롤러(128비트) -> (64비트 전송 채널) -> 채널 A 메모리 (64비트 로직 메모리 구역)
K8 아키텍처에서 듀얼채널 메모리 컨트롤러를 지원합니다. 노스브릿지건 CPU에 내장됐건 단일한 128비트 유닛은 A와 B의 2개 채널을 가지고 있습니다. 각각의 채널은 1개나 2개의 메모리(DIMM 0과 DIMM 1)을 연결할 수 있는데, 만약 이런 시스템에서 오직 1개의 메모리만 장착하거나 2개 메모리 채널의 용량이 다를 경우 싱글 채널 모드로 바뀌어 클럭 사이클이 54비트로 데이터가 전송되게 됩니다.
메모리 컨트롤러(128비트) -> (128비트 전송 채널) -> 채널 A/B 메모리 (128비트 로직 메모리 구역)
이들 채널의 메모리는 용량, 클럭, 타이밍 등이 모두 똑같으며, 메모리 컨트롤러에서 논리적으로 한개의 메모리로 사용하게 됩니다. 듀얼 채널 메모리 모드로 작동하면 대역폭이 배로 늘어나 클럭 사이클은 128비트가 됩니다.
바르셀로나, AMD 페넘에서는 새로운 방식의 메모리 전송이 쓰이게 됐습니다. (왼쪽 위에서부터 순서대로- 코어 1과 512KB L2 캐시, 하이퍼 트랜스포트, 코어 2와 512KB L2 캐시. 위쪽은 노스브릿지와 DDR Phy-메모리 대역 인터페이스-. 아래는 2MB L3 캐시. 오른쪽은 코어 3과 512KB L2 캐시, 하이퍼트랜스포트, 코어 4와 512KB L2 캐시)
페넘 프로세서는 새로운 기능을 내장하는데, K8 플랫홈과 비교하여 프로세서에 내장된 메모리 컨트롤러를 강화하여, 2개의 독립된 메모리 컨트롤러를 사용하여 기존의 아키텍처에서 1개의 메모리 컨트롤러를 썼던 것을 대체하게 됩니다. 새로운 아키텍처는 2 x 64비트 모드를 사용하는 것으로, 이를 Unganged Mode라고 명명했습니다. 원래대로 1 x 128비트 모드로 작동하는 것은 Ganged Mode라고 합니다. Unganged Mode의 제일 큰 특징은 DDR2 메모리의 호환성이 높다는 것이며 특히 용량이 다른 DDR2 메모리를 같이 사용할때 더욱 그렇습니다. 그 밖에도 Unganged Mode는 성능을 높이는 데에도 도움이 됩니다. AMD의 공식 데이터에서는 Unganged Mode (2 x 64비트)를 사용할 때 시스템이 더 많은 메모리 뱅크를 사용할 수 있어 대역폭이 늘어난 것과 같아, 페넘 프로세서에서 최고 10%의 메모리 성능 향상이 있을 수 있다고 나와 있습니다.
128비트 논리 메모리 구역으로 사용되는 Ganged Mode. 2개 메모리가 논리적으로 하나로 연결되어 작동합니다.
64비트 논리 메모리 구역이 2개 있는 Unganged mode. 2개의 채널이 동시에 작동합니다. 듀얼채널이냐 아니냐와는 별개의 이야기.
Unganged Mode의 제일 큰 특징은 독립적으로 2개 채널의 메모리를 조절하면서 용량이나 타이밍 등이 달라도 듀얼채널의 대역폭을 낼 수 있다는 것입니다. 현재 유일한 제한은 클럭이 같아야 한다는 것입니다. 하지만 한쪽의 합계가 1GB, 다른쪽이 2GB에다가 타이밍 수치가 완전히 달라도 128비트 대역폭으로 작동합니다. 이것은 인텔의 Flex Mode 듀얼채널 모드와 다른데, Flex Mode는 여전히 용량의 제한이 있기 때문입니다.
메인보드의 바이오스 지원이 따라준다면(이것은 MSI의 790FX 메인보드입니다) 페넘 플랫홈에서는 각각의 메모리를 채널별로 독립 설정할 수 있습니다. 위 사진중의 DCT 0과 DCT 1은 각각 채널 A와 B의 메모리 타이밍에 해당하는 것인데, 오버클럭커들에게는 상당히 재밌는 일일 것입니다. 여러 메모리를 듀얼채널로 구성하면서 잠재적으로 존재하는 불안정 요소를 해결하는 것이지요.
페넘 시스템에서 Unganged Mode를 사용하면 여러 메모리가 혼합되어 장착되었을 때에도 듀얼 채널의 대역폭을 사용할 수 있을 뿐만 아니라, 전성폭이 미세하게 개선됩니다. 단일 클럭 사이클에서 처리할 수 있는 양은 최대 128비트이기에 Ganged Mode와 총 합은 같지만, 전송되는 데이터가 64비트보다 작을 경우, 128비트 유닛이라면 역시 단일 채널에서 한번의 클럭 사이클을 사용하여 보내야만 하지만, 64비트 유닛에서는 하나의 채널에서 데이터를 전송하면서 다른 채널에서 다른 데이터를 전송할 수 있어, 전송 채널의 사용 효율을 높일 수 있습니다. 말을 바꿔서 말하면 K10 플랫홈은 하나의 클럭 사이클에서 동시에 2번의 메모리 액세스를 할 수 있다는 것이며, 이들 두번의 엑세스가 각각 다른 코어로 나뉜다면 멀티 코어 프로세서가 멀티 스레드에서의 성능을 높일 수 있게 됩니다.
그래서 테스트를 해 보았습니다.
페넘 X4 9850, DDR2-800 4-4-4-10-22-2T 메모리. 바이오스에서 Unganged와 Ganged만 바꿔서 테스트했습니다.
테스트 결과는 Unganged와 Ganged의 성능 차이가 매우 작으며, 일부 게임에서만 약간의 성능 차이가 있다는 것입니다. 따라서 실제 성능 차이는 무시해도 좋을 정도입니다.
어쨌건, 제일 처음에 이야기했던 것으로 돌아가서 Ganged가 Unganged보다 나을 것이라고 판단하는건 바르지 않다고 말해야 되겠지요.
초가 CPU-Z 1.41에서는 Unganged Mode를 사용했을 경우 메모리를 싱글채널로만 인식하는 경우가 있었으며, AMD Agesacode3.1.7.0에서도 똑같은 문제가 있었습니다. CPU-Z는 1.44 이후 버전에서 이 문제가 수정되었습니다만, 이것이 Unganged Mode=싱글채널 이런 선입견이 생기게 된 원일일 수도 있겠습니다.
그리고 Unganged Mode가 64비트, Ganged Mode가 128비트로 표시되는 이유는 위에서 설명되었을 것입니다. 하지만 모르는 사람들은 Unganged Mode가 성능이 무조건 낮다고 오해할 수도 있겠습니다.
기글하드웨어(http://gigglehd.com/zbxe)에 올라온 모든 뉴스와 정보 글은 다른 곳으로 퍼가실 때 작성자의 허락을 받아야 합니다. 번역한 뉴스와 정보 글을 작성자 동의 없이 무단 전재와 무단 수정하는 행위를 금지합니다.
K10 시스템을 켜면 이런 문구를 볼 수 있습니다. Unganged Mode, 64-bit. 듀얼채널 메모리가 2개의 64비트 메모리 컨트롤러를 사용하여 128비트 메모리와 같은 대역폭을 제공하는 것이니, 이것은 이 시스템이 제대로 된 듀얼채널을 사용하지 않는 것으로 보일 수 있습니다.
실제로 K8 플랫홈에서는 듀얼채널 128비트라고 뜨니까요.
그러나 CPU-Z에서는 듀얼채널이라고 표시되고 있습니다. 다만 여전히 Unganged 64비트일 뿐.
바이오스에는 이를 조절하는 옵션이 있습니다. DCTs Mode를 Unganged와 Ganged로 선택할 수 있습니다. 그렇다면 Ganged로 선택하면?
128비트로 바뀝니다.
여기서도 Ganged로 바뀝니다.
그렇다면 이쯤에서 많은 사람들은 128비트가 64비트보다 좋으니 Ganged가 Unganged보다 나을 것이라고 판단해버리겠지요. 그럼 도대체 이것들의 차이는 뭘까요.
그 원인은 AMD 플랫홈의 메모리 컨트롤러부터 이야기해야 되겠습니다. CPU는 메모리를 연산 데이터를 잠시 저장하는 용도로 사용하지만, 전통적인 아키텍처에서 메모리는 CPU와 거리가 상당히 멉니다. 중간에 메인보드의 노스브릿지 메모리 컨트롤러가 있기 때문에 대역폭을 감소시키고 딜레이가 생기게 됩니다. 인텔은 이를 극복하기 위해 CPU 내부의 빠른 액세스를 통해 메모리의 접근을 줄이는 방법을 사용하지만, 하지만 이것은 제조 공정을 높인 후에나 가능한 것이었고 AMD의 제조 공정 기술은 인텔보다 떨어졌기에 메모리 컨트롤러를 노스브릿지에서 CPU 내부로 옳겨 CPU가 메모리를 엑세스하는 능력을 강화시켰으며, 이것이 AMD K8 아키텍처의 제일 큰 특징이 되었습니다.
메모리 컨트롤러(128비트) -> (64비트 전송 채널) -> 채널 A 메모리 (64비트 로직 메모리 구역)
K8 아키텍처에서 듀얼채널 메모리 컨트롤러를 지원합니다. 노스브릿지건 CPU에 내장됐건 단일한 128비트 유닛은 A와 B의 2개 채널을 가지고 있습니다. 각각의 채널은 1개나 2개의 메모리(DIMM 0과 DIMM 1)을 연결할 수 있는데, 만약 이런 시스템에서 오직 1개의 메모리만 장착하거나 2개 메모리 채널의 용량이 다를 경우 싱글 채널 모드로 바뀌어 클럭 사이클이 54비트로 데이터가 전송되게 됩니다.
메모리 컨트롤러(128비트) -> (128비트 전송 채널) -> 채널 A/B 메모리 (128비트 로직 메모리 구역)
이들 채널의 메모리는 용량, 클럭, 타이밍 등이 모두 똑같으며, 메모리 컨트롤러에서 논리적으로 한개의 메모리로 사용하게 됩니다. 듀얼 채널 메모리 모드로 작동하면 대역폭이 배로 늘어나 클럭 사이클은 128비트가 됩니다.
바르셀로나, AMD 페넘에서는 새로운 방식의 메모리 전송이 쓰이게 됐습니다. (왼쪽 위에서부터 순서대로- 코어 1과 512KB L2 캐시, 하이퍼 트랜스포트, 코어 2와 512KB L2 캐시. 위쪽은 노스브릿지와 DDR Phy-메모리 대역 인터페이스-. 아래는 2MB L3 캐시. 오른쪽은 코어 3과 512KB L2 캐시, 하이퍼트랜스포트, 코어 4와 512KB L2 캐시)
페넘 프로세서는 새로운 기능을 내장하는데, K8 플랫홈과 비교하여 프로세서에 내장된 메모리 컨트롤러를 강화하여, 2개의 독립된 메모리 컨트롤러를 사용하여 기존의 아키텍처에서 1개의 메모리 컨트롤러를 썼던 것을 대체하게 됩니다. 새로운 아키텍처는 2 x 64비트 모드를 사용하는 것으로, 이를 Unganged Mode라고 명명했습니다. 원래대로 1 x 128비트 모드로 작동하는 것은 Ganged Mode라고 합니다. Unganged Mode의 제일 큰 특징은 DDR2 메모리의 호환성이 높다는 것이며 특히 용량이 다른 DDR2 메모리를 같이 사용할때 더욱 그렇습니다. 그 밖에도 Unganged Mode는 성능을 높이는 데에도 도움이 됩니다. AMD의 공식 데이터에서는 Unganged Mode (2 x 64비트)를 사용할 때 시스템이 더 많은 메모리 뱅크를 사용할 수 있어 대역폭이 늘어난 것과 같아, 페넘 프로세서에서 최고 10%의 메모리 성능 향상이 있을 수 있다고 나와 있습니다.
128비트 논리 메모리 구역으로 사용되는 Ganged Mode. 2개 메모리가 논리적으로 하나로 연결되어 작동합니다.
64비트 논리 메모리 구역이 2개 있는 Unganged mode. 2개의 채널이 동시에 작동합니다. 듀얼채널이냐 아니냐와는 별개의 이야기.
Unganged Mode의 제일 큰 특징은 독립적으로 2개 채널의 메모리를 조절하면서 용량이나 타이밍 등이 달라도 듀얼채널의 대역폭을 낼 수 있다는 것입니다. 현재 유일한 제한은 클럭이 같아야 한다는 것입니다. 하지만 한쪽의 합계가 1GB, 다른쪽이 2GB에다가 타이밍 수치가 완전히 달라도 128비트 대역폭으로 작동합니다. 이것은 인텔의 Flex Mode 듀얼채널 모드와 다른데, Flex Mode는 여전히 용량의 제한이 있기 때문입니다.
메인보드의 바이오스 지원이 따라준다면(이것은 MSI의 790FX 메인보드입니다) 페넘 플랫홈에서는 각각의 메모리를 채널별로 독립 설정할 수 있습니다. 위 사진중의 DCT 0과 DCT 1은 각각 채널 A와 B의 메모리 타이밍에 해당하는 것인데, 오버클럭커들에게는 상당히 재밌는 일일 것입니다. 여러 메모리를 듀얼채널로 구성하면서 잠재적으로 존재하는 불안정 요소를 해결하는 것이지요.
페넘 시스템에서 Unganged Mode를 사용하면 여러 메모리가 혼합되어 장착되었을 때에도 듀얼 채널의 대역폭을 사용할 수 있을 뿐만 아니라, 전성폭이 미세하게 개선됩니다. 단일 클럭 사이클에서 처리할 수 있는 양은 최대 128비트이기에 Ganged Mode와 총 합은 같지만, 전송되는 데이터가 64비트보다 작을 경우, 128비트 유닛이라면 역시 단일 채널에서 한번의 클럭 사이클을 사용하여 보내야만 하지만, 64비트 유닛에서는 하나의 채널에서 데이터를 전송하면서 다른 채널에서 다른 데이터를 전송할 수 있어, 전송 채널의 사용 효율을 높일 수 있습니다. 말을 바꿔서 말하면 K10 플랫홈은 하나의 클럭 사이클에서 동시에 2번의 메모리 액세스를 할 수 있다는 것이며, 이들 두번의 엑세스가 각각 다른 코어로 나뉜다면 멀티 코어 프로세서가 멀티 스레드에서의 성능을 높일 수 있게 됩니다.
그래서 테스트를 해 보았습니다.
페넘 X4 9850, DDR2-800 4-4-4-10-22-2T 메모리. 바이오스에서 Unganged와 Ganged만 바꿔서 테스트했습니다.
테스트 결과는 Unganged와 Ganged의 성능 차이가 매우 작으며, 일부 게임에서만 약간의 성능 차이가 있다는 것입니다. 따라서 실제 성능 차이는 무시해도 좋을 정도입니다.
어쨌건, 제일 처음에 이야기했던 것으로 돌아가서 Ganged가 Unganged보다 나을 것이라고 판단하는건 바르지 않다고 말해야 되겠지요.
초가 CPU-Z 1.41에서는 Unganged Mode를 사용했을 경우 메모리를 싱글채널로만 인식하는 경우가 있었으며, AMD Agesacode3.1.7.0에서도 똑같은 문제가 있었습니다. CPU-Z는 1.44 이후 버전에서 이 문제가 수정되었습니다만, 이것이 Unganged Mode=싱글채널 이런 선입견이 생기게 된 원일일 수도 있겠습니다.
그리고 Unganged Mode가 64비트, Ganged Mode가 128비트로 표시되는 이유는 위에서 설명되었을 것입니다. 하지만 모르는 사람들은 Unganged Mode가 성능이 무조건 낮다고 오해할 수도 있겠습니다.
2008.10.30 00:55:32
평소 궁금했는 데, 굉장히 쉬운 설명 감사드립니다.
이론적으로 두개의 멤컨을 채용해 개별적으로 메모리 모듈에 억세스 하므로, 대역점유가 적은 데이터를 억세스 하는 경우
두 개의 멤컨이 독자적으로 각 메모리 모듈에 억세스 해서 보통의 듀얼채널에 비해 효율이 좋아진다는 거군요.
이론적으로 분명히 좋아야하지만 결과에서 떨어지는 경우도 있는 걸로 보아,
프로그램 차원에서 따로 입출력스트림제어가 필요한 것 같습니다.
현재의 버전에서는 두개 멤컨의 효과를 잘 살리지 못하는 것 같아요.
이론적으로 두개의 멤컨을 채용해 개별적으로 메모리 모듈에 억세스 하므로, 대역점유가 적은 데이터를 억세스 하는 경우
두 개의 멤컨이 독자적으로 각 메모리 모듈에 억세스 해서 보통의 듀얼채널에 비해 효율이 좋아진다는 거군요.
이론적으로 분명히 좋아야하지만 결과에서 떨어지는 경우도 있는 걸로 보아,
프로그램 차원에서 따로 입출력스트림제어가 필요한 것 같습니다.
현재의 버전에서는 두개 멤컨의 효과를 잘 살리지 못하는 것 같아요.
2008.10.30 01:47:29
막연히 단합모드보다 독립모드가 좋다고만 알고 있었는데
어느정도 풀이해놓은 글을 읽으니 고개가 끄덕여지는군영...
페넘 사용자로서 좋은 글, 감사히 읽었습니다 ^^
어느정도 풀이해놓은 글을 읽으니 고개가 끄덕여지는군영...
페넘 사용자로서 좋은 글, 감사히 읽었습니다 ^^
작성된지 2주일이 지난 글에는 새 코멘트를 달 수 없습니다.
한번 읽어서는 잘 이해가 안되네요...좀 읽어보고 적용해야겠네요..^^;