SDRAM

기존 제품에 사용하던 SDRAM 이 단종이 되었다. 

새로운 SDRAM을 사용하려는데, CAS 가 다르다. 이게 과연 사용할 수 있는 것일까? 

이를 위해 기초 파라미터를 확인하고 왜 가능한지 확인해 보았다. 

 

 

현재 -7E 모델이 단종이 되고 -6A 모델은 생산을 한단다, 즉 7E 에서 6A 로 바꾸면 Firmware 수정없이 그대로 사용할 수 있는지 확인해야 한다. 

 

이론은 램타이밍의 tRAS, tRP, tRCD, CL, Refresh Time, RFC 를 일단 공부했다. 

 

일단 CL이 몇 Cycle 이 각각의 타이밍 마다 필요한지를 알아야 한다.

- 현재 SDRAM 에 동작하는 속도는 48MHz 이다.

- CL이 18ns 이고 Clock 이 48 MHz 이면 CL 의 소요cycle 은 18ns/(1/48MHz) = 0.864 cycle

(1 cycle 안에 끝나는 것이다. )

- CL이 20ns 이고 Clock 이 48 MHz 이면 CL의 소요 cycle 은 20ns/(1/48MHz) = 0.96 cycle

( 역시 1 cycle 안에 끝난다. )

--> 결론은 CAS 가 1 이상이면 모두 OK 이다. 

 

이와 같은 계산법으로 풀어보면 아래와 같은 표를 얻었다. 

Model

6A SDRAM Parameter

 (Cycle)

SDRAM

Parameters

CAS

RAS 

RAS          

RCD          

RP            

WR           

REFW        

ARFI          

ARFC         

PRC           

1

1

2

1

1

1

3

3

2

3

--> 즉, Cycle 이 표보다 더 여유롭게 책정 되어 있다면 software 수정없이 사용해도 됨 

 

 

 

첨부 : 

일단 Study 를 해보면 아래와 같다. 출처는 남기고 퍼옴 (혹시 문제되면 삭제 하겠습니다. ) 

 

 

1. 램타이밍 항목 : Command Rate, tRAS, tRP, tRCD, CL

메모리는 메모리 컨트롤러로부터 명령을 받아 읽기/쓰기를 수행합니다. 한편 메모리 칩을 구성하는 셀은 마치 스프레드시트처럼 (Raw) (Column) 구성되어 있습니다. 메모리컨트롤러가 무언가를 읽거나 쓰기 위해 셀에 접근하려면, 주소를 찾아낸 그행 안에서 주소를 찾아 최종적으로 목적지인 셀에 도착하게 됩니다. 과정을 도식화하면 아래와 같습니다.

 

Row Address Strobe Time : 줄여서 tRAS. 셀에 액세스되는 동안 셀이 속한 행은 반드시 액티브 상태로 유지되어야 하는데, 이를 위해 (액세스 ) 미리 Precharge 행이 액티브 상태를 유지해야만 하는 최소한의 시간을 규정한 것입니다. 다시 말해 Precharge   Precharge 사이의 주기를 규정한 값이고, 재차 다시 말하자면 시간 이내에 액세스가 끝날 있도록 나머지 타이밍 값이 설정되어 있어야 합니다. 따라서 보통 CL + tRCD + tRP 합보다 넉넉히 크게 주어지고, CL + tRCD + tRP 조화를 이룰 경우 성능에 미치는 영향이 드러나지 않으나 지나치게 크면 성능이 떨어집니다. CR 마찬가지로 사이클 단위로 매겨집니다.

 

RAS Precharge Time : 줄여서 tRP 불리는 값입니다. 앞서 tRAS 값을 주기로 하여 Precharge (Row Address Strobe Precharge) 수행된다고 했는데 소요시간을 의미합니다. 역시 사이클 단위로 표기되며 작을수록 성능이 좋습니다.

 

Row Address to Column Address Delay Time : 줄여서 tRCD 불리는 값입니다. 위에서 그림으로 설명할 당시 메모리컨트롤러는 셀을 액세스하기 위해 주소를 찾고, 주소를 찾는다고 했었죠. 여기에 소요되는 딜레이를 의미합니다. 역시 사이클 단위로 표기되며 작을수록 성능이 좋습니다.

 

Column Access Strobe Latency : 줄여서 CAS Latency, 더욱 줄여 "CL"이라 부르는 값으로 내에서 열부터 마지막 열까지를 액세스하는 소요되는 시간을 의미합니다. 역시 사이클 단위로 표기되며 작을수록 성능이 좋습니다. CR 함께 성능에 영향을 크게 미치는 항목 하나입니다. 아래 표는 시중에서 흔히 구할 있는 DDR3/4 규격별 클럭/CL 조합에 따른 CL 시간값을 나타낸 것입니다. 같은 색으로 칠해진 것들을 비교해 보면 높은 클릭_더느슨한 CL값을 갖는 제품이 낮은 클럭+타이트한 CL값을 갖는 것보다 CL 시간값 자체는 오히려 타이트하기도 하다는 점을 보여주고 있습니다.

 

 

 

2. 램타이밍 항목 : Refresh Time, tRFC

 

 

위 그림을 말로 풀어 설명하면 메모리컨트롤러가 셀 액세스 명령을 발행하고 / 행 주소를 찾고 / 열 주소를 찾아서 / 해당 셀을 액세스하는 일련의 과정입니다. 보통 램 타이밍을 대표하는 항목은 위에서 살펴본 것의 역순인 CL-tRCD-tRP-tRAS-CR 순으로 나타내어 지는 경우가 많습니다. 예컨대 CL9-10-10-27-1T 따위로 나타내어지는 양식은 그러한 순서를 반영한 것입니다.

 

전체 작동 시나리오를 통틀어 보면 어쨌든 CL이 등장하는 횟수가 가장 많습니다. 버스트 모드에서마저 CL은 꼬박꼬박 사용되기 때문이죠. 반면 tRCD는 한 행 안에서 액세스될 때에는 생략 가능하고, tRP는 행이 다르더라도 페이지가 같으면 재차 생략 가능합니다. 따라서 CL에 의한 영향이 가장 크고, tRCD와 tRP가 차례로 그 뒤를 이음을 알 수 있습니다. 먼저 지적한 바 있듯 tRAS는 직접 성능에 관여하지는 않습니다. 따라서 메모리 스펙표에 CL-tRCD-tRP-tRAS 순으로 표기되는 것은 성능에 가장 영향을 많이 주는 것 순으로 나열한 합리적인 표기 순서라 할 수 있겠습니다.

 

 

 

3. 램타이밍 항목 : Refresh Time, tRFC

 

 

JEDEC이 규정한 바에 따르면 메모리 셀은 적어도 수십~수백 ms에 한번씩은 덧쓰기를 수행해 주어야만 합니다. 하지만 메모리를 구성하는 수십억개의 셀 (메모리의 용량을 비트로 환산하면 그대로 셀의 갯수입니다) 을 단번에 충전하는 것은 엄청난 전력 소비를 동반하는데다 인터페이스 자체에도 무리를 줍니다. 따라서 SDRAM은 '페이지'를 한 단위로 하여, 보다 짧은 주기 (μs, ns 단위) 로 개별 페이지를 순회하며 덧쓰는 정책을 사용하고 있습니다.

 

램타이밍 항목 중 Refresh Time 또는 tREF라는 이름을 가진 것은 바로 이 주기 (개별 페이지를 순회하며 덧쓰는 주기) 를 정하는 변수입니다. 덧쓰는 주기가 짧을수록 데이터 안정성은 올라가지만 (=자주 덧써 주므로) 작동속도가 느려집니다. (=자주 덧써야 하므로) 다른 램타이밍 항목이 소요되는 클럭사이클 갯수를 단위로 삼은 것과 달리 이 값은 직접 시간값을 단위로 사용한다는 점, 그리고 값이 작을수록 성능이 떨어진다는 점을 기억하시기 바랍니다. 여타의 램타이밍 항목들과는 반대되는 성질이죠.

 

만약 셀의 충전주기 상한이 64ms이고 메모리 모듈 내에 존재하는 총 페이지 수가 16,384개라면 64(ms) ÷ 16,384 = 0.0039(ms), 즉 매 3.9μs마다 페이지를 순회하며 덧쓰기를 수행해야 합니다. 실제로 대부분의 메인보드는 3.9μs의 배수가 되게끔 tREF를 설정할 수 있도록 옵션을 제공하고 있습니다. 바이오스 표기상 ms로 나타나는 경우가 더러 있는데, 밀리초가 아니라 마이크로초 단위라는 점 유념해야겠습니다.

 

 

tREF는 보통 직접 시간값으로 나타내어지므로, 다른 램타이밍 항목값이나 메모리의 유효클럭이 어떻게 설정되든 관계없이 절대적으로 적용되는 일종의 '쿨타임' 주기에 비유할 수 있습니다. 쿨타임이 자주 돌아올수록 작업 수행이 중단되니 성능이 저하되는 것이 당연하고, 쿨타임의 지속시간은 tRFC 만큼입니다. 메모리가 정상적으로 작동되는 시간은 이 쿨타임을 제외한 나머지 시간 동안입니다.

 

Reference :

https://udteam.tistory.com/808

+ Recent posts