본문 바로가기
메모리 반도체/DRAM

DRAM Refresh 동작 ( Self Refresh, 순서, 방식, Charge Sharing )

by 전컴반 2023. 4. 19.
반응형
DRAM Refresh

 
DRAM은 Dynamic Random Access Memory의 약자이다.
Dynamic의 의미는 DRAM은 정보를 유지하기 위해, 다른 말로는 Leakage로 발생한 전자의 손실 때문에 Refresh라는 동작을 주기적으로 반복하며 빠져나간 전자를 채워줘야 한다. 이 과정에서 저장돼 있는 Data가 채워졌다가, 샜다가 채워졌다가 빠져나갔다가 반복하며 변하기 때문에 Dynamic이라고 부른다.
 
Data가 변한다는 말은 Leakage로 전자들이 새어 나간다는 말인데 예를 들어 '1'이었던 정보가 점점 '0.8', '0.4' 이렇게 변화하는 걸 말한다. Leakage에 대해 더 자세한 내용은 아래 링크를 참조 바란다.
 
2023.04.18 - [내가 하는 공부/DRAM] - DRAM Leakage (Off Leakage, Junction Leakage, DRAM 누설전류, Delpetion)

 

DRAM Leakage (Off Leakage, Junction Leakage, DRAM 누설전류, Delpetion)

DRAM Leakage DRAM은 RAM으로 전원이 없으면 정보가 소실되는 메모리다. 휘발성 (Volatile) 메모리라고도 불린다. 전원이 없어도 데이터를 가지고 있으면 비휘발성 (Non Volatile)이라고 부른다. 하지만 DRAM

wpaud16.tistory.com

 
돌아와서 Refresh에 대해 간단히 말하면, 특정한 주기에 맞춰서 데이터를 유지하기 위해 하는 동작이다.
 


 
조금 더 자세히 보자.
 
특정 주기에 따라 Bank 내에 수많은 WL (Word Line) 중에 하나가 선택된다. 그럼 해당 WL에 달린 모든 Transister (==MOSFTET)의 Gate에 전압이 걸리면서 Channel이 생긴다. 그러면 Capacitor의 전자들이 BL (Bit Line)으로 이동할 수 있게 됐다.
 
Capacitor에 '0'이 저장돼 있을 수도 있고, '1'이 저장돼 있을 수 있다. 여기선 '1'만큼 있다고 하자. 근데 '1'이라고 해서 전자들이 꽉 차있는 게 아니라, Leakage(누설전류)로 인해 '0.9' 이런 식으로 전자들이 탈출해 있는 상태라고 하자.
 
Capacitor에 저장돼 있던 전자들이 Charge Sharing에 의해 Channel을 따라 Bit Line으로 이동한다. 그러면 Bit Line의 전압이 0.5V에서 0.6V정도로 올라가고, Capacitor는 0.9V에서 0.6V로 내려간다.
 

 
그러면 Capacitor에 차 있던 전자들이 BL을 통해서 BLSA (Sense Amp)로 쭉 이동한다. 도착한 전자는 BLSA에서 0.5V인 /BL과 비교 후 증폭되어 '0.6'에서 '1'이 된다. 후에 다시 BL을 타고 Capacitor로 돌아온다. 이렇게 다시 돌아와서 저장하는 걸 재충전 (Restore)이라고 한다. 이 과정을 Refresh라고 한다. 
 

 


 
위 동작을 모든 WL을 돌면서 계속 반복한다. 하나의 WL에 대해 많은 동작을 하니, 전력소모가 상대적으로 꽤 있는 편이다.
 
하지만 DRAM의 어쩔 수 없는 한계라 최대한 전력을 줄이는 방법으로 간다. 하여 미래 반도체는 Capacitor를 사용하지 않는 소자를 찾는 방향이라고 할 수도 있다.
 
온도에 따라 전하의 손실의 속도가 다르니 Refresh 주기를 다르게 해주기도 한다. 예를 들면 온도가 높으면 Leakage가 빨라진다. 그러니 Refresh 주기도 더 빨라져야 하기 때문에 DRAM 내부에서 온도를 체크하며 동작 모드를 변경한다. 반대로 온도가 낮으면 Leakage가 덜 일어나기 때문에 Refresh 주기를 낮춰 전력 소모를 줄여야 한다.
 
보통 WL 하나의 Refresh 주기는 7.8u/s (마이크로/Sec) 정도 한다.
(+ Refresh는 Read / Write보다 우선순위가 높다)
 
PreCharge랑 비슷한 동작을 하는데 RefreshPreCharge - Active - PreCharge의 반복인 동작으로 볼 수 있다.
 
추가적으로

tREF :  특정 Cell을 Refresh하고 다시 돌아올 때까지 걸리는 시간

tREC : Refresh to Command(Cycle) 의 의미로 Refresh 후에 다음 Command가 들어오기까지 지켜줘야 하는 시간
tREFI : Refresh Interval의 의미로 Refresh 평균 시간

 


 
동작을 간단히 정리하면,
 
1. WL 선택
2. BL과 Capacitor에 Channel이 생김
3. Charge Sharing 후 BL을 통해 전자가 BLSA에서 증폭됨
4. 증폭된 전자는 BL을 통해 Capacitor에 재충전됨
 
이렇게 4가지 순서로 동작할 수 있다. 

만약 Active와 Precharge를 알고 있다면 Refresh는 Active + Precharge라고 보면 된다.
 
 

DRAM Self Refresh


-. Refresh에는 여러 종류가 있다. 그중에 하나인 Self Refresh는 DRAM을 많이 사용하지 않을 때, 수행하는 저전력 Refresh라고 볼 수 있다.
 
원래는 CPU(AP)가 Refresh 명령어를 던졌을 때 Refresh 동작을 수행하는데 Self Refresh는 말 그대로 CPU(AP)의 명령어에 따라 동작하는 게 아니라, DRAM 내부에서 스스로 Refresh를 하는 동작이다.

반응형

댓글