반도체는 어떻게 만들어지나?
반도체를 설계할때 아래 3가지 요인인 PPA( Performance, Power, Area)를 고려해야 합니다.
작은 키에 적은 힘으로 더 많은 일을 해내셨던 '전국 노래자랑'의 송해 선생님처럼 반도체도 PPA를 추구합니다.
반도체에서 저전력 요인은 휴대폰등 배터리로 돌아가는 전자기기, 심지어 전기 자동차에서도 중요해 졌습니다.
왜냐면 휴대폰 배터리는 공간의 제약상 7,000mAh이상 용량을 탑재하기 어렵고 전기자동차 배터리도 동일 용량에 가볍고 작으면 주행 거리가 획기적으로 늘어나기 때문입니다.
그럼 반도체를 저전력으로 어떻게 구현 할까요?
대표적인 방법은 DVFS (Dynamic Voltage and Frequency Scaling) 입니다.
이 기법은 CPU의 응용부하가 높을 때는 최고 동작주파수로 CPU를 구동하고, 응용부하가 낮을 때에는 낮은 동작주파수로 CPU를 구동하여 전력을 줄이는 방법입니다.
대부분의 휴대폰이 Andriod OS를 사용하고 있고 Android는 Linux kernel 위에서 작동합니다. Linux는CPU 동작주파수를 선택하여 관리할 수 있는데 이런 CPU의 동작주파수를 변경하는 모듈인 Governor를 제공합니다. 이 Governor가 CPUfreq module을 통해 CPU Frequency를 조절하는 것이지요.
이를 위해서는 CPU와 GPU 등과 같이 고속 처리가 필요한 블록들은 서로 독립된 전원 공급 구조를 가지는 Power Island로 구현해야 응용에서 요구하는 성능에 따라 각 블록들의 동작 전압과 주파수를 독립적으로 유연하게 조절할 수 있습니다.
두번째 방법은 Power Gating 기법입니다.
이는 각 구성 블록들을 유사 동작하는 기능 블록 단위로 묶어 동작 중 SW 제어를 통해 Power를 On/Off 할 수 있는 기법으로 이를 통해 동작하지 않는 블록들의 Clock 공급을 실시간으로 제어하여 Dynamic 전력 소모를 최소화 할 수 있습니다.
트랜지스터의 두께가 서로 다른 Multi-Vth Cell을 Timing Path에 따라 적절히 혼용하여 로직을 구성함으로써 전력을 줄이는 방법도 있습니다.
Multi-bit Flip-Flop을 적용하여 Clock Tree 구조를 최대한 단순화하고 사용되는 Buffer의 개수를 줄여 Clock Tree의 전력 소모를 최소화 하는 방법도 있구요.
CPU동작 성능이 높아져 발열에 대한 우려가 있어 칩 내부에 온도 센서(Thermal Sensor)를 내장하여 발열에 대한 관리 능력을 향상 시키는 방법도 있지요.
이런 저전력 설계 기법을 적용한 AP가 장착된 스마트폰이 제 손에 들려져 있는데 왜 이렇게 배터리는 빨리 닳는 지 궁금합니다. 유튜브 좀 그만 봐야 겠습니다.