메모리 듀얼채널, 대역폭의 이해
Hardware 2012. 10. 16. 11:03
[출처] [본문스크랩] 메모리 듀얼채널, 대역폭의 이해|작성자 에시르
1. 메모리의 듀얼채널 구성이란 무엇을 말하나요.
듀얼(dual)이라는 말은 다들 알다시피 "두개의" 라는 뜻이죠. 즉 듀얼채널 구성이라는 것은 말그대로 "두개의 메모리를 하나의 버스로" 사용함을 뜻합니다.
즉 예를 들면, pc-2700 규격의 DDR-SDRAM(실클럭 166MHz, 데이터레이트 333MHz, 대역폭 2.7GB/s)을 듀얼채널로 구성하여 대역폭을 5.4GB/s로 쓰는 것이 여기에 해당한다고 할 수 있겠습니다.
듀얼채널의 목적은 보다 넓은 대역폭의 확보를 위한 것입니다. 듀얼채널 메모리라는 것이 최근에 와서 많이 언급되고 있는 기술이긴 합니다만, 우리가 실제로 사용한 것은 그 보다 훨씬 이전의 일입니다.
듀얼채널 메모리 구성을 하는 이유는 크게 두가지 이유로 나누어 볼 수 있겠습니다.
① 싱글채널, 즉 한개의 메모리가 지니는 버스폭을 사용해서는 CPU 버스의 대역폭 요구를 충족하지 못할때.
② 내장 그래픽 등 부가적인 디바이스와의 보다 넓은 대역폭 요구를 만족하기 위해.
일반적으로 듀얼채널이 지원되지 않는 메인보드에서도 메모리를 두개 이상 꽂아서 사용하는 유저가 많을 것입니다.
이렇게 듀얼채널이 지원되지 않는 경우, 메모리를 여러개 꽂게 되면 사용가능한 물리적인 메모리의 용량은 늘어납니다만, 메모리 버스의 대역폭은 늘어나지 않습니다. 이것이 바로 듀얼채널과 싱글채널의 차이점이라 할 수 있겠습니다.
2. 대역폭이란 무엇인가요?
대역폭(Bandwidth)는 여러가지 분야에서 다양하게 사용되는 개념입니다만, 지금 이야기하고 있는 메모리 버스와 같은 pc내 장치간의 버스에서의 개념으로 이야기한다면 "일정 시간 동안 해당 버스를 통해 전송될 수 있는 데이터의 양"을 뜻하는 개념으로 알아두시면 되겠습니다.
보통 사용되는 단위는 MB/s(1초당 전송될 수 있는 메가바이트), 혹은 GB/s(1초당 전송될 수 있는 기가바이트)입니다.
가령 예를 들어 해당 버스가 2.7GB/s의 대역폭을 지니고 있다면, 1초에 2.7GB에 해당하는 데이터가 전송될 수 있음을 뜻하는 것입니다.
이러한 대역폭을 결정짓는 요소는 두가지가 있습니다.
하나는 해당 버스의 전송클럭(clock:전송신호의 주기)이며, 하나는 해당 버스의 버스폭입니다.
현재 우리가 사용하고 있는 pc의 메모리버스는 대개 64bit에 해당하는 버스폭을 지니고 있습니다. 또한 해당 메모리의 전송클럭은 사용하는 메모리의 종류에 따라 다양하죠.
가령, 위에서 예를 들었던 pc-2700 DDR-SDRAM을 예로 들어보겠습니다.
이 메모리의 실제 전송클럭은 166MHz입니다. 하지만 DDR(Double Data-Rate) 기술이 사용되어서 실제 데이터레이트는 333MHz에 이릅니다.(자세한 내용은 하논 강의실의 DDR-SDRAM에 관한 제 강좌글을 참고하시기 바랍니다.)
그리고 위에서 언급했다시피, 이 DDR 메모리를 사용하는 메모리 버스의 버스폭은 64bit(8Byte)입니다.
이 메모리의 대역폭을 구하는 공식은 다음과 같습니다.
166(실제 클럭) x 2(DDR) x 8(Byte:버스폭) = 2656MB/s ≒ 2.7GB/s
여기서 만약에 해당 메모리를 듀얼로 구성하게 된다면, 해당 수치에 다시 2를 곱해준 수치(≒5.4GB/s)가 이 메모리 버스의 대역폭이 될 것입니다.
3. 이렇게 넓은 대역폭을 확보하려는 이유는 무엇이지요?
사실상 우리가 "듀얼채널 메모리 구성"의 효시를 굳이 손 꼽자면, 32비트의 외부버스를 지닌 486시절로 거슬러 올라가야 할 것입니다.
그 시절 우리는 16비트의 버스폭을 지닌 30핀 SIMM 메모리를 두개 쌍으로 꽂아서 32비트에 해당하는 하나의 뱅크(Bank)를 만족시켰습니다. 그리고 조금 지나서 펜티엄(64bit 외부버스)이 등장했을때는 72핀 메모리(32bit 버스폭)를 쌍으로 꽂아서 하나의 뱅크를 만족시켰습니다.
최근에 우리가 사용하는 듀얼채널 메모리의 성질과는 다소 다릅니다만, 이러한 예 역시 듀얼채널 메모리 구성의 일종으로 볼 수도 있을것입니다.
그 시절이나 현재나 우리가 메모리를 듀얼채널로 구성하여 사용하는 가장 큰 이유는 역시 "CPU 외부버스와의 조화"를 위한 것입니다.
오늘날에는 sdram류가 주류를 이루게 되면서, CPU의 외부버스와의 대역폭 균형이 매우 중요하게 되었습니다.
비동기방식 메모리 컨트롤을 사용하는 메인보드들이 주류를 이루게 됨에 따라 CPU의 외부버스와 대역폭상의 완전한 동기화를 이룰 필요는 사라졌습니다만, 보통 유저들이 자주 사용하는 말인 "CPU의 제성능을 내기 위해서"라거나 "병목현상을 막기 위해서" 등등의 이유와 비슷한 이유로 이러한 듀얼채널 방식이 각광을 받게 된 것입니다.
보다 자세하게 예를 들어 이야기하자면 다음과 같습니다.
펜티엄4(윌라멧, 외부버스 대역폭 3.2GB/s)가 처음 출시 되었을때, 당시 시장에서는 해당 버스만큼의 대역폭을 싱글채널로 만족시켜줄만한 메모리가 나와있지 않았습니다.
당시에 회자되던 pc-1600 DDR-SDRAM(실클럭 100MHz, 데이터레이트 200MHz, 대역폭 1.6GB/s)이나 pc-2100 DDR-SDRAM(실클럭 133MHz, 데이터레이트 266MHz, 대역폭 2.1GB/s)로는 펜티엄4의 외부버스의 절반 정도의 대역폭 밖에 만족시켜 줄 수 없었던 것입니다.
다만, DRDRAM(Direct-Rambus DRAM:램버스 메모리)의 경우 pc-800 DRDRAM(실클럭 400MHz, 데이터레이트 800MHz, 대역폭 1.6GB/s)의 경우, 핀구성이 간단한 이점으로 인해 듀얼채널 구성이 용이했고, 이 DRDRAM을 듀얼채널로 구성하여 3.2GB/s의 대역폭을 만족시켜서 펜티엄4가 출시 되었던 것입니다.
인텔로서는 이러한 램버스사와의 이전부터의 연계를 통해서 폭넓은 펜티엄4의 외부버스 설계를 할 수 있었던 것이고, 이러한 것이 당시 사람들에게는 "인텔의 펜티엄4는 램버스와 가장 최적화 되어 있다"는 오해를 불러일으키기도 했습니다.
만일 이 당시 펜티엄4가 싱글채널 pc-2100 DDR-SDRAM과 연계가 되어 출시가 되었다면 어땠을까요.
이 경우, CPU의 외부버스의 대역폭은 3.2GB/s, 메모리 버스의 대역폭은 2.1GB/s가 되어 불균형이 일어나게 됩니다.
CPU는 연산에 필요한 데이터를 FSB(Front Side Bus : CPU의 L2캐쉬에서 메인메모리에 이르는 버스)를 통해 메모리에서 가져와서 캐쉬에 저장한 후 사용하게 되므로, 만일 위의 예와 같이 CPU의 외부버스와 메모리버스간에 대역폭 불균형이 일어나게 되면 필요한 데이터를 가져오는데 불필요한 지연이 발생하게 될 것입니다.
이러한 상태를 일컬어 유저들이 자주 이야기하는 "CPU의 성능을 제대로 사용하지 못한다"라고 하는 것입니다.
대개의 경우, 듀얼채널을 사용하는 것은 이렇듯 CPU의 외부대역폭과 조화를 이루어 사용하기 위함이라고 할 수 있습니다.
과거에는 DRDRAM에 비해 SDRAM(DDR 포함)은 핀구성이 복잡하여 듀얼채널 구성시 메인보드 제조 코스트의 상승이 불가피하여 SDRAM 및 DDR-SDRAM을 이용한 듀얼채널 구성이 상당히 어려운것으로 받아들여졌습니다만(물론 펜티엄4 이전에 i840 서버용 칩셋에서 SDRAM을 듀얼채널로 구성할 수 있도록 나오기도 했습니다.), 현재는 기술의 발전과 치열한 경쟁 때문에 이러한 SDRAM류의 듀얼채널 지원 메인보드를 우리가 비교적 싼 가격에 구입할 수 있게 된 것입니다.
4. 그럼 꼭 CPU와 동기를 시켜주어야 하나요?
아닙니다. 꼭 그런건 아니겠죠.
사실 현재와 같이 기존에 66MHz, 100MHz, 133MHz만 정규클럭으로 인정받던 시대가 지난 시점에서야 대역폭 구색은 맞추기 나름입니다. 동기(Sync)라는 개념역시 현재는 매우 희박해져버렸죠.
메모리 버스의 대역폭 구성을 생각할때는 두가지 요소를 반드시 생각해야 합니다.
하나는 성능지향, 하나는 효율성입니다.
성능상으로 가장 좋은 구성은 메모리버스의 대역폭이 CPU 외부버스, AGP 버스, 그리고 다른 기타 디바이스(PCI채널의 모든 디바이스 및 기타 디바이스)와의 대역폭을 모두 아우르는 것입니다.
메모리버스는 CPU만이 전적으로 사용하는 버스는 아닙니다. AGP버스의 개발의 주요 목적 중의 하나가 "다른 디바이스와 떨어져 단독으로, 메모리 버스에 직접 접근 가능"이라는 점을 보면 AGP버스와의 연계성도 고려해야 하고, DMA가 일반화되는 현재의 시점에서 다른 디바이스와의 메모리 버스 연계 역시 고려해봄직 합니다.
즉, 메모리 버스와 연결되는 pc내 모든 장치들이 각각의 자신의 버스가 가지는 대역폭만큼 메모리버스에 "전용으로" 접근할 수 있는 대역폭을 확보하는 것입니다.
하지만 이렇게 하는 것은 매우 비효율적인 방법입니다.
우선 이만한 구성을 할 수 있는 메모리 규격이 아직까지 나와있지 않은것도 문제고, 또한 그만한 대역폭을 확보한다해도 "만일의 필요"에 대비해서 너무 무리하게 쓸데없이 대역폭을 확보하는 것으로 볼 수 있겠죠.
다음으로 (성능상으로)좋은 구성은 최소한 CPU의 외부버스 보다는 넓은 대역폭을 확보하는 것입니다.
이유는 위에서 언급했듯, 다른 디바이스와의 연계가 가능한 대역폭 여분을 확보하는 것입니다. CPU의 외부버스 폭 보다 넓은 대역폭을 확보한 시스템의 경우 일부 특정 프로그램을 구동시 성능이 약간 좋게 나타나는 것은 이러한 효과로 볼 수 있겠습니다.
하지만 이 경우 역시 투자한 비용에 대해서 확실히 효율적이다라고 말하기는 힘든 것이겠지요.
다음으로 좋은 구성은 역시 CPU의 외부버스 대역폭만큼 대역폭을 확보하는 것입니다. 이것은 앞에서도 언급했지만 CPU가 필요한 데이터를 전송하는 가운데 일어날수 있는 지연을 막기 위함입니다.
가장 성능상 안좋은 구성은 CPU의 외부버스 대역폭 보다 적은 메모리 버스 대역폭을 확보하는 것입니다. 앞서의 펜4 + 싱글채널 pc-2100 메모리의 예가 되겠죠.
하지만 효율성 측면에서 본다면 가장 후자의 예가 가장 좋은 효율성을 띤다고 할 수 있겠습니다.
유저들은 보통 "CPU가 제성능을 내야한다"면서 듀얼채널 구성을 전폭적으로 지지합니다만, 대개의 엔드유저들이 꼭 그렇게까지 "대역폭 구색"에 신경쓰는 것은 그다지 옳지 않다고 보입니다.
"듀얼채널 구성을 하지 않으면 성능이 심각하게 저하된다"고 하는 것은 사실 말하자면 현재로 따진다면 아직까지도 pc-100이나 pc-133 sdram을 사용하는 유저들이 "컴터를 못쓸만큼 느려져서(그것도 메모리 버스 때문에)" 컴퓨터를 폐기처분하는 때에나 가서야 할 수 있는 이야기겠죠.
즉 말하자면, 3d 게임과 같은 일반 유저들이 쉽게 접할수 있는 한도 내에서의 "부하가 큰 작업" 조차도 아직까지는 "심각할 만큼" 메모리 버스 대역폭에 의한 성능저하를 겪는다고 보기는 어렵다는 것입니다.
펜티엄4 2.4c를 사면서 pc-2700 메모리를 꽂는다고 성능이 절반으로 줄어드는 것은 아닙니다. 사실 싱글채널 2.7GB/s라는 대역폭도 현재 기준에서 본다면 엄청나게 넓은 대역폭이라고 할 수 있겠습니다.(일반 sdram에 비한다면 두배도 훨씬 넘죠.)
그것을 마치 듀얼채널을 안하면 CPU가 아깝다느니 혹은 마치 큰일이라도 날듯이 반응하는 것은 반이상은 CPU 및 메모리 제조업체들의 전략에 장단을 잘 맞추어주는 것 밖에는 안되는 것이랍니다.
현재의 CPU 외부버스 및 메모리 버스의 대역폭은 소프트웨어 수준에 비해 너무 빨리 진척되고 있고 커져있는 상태입니다.
이것은 물론 "미래에 대한 대비" 혹은 "기술 개발에 따른 당연한 수순"인 면도 있습니다만, 업체간의 경쟁과 마케팅적인 측면 역시 상당히 크다고 볼 수 있습니다. 거기에 덧붙인다면 기술개발의 어려움으로 인해 다소 비정상적으로 "더 높은 클럭 제품"을 시장에 내놓으려는 수단으로 쓰이기도 하는 것이죠.
앞에서 "성능상으로 가장 좋은 구성의 예"를 보면서 "머 그럴것 까지야..."라고 생각하신 분이 있다면, "메모리 대역폭은 최소한 CPU 외부버스 대역폭은 되어야 한다"는 말에도 "머 그럴것 까지야..."라고 생각하셔도 좋습니다.
자신의 시스템은 자신이 쓰기에 적당하면 제일 좋은 것입니다. 자신이 일반적인 엔드유저라고 생각하시는 분은 지나치게 성능지향적인 태도보다는 효율성을 따지는 태도를 가지는 것이 현명하다고 할 수 있겠습니다.
'Hardware' 카테고리의 다른 글
JETWAY HA12 JetwayBIK (0) | 2012.10.16 |
---|---|
3D 모니터 구매 방법 (0) | 2012.10.16 |
메모리 타이밍에 대한 이해 (1) | 2012.10.16 |
휴대폰 자기번호등록(나밍)방법 모음 (0) | 2012.10.16 |
ipTIME 공유기의 외부 IP 주소 바꾸기 (0) | 2012.10.16 |