"같은" 속도인데 성능이 달라진다고? 아무도 알려주지 않았던 메모리 구성의 진실을 파헤치자!

DDR4 뱅크 그룹에 숨겨진 의미! 랭크? 뱅크? 뱅크 그룹??? 여기 은행이었어 @.@?????

퀘이사존 QM크크리
81 6626 2021.09.27 18:34


퀘이사존

 


이젠 게임 성능을 위해 은행 수까지 알아야 한다고?

잠깐, 그 '뱅크'가 아닙니다.

 

    안녕하세요. QM크크리입니다. 이번에는 최근에 제기된 문제인, DDR4 뱅크 구성에 따른 게임 성능 저하에 대해 알아보고자 합니다. 예? 안 그래도 그래픽카드 때문에 머리 아픈데 은행까지 챙겨야 하냐고요? 일단 그 '뱅크' 이야기는 아닙니다.


    일반적인 사용자분들의 메모리 속도에 대한 인식은, 전혀 신경 쓰지 않거나, DDR4-3200 같은 전송 속도 규격까지만 알고 있거나, 거기서 더 나아간다고 해도 tCL 16 같은 소위 1차 타이밍까지만 신경 쓰는 경우가 절대다수일 것입니다. 그런데, 그렇게 잘 알려진 규격도 아니고, 메모리 오버클록에 신경 써보신 분이라면 알만한 tRFC도 tFAW도 아닌 뱅크bank, 뱅크 그룹bank group이 대체 뭐길래, 같은 스펙의 메모리를 사용한 게임 성능이 10%나 떨어질 수 있다고 할까요?





▲ 영상 출처: 유튜브 Linus Tech Tips

 

    Linus Tech Tips와 Notebookcheck가 지난 6월에 보도한 바(바로 가기)에 따르면 일부 노트북 제조사들이 소비자에게 알리지 않고 메모리 부품을 '느린' 제품으로 바꾸고 있다고 합니다. Linus Tech Tips의 테스트에 의하면 시네벤치 R20에선 최대 2.5% 정도 느려졌지만, 메모리 대역폭 측정값(AIDA64)과 게임 성능은 10~20% 정도 감소하였습니다. CPU에 따라서도 결과가 달라지는지 AMD 라이젠 9 5900HX를 탑재한 제품보다 인텔 i7 11800H를 탑재한 노트북에서 성능 저하가 더 컸습니다. 특히 인텔 i7 11800H와 해당 문제가 없는 메모리를 탑재한 AORUS G15에서, 메모리를 문제가 되는 부품으로 교체하고 "섀도 오브 더 툼 레이더(Shadow of the Tomb Raider)"의 성능을 비교하자 평균 프레임은 122에서 95로 22%가량, 1% 하위 프레임은 92에서 67로 27%가량 떨어지는 결과가 나왔습니다.(AORUS G15 자체는 이 문제에 해당하지 않기에, 메모리를 문제가 되는 부품으로 교체했을 때의 성능을 제품 기본 상태와 비교한 것입니다.) 반대로 낮은 쪽을 기준으로 하면, 빠른 메모리로 교체하면 평균 프레임은 95에서 122로 28%가량, 1% 하위 프레임이 67에서 92로 37%가량 성능이 오른다는 얘기가 되기도 합니다. Linus Tech Tips에서 RTX 3070과 3080의 차이에 비유한 것이 납득이 갈 정도입니다.


    해당 영상의 2분 9초경에서는 두 메모리를 나란히 보여주며 비교하기도 하는데요. 얼핏 보면 완전히 같은 8 GB DDR4-3200 CL22 제품으로 보입니다.(3200 뒤에 붙은 AA가 CL22 규격임을 뜻합니다.) 단지 한쪽은 칩 4개만 달린 단면 메모리이고, 다른 쪽은 칩 8개가 있는 양면 메모리란 점만 빼고요. 그래서 그런 걸까요? 하지만 이전에 단면/양면 메모리를 모두 써보신 분들은 정답이 될 수 없음을 알고 계실 것입니다.


    자, 다시 이들이 보여주는 내용, 특히 Notebookcheck의 기사 제목을 보면 한 가지 차이가 더 보입니다. 일반적인 1Rx8 구성이 아닌 1Rx16 구성인 모듈을 써서 그렇다고 합니다. 아마 읽자마자 '대체 뭔 소리야' 싶은 분들이 더 많겠죠. 사실 이를 정확히 알려면 DDR4의 구성 방식에 대해 알아야 합니다. 관련 전공 지식이 있는 분이 아니라면 자료를 보고 이해하기도 어렵고, 비전공자가 이해할 수 있도록 풀어서 설명하기는 더 어렵습니다. 그래서 Linus Tech Tips가 시도한 방식이 도서관의 책장과 사서를 이용한 비유입니다.


 


퀘이사존

▲ 도해 출처: 유튜브 Linus Tech Tips


    우리가 그동안 일반적으로 접해온 1Rx8 구조의 DDR4 메모리는 책장을 두 개로 나누어 각각의 책장을 한 명의 사서가 담당하는 구조로 비유합니다.(실제로는 책장이 네 개 있어야 합니다만, 이해를 돕기 위한 비유일 뿐이니 넘어갑시다.) 책장 어딘가에 있는 책을 읽으려면 사서가 가서 찾아주는 식입니다.


 


퀘이사존 

▲ 도해 출처: 유튜브 Linus Tech Tips

 

    반면 1Rx16 구조는 책장 두 개를 하나로 합쳐서 사서를 한 명으로 줄인 방식입니다. 사서를 한 명 줄여서 비용도 줄이고, 사서가 움직일 공간도 그만큼 줄였으니 책장이 차지하는 전체 크기도 줄어들었습니다. 대신 사서가 두 배 많은 책 사이에서 원하는 책을 찾으러 다녀야 하니 느려지겠지요. 그 결과가 Linus Tech Tips 영상에서 본 2~27%의 성능 저하입니다.


    대체 무슨 이유로 이런 구조를 만들어놓고, 인제야 그것도 몰래 느린 제품을 사용하는 걸까요? 이를 설명하기 위해 우선 메모리 자체의 구조부터 차근차근 짚어보도록 합시다.


 


퀘이사존


# 메모리, 뱅크, 뱅크 그룹, 랭크...


    메모리 자체의 기본 원리는 매우 간단합니다. 바둑판 같은 사각의 행렬 구조에 각각의 값을 저장해놓고, 어떤 위치에 있는 값을 사용할지를 몇 번째 행과 몇 번째 열인지로 지정하는 방식입니다. 50여 년 전 미국에서 새턴 V 로켓을 발사할 때는 재봉사들이 각 위치에 자석을 하나하나 끼워 넣어서 메모리 구조를 만들었고, 최근에는 만화 "닥터 스톤(ドクターストーン, Dr.STONE)"의 주인공 일행들이 이를 재현해서 화제가 되기도 했죠.



퀘이사존

▲ 출처: 만화 "닥터 스톤(ドクターストーン, Dr.STONE)"

퀘이사존

▲ 보이는 자석 하나하나가 각 1비트에 해당합니다. 사진 출처: NASA(미 항공 우주국)


▲ 영상 출처: 유튜브 SmarterEveryDay


    이를 Magnetic-core memory라고 하며, "새턴 V 메모리 모듈(Saturn V Memory Module)"로 구글링하면 자세한 내용을 볼 수 있습니다. 하지만 이런 구조는 크고 무겁고 느리며, 실력 있는 재봉사들이 한 땀 한 땀 짜 맞춰야 하니 대량 생산도 힘듭니다. 영상의 표지 화면에서 손에 들고 있는 거대한 뭉치의 메모리 용량이 14 kB(킬로바이트)밖에 안 되죠.(원칙적으로는 킬로의 k는 소문자로, 바이트의 B는 대문자로 적어야만 맞습니다.) 정확히는 28비트 4,096개로 14.336킬로바이트입니다. 만화에서는 거대한 SI-1(전자계산기=컴퓨터)을 만들기 위해 0.5mm 자석 3천만 개를 짜 맞추는데요. 3천만 개라 하니 엄청 많아 보이지만, 30 Mb(메가비트) = 3.75 MB(메가바이트)밖에 안 됩니다. 윈도우 등의 OS는 1,024단위를 쓰니 3.576메가바이트(정확히는 MiB)라고 보여줄 것입니다. 이러한 용량 표기의 차이는 인터넷 속도 칼럼에서 다룬 바 있습니다.


"내 인터넷 속도 정말 이게 맞아? 인터넷 속도에 담긴 역사적 사실" 칼럼 바로 가기


    저장된 값을 읽기 위해 전류를 흘리면 정작 해당 위치의 자석이 교란되어서(데이터 읽기가 데이터를 파괴하는 방식) 같은 위치에 해당 값을 다시 써줘야 하는 문제도 있습니다. 모두 메모리 의존적인 작업의 성능을 제약하는 요인으로 해결하거나, 해결할 수 없다면 효율적으로 처리할 필요가 있습니다. 그래서 우리가 사용하는 컴퓨터의 주기억장치(메인 메모리)는 DRAM, EDO DRAM, SDRAM, DDR-SDRAM 등을 거쳐 DDR4까지 발전하였고, 조만간 DDR5로 넘어갈 예정입니다.




 

▲ 영상 출처: 유튜브 Computer Science(재생 목록 바로 가기)


    ※ 유튜브 Computer Science의 관련 영상에선 현대적인 DRAM 구조를 기초부터 직접 설명하고 있습니다. 다만 영상에 나오는 전압이나 클록 주파수 등의 사양은 설명을 위한 예시라서 특정 세대 DDR 메모리 사양을 정확히 반영하지는 않는 것으로 보입니다.


# 전송 속도를 올리기 위해 prefetching을 사용하고, DDR4에서 뱅크 그룹을 추가하였습니다.

    이런 발전 과정에서 문제가 되었고 앞으로도 계속 안고 가야 할 문제가 하나 있습니다. DRAM Cell 자체의 속도는 빠르게 만들기 힘들다는 점입니다. 앞서 본 자석들처럼 각 위치에서 실제 데이터를 기억하고 있는 물건이 메모리 Cell이며, DRAM은 축전기(Capacitor)를 사용하는 방식입니다. 그럼 이 축전기 Cell은 얼마나 느릴까요? 일례로 DDR4-3200이라고 하면 3,200 MHz로만 알고 계신 분들이 대부분이겠지만, DDR4-3200 규격의 DRAM Cell은 400 MHz의 클록 주파수로 작동합니다. 그리고 실제 데이터를 전송하는 통로인 IO 버스는 1,600 MHz의 클록 주파수로 작동합니다. 그리고 1,600 MHz의 IO 버스가 작동할 때마다 한 클록에 두 번 데이터를 보내서 DDR의 유효 클록(Effective Clock)이 3,200 MHz라고 합니다. 실제 클록과 같이 MHz를 사용하는 게 혼동을 일으킬 수 있다 하여 MT/s(초당 백만 번 전송, Mega Transfers Per Second)를 쓰기도 합니다.


    2000년에 발표한 최초의 DDR 규격인 DDR-200은 100 MHz의 DRAM Cell 속도와 200 MT/s의 전송 속도를 가졌으니, 20년 가까운 세월 동안 전송 속도가 16배 빨라진 3200 MT/s가 되었는데, DRAM Cell은 100 MHz → 400 MHz로 고작 4배 빨라진 셈입니다.(DDR4에서 3200 MT/s를 초과하는 제품들은 오버클록 사양입니다. 대표적으로 인텔의 XMP, Extreme Memory Profile 규격이 있고, 공장에서부터 오버클록을 확인하고 출고한다고 하여 팩토리 오버클록이라고도 합니다.)


 


퀘이사존

▲ 도해 출처: Synopsys

 

    위 도해에서 Max. column cycle이라고 표기한 속도가 DRAM Cell 속도라고 받아들이셔도 됩니다. 위에서 드린 설명과 달리 400 MHz에 도달하지 못하는데, 2015년 DDR4-2666 규격까지만 보여주기 때문입니다.




퀘이사존

▲ 도해 출처: Synopsys


    이렇게 메모리 자체의 작동 속도보다 더 빠른 속도로 전송하기 위해 사용하는 구조가 prefetching입니다. 메모리가 작동할 때 한 비트씩 읽어 들이는 대신 4개, 8개의 Cell을 동시에 작동 시켜 4비트, 8비트씩 한 번에 읽어 들이는 방식입니다.(이를 Burst Length, Burst Size라고도 합니다.) 이 prefetching은 DRAM 데이터 버스의 비트별로 따로 이루어지고, DRAM 데이터 버스는 64비트이기 때문에 8배(8N) prefetching은 64비트의 8배인 64바이트씩 데이터를 처리하게 됩니다. 어차피 CPU가 메모리에서 읽어 들일 데이터는 아무 위치에 흩어져있는 각각의 1비트가 아니라, 여러 비트가 연속되어 이루는 정보이기 때문에 캐시 메모리에서도 64바이트씩 데이터를 처리하고, 메인 메모리(DRAM)를 쓸 때도 8개의 메모리를 병렬로 작동 시켜 8비트씩 데이터를 처리하는 8배(8N) prefetching 방식은 충분히 성능 향상으로 이어질 수 있습니다.


     그래서 DDR 메모리 규격을 처음 만들 때 2N prefetching을 도입하였고, DDR2는 이전의 2배인 4N prefetching을, DDR3는 이전 DDR2의 2배인 8N prefetching을 사용합니다. 그리고 DDR4는 이전 DDR3의 2배인 16N prefetching을 사용...하지 않고 그대로 8N prefetching을 사용합니다. DDR4 규격을 만들 당시에는 16N prefetching을 도입하기에는 비효율적이라고 판단한 모양입니다. 대신 '뱅크 그룹'이란 단위를 통해 성능을 올립니다. 이름에서 알 수 있듯이 여러 '뱅크'를 묶어서 따로 '그룹' 단위를 만든 것입니다.


 


퀘이사존

 ▲ 도해 출처: Synopsys

# '뱅크 그룹'이란, 여러 뱅크를 따로 그룹 단위로 분리한 개념입니다.


    기존에도 배열된 메모리(Array) 몇 개를 묶어 뱅크Bank라 부르고, 이 메모리 뱅크를 여러 개 모아서 메모리 모듈을 구성하였습니다. 여기서 뱅크는 '줄지어 늘어놓다', '배열하다'의 Bank입니다. 참고로 은행을 뜻하는 Bank는 이탈리아어로 돌의자, 책상을 뜻하는 반코(banco)에서 유래했기에 동음이의어일 뿐 상관이 없습니다.


    하나의 거대한 배열을 쓰면 매번 그 거대한 배열을 작동시켜야 해서 전력 소모는 늘어나면서도 속도는 느려집니다. 그래서 비교적 크기가 작은 배열들을 모아놓은 뱅크를 사용합니다. 각 뱅크는 어느 정도 독립된 구조이기에 (전송 속도보다 매우 느린) DRAM Cell을 작동시키는데 필요한 각종 지연 시간delay을 숨기는 데 사용하기도 합니다. 하나의 뱅크에 접근해서 어떤 작업을 시킨 후, 같은 뱅크에 다시 접근해서 다른 작업을 시키려면 해당 뱅크가 작업을 마친 후 다시 준비될 때까지 기다려야 합니다. 반면, 그 작업을 다른 뱅크에 시킨다면 앞서의 뱅크가 작업을 마칠 때까지 기다리지 않아도 되기 때문에 훨씬 빨리 진행할 수 있습니다. 이를 어겨 앞선 작업을 마칠 때까지 기다려야 되는 상황을 뱅크 충돌(Bank Conflict, Conflicts)이라고 합니다.(정확히는 가로 열인 Row 활성화와 관계가 있습니다만, 정확한 설명을 하면 주제가 아닌 부분에서 말이 너무 복잡해지므로 생략하겠습니다.)




퀘이사존

▲ 클릭하면 커집니다(원본 크기로 보실 수 있습니다). 출처: "An SDRAM-aware router for networks-on-chip"(바로 가기)


    위 도해는 "IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems (IEEE T COMPUT AID D)"라는 과학 저널의 2010년 12월 판에서 발표한 "An SDRAM-aware router for networks-on-chip"라는 논문의 내용 중 일부입니다.


    앞서 말한 뱅크 충돌을 2개의 뱅크로 간략화시킨 대조 시나리오를 통해 그 성능 차이를 보여줍니다. 도해의 위에서는 뱅크 0에 연속으로 2번 접근한 후 다시 뱅크 1에 연속으로 2번 접근하여 2번의 뱅크 충돌을 일으킨 결과로 총 42클록 주기가 걸렸습니다. 반면 아래는 같은 작업이라도 매번 뱅크 0과 1에 교대로 접근하여 뱅크 충돌이 없는 이상적인 결과로, 총 30클록 주기가 걸려서 위의 결과보다 29% 가까이 소요 시간을 줄였습니다.


# 그래서 뱅크 그룹의 의미는...


    DDR4는 여기에 더해 좀 더 독립된 구조인 뱅크 그룹(bank group)을 도입해서 다시 나눠놓았습니다. 하나의 뱅크 그룹을 어떠한 이유로 사용할 수 없다면 다른 그룹을 쓰는 식이죠. 메모리 세부 타이밍에 관심을 가져본 분이라면 tCCD_S과 tCCD_L을 통해 접해보신 분도 있을 것입니다. DDR4-3200 기준으로 tCCD_S은 4주기 = 2.5ns이고, tCCD_L은 8주기 = 5ns이기 때문에 단순히 생각하면 2배 차이가 난다는 얘기입니다. 하나의 뱅크 그룹에서 각 뱅크에 접근하는 작업을 시작했을 때, tCCD_S에 해당하는 2.5ns의 시간이 흐르면 다른 뱅크 그룹에서 다른 작업을 할 수 있게 됩니다. 하지만 처음 접근한 뱅크는 계속 작업 중이기 때문에, 해당 뱅크 그룹에 다시 다른 작업을 시키려면 tCCD_L에 해당하는 5ns의 시간을 기다려야 합니다. 원래 DDR 메모리 구조상 8N prefetching으로 준비된 데이터를 최종적으로 전송하는데 4주기가 걸리고, tCCD_L의 8주기에 맞추려면 prefetching을 16N으로 늘려야 합니다.(DDR3에서는 모두 4주기여서 구별하지 않았으나, DDR4에서 또다시 DRAM Cell 등 주요 회로가 빨라지는 걸 기다리지 않고 전송 속도를 올렸기 때문에 tCCD_L이 늘어지게 되었습니다.) 하지만, DDR4에서는 계속 8N prefetching을 택했기 때문에 대신 뱅크 그룹을 나누고 가능한 한 매번 서로 다른 뱅크에 접근함으로써 tCCD_L의 지연 시간을 숨기는 방식을 사용합니다.




퀘이사존

▲ 클릭하면 커집니다(원본 크기로 보실 수 있습니다). 출처: systemverilog.io(바로 가기)

 

    그래서 뱅크 그룹과 뱅크 수를 늘리고 여러 그룹, 여러 뱅크를 교대로 사용할수록 각종 지연 시간을 기다리느라 노는 구간이 적어지고, 명목상의 최대 전송 속도인 MT/s에 가까운 성능을 낼 수 있습니다. 이렇게 지연 시간을 기다리느라 노는 구간을 줄이고 실제 DRAM을 얼마나 활용하고 있느냐를 DRAM 활용률(DRAM utilization)이라 하며, DDR 메모리 발전에 있어 중요한 화두이기도 합니다. 앞서 말씀드린 것처럼 전송 속도를 올린 데 비해 DRAM Cell 자체의 속도는 빠르지 못하기 때문에, 대충 같은 지점(같은 뱅크 그룹, 같은 뱅크)을 연속으로 사용하려 들면 DRAM 활용률이 떨어지고 그만큼 느려지게 됩니다.


    여기까지만 생각한다면 뱅크 수와 뱅크 그룹 수를 더 많이 늘려서 성능을 높이면 좋지 않겠느냐고 할 수도 있겠습니다. 그러나 뱅크 그룹 수를 늘리는 것은 공짜가 아닙니다. 뱅크 그룹을 나눌수록 관련 구조도 늘어나서 공간을 차지하고 전력을 소모하게 됩니다. 그래서 Linus Tech Tips에서 책장과 책장당 한 명씩 배치된 사서의 비유를 쓴 것이기도 합니다.




퀘이사존

▲ 도해 출처: 유튜브 Linus Tech Tips


    해당 도해를 다시 보며 생각해 보자면, 반대로 책장을 나누고 그만큼 사서를 늘린다면 성능은 올라가겠죠. 대신 그만큼 사서가 이동할 공간도 확보해야 하고 사서를 유지하기 위한 비용도 늘어날 것입니다. 책의 수(총 용량)는 그대로니깐 용량 대비 가격이 비싸진다는 얘기이기도 합니다. 매번 다른 그룹, 다른 뱅크에 접근할 때마다 그곳에 원하는 데이터가 있어야 쓸모가 있기 때문에, 데이터를 여러 뱅크와 그룹에 골고루 분산시키는 작업에도 신경 써야 합니다. 또한, 최대 전송 속도인 MT/s도 그대로이기 때문에 그룹이나 뱅크 수만 무작정 늘리면 추가적인 성능 향상은 줄어들고 비용 대비 효율이 떨어지는 수확 체감이 심해집니다.


    일례로 저전력을 중시한 LPDDR4/4X 규격은 최대 전송 속도를 4266 MT/s로 끌어올렸지만, 뱅크 그룹을 도입하지 않았습니다. 반대로 DDR5는 뱅크 그룹 수를 DDR4보다 2배로 늘리고, 저전력을 중시한 LPDDR5에서도 DDR4와 같은 수의 뱅크 그룹을 사용하는 모드를 도입합니다. 하지만, DDR5와 LPDDR5는 최대 전송 속도를 각각 8400 MT/s와 6400 MT/s까지 설정하고 이를 뒷받침하기 위한 여러 조정을 더한 새로운 규격이고, DDR4에서 뱅크 그룹 수만을 늘린 것과는 차원이 다른 얘기입니다.




퀘이사존

▲ 도해 출처: 마이크론 테크놀로지

 

    아무튼 DDR5에서는 최대 뱅크 그룹 수가 2배인 8개로 늘었고, 가능한 뱅크의 총 개수도 2배인 최대 32개로 늘었습니다. 이것이 칼럼 처음에 보았던 도해의 정체입니다.


 


퀘이사존

▲ 사진 출처: SK hynix


    SK하이닉스에서 DDR5를 발표하며 공개한 실물 사진에서도 뱅크와 뱅크 그룹을 표시한 걸 볼 수 있습니다. 사진상 면적으로 보면 이 역시 8개의 뱅크 그룹과 총 32개의 뱅크를 가진 최대 구성입니다.


    참고로 위에서 보여드린 구성은 최대 구성일 뿐, DDR4는 4개의 뱅크 그룹(그룹당 4뱅크, 총 16뱅크, 위에서 보여드린 최대 구성) 외에도 2개의 뱅크 그룹(그룹당 4뱅크, 총 8뱅크) 구성을 가질 수 있습니다. DDR5는 더 복잡해서 8개의 뱅크 그룹(그룹당 4뱅크, 총 32뱅크, 위에서 보여드린 최대 구성), 8개의 뱅크 그룹(그룹당 2뱅크, 총 16뱅크), 4개의 뱅크 그룹(그룹당 4뱅크, 총 16뱅크, DDR4의 최대 구성과 동일), 4개의 뱅크 그룹(그룹당 2뱅크, 총 8뱅크)의 4가지 구조를 쓸 수 있게 해놨습니다.




퀘이사존

▲ 클릭하면 커집니다(원본 크기로 보실 수 있습니다).

 


# 랭크, 채널, 단면/양면

 

    랭크와 채널은 위에서 말씀드린 것들에 비하면 간단한 개념입니다. 채널은 완전히 독립된 구조로 동시에 서로 다른 데이터를 보낼 수 있습니다. 그래서 채널이 늘어날수록 같은 시간에 보낼 수 있는 데이터의 양인 대역폭이 늘어납니다. DDR4-3200의 대역폭은 25.6 GB/s이지만, 듀얼(2) 채널에선 51.2 GB/s, 트리플(3) 채널 76.8 GB/s, 쿼드(4) 채널 102.4 GB/s, 헥사(6) 153.6, 옥타(8) 204.8...식으로 채널 수에 비례해서 늘어납니다. 다만 저 숫자를 실제 성능으로 연결하려면 매번 메모리에 접근할 때마다 필요한 데이터가 모든 채널에 골고루 흩어져 있어야만 합니다. 그래야 여러 채널에서 동시에 서로 다른 데이터를 전송하는 의미가 있으니깐요. 그 때문에 고성능 워크스테이션이나 서버용 CPU에선 2008년 Core i7-965 EE와 같은 제품에서 트리플(3) 채널을 사용했고, 최근에는 옥타(8) 채널을 사용하는 제품들도 있습니다만, 개인용 데스크톱 제품들은 여전히 듀얼(2) 채널에 머무르고 있습니다.


    랭크는 채널 바로 아래 개념 정도로 생각해도 무방합니다. 내부적으로는 독립된 구조이지만, 최종적으로 CPU에 있는 메모리 컨트롤러와 데이터를 주고받는데 있어 하나의 채널을 공유하는 구조입니다. 그래서 랭크가 늘어난다고 해서 명목상 대역폭이 바뀌지는 않습니다. 다만 위에서 뱅크 그룹을 설명한 내용을 이해하신 분이라면, 서로 다른 랭크는 독립적인 구조인 만큼 매번 서로 다른 랭크를 사용한다면 DRAM 활용률과 성능을 올릴 수 있다는 사실을 짐작할 수 있겠지요. 그러나, 랭크 수를 늘리는 방식은 비용 대비 성능 향상이 매우 적고, 쿼드 랭크만 되어도 성능 향상보다 나눠놓은 랭크를 따로 제어하기 위한 비용 증가가 커져서 실제 성능이 오히려 떨어지는 문제도 생길 수 있기 때문에 잘 사용하지 않습니다. 그 때문에 우리가 일반적으로 접할 수 있는 데스크톱용 메모리 모듈들은 가능하면 싱글 랭크로 만들고, 그게 힘든 고용량 양면 메모리에서 듀얼 랭크를 사용합니다.

    간단히 말해, 칩의 개수를 늘려 용량을 늘릴 때 랭크 수를 늘립니다. 하나의 랭크 내에서는 각 구성에 따라 칩 개수가 결정되어 맘대로 바꿀 수 없기 때문입니다.




퀘이사존
▲ 도해 출처: "Ryzen에서 화제가 되었던 메모리 랭크란 무엇인가?" PC Watch(바로 가기)


    PC Watch의 17년 기사는 2 GB(256 MB x8칩) 구성으로 4 GB 양면 메모리 모듈을 만드는 예시를 보여줍니다. 256 MB 8칩의 랭크를 2개 사용하여 총 256 MB x16칩, 2랭크(2Rx8), 4 GB 구성이 됩니다.




퀘이사존

▲ 클릭하면 커집니다(원본 크기로 보실 수 있습니다).


    랭크와 채널 구조를 전에 봤던 systemverilog.io의 DDR4 구조 도해를 이용해 조악하지만, 간단히 보여드린다면 바로 위와 같습니다. 듀얼 채널, 듀얼 랭크(총 4랭크) 구조입니다.


 


퀘이사존

▲ 출처: 유튜브 Linus Tech Tips


    단면/양면은 더 간단한 개념입니다. 소위 말하는 '물리적'으로 기판의 한쪽에만 메모리 칩을 탑재했는지, 양면 모두에 탑재했는지의 차이일 뿐입니다. 그래서 같은 구성의 메모리라도 데스크톱용 제품은 단면이지만, 기판 길이가 짧은 노트북용 제품은 양면인 경우도 있습니다. 그리고 이 차이를 보여줄 땐 메모리 뒷면을 나란히 보여주는 방식을 사용합니다. 한쪽은 메모리 칩이 있고 다른 쪽은 텅 빈 기판만 있는 모습이 직관적이니깐요. 그러나, 이 차이 자체가 무슨 의미를 가지는 것은 아닙니다. 메모리를 제조할 때나 메모리 방열판을 장착할 때는 중요하겠지만요.




퀘이사존


    지금까지 1Rx16 구성, 정확히는 뱅크 그룹 수가 왜 성능에 영향을 줄 수 있는지 이론적 구조 차원에서 알아보았습니다. 그렇다면 내가 구매하고 사용하는 제품이 실제로 어떤 구성인지 확인하고 싶겠죠. 일부 제품은 제품 표면의 정보 스티커에 명시하고 있습니다. 주로 삼성이나 하이닉스에서 직접 모듈까지 제조한 제품들이 이에 해당합니다.


 


퀘이사존

▲ 출처: MSI GF시리즈 Sword GF76 A11UD(제품 칼럼 바로 가기)

퀘이사존

▲ 출처: HP OMEN 15(제품 칼럼 바로 가기)


    반면 그 외의 제품들은 해당 정보를 직접 노출하는 경우가 거의 없습니다. 그래서 Thaiphoon Burner나 HWiNFO같이 메모리 정보를 확인할 수 있는 프로그램을 사용해야 합니다.


Thaiphoon Burner 공식 다운로드 페이지 바로 가기

HWiNFO 공식 다운로드 페이지 바로 가기


    실제 해당 프로그램들로 정보를 볼 때 어떻게 보일지 확인하기 위해, 테스트에 사용한 듀얼 랭크(2Rx8) 메모리인 ESSENCORE KLEVV U-DIMM DDR4-3200 CL22 32GB를 통해 확인보도록 하겠습니다.


 


퀘이사존

▲ 클릭하면 커집니다(원본 크기로 보실 수 있습니다).
에센코어 제공: ESSENCORE KLEVV U-DIMM DDR4-3200 CL22 32GB(기사 링크)




 퀘이사존

 

    Thaiphoon Burner에서는 Read 버튼을 통해 메모리 정보를 읽어 들이면 됩니다. Read에서 선택지가 2개 뜨는 건 메모리 모듈이 2개이기 때문입니다. 보통 듀얼 채널을 위해 한 쌍의 같은 메모리를 장착하였을 테니 어느 쪽을 선택해도 모듈 일련번호(Module Serial Number)만 다르고 나머지는 같은 정보를 볼 수 있습니다.


    뱅크 그룹 개수를 직접 보고 싶으면 옆의 Report 버튼을 사용하면 됩니다.


 


퀘이사존

 

    DDR4의 최대 구성이자 0Rx8 메모리의 일반적인 구성인 4뱅크 그룹(그룹당 4뱅크, 총 16뱅크) 구성을 가지고 있습니다.


 


퀘이사존


    HWiNFO는 메인 화면에서 메모리 정보를 볼 수 있으며, 랭크와 뱅크 그룹 수를 보여주는 방식입니다. 메인 화면에서 확인해야 하니 Sensors-only를 사용하시는 분들은 잠시 해제하고 메인 화면을 띄워야 확인할 수 있습니다.


    랭크 설명에서 말씀드린 것처럼, 모듈 하나에 32 GB의 고용량 구성을 맞추기 위해 듀얼(2) 랭크 구조로 되어 있습니다.


 


퀘이사존


    위에서 뱅그 그룹 수와 그 확인 방법에 대해 설명해 드렸지만, 사실 이게 처음에 문제 삼은 1Rx16 구성과 무슨 관계인지는 명확하지 않습니다. 이에 대한 답은 메모리 용량에 있습니다. Linus Tech Tips 영상에서 처음 메모리를 비교할 때 얼핏 보면 같은 용량 같은 제품인 것처럼 보인다고 하다가, 뒷면을 보여주면서 한쪽은 8개의 칩을 쓴 양면 메모리인 데 반해 다른 한쪽은 4개의 칩을 쓴 단면 메모리라는 점을 보여줍니다. 단면/양면 자체는 중요하지 않지만, 기판 길이가 짧은 노트북용 메모리인데도 단면만 쓸 정도로 칩 개수를 적게 사용한 점이 문제라는 얘기입니다. 게다가 칩 개수가 절반인데도 용량이 같다는 걸 생각하면 칩 하나당 용량은 2배라는 점도 알 수 있습니다. 문제가 된 1Rx16의 x16도 그 자체는 메모리 용량을 의미할 뿐입니다. 정확히는 메모리 뱅크 구성의 세로 열인 column을 8비트 구조 대신 16비트 구조를 채택하여 뱅크 하나당 용량이 2배라는 뜻입니다. 뱅크 하나당 용량이 2배니깐 다른 구조를 같이 맞추면 총용량도 2배가 됩니다. 반면 메모리 칩 개수를 줄여서 같은 용량을 맞추는 것도 한 방법일 수 있습니다.(정확히는 데이터 버스 구조상 칩 개수를 줄여야만 합니다만, 주제가 아닌 부분에서 말이 지나치게 복잡해지는 걸 피하고자 해당 원리를 설명하지 않았기 때문에 여기서도 자세한 얘기는 생략합니다.) DDR4 구조상 저렇게 칩 개수를 줄이면 뱅크 그룹 수도 절반으로 줄어든다는 점만 빼면 말이죠.




퀘이사존

▲ 클릭하면 커집니다(원본 크기로 보실 수 있습니다).

    데스크톱용 메모리 모듈의 모습으로 비교해보면 그 의미를 분명히 볼 수 있습니다. 같은 8 GB 단면 메모리이지만 1Rx16쪽이 칩의 개수가 절반밖에 안 됩니다.


 


퀘이사존


    Thaiphoon Burner 정보를 봐도 1Rx16 메모리 모듈은 뱅크 그룹이 2개밖에 없음을 확인할 수 있습니다.

    대체 왜 이런 구성을 사용할까요? 정확한 정답은 해당 제품을 설계한 담당자가 직접 밝히지 않는 한 알기 어렵겠죠. 하지만, 다시 한번 용량을 생각해본다면 짐작할 수는 있습니다. 칩 하나당 용량은 2배인데 노트북 전체로 본다면 같은 메모리 용량입니다. 결국 기술의 발전으로 메모리 용량이 2배인 칩을 제조하고 있지만, 같은 칩 개수로 2배의 총용량을 제공할 매력은 떨어지는 상황이 문제의 원인이라 할 수 있겠습니다. 일례로 고사양 게임용 데스크톱 견적을 생각해 봅시다. 8 GB로는 부족하다고 여겨진 지 시간이 좀 지났지만, 당장 32 GB가 꼭 필요하다고 생각하는 비율은 높지 않습니다. 이런 상황에서 기존 8 GBx2 제품을 생각하고 있는 구매자에게 2배 용량의 16 GBx2 제품을 제안한다고 해서 매력적으로 받아들일 비율은 높지 않습니다. 물론 16 GBx2 제품 자체의 의미를 부정하는 것은 아닙니다만, 기존 8 GBx2 제품을 무작정 대체할 수는 없는 상황이라는 이야기입니다. 기술이 발전한 만큼 가격이라도 다 같이 싸면 절대적인 가격 부담도 줄어드니 괜찮을지 모르겠습니다만, 현재는 코로나19 사태로 대부분의 물품이 정도의 차이만 있을 뿐 공급 대란의 영향을 받고 있습니다. 그런데도 당장 필요하지 않은 2배의 메모리 용량을 위해 안 그래도 비싸진 제품을 더 비싸게 사고자 하는 소비자는 많지 않을 것입니다.


    그래서 노트북, 특히 가성비나 휴대성이 절대적인 게임 성능보다 중요한 제품군에서는 1Rx16 구성 메모리 사용이 충분히 합리적일 수 있습니다. 현재 퀘이사존의 제품 칼럼에서 메모리 제품의 구성 정보와 노트북의 부품별 사진을 노출하고 있어 메모리 구성을 알 수 있습니다.(노트북은 삼성과 하이닉스 메모리 등 랭크와 column 구성이 제품 표면에 노출된 제품에 한정) 확인 가능한 제품 중 1Rx16 메모리를 사용한 제품은 최근에 출시한 가성비형 노트북이 대부분이었으며, Linus Tech Tips 영상에서 비유로 언급한 RTX 3070, 3080 같은 고사양 GPU를 탑재한 제품은 없었습니다. 이러한 제품에선 노트북 전체의 가격과 휴대성을 고려한 성능이 중요하지, 메모리 같은 개별 부품의 성능을 최고로 높이는 게 중요하지는 않습니다. 특히 가성비 위주로 본다면 MSI GF시리즈 Sword GF66 A11UC 같은 제품이 그 좋은 사례라고 할 수 있습니다.


"MSI GF시리즈 Sword GF66 A11UC" 칼럼 바로 가기


    반면 Linus Tech Tips 영상(바로 가기)에서 문제 삼은 제품은 RX 6800M을 탑재한 비싼 고성능 게이밍 제품이기 때문에 제목에서부터 혹독한 평가를 한 것입니다. 대조군으로 사용한 경쟁사의 RTX 3080 탑재 노트북과의 비교에서도, 같은 조건에서는 게임에 따라 엎치락뒤치락하는 모습을 보였지만, 제품 기본 구성 기준으로는 대부분 게임에서 유의미한 성능 차이로 뒤떨어지는 모습을 보입니다. 이에 대해 제조사 측에서 응답으로 내놓은 기사Articles에서는 1Rx8 모듈의 공급 부족을 원인으로 지목하면서, 해당 모델은 처음부터 1Rx16 메모리 구성으로 출시하였기 때문에 Linus Tech Tips 영상에서 우려하는 부품 바꿔치기에 해당할 수 없다는 점을 강조합니다. 또한, 평균 성능 차이는 5%에 가깝다("but the actual performance difference is closer to 5% on average")고 주장합니다만, 해당 기사에서도 일부 게임은 10% 넘는 평균 프레임 차이를 확인할 수 있습니다.


 

 

퀘이사존

▲ 클릭하면 커집니다(원본 크기로 보실 수 있습니다).

출처: RAM chips are changing. Here's how 2021 ROG laptops are affected(바로 가기)

 

    그럼 정말로 이 메모리 뱅크 그룹 차이로 게임 성능이 10% 넘게 떨어질 수 있는지 확인해 보도록 합시다.


 


퀘이사존

퀘이사존




후원사 협찬

퀘이사존

▲ 클릭하면 커집니다(원본 크기로 보실 수 있습니다).
에센코어 제공: ESSENCORE KLEVV U-DIMM DDR4-3200 CL22 32GB(기사 링크)


    듀얼 랭크 구성(2Rx8)의 성능을 보기 위해 에센코어의 DDR4-3200 CL22 32 GB x2개(총 64 GB)를 사용하였습니다. 앞서 말씀드렸듯이, 메모리의 듀얼 랭크 구성은 고용량 양면 메모리에서 주로 채택하기 때문에 다른 구성과 정확히 같은 용량을 맞춰 구하기 힘듭니다. 그러나, 변인 통제를 위한 벤치마크용 시스템에서 성능 측정을 할 게임 하나와 성능 측정 도구 하나만을 구동한 상태에서 측정하기 때문에, 다른 구성의 8 GB x2개(총 16 GB)에 비해 메모리 용량으로 인한 영향은 거의 없을 것입니다.


 


퀘이사존

▲ 클릭하면 커집니다(원본 크기로 보실 수 있습니다).
기가바이트 제공: GIGABYTE AORUS GeForce RTX 3080 Ti XTREME 12G(기사 링크)


    그래픽카드의 성능 제약으로 인한 변수를 최대한 배제하고 메모리 성능의 비교 결과를 보기 위해, RTX 3080 Ti 중에서도 상급 그래픽카드로 인지도 높은 제품인 GIGABYTE사의 AORUS XTREME(통칭 '어익')을 사용하였습니다. 듀얼 바이오스는 OC Mode를 사용하였습니다.



#1. 레인보우 식스 시즈 | Tom Clancy's Rainbow Six Siege


퀘이사존

 

    레인보우 식스 시즈의 결과는 전반적으로 성능 차이가 작습니다. 물론 여기서도 1Rx16 구성은 5프레임 정도 성능이 떨어지는 반면, 2Rx8 구성은 (1Rx8 대비) 10프레임 정도 성능이 올라서 1Rx16과 비교하면 15프레임 정도 더 높은 성능을 보입니다.


     가장 성능 차이가 크게 나는 비교(1Rx16 vs 2Rx8의 1% 하위 프레임)에서 낮은 쪽(1Rx16의 1% 하위 프레임)을 100% 기준으로 하면, 472.3프레임에서 488.3프레임으로 상승하였기에 3.4%(16.0프레임) 정도 향상된 셈입니다.




퀘이사존


    1Rx8 구성의 1% 하위 프레임 결과를 100% 기준으로 한 상대 성능을 보면, 각 구성에 따라 1~2% 정도의 성능 차이가 남을 알 수 있습니다. 가장 성능이 떨어지는 1Rx16의 결과를 가장 성능이 높은 2Rx8의 결과와 비교하면 대략 3% 정도의 성능 차이가 납니다.




퀘이사존

 

    1Rx8 구성의 평균 프레임 결과를 100% 기준으로 한 상대 성능을 봐도 비슷한 결과입니다만, 평균 프레임은 차이가 좀 더 적어서 각 구성에 따라 1~1.4%의 성능 차이가 남을 알 수 있습니다. 가장 성능이 떨어지는 1Rx16의 결과를 가장 성능이 높은 2Rx8의 결과와 비교하면 대략 3% 정도의 성능 차이가 납니다.




#2. 사이버펑크 2077 | Cyberpunk 2077


퀘이사존


    사이버펑크 2077에서는 성능 차이가 나는 편입니다. 1Rx16 구성은 평균 15프레임 정도 성능이 떨어지는 반면, 2Rx8 구성은 (1Rx8 대비) 6프레임 정도 성능이 올라서 1Rx16과 비교하면 대략 20프레임 더 높은 성능을 보입니다.


     가장 성능 차이가 크게 나는 비교(1Rx16 vs 2Rx8의 1% 하위 프레임)에서 낮은 쪽(1Rx16의 1% 하위 프레임)을 100% 기준으로 하면, 65.8프레임에서 84.2프레임으로 상승하였기에 28.0%(18.4프레임) 정도 향상된 셈입니다.




퀘이사존

 

    1Rx8 구성의 1% 하위 프레임 결과를 100% 기준으로 한 상대 성능을 보면, 각 구성에 따라 12% 정도의 성능 차이가 남을 알 수 있습니다. 가장 성능이 떨어지는 1Rx16의 결과를 가장 성능이 높은 2Rx8의 결과와 비교하면 대략 25%P 정도의 성능 차이가 납니다.




퀘이사존

 

    1Rx8 구성의 평균 프레임 결과를 100% 기준으로 한 상대 성능을 봐도 비슷한 결과입니다만, 1Rx16은 성능이 조금 더 떨어져서 13% 차이가 납니다. 반면 2Rx8의 성능 향상은 5%대에 그칩니다. 가장 성능이 떨어지는 1Rx16의 결과를 가장 성능이 높은 2Rx8의 결과와 비교하면 대략 18%P 정도의 성능 차이가 납니다.




#3. 배틀그라운드 | PUBG


퀘이사존

 

    배틀그라운드에서도 성능 차이가 나는 편입니다. 1Rx16 구성은 평균 10여 프레임 정도 성능이 떨어집니다. 반면, 2Rx8 구성은 (1Rx8 대비) 성능 향상이 거의 없이 1% 하위 프레임이 0.7 오르는 데 그쳤으며, 평균 프레임은 오히려 소폭 떨어지는 모습을 보입니다.


     가장 성능 차이가 크게 나는 비교(1Rx16 vs 2Rx8의 1% 하위 프레임)에서 낮은 쪽(1Rx16의 1% 하위 프레임)을 100% 기준으로 하면, 62.8프레임에서 76.4프레임으로 상승하였기에 21.7%(13.6프레임) 정도 향상된 셈입니다.


 


퀘이사존

 

    1Rx8 구성의 1% 하위 프레임 결과를 100% 기준으로 한 상대 성능을 보면, 1Rx16에서 17%가량 성능이 떨어지는 모습을 볼 수 있습니다. 반면 2Rx8의 성능 향상은 0.9%에 불과합니다.




퀘이사존

 

    1Rx8 구성의 평균 프레임 결과를 100% 기준으로 한 상대 성능을 봐도 비슷한 결과입니다. 1Rx16은 성능이 11% 가까이 떨어지는 결과입니다. 다만 2Rx8은 앞서 말씀드린 것처럼 성능 향상은 없고 오히려 소폭 떨어지는 결과입니다.




퀘이사존


■ 게임에 따라 성능 차이가 크게 날 수 있습니다

    성능 테스트에서 본 바와 같이, 일반적인 1Rx8 구성과 비교할 때 1Rx16 구성은 성능 저하를 보일 수 있습니다. 1Rx16 메모리 칩의 구조상 같은 랭크에서 메모리 칩 개수를 절반으로 줄이게 되고, 그만큼 총 뱅크 수와 뱅크 그룹 수도 절반으로 줄어들게 됩니다. 실제 데이터를 기억하고 있는 DRAM Cell은 그다지 빨라지지 않았음에도 DDR3 대비 DDR4가 성능을 끌어올린 원리가 명목상 최고 전송 속도(MT/s)를 끌어올리고 그에 비해 상대적으로 더 느려진 내부 지연 시간을 숨기는 것입니다. 이를 위해 뱅크 그룹들을 나누고 가능한 한 매번 서로 다른 뱅크 그룹에 접근합니다. 그런데, 뱅크 그룹의 수가 절반으로 줄어들면 같은 뱅크 그룹을 연속으로 사용하느라 숨길 수 없는 지연 시간이 늘어날 수 있습니다. 이렇게 메모리 내부에서 각종 지연 시간을 기다리는 구간이 늘어날수록 DRAM 활용률(DRAM utilization)은 떨어지게 됩니다. DRAM 활용률(DRAM utilization)이 낮으면 명목상의 최대 전송 속도(MT/s)만 높을 뿐 실제로는 내부 처리를 기다리느라 노는 구간이 많다는 얘기입니다. 이는 작업이나 게임에 따라 달라서, 레인보우 식스 시즈에서는 1% 정도였지만, 사이버펑크 2077에서는 최대 13%가량, 배틀그라운드에서는 최대 17%가량 성능이 떨어지는 결과를 확인하였습니다.


■ 가장 큰 문제는 구매 정보에서 알 수 없는 점입니다

    여기서 가장 큰 문제는 일반적인 구매 정보에서는 메모리의 뱅크 그룹 수를 확인할 수 없다는 점입니다. 1Rx16에서 뱅크 그룹 수를 절반으로 줄인 구성으로 인한 성능 저하는 작업마다, 게임마다 다를 수 있어서 누군가에게는 착한 원가 절감일 수 있습니다. 반면 기껏 비싼 고성능 그래픽카드 위주의 시스템을 장만했는데, 메모리 때문에 자신이 주로 즐기는 게임에서 10% 넘게 성능이 떨어지는 걸 반길 소비자는 없을 터입니다. 중요한 건 소비자가 필요한 정보를 확인하고 자신에게 필요한 제품을 선택할 수 있어야 한다는 얘기입니다.


■ DDR5에서 더 복잡해질 것으로 예상됩니다

    DDR5는 뱅크 그룹 수를 2배로 늘린 대신, 그룹당 뱅크 수를 절반으로 줄일 수 있어 총 4가지('뱅크 그룹 구성 2가지'x'그룹당 뱅크 구성 2가지') 구성이 가능합니다. 뱅크 수 역시 성능에 영향을 줄 수 있지만, 뱅크 충돌은 활성화 Row에도 관계가 있고, 뱅크 그룹 수도 간접적으로 관련되어 속단할 수 없습니다. 요점은 경우의 수가 많아져서 더 복잡해졌다는 얘기입니다. 따라서 소비자에게 관련 정보를 확실히 제공할 필요성도 커질 터라 예상할 수 있습니다.

 

 


퀘이사존 저작물은 크리에이티브 커먼즈 저작자표시-비영리-변경금지 4.0 국제 라이선스에 따라 이용할 수 있습니다.​

메모리랭크 메모리뱅크 랭크뱅크개념 뱅크성능차이 랭크성능차이 뱅크그룹수 뱅크그룹개수 뱅크그룹갯수

댓글: 81

신고하기

신고대상


신고사유

투표 참여자 보기