최근 반도체 공정 개선과 칩 내 코어 수의 증가로 인해 칩 내 캐시의 크기 또한 크게 증가하고 있는 추세다. 이를 위해 기존에 사용되던 SRAM보다 집적도 및 에너지 측면에서 효율적인 임베디드 D램(eDRAM), 스핀 전달 토크 램(STT-RAM), 저항 변화 램(RRAM), 상변화 램(PCM), 자화벽 램(domain wall RAM, DWM) 등의 최신 비휘발성 메모리(Non-volatile memory, NVM) 기술들을 활용하여 캐시 시스템을 구성하고자 하는 연구가 활발히 이루어지고 있다.

본 글에서는 각 메모리 기술들을 살펴보고, 이를 활용한 캐시 최적화 기술들이 어떤 목적으로 어떻게 각 기술의 특징을 활용하였는지 분류하여 정리한다. 이를 통하여 최신 비휘발성 메모리 기술의 동향과 이를 활용함에 있어 빈번히 사용되는 핵심 최적화 기법들을 습득한다.

 

1. 개요

최근 컴퓨터 시스템 전반에 걸쳐 에너지 측면에서 다양한 시도가 이루어짐에 따라 메모리 시스템 디자인도 이에 맞추어 여러 가지 기술적 접근들이 고려되고 있다. 특히 반도체 공정 향상으로 인해 하나의 칩 내에 많은 수의 코어가 동작하게 되었고, 이들에게 효과적으로 데이터를 제공하기 위해 칩 내 캐시의 크기도 빠르게 증가하고 있다. 

전통적으로 이 역할은 S램이 담당하였는데, S램의 낮은 집적도와 큰 전력 누수율로 인해 캐시가 칩 내 공간과 소비 전력의 많은 부분을 차지하고 있어 이를 대체하기 위한 수단으로 eDRAM, STT-RAM, RRAM, PCM, DWM 등의 최신 메모리 기술을 활용한 다양한 방법들이 제시되어왔다.

이들은 적은 운용 에너지와 높은 집적도를 통해 S램의 제약을 극복할 수 있고, 또한 양산 수준에서 실적용 가능할 만큼 발전이 이루어졌다. 하지만 이들이 모든 측면에서 S램 대비 우수한 것은 아니기 때문에, 이를 어떻게 효율적으로 컴퓨터 구조 수준에서 적용할지가 큰 연구 과제였다. 

이러한 관점에서 본 논문은 eDRAM 및 네 가지 NVM 기술(STT-RAM, ReRAM, PRAM, DWM)을 포함하는 최신 메모리 기술들을 칩 내 캐시에 활용하기 위한 접근 방법들을 분석하고자 한다. 이에 각 메모리 기술들별로 간략한 배경 지식과 물리적 특성들을 살펴보고, 각 기술들의 비교 분석을 위해 각 기술을 사용 환경, 캐시 구조상 적합한 위치, 최적화 방향과 근본적인 접근 방법에 따라 분류하고, 각 기술에서 공통적으로 사용하는 방법들에 대해서도 다룬다.  

 

2. 최신 메모리 기술 분석

2.1. 임베디드 D램(eDRAM)
임베디드 D램은 전하를 저장하는 축전기의 원리를 활용한 기술로, 프로세서와 같은 다이(die)에 통합되어 생산이 가능하다. 축전기에 저장된 전하는 시간이 지남에 따라 새어 나가기 때문에 일정 간격마다 리프레시를 해야 하는데, 전통적인 D램과 달리 eDRAM은 논리 트랜지스터를 바탕으로 만들어져 있어 D램보다 훨씬 자주, 약 3~5 나노초마다 리프레시를 해주어야 한다. 또한 주변 온도, 공정 미세화 등으로 인해 더욱 잦은 리프레시 주기를 필요하게 됨에 따라 확장성 측면에서 약점을 보인다.   

 

2.2. STT-RAM
STT램은 산화막으로 분리된 두 강자성체 층으로 이루어진 자기 터널 접합(magnetic tunnel junction)을 활용하는데 두 강자성체가 가지고 있는 자기장의 상대적인 방향에 따라 서로 다른 값을 가지게 하여 데이터를 저장한다.

STT램은 PCM이나 RRAM 대비 집적도도 낮고 쓰기 지연 및 에너지 소비가 S램보다 크지만, 월등한 기대 내구도로 인해 캐시 디자인에 널리 활용된다. 또한 비휘발성 정도와 쓰기 속도가 상보적이기 때문에, 원하는 캐시 디자인의 특성에 맞춰 적절한 값을 선택해 사용할 수 있는 장점이 있다. 

 

2.3. RRAM
R램은 절연 유전체(insulating dielectric)를 통해 형성되는 저항체의 가변 저항 값을 이용하여 데이터를 저장한다. R램은 S램 대비 높은 집적도, 적당한 읽기 속도, 그리고 훨씬 적은 전력 누수율 등의 장점을 보이지만, 약 1011정도의 낮은 내구도와 쓰기 시 발생하는 지연 및 에너지 소모가 단점이다. 

 

2.4. PCM
PCM은 결정의 상태에 따라 서로 다른 저항값을 보이는 GST라는 상변화 재료를 이용하여 데이터를 저장한다. PCM을 캐시에 사용할 때 가장 고려해야 할 사항은 28 정도밖에 되지 않는 낮은 내구도와 긴 쓰기 지연이다. 따라서 PCM은 주메모리나 L3, L4 등의 하위 캐시 계층에 더 적합하다고 알려져 있다. 

 

2.5. DWM
강자성체 나노선은 자화벽으로 구분된 일정 간격의 여러 영역으로 구분될 수 있고 각 영역은 서로 다른 값을 가질 수 있다. DWM은 이 자화벽을 제어함으로써 나노선 내의 값들을 마치 자기테이프처럼 좌우로 옮겨가면서(시프트) 하나의 메모리 셀에 여러 값을 저장할 수 있다. 따라서 셀 내의 상대적인 위치에 따라 달라지는 접근 속도를 고려하여 제어하는 것이 주요한 연구 과제이다.

 

2.6. NVM의 공통적인 특성
전하 기반으로 동작하는 DRAM과 달리 NVM은 메모리 셀의 물리적인 상태에 기반하여 데이터를 저장한다. 따라서 상태를 바꾸는 쓰기가 읽기보다 시간 및 에너지를 많이 소모하며(읽기/쓰기 비대칭성), 쓰기 또한 저장하는 값에 따라 서로 다른 지연 속도 및 에너지 소비를 보여준다(0/1 쓰기 비대칭성). 또한 NVM은 한 셀에 한 값 이상을 저장할 수 있으며 이는 저장 장치 집적도 측면에서 큰 기여를 한다. 

 

3. 빈번히 활용되는 접근법 분류

시간 지역성 활용: 예전에는 자주 사용되었지만 최근에는 사용되지 않는 데이터가 캐시에 상주하여 발생하는 캐시 효율 감소 및 에너지 누수 문제 해결에 집중. 
캐시 계층의 특성 활용: 캐시 계층에 따라 상이한 요구 사항에 맞춘 계층별 메모리 기술 최적화. 

수명 평준화를 통한 수명 연장: 메모리 셀 간의 수명을 평준화하여 제한된 NVM의 내구성을 최대한 활용하는 접근 방법. 
NVM으로의 쓰기 감소: 비트나 캐시 접근 수준에서 근본적으로 쓰기 양을 줄여 수명을 연장하는 방법. 
혼성 캐시 사용: 캐시 way별로 서로 다른 메모리 기술 혹은 다른 메모리 특성을 가지도록 혼성하여 사용하는 방법. 3차원 쌓기 기술 활용: 집적도를 위하여 3차원적으로 메모리 셀을 구성하는 방법.


4. 메모리 기술별 접근법

4.1. eDRAM
eDRAM을 활용한 연구들은 주로 리프레시 효율 및 간격과 연관이 있다. 즉, [2]는 더 높은 에러율을 감내하는 코드를 활용하여 리프레시 간격을 증가시키고자 한다. 리프레시 명령을 최적화하기 위해 [3, 4]는 리프레시 사이에 접근되지 않거나 일정 기간 접근되지 않은 캐시 라인은 리프레시하지 않고 버린다. [5]는 읽기/쓰기 시 셀이 원천적으로 리프레시되는 특징을 이용해 최근에 접근된 캐시 라인은 리프레시를 건너뛰는 방법을 제시한다.  

 

4.2. STT-RAM
4.2.1. 비휘발성 완화
STT램은 비휘발성의 정도에 따라 다른 성능을 보인다. 이에, [6~8]은 캐시 계층별로 서로 다른 비휘발성을 부여하여 성능과 에너지 효율을 개선하고자 하였다. 또한 [9]는 캐시 way가 다른 비휘발도를 가지도록 하고 이에 맞추어 데이터를 배치하여 성능을 최적화하였다. 

 

4.2.2. 쓰기 줄이기
수명이 제한된 STT램에 같은 내용을 덮어 쓰는 것은 바람직하지 않다. 이를 피하기 위해 값이 바뀐 메모리 셀만 쓰기를 하거나[10], 저장되는 값을 짧은 Hamming distance를 가지는 패턴으로 인코딩하거나[11] 0으로 구성된 데이터를 효과적으로 인코딩하는[12] 방법을 활용하는 방법들이 고려되었다. 또한, [13]에서는 MSB보다 자주 값이 바뀌는 LSB부분은 SRAM을 활용하여 STT램에 쓰이는 양을 줄이고자 하였다. 

 

4.2.3. 쓰기 최적화
STT램은 쓰기가 오래 걸린다. 이에 [14]는 캐시에 발생하는 쓰기의 원인을 네 가지로 분류한 후, 낮은 중요도를 가지는 prefetch가 다른 접근을 방해하지 못하도록 서로 다른 우선순위를 갖도록 하였다.

[15]는 느린 쓰기 속도로 인해 다른 코어의 읽기가 차단되는 캐시 방해 효과를 줄이기 위해, 많은 쓰기를 요청하는 프로세스의 쓰기는 바로 메모리에 쓰는 방법을 제안하였다. 또 0/1 비대칭성을 활용하여 [16]은 두 블록에 서로 다른 값을 가지도록 하고 가능한 0의 상태를 가지고 있도록 하였다.

 

4.3. RRAM 및 PCM
[17]은 RRAM으로 구성된 여러 셋으로 이루어진 캐시 중 특정 셋의 수명만 줄어드는 것을 방지하기 위해 일정 간격으로 두 셋의 위치를 바꿔 점진적으로 전체 셋의 수명을 평준화하였다.

또한, 셋 내의 특정 라인만 수명이 줄어드는 것을 방지하기 위해 일정 횟수 이상 hit된 라인은 확률적으로 비움(flush)으로써, 이후 이 주소로 쓰기가 발생하면 cold한 line으로 옮겨지도록 하여 메모리 셀이 전체적으로 비슷한 수명을 가지도록 하였다. 

[18]은 PCM은 쓰기보다 읽기가 훨씬 빠른 점을 활용하였다. 즉, 데이터를 쓰기 전에 원래 쓰여 있는 값을 읽고, 써야 하는 값을 실제 값 그대로 쓰는 경우와 0/1을 뒤집어 쓰는 경우 중 더 적은 메모리 셀이 업데이트되도록 서브 블록 단위로 인코딩을 관리한다.  

 

4.4. DWM
한 메모리 셀에 여러 데이터를 담을 수 있는 DWM의 특성을 활용하여 [19]는 캐시 계층별로 서로 다른 셀당 데이터를 갖도록 구성하여 성능 및 용량을 최적화하였다. 또한 시프트로 인해 발생하는 지연을 최소화하기 위해 요청을 예상하여 미리 시프트하는 방법을 제안하였다.

[20]은 시프트로 인해 발생하는 오버헤드를 분석하여, 한 셀에서 데이터를 읽은 후 상대 위치를 리셋시키는 방법은 순차 접근에 유리하고, 위치를 리셋시키는 방법은 간단하면서도 임의 접근에 유리함을 보였다. 또한 자주 접근되는 값을 알아내어 이들을 읽기/쓰기가 이루어지는 포트 근처에 위치시켜 오버헤드를 줄였다.  

 
5. 혼성 매체 접근법

서로 다른 특징을 가진 메모리 기술들을 함께 사용하여 최적의 효과를 얻으려는 연구가 많이 있었다. 하지만 이는 단일 매체 캐시보다 제조 비용, 통합, 테스트 및 검증에 많은 비용이 든다. 이 중, S램과 PCM을 함께 사용하는 기법은 S램과 eDRAM의 조합보다 공간 집적도 측면에서 더 나음을 알아내었다. 하지만 이 조합은 S램과 PCM의 큰 성능 차이로 인해 S램에서의 캐시 hit의 비율이 전체 성능을 좌우하게 된다. 

또한 혼성 매체를 사용할 경우 캐시 hit 시에도 지연시간이 일정치 않게 되며, 이로 인해 서로 종속된 인스트럭션 간의 스케줄링을 더 복잡하게 만든다[21]. 그 외, 혼성 매체를 사용할 경우에도 단일 매체 적용 시 사용된 다양한 최적화 방법을 비슷하게 적용할 수 있다.  

 

6. 결론

이 글은 eDRAM, STT-RAM, RRAM, PCM, 그리고 DWM의 최신 메모리 기술을 활용한 다양한 칩 내 캐시 최적화 기법들을 살펴보고 각각이 해결하고자 하는 바와 이를 위한 접근법에 따라 이들을 분류하였다.

이를 통해 최신 메모리 기술들은 전력 및 집적도 면에서는 S램보다는 월등하지만 공통적으로 내구도가 낮고 쓰기가 오래 걸린다는 단점이 있음을 확인하였다. 따라서 이 두 가지 제약점을 잘 다루는 것이 향후 칩 내 캐시에 최적의 메모리 기술을 적용하는 데 중요한 요소가 될 것으로 예상된다.

 

References 
1. S. Mittal et al., “A Survey of Architectural Approaches for Managing Embedded DRAM and Non-volatile On-chip Caches,” IEEE TPDS, 2014. 
2. C. Wilkerson et al., “Reducing Cache Power with Low-Cost, Multi-bit Error-correcting Codes,” ISCA, 2010. 
3. W. R. Reohr, “Memories: Exploiting Them and Developing Them,” IEEE SOCC, 2006. 
4. M.-T. Chang et al., “Technology Comparison for Large Last-Level Caches (L3Cs): Low-Leakage SRAM, Low Write-Energy STT-RAM, and Refresh-optimized eDRAM,” HPCA, 2013. 
5. A. Agrawal et al., “Refrint: Intelligent Refresh to Minimize Power in On-chip Multiprocessor Cache Hierarchites,” HPCA, 2013. 
6. C. W. Smullen et al., “Relaxing Non-volatility for Fast and Energy-efficient Last-level Cache Design,” DATE, 2012. 
7. A. Jog et al., “Cache Revive: Architecting Volatile STT-RAM Caches for Enhanced Performance in CMPS,” DAC, 2012. 
8. X. Guo et al., “Resistive Computation: Avoiding the Power Wall with Low-leakage, STT-MRAM based Computing,” ISCA, 2010. 
9. Z. Sun et al., “Multi Retention Level STT-RAM Cache Designs with a Dynamic Refresh Scheme,” MICRO, 2011. 
10. P. Zhou et al., “Energy Reduction for STT-RAM using Early Write Termination,” ICCAD, 2009. 
11. S. Yazdanshenas et al., “Coding Last Level STT-RAM Cache for High Endurance and Low Power,” IEEE CAL, 2013. 
12. J. Jung et al., “Energy-efficient Spin-Transfer Torque RAM Cache Exploiting Additional All-zero-data Flags,” ISQED, 2013. 
13. J. Ahn and K. Choi, “Lower-bits Cache for Low Power STT-RAM Caches,” ISCAS, 2012 
14. M. Mao et al., “Coordinating Prefetching and STT-RAM based Last-Level Cache Management for Multicore Systems,” GLSVLSI, 2013. 
15. J. Wang et al., “OAP: An Obstruction-aware Cache Management Policy for STT-RAM Last-level Caches,” DATE 2013. 
16.  
17. J. Wang et al., “i2WAP: Improving Non-volatile Cache Lifetime by Reducing Inter-and Intra-set Write Variations,” HPCA, 2013. 
18. Y. Joo et al., “Energy-and Endurance-aware Design of Phase Change Memory Caches,” DATE, 2010. 
19. R. Venkatesan et al., “DWM-TAPESTRI-an Energy Efficient All-spin Cache Using Domain Wall Shift Based Writes,” DATE, 2013. 
20. Z. Sun et al., “Cross-layer Racetrack Memory Design for Ultra High Density and Low Power Consumptions,” DAC, 2013. 
21. S. Mittal, “A Survey of Architectural Techniques for Improving Cache Power Efficiency,” Elsevier Sustainable Computing Informatics and Systems, 2014. 

 

글 : 김상훈 (한국과학기술원 전산학과) 
자료 협약 및 제공 : KOSEN(한민족과학기술자 네트워크) / www.kosen21.org

이 기사를 공유합니다
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지