> ## Content Index
> Fetch the complete content index at: https://sudormrf.run/llms.txt
> Use this file to discover other available public pages before exploring further.

# STT-RAM for GPU register file
- URL: https://sudormrf.run/2016/02/22/stt-ram-for-gpu-register-file/
- Published: 2016-02-22T12:12:57.000Z
- Updated: 2016-02-22T12:12:57.000Z
- Author: park jong hyun
- Tags: GPGPU, #Import 2026-10-24 03:36

이번에는 강제로 공부하게된 논문 내용을 소개한다.  
전형적인 well-organized(?) 된 논문 인거 같아서 적어두려고 한다.  
ASP-DAC 에 나온 논문인데, 자세한 정보는 직접 찾아보면 된다.

[논문 링크](https://www.google.co.kr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0ahUKEwiH4pijq4vLAhWk3KYKHb7nCoAQFgglMAA&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs%5Fall.jsp%3Farnumber%3D7059054&usg=AFQjCNFE4pq73VncXs4FpifIGel3e-qRUw&sig2=yBV-HW-fyEh3tfHDGnRlkg&bvm=bv.114733917,d.dGo)

##### Main contribution

- MLC STT-RAM 으로 GPU register file을 구성 (기존에는 SRAM)
- MLC 특성상 발생하는 soft-bit 과 hard-bit에 속도 차이를 이용하여, 자주 쓰이는 데이터는 soft-bit에 mapping
- SRAM 보다 느린 write 에서 생기는 패널티를 warp rescheduling으로 최소화

이 정도가 주요 아이디어이다. 차후 설명할 motivation과 해결방법(STT-RAM 사용)이 아주 심플하고, 여기서 생기는 단점을 보완하는 scheme을 넣은 전형적인 흐름의 논문이다.

##### Motivation

GPU 의 register파일은 매우 크다.  
왜냐하면, GPU라는 것이 엄청난 양의 thread를 이용하여 latency를 hiding 하는 구조인데, 이를 위해 재빠른 context switching 이 필요하고, 그 많은 양의 thread들을 유지(?)하기 위해 엄청난 양의 register가 준비되어 있다.

매 아키텍처가 개선될 때마다 register파일이 커지고 있고, SRAM으로 구성되어 area 와 소비 전력이 GPU의 10\~20%를 차지한다.

![](https://sudormrf.run/content/images/2016/02/---2.JPG)

그림 추가!!!!!

그리하여, SRAM보다 구조가 간단하여 면적을 줄일 수 있고, non-volatile 하여 leakage power 가 작은 STT-RAM을 사용하자!  
거기에 용량을 더 늘리기 위하여 MLC로 구성하여 쓰자.

##### SRAM / STT-RAM 비교

STT-RAM은 위에 말한 것과 같은 장점이 있지만 느리다.  
자세한 스펙은 표 참조. 특히나 write가 느리다.

![](https://sudormrf.run/content/images/2016/02/2.JPG)

게다가 MLC로 쓰면, soft-bit과 hard-bit의 속도 차이가 있다.  
잘하면 soft-bit을 주로 써서 느린 속도를 어느정도는 커버 할수가 있겠다.

![](https://sudormrf.run/content/images/2016/02/3.JPG)

##### Remapping

빠른 soft-bit을 잘 활용하기 위하여 remapping 기법을 제안한다. 이것이 활용될 여지가 많은 이유를 간단히 설명하자면, GPGPU application에서 register file은 대부분의 경우에 underutilized 된다(개인적인 직관이다.). 따라서, 반이 soft-bit이고 반이 hard-bit인 MLC의 경우 대부분의 데이터가 soft-bit으로 mapping되어 빠르게 쓸 수 있다.

다시 논문으로 돌아와서, 얘네는 일단 register file이 반보다 적게 쓰면 당연히 무조건 soft-bit만 쓰고, 반보다 많이 쓰는 경우, 즉 hard-bit을 어쩔 수 없이 써야하는 경우에 remapping을 했다.

remapping을 compile time에 많이 쓰이는 register를 profile하여 검사한 후, 그 놈들은 soft-bit으로 몰아주는 식으로 했다.

효과는 엄청났다!

![](https://sudormrf.run/content/images/2016/02/4.JPG)

##### Warp Rescheduling

이건 뭐 굳이 설명은 안해도 될 것 같은데, 간단히만 설명하겠다.  
write가 느리니, 얼마나 남았는지 counting을 하고 있다가 thread별 critical path(가장 오래기다려야하는 register)기준으로 금방 끝날 놈을 앞으로 땡겨와서 실행하는 것이다.  
좀 당연한 것 같은데, 다른 GPU 논문들은 memory, cache 등에 집중한데 반해, register 에서 penalty 가 많이 생기니 register를 기준으로 하겠다는 것이다.

![](https://sudormrf.run/content/images/2016/02/5.JPG)

##### Conclusion

결론적으로 SRAM을 MLC STT-RAM으로 바꿔서 register file을 만들고, 생길수있는 단점을 이러이러하게 보완하니 에너지 효율이 짱짱맨이다.

\-이상 이 논문의 주장이었다. 끝.