스마트폰을 포함한 각종 모바일 인터넷 기기들은 매우 널리 사용되고 있다. 이 모바일 기기의 핵심부품 중 하나인 디지털 집적 회로는 generation이 거듭될수록 같은 면적의 칩에 더욱 많은 기능들이 집적되며 연산 처리 속도는 더욱 빨라지고 있다. 이처럼 많은 기능들과 빠른 처리 속도를 제공하려다 보니 모바일 기기의 소비 전력이 커지고 배터리의 수명이 짧아질 수 밖에 없다. 그래서 회로의 전력 소모를 줄이기 위한 기법에 대한 연구는 꼭 필요하다.
  CMOS 트랜지스터에서의 파워 소모는 크게 dynamic과 leakage 파워로 나눌 수 있는데, dynamic 파워는 신호 값이 변경되어 load capacitor를 charging 또는 discharging하면서 발생하는 파워이고, leakage power는 신호 값의 변화가 없는데도 VDD에서 VSS로 흐르는 누수 전류에 의해 발생하는 파워이다.
  Dynamic 파워의 크기는 α⋅CVDD^2f 로 표현되며 α는 switching activity, C는 load capacitance, 그리고 f는 frequency를 나타낸다. 그래서 dynamic 파워를 절감하기 위해서는 위의 component들의 크기를 줄이면 된다. 다음과 같은 기법들이 dynamic 파워 절감을 위해 사용되는 일반적인 기법들이다.
 - α 절감 기법: clock gating, glitch를 줄이는 synthesis
 - C 절감 기법: gate sizing, multi-bit flip-flop
 - VDD^2f 절감 기법: voltage and frequency scaling, dual edge triggered flip-flop
  Leakage 파워는 VDD와 threshold voltage (Vt)를 조절함으로써 절감할 수 있으며, 다음의 기법들이 일반적으로 사용되는 leakage 파워 절감 기법들이다.
 - VDD 조절 기법: multiple supply voltage, power gating
 - Vt 조절 기법: multiple threshold voltage, adaptive body biasing, transistor stacking
  또한, leakage 파워는 온도가 높아질수록 파워가 기하급수적으로 증가하기 때문에, 온도를 낮추는 기법들도 leakage 파워 절감에 큰 도움을 준다.





 Power Gating
https://sites.google.com/site/kaistshinlab/research_temp/power_gating.PNG?attredirects=0

  Power gating은 동작을 하고 있지 않는 블락으로 흐르는 전류를 차단하여 leakage power를 절약하는 기법이다. 왼쪽 그림과 같이 VDD와 블락 사이에 PMOS (current switch)를 연결하여 블락의 power source를 virtual VDD로 하고, VSS와 블락 사이에는 NMOS (current switch)를 연결하여 블락의 ground를 virtual VSS로 할당한다. 동작 시에는 current switch를 켜서 virtual VDD와 virtual VSS를 각각 VDD와 VSS가 되도록 하여 정상 동작을 하도록 하고, 비동작 시에는 current switch를 꺼서 virtual VDD와 virtual VSS가 floating 상태가 되도록 한다. Floating 상태가 되면, virtual VDD와 virtual VSS가 서로 값이 비슷해지면서 leakage 전류가 거의 흐르지 않는다. Power gating 설계 시에는 flip-flop의 data 보존, current switch의 개수와 위치 및 크기 할당, power network 설계 방법을 고려해야 한다. 본 연구실에서는 이들을 고려한 power gating 설계 플로우를 확립하고 이를 자동화하는 연구를 하고 있다.


 Adaptive Body Biasing
https://sites.google.com/site/kaistshinlab/research_temp/adaptive_body_biasing.PNG?attredirects=0

  Supply voltage가 낮아질수록 그에 따라 threshold voltage (Vt)도 낮아지는데, 그럼 subthreshold leakage가 증가하고 leakage 파워도 증가하게 된다. Vt를 조절하는 방법 중 하나로 substrate에 바이어스 전압을 인가하는 방법이 있는데 이를 body biasing이라 부른다. Body bias로 역바이어스 전압을 거는 경우를 RBB라 하는데 이때는 Vt가 높아져서 leakage 파워를 감소시킬 수 있고, 반대로 정바이어스 전압을 거는 경우 (FBB)에는 게이트 딜레이가 작아져 회로의 속도를 빠르게 할 수 있다. Adaptive body biasing은 회로가 동작 시에는 FBB를 가해서 회로의 속도를 높이고 비동작 시에는 RBB를 가해서 leakage 파워를 감소시키는 방법이다. 본 연구실에서는 회로가 여러 블락으로 나누어져 있을 때 각 블락 별로 body biasing을 다르게 가하는 방법에 대한 연구와 따로 characterization없이 FBB와 RBB를 가할 때의 회로의 타이밍을 예측하는 방법에 대한 연구를 하고 있다.


 Clock Gating
https://sites.google.com/site/kaistshinlab/research_temp/clock_gating.PNG

  회로의 dynamic 파워 중 대부분을 clock network 파워가 차지하며, clock network 파워 중 대부분은 clock network의 마지막 단인 register의 파워가 차지하고 있다. Clock gating은 이처럼 파워 소모가 큰 register에서 불필요한 clock switching이 있는 경우 이를 막음으로써 파워 소모를 줄이는 기법이다. 현재 clock gating은 왼쪽 그림과 같이 EN 신호가 1일 때만 새로운 값을 캡처하는 load-enable register에만 적용되고 있다. 이 register에서 EN이 0일 때는 저장된 값이 유지되기 때문에 clock이 switching을 할 필요가 없고, 이때 register에 들어가는 clock을 gating할 수 있다. Register에 입력되는 clock을 gating하기 위해서는 register의 clock pin에 EN 신호와 clock을 ANDing해주는 clock gating cell을 연결하면 된다 (이 cell 안의 latch는 clock이 1인 동안 EN의 glitch를 막아준다). 본 연구실에서는 load-enable register뿐 아니라 다른 register들에도 clock gating을 적용할 수 있는 방법을 RT-level부터 gate-level까지 다양한 design level에서 연구하고 있다.