-
[컴퓨터 구조] ARM - PSCI공학/컴퓨터구조 2023. 12. 27. 20:35
글의 참고
- Power State Coordination Interface
글의 전제
- 밑줄로 작성된 글은 강조 표시를 의미한다.
- 그림 출처는 항시 그림 아래에 표시했다.
글의 내용
- Overview
" PSCI 는 `Power State Control Interface` 약자로 arm processor 기반의 OS 를 만드는 OS vendors 사에게 power management 관련 standard interface 를 제공한다. 예를 들어, ARMv8 기반에서 low-level power management 를 수행하기 위해서는 PSCI 에서 제시하는 스펙을 반드시 따라야 한다.
" PCSA 가 도입된 ARM A-profile architecutre 에서 power management 관련 작업은 처리할 때는 Linux & Windows 와 같은 rich operating system(non-secure OS), hypervisors, secure firmware 와 Trusted OS 구현체들은 반드시 서로 통신할 수 있는 메커니즘이 있어야 한다. 왜냐면, power management 관련 작업은 권한이 높기 때문에, 기본적으로 EL3 에 대한 접근이 가능해야 한다.
" PSCI 의 목적은 아래의 3 가지 기능을 타겟으로 인터페이스를 통일 하는데 있다.
1. Core idle management
2. Dynamic addition and removal of cores, and secondary core boot
3. System shutdown and reset" PSCI 에서는 `Dynamic Voltage and Frequency Scaling(DVFS) or device power management(예를 들어, GPUs 와 같은 peripehrals management)` 는 다루지 않는다. 그리고, PSCI 는 ACPI(Advanced Configuration and Power Interface) & FDT(Flattened Device Tree)` 와 같은 hardware discovery technologies 들과 함께 동작할 수 있도록 설계되었다. PSCI 를 ACPI 및 FDT 의 대체제라고 오해하면 안된다. ACPI 와 FDT 에서 제공하는 문법을 지원해서 각각의 방식으로 PSCI 를 명시할 수 있다는 뜻이다.
- PSCI call flows
1. CPU_SUSPEND, CPU_DEFAULT_SUSPEND, and SYSTEM_SUSPEND call flow
" 아래 block diagram 은 CPU_SUSPEND(위에 언급된 calls 들도 동일한 flow 를 탄다) 이 exception levels 들을 거쳐서 secure platform firmware 에서 완료되는 것을 보여준다. 또한, 각 expcetion level 에서 context 가 어떻게 저장되고 복구되는지를 보여준다. EL2 의 hypervisor 는 non-secure EL1 의 power request 를 trap 해서 EL3 에 있는 power controller 에게 power state request 를 전달하기전에 자신의 context(context), NS-EL1 의 resume point(NS-EL1 entry point), NS-EL1 caller 의 context ID 를 저장한다(사실, hypervisor 가 NS-EL1 의 power request 를 trap 할 때, secure virtual partition 을 통해서 firmware interface 를 emulate 한다. 즉, EL3 에 있는 실제 power controller 와 동일한 virtual device 를 S-EL2 에 emulate 해서 EL3 까지 갈 일이 없게 만든다. 이렇게 내용을 언급하는 이유는 아래 그림에서 EL3 를 명확히 명시하는 부분이 없기 때문이다).
Power State Coordination Interface " EL2 의 hypervisor 로 부터 power state request 를 받은 Secure world 또한 NS-EL1 및 EL2 와 유사하게 동작한다. 즉, 실제로 core 를 shutdown 하기 전에, 자신의 state, EL2 entry(resume) point, NS-EL2 caller(hypervisor) 의 context ID 와 `start up reason` 을 저장한다. wakeup events 가 발생했을 때, power controller 는 이전에 CPU_SUSPEND call 을 요청했던 core 는 shutdown 되어있기 때문에, 다시 power-on 을 시켜 boot 를 진행한다. initialization 과정에서, secure world 는
'공학 > 컴퓨터구조' 카테고리의 다른 글
[컴퓨터구조] SoC (0) 2023.12.10 [ARM] sec - Trustzone (0) 2023.10.02 [컴퓨터 구조] ARM - Power Control System Architecture(PCSA) (0) 2023.09.20 [컴퓨터구조] ARM - WFI & WFE (0) 2023.09.04 [컴퓨터 구조] Soft(Warm) reset(reboot) vs Hard(Cold) reset(reboot) (1) 2023.08.15