Power Gating Design
현대 SoC(System on Chip) 설계에서 전력 소모 절감은 성능만큼이나 중요한 과제가 되었습니다. 특히, 모바일 기기와 같은 배터리 기반 시스템에서는 대기 전력(Leakage Power)을 최소화하기 위해 다양한 저전력 설계 기법이 사용됩니다.
Power Gating(파워 게이팅)은 필요하지 않은 회로의 전원을 차단하여 대기 전력을 줄이는 대표적인 기법입니다. 이를 효과적으로 구현하려면 스위칭 네트워크 설계, 신호 격리(Isolation), 상태 유지(Retention), 그리고 전력 제어(Power Control)에 대한 이해가 필요합니다.
이 장에서는 Power Gating 설계 과정을 초보자도 쉽게 이해할 수 있도록 단계적으로 설명합니다. 전력 게이팅 방식 선택부터 RTL 시뮬레이션 검증까지, 저전력 설계를 위한 핵심 내용을 살펴보겠습니다.
5.1 Switching Fabric Design (스위칭 패브릭 설계)
- Power Gating 방법: VDD(전원 공급선) 또는 VSS(접지) 중 하나를 선택해 전원을 차단함.
- Header Switch (VDD 차단): 내부 회로가 접지 방향으로 전하 방출 → 외부 전력 게이팅과 호환성 좋음.
- Footer Switch (VSS 차단): 내부 회로가 전원 공급 방향으로 전하 축적 → 전기적 특성 개선.
- 권장사항: VDD를 차단하는 Header Switch를 선호.
- 주의사항: 전원 및 접지의 혼합 사용은 타이밍, 전력 분석을 복잡하게 만듦.
5.1.1 Controlling the Switching Fabric (스위칭 패브릭 제어)
- 전력 공급 시 급격한 전류(인러시 전류) 유입 방지를 위해 다단계 전력 공급(Trickle Switch) 방식 사용.
- 파워 업 과정에서 "Power Up Acknowledge" 신호로 전력 공급 완료를 확인.
- 주의사항: 파워 게이팅 신호는 항상 전원이 유지되는 버퍼로 관리해야 함.
5.2 Signal Isolation (신호 격리)
- 파워 게이팅 시 출력이 떠다니는 것을 방지하기 위해 Isolation Cell(격리 셀) 사용.
- 격리 방법:
- AND 게이트: 출력 0으로 고정(활성 하이 신호일 때).
- OR 게이트: 출력 1로 고정(활성 로우 신호일 때).
- 출력 신호를 원본 블록에서 격리하는 것이 관리와 검증이 용이.
- 권장사항: 인터페이스 프로토콜에 맞춰 신호를 비활성 상태(대개 '0')로 고정.
5.2.1 Signal Isolation Techniques (신호 격리 기법)
파워 게이팅 시 출력 신호를 안정적으로 유지하기 위해 격리 셀(Clamp Cell)을 사용합니다. 주로 AND 또는 OR 게이트를 통해 신호를 고정합니다.
- AND 게이트: 출력 신호를 0(LOW)로 고정.
- OR 게이트: 출력 신호를 1(HIGH)로 고정.
- Latch(래치) 기반 셀: 출력 신호를 마지막 값으로 유지.
⚠️ 주의사항:
- Pull-up/down 저항은 타이밍은 빠르지만 전류 누설(Leakage Current)이 발생할 수 있으므로 권장되지 않음.
- Clock 신호를 격리할 경우, 클럭 트리(Clock Tree) 설계가 복잡해질 수 있음.
5.2.2 Output or Input Isolation (출력 또는 입력 격리)
파워 게이팅 시, 출력 신호를 격리하는 것이 일반적입니다.
- 출력에서 격리: 하나의 격리 셀로 다수의 출력 신호 관리 가능 → 공간 효율적.
- 입력에서 격리: 여러 블록이 신호를 공유하면 각 입력마다 별도 격리 셀이 필요 → 비효율적.
🔍 추천 전략: 출력 쪽에서 Isolation Cell을 적용하는 것이 유지보수와 검증이 쉽습니다.
5.2.3 Interface Protocols and Isolation (인터페이스 프로토콜과 격리)
다른 블록과 인터페이스할 때 신호의 의미(Active/Inactive)를 고려해야 합니다.
- 대부분의 제어 신호는 비활성화 시 '0'으로 클램핑(AND 게이트).
- Reset(리셋) 신호는 일반적으로 '1'로 클램핑(OR 게이트) 하여 리셋 보장.
⚠️ 누설 전류 주의: 파워 게이팅된 블록과 연결된 다른 블록이 전력 공급 중이면, 스닉 경로(Sneak Path)를 통해 전류가 누설될 수 있음.
5.2.4 Recommendations and Pitfalls (권장사항 및 주의사항)
✅ 권장사항
- 파워 게이팅 시 반드시 출력 신호를 격리할 것.
- AND/OR 기반 Isolation Cell 사용을 우선 고려.
- 테스트 모드에서 격리 제어 신호의 Stuck-at(0/1) Fault 검출 기능 추가.
⚠️ 주의사항
- Isolation Cell은 항상 전원이 공급되는 Always-On 영역에 배치해야 함.
- 클럭 신호에 Isolation Cell 적용 시 클럭 트리 설계가 복잡해질 수 있으니 주의.
- RTL 코드 최적화 시 Isolation Cell이 제거되지 않도록 특별 속성을 적용할 것.
5.3 State Retention and Restoration (상태 유지 및 복구)
- 전력 차단 시 데이터 유지를 위해 Retention Register(유지 레지스터) 사용.
- 방법 3가지:
- 소프트웨어 방식: CPU가 데이터를 메모리에 저장(비효율적).
- 스캔 체인 방식: 제조 테스트용 스캔 체인을 활용해 메모리에 저장(비용 낮음).
- Retention Register: 메인 레지스터와 별도 유지 레지스터로 전력 차단 시 데이터 유지(효율적).
- 권장사항: 부분 유지 시 비유지 상태를 올바르게 초기화하도록 별도 리셋 신호를 설계.
- 주의사항: Retention Register는 면적이 증가하므로 필요한 부분만 선택적으로 사용.
Power Gating 시 전력을 차단하면 블록 내부 상태(State)가 사라지게 됩니다. 이 상태를 유지하고, 전력 복구 시 복원하기 위한 방법을 다룹니다.
상태 유지(State Retention) 방식은 빠른 재시작과 전력 효율성을 동시에 추구할 수 있습니다. 이 섹션에서는 5가지 방법과 관련 주의사항을 설명합니다.
5.3.1 State Retention Using Scan Chains (스캔 체인을 이용한 상태 유지)
제조 테스트(Manufacturing Test)를 위한 Scan Chain(스캔 체인)을 활용하여 블록의 내부 상태를 저장합니다.
- 절차:
- 전력 차단 전: 내부 레지스터 값을 스캔 체인을 통해 메모리로 이동.
- 전력 복구 시: 스캔 체인을 통해 저장된 데이터를 레지스터로 복원.
- 장점:
- 하드웨어 오버헤드가 적음(기존 테스트 회로 재활용).
- 외부 메모리(온칩/오프칩) 사용 가능.
- 단점:
- 버스 충돌 가능성(Bus Conflicts) → 비동기적인 버스 접근으로 인한 데이터 손실 가능.
- 스캔 동작 시 IR 전압 강하 가능(모든 플립플롭이 동시에 토글될 수 있음).
🔍 추천 방법: 스캔 체인 수를 메모리 데이터 버스 너비와 동일하게 맞춰 성능 최적화.
5.3.2 Retention Registers (레지스터 기반 상태 유지)
Retention Register(유지 레지스터)는 메인 플립플롭 옆에 전원이 항상 공급되는 Shadow Register(그림자 레지스터)를 추가하여 상태를 저장하는 방식입니다.
- 동작 원리:
- SAVE 신호: 메인 레지스터의 값을 Shadow Register에 저장.
- RESTORE 신호: 저장된 값을 다시 메인 레지스터에 복원.
- 장점:
- 소프트웨어 개입 없이 하드웨어 레벨에서 자동 상태 관리.
- 전력 차단 후 빠르게 복구 가능.
- 단점:
- 면적 증가(최대 50% 이상) → 추가 회로 필요.
- 전력 컨트롤러 설계 복잡성 증가.
🔍 추천 방법: 동적 클럭 제어를 통해 Save/Restore 시 불필요한 클럭 토글을 최소화.
5.3.3 Power Controller Design for Retention (전력 컨트롤러 설계)
Retention 기능을 지원하려면 Power Controller(전력 컨트롤러)에서 적절한 순서로 명령을 제어해야 합니다.
- Power Down 시:
- 클럭 중지(Clock Stop) → 데이터 저장(SAVE) → 출력 격리(Isolation) → 전력 차단.
- Power Up 시:
- 전력 복원 → 상태 복원(RESTORE) → 출력 해제 → 클럭 재시작.
🔍 주의사항:
- 전력 공급 시 인러시 전류(Inrush Current) 관리 필요 → 다단계 스위칭(Phased Switching) 적용.
- Always-On 로직이 제대로 동작하는지 검증할 것.
5.3.4 Partial vs. Full State Retention (부분 vs. 전체 상태 유지)
상태 유지 시, 모든 레지스터의 상태를 유지할지(Full Retention) 또는 일부만 유지할지(Partial Retention)를 선택해야 합니다.
- Full Retention(전체 유지): 모든 상태를 유지 → 빠른 복구지만 면적 및 전력 소모 증가.
- Partial Retention(부분 유지): 핵심 제어 신호만 유지 → 메모리, FIFO 등은 초기화(reset) 후 재사용.
🔍 추천 전략:
- 주요 제어 레지스터(Control Registers)만 유지.
- 비유지 상태(Non-Retained State)는 Reset 시 X 상태로 설정하여 문제를 조기에 감지.
5.3.5 System Level Issues and Retention (시스템 레벨 문제)
Retention 설계 시 시스템 레벨의 타이밍과 인터페이스 이슈를 고려해야 합니다.
- Clock Gating과 충돌:
- 파워 게이팅 시 Clock Gating이 활성화된 경우 타이밍 문제 발생 가능.
- 동일한 클럭 도메인에서만 Retention 적용 권장.
- 인터페이스 시그널 관리:
- 파워 게이팅된 블록이 인터페이스 중이라면 출력 신호를 반드시 격리해야 함.
5.3.6 Recommendations and Pitfalls (권장사항 및 주의사항)
✅ 권장사항
- Retention 레지스터는 필요한 곳에만 부분적으로 적용.
- Reset 신호를 Retention/Non-Retention 블록마다 별도로 설계.
- 시뮬레이션 단계에서 X 상태 확인: 미정의 동작을 사전에 방지.
⚠️ 주의사항
- Retention 레지스터가 전력 노이즈에 민감하므로 설계 시 IR 전압 강하 관리 필요.
- Partial Retention 시:
- 파워 업 후 상태 초기화 실패 시 Deadlock(교착 상태) 발생 가능.
- 반드시 상태 머신(State Machine)의 초기 상태를 확인할 것.
5.4 Power Gating Control (파워 게이팅 제어)
- Power Gating은 단순히 전원을 켜고 끄는 작업이 아닙니다. 안전하고 신뢰성 있는 전력 관리를 위해서는 정확한 제어 순서와 타이밍이 필요합니다. 이를 위해 Power Controller(전력 컨트롤러)가 전력 차단/복구 시퀀스를 관리합니다.
5.4.1 Power Control Sequencing (파워 제어 시퀀싱)🛑 Power Down 시퀀스 (전력 차단)- 작업 중단(Flush Operations): 버스나 메모리 작업 완료.
- 클럭 중지(Stop Clock): 타이밍 위반 방지.
- 출력 신호 격리(Isolation Enable): 출력 신호를 0 또는 1로 고정.
- 상태 저장(Save State)(Retention 사용 시): Retention Register에 데이터 저장.
- Reset 신호 활성화(Assert Reset): 안정적 복구를 위해 초기화.
- 전력 차단(Power Off): Power Gating 스위치 활성화.
⚡ Power Up 시퀀스 (전력 복구)- 전력 공급(Power On): Power Switch(스위칭 네트워크) 활성화.
- 전력 안정 대기(Wait for Power Stabilization): 인러시 전류 제한.
- 상태 복구(Restore State)(Retention 사용 시): 저장된 데이터 복원.
- Reset 신호 해제(De-assert Reset): 정상 동작 준비.
- 출력 신호 복구(Disable Isolation): 신호를 정상 모드로 전환.
- 클럭 재시작(Restart Clock): 타이밍 준수 필수.
- 클럭은 항상 안전한 시점(Clock Safe State)에 멈추고, 복구 시 Glitch(글리치) 없이 다시 시작해야 함.
- 인러시 전류로 인한 전압 강하를 방지하기 위해 다단계 전력 공급(Phased Power-Up)을 고려.
5.4.2 Handshake Protocols (핸드셰이크 프로토콜)🔁 동작 흐름- 전력 차단 요청(N_PWR_REQ): Power Controller → Power Switch
- 전력 차단 완료 응답(N_PWR_ACK): Power Switch → Power Controller
- 전력 복구 요청(N_PWR_REQ): Power Controller → Power Switch
- 전력 복구 완료 응답(N_PWR_ACK): Power Switch → Power Controller
- 전력 공급 완료 전에 클럭 재시작 금지.
- 비동기 응답(Asynchronous Acknowledge)의 경우 동기화 회로(Synchronizer)를 반드시 사용.
5.4.3 Recommendations and Pitfalls (권장사항 및 주의사항)- Request-Acknowledge 핸드셰이크를 통해 전력 공급 여부를 실시간 확인.
- 전력 차단 시 출력 신호를 반드시 격리하여 스닉 경로(Sneak Path)로 인한 전류 누설 방지.
- 전력 복구 시 다단계 스위칭을 사용하여 인러시 전류(Spike Current)를 최소화.
⚠️ 주의사항- Power Down 중 Power Up 요청 금지: 전력 차단이 완료되기 전에 전력 복구를 시도하면 회로 손상 및 오작동 가능.
- 온도 및 공정(Process Variation) 변화에 따른 전력 복구 타이밍을 고려해야 함.
- Always-On 블록이 동작 중인지 반드시 확인 후 Power Gating 수행.
- ✅ 권장사항
- Power Controller는 Switching Fabric(스위칭 네트워크)과 요청-응답(Request-Acknowledge) 방식으로 소통합니다.
- Power Gating은 정해진 시퀀스(순서)를 따라야 불필요한 전류 흐름과 데이터 손실을 방지할 수 있습니다.
- 이 섹션에서는 Power Control Sequencing(제어 순서), Handshake Protocols(핸드셰이크 프로토콜), 그리고 설계 시 주의사항을 다룹니다.
5.5 Power Gating Verification (전력 게이팅 검증)
- HDL(하드웨어 기술 언어)에는 전력 신호를 표현하는 기능이 부족 → UPF(통합 전력 포맷) 사용.
- 시뮬레이션에서 전력 차단 시 출력 신호를 X(알 수 없는 값)로 설정해 오작동 여부를 확인.
- 권장사항: RTL 코드에 매크로(ifdef)를 사용해 전력 게이팅 동작을 쉽게 시뮬레이션할 수 있도록 준비.
5.6 Design For Test Considerations (테스트를 위한 설계 고려사항)
- Power Gating을 적용하면 전력 효율은 개선되지만, 제조 테스트(DFT: Design For Test)가 복잡해집니다.
- 전력 게이팅 시 신호 격리(Isolation), 상태 유지(Retention), 전력 스위칭(Network Switching) 동작을 검증해야 합니다.
- 이 섹션에서는 테스트를 위한 외부 제어 기법, 테스트 중 전력 관리, 스위칭 네트워크 검증 방법 등을 다룹니다.
5.6.1 Power Gating Controls (파워 게이팅 제어)🔧 필수 제어 신호- Power Gating Enable: 전력 차단/복구 여부.
- Isolation Control: 신호 격리 여부.
- Save/Restore Control: Retention Register의 상태 저장 및 복구.
- 테스트 중 Isolation Cell이 비활성화되지 않도록 신호를 강제로 고정해야 함.
- Scan Chain과 Power Controller가 서로 간섭하지 않도록 테스트 전용 제어 핀을 추가.
5.6.2 Power Limitations During Scan Test (스캔 테스트 중 전력 관리)- 문제점: IR Drop(전압 강하) → 신호 오작동, 회로 손상 위험.
- 원인: 동기화된 플립플롭 토글 → 과도한 전류 흐름.
- Power Gating을 활용하여 테스트 시 전력 관리
- 필요하지 않은 블록은 Power Gate로 차단.
- Scan Chain 그룹화(Partitioning)
- 블록 단위로 나눠 테스트 → 전류 분산.
- 테스트 클럭 속도 조정(Slow Clock Test)
- 테스트 중 클럭 속도를 낮춰 전력 소비 감소.
5.6.3 Testing the Switching Network (스위칭 네트워크 테스트)🔍 주요 테스트 항목- Power Gate On/Off 테스트: 전원 공급 시 신호 안정성 검증.
- IR Drop 측정: 전력 공급 시 전압 강하 여부 확인.
- Leakage Current 측정(IDDQ Test): 파워 게이팅 시 전류 누설 발생 여부 점검.
⚠️ 테스트 중 발생할 수 있는 결함 유형유형설명테스트 방법Switch Stuck-Open Power Gate가 전원을 정상적으로 공급하지 못함. IR Drop 측정 및 IDDQ Test Switch Stuck-On 전력 차단 시에도 전류가 흐름(누설 전류 증가). IDDQ Test Partial Switching 일부 회로만 전력 공급/차단됨. 전력 모니터링 및 IR Drop Test
5.6.4 Testing Isolation and Retention (격리 및 상태 유지 테스트)🛠️ Isolation Cell 테스트- Isolation Enable 신호 제어:
- 격리 셀이 신호를 정확히 0 또는 1로 고정하는지 확인.
- 동적 테스트(Functional Test):
- 전력 차단 후 출력이 떠다니는지(Floating) 검사.
🧠 Retention Register 테스트- 패턴 테스트: 1010 → 0101 → 1010 패턴을 입력하여 Save-Restore 기능을 검증.
- Power Cycle Test: 전력 차단 후 복원 시 데이터 손실 여부 점검.
⚠️ 테스트 시 주의사항- 전력 공급/차단 시 X 상태(Unknown State)가 발생하지 않는지 확인.
- 클럭, Reset 신호와 Retention 신호 간 우선순위 충돌이 발생할 수 있음.
5.6.5 Testing the Power Gating Controller (전력 컨트롤러 테스트)- 제어 신호의 순서가 잘못되면 인러시 전류 급증으로 인해 회로 손상 가능.
🔍 테스트 전략- 시뮬레이션 기반 검증(RTL Simulation)
- UPF(통합 전력 포맷)을 통해 시뮬레이션 시 전력 상태를 가상으로 변경.
- 하드웨어 레벨 검증
- 실제 전력 차단-복구 시퀀스를 모니터링.
- 경계 조건 테스트(Boundary Condition Test)
- 빠르게 전력 차단 후 즉시 복구 시 오작동 여부 확인.
⚠️ 전력 컨트롤러 테스트 시 발생할 수 있는 오류유형오류 내용해결 방법Race Condition 전력 차단/복구 신호 간 충돌. Request-Acknowledge 핸드셰이크 사용. Glitch on Reset Reset 신호 중 글리치로 인한 상태 오작동. Reset 신호를 동기화(Synchronized Reset). Unstable Power Up 전력 복구 시 인러시 전류 급증. 다단계 전력 공급(Phased Switching).
🔍 5.6 요약 (Summary)- Power Gating 관련 제어 신호는 반드시 외부 테스트 가능하도록 설계.
- Scan Chain 분할(Partitioning)로 테스트 중 전류 과부하 방지.
- UPF(통합 전력 포맷)을 통해 전력 게이팅 시뮬레이션 수행.
- Retention Register의 Save/Restore 기능은 동적 테스트로 검증.
⚠️ 주의사항- 테스트 중 전력 소모가 정상 동작보다 크다는 점을 고려하여 적절한 전력 관리 설계.
- 전력 게이팅 컨트롤러는 동기화 회로(Synchronizer)를 통해 Race Condition 방지.
- Isolation Cell이 제거되지 않도록 EDA 툴 설정을 확인해야 함.
- ✅ 권장사항
- Power Gating Controller는 전력 공급 및 차단 시퀀스를 관리하는 핵심 회로입니다.
- Retention Register는 저장된 데이터가 제대로 복원되는지 확인이 필수입니다.
- Power Gating에서 가장 자주 발생하는 오류는 격리 셀(Isolation Cell)과 Retention Register의 오작동입니다.
- Power Gating의 핵심은 스위칭 네트워크(Switching Network)입니다.
이 네트워크가 정상적으로 전력을 공급 및 차단하는지 반드시 검증해야 합니다. - Scan Test는 회로의 모든 플립플롭을 동작시키기 때문에 일반 동작 시보다 더 많은 전류를 소모할 수 있습니다.
- Power Gating 회로의 신뢰성을 확보하려면 외부에서 제어 및 관찰(Controllability & Observability)할 수 있어야 합니다.
핵심 포인트 정리
- 전력 소모 절감을 위해 Header Switch 방식이 일반적.
- 신호 격리에는 AND/OR Isolation Cell을 사용하여 전력 차단 시 출력이 떠다니는 문제 방지.
- Retention Register는 데이터 복구 시간을 단축하지만 면적이 늘어남.
- 전력 게이팅은 Request-Acknowledge 핸드셰이크 방식으로 안정성 확보.
- UPF 포맷을 통해 전력 게이팅을 RTL 수준에서 시뮬레이션할 수 있음.
- 전력 게이팅 설계 시 테스트 및 검증을 고려해야 하며, IDDQ 테스트를 통해 누설 전류를 점검.