티스토리 뷰

카테고리 없음

램(RAM)의 성능

양팡긍 2020. 8. 29. 11:18

RAM 성능

RAM 성능이라 하면 '용량'을 가장 먼저 떠오르지만, 용량에 따른 간접적인 성능일 뿐이지 메모리 자체의 직접적인 성능이 아니다. 메모리 성능의 지표가 되는 요소는 기본적으로 메모리 레이턴시, 메모리 쓰루풋 및 대역폭으로, 동시 멀티스레딩(SMT)를 지원하는 CPU가 등장한 이후에는 메모리 레벨 병렬 처리(MLP)까지 추가되어 총 3가지로 구분한다. 거기에 메모리 엑세스 패턴별과 데이터 타입별로 레이턴시, 쓰리풋, MLP가 달라질 수 있다. 한 가지 측정 값만으로는 종합적으로 파악할 수 없다는 뜻이다. 참고로 메모리 엑세스 패턴은 크게 '순차적', '페이지 내에 랜덤', '전체 랜덤'해서 3가지로 구분한다.

메모리 레이턴시

메모리에 있는 데이터에 대한 요청부터 검색 완료될 때까지의 접근 시간으로 참조 시간, 대기 시간, 지연 시간이라고도 부르며, 데이터 요청 후 실제 데이터 전송이 시작되는데 걸리는 시간이기도 한다. HDD로 따지면 탐색 시간(Seek time)에 대응되는 개념이다. 만약 데이터가 캐시 메모리에 없을 경우 메인 메모리와 직접 통신해야 하므로 데이터를 얻기까지 더 긴 시간이 걸린다. 따라서, 접근 시간이 짧을수록 작업 속도가 짧아진 접근 시간만큼 빨라진다. 일반적으로는 초 단위로 사용하지만, 현재 주류 메모리들이 비동기식 DRAM이 아닌 동기식 DRAM 계열인 특성상 클럭 사이클 단위로도 취급하는 편이다. 주의할 점은 동기식 DRAM이 일정한 클럭 주파수로 동작하면서 데이터를 전송하기 때문에 이에 역수인 클럭 주기도 초 단위인데, 1GHz클럭 속도를 지니는 SDRAM의 주기인 1ns가 같은 초 단위라는 점 때문에 혼동될 수 있다는 것이다. 그래서 보통 레이턴시라고 하면 클럭 주파수의 역수(주기) 개념이 아니라, 참조/지연/대기/접근 시간 개념을 가리킨다고 보면 된다. 오버클럭할 때 거론되는 램 타이밍 또는 메모리 타이밍의 파라미터(매개변수)별로 각각의 메모리 레이턴시들이 존재한다. 램 타이밍들이 짧을수록 성능이 향상되는 것은 맞지만, 빈번한 데이터 요청이라는 특수한 작업이 아닌 일반적인 경우에는 램 타이밍에 따른 메모리 성능영향력은 별로 없다고 봐도 무방하다.

메모리 쓰루풋 및 대역폭

쓰루풋은 단위 시간 동안 메모리의 데이터를 읽기, 쓰기, 저장할 수 있는 처리량, 줄여서 처리율이라고도 부른다. 대역폭과 같은 개념처럼 취급하는 사람들이 많은데 엄밀히 따지면 서로 밀접한 관련이 있지만, 처리량은 하나의 전송 채널에서 처리되는 데이터의 양을 의미하고, 대역폭은 하나가 아닌 여러 개의 전송 채널을 통해 처리되는 데이터의 양을 의미하는 약간 다른 개념이다. 또한, 데이터 전송 작업의 수를 의미하는 전송량과 단위 시간 동안 데이터 전송 작업의 수를 의미하는 전송률과도 같은 개념처럼 취급하는 경우도 있는데 하나의 전송 채널이라는 조건은 똑같지만 전송량과 전송률은 전송 그 자체에만 의미를 두는 개념이고, 처리량은 전송뿐만 아니라 읽기, 쓰기, 저장같은 일련의 작업 과정까지 포함하는 개념이라는 차이점이 있다. 사용자들은 데이터 전송에만 관심을 두는 것이 아니라 데이터 읽기, 쓰기, 저장까지 완료된 상태에 관심이 있기 때문에 전송량 & 전송률보다는 처리량 & 처리율, 처리량 & 처리율보다는 대역폭이 더 현실적인 단위 개념이라고 볼 수 있다. 메인 메모리가 일찍부터 하나의 전송 채널이 아닌 여러 개의 전송 채널 구성으로 발전되어 왔기 때문이다. 일반적으로 바이트/초 단위로 표기하며, 대역폭을 기준으로 '(메모리 클럭 속도) x (메모리 버스 폭) x (메모리 채널 수)'로 계산한다. 제품에 표기된 메모리 대역폭은 이론적인 최대 대역폭으로 실제 대역폭은 표기상 대역폭보다 작게 측정되며, 표기 대역폭에 도달했다 해도 지속적이지 않을 수 있다.

메모리 레벨 병렬 처리 (MLP: Memory-Level Parallelism)

메모리 성능의 기본적인 지표는 아니지만, CPU가 멀티  프로세서 또는 멀티코어 프로세서를 필두로 SMT가 가능해지면서 스레드 개수만큼 메모리에 동시 접근이 가능해졌다. 이에 따라 메모리 동시 처리 능력에 차이가 발생하게 되는데, 절대적인 코어 개수와 스레드 개수에 따른 차이도 있지만 똑같은 코어 개수와 똑같은 스레드 개수라도 CPU 마이크로아키텍처에 따라 성능이 크게 달라질 수 있다.

댓글