Power and Performance Management of a System-on-Chip (SoC) aims to deliver the maximum designed performance while simultaneously optimizing power consumption for targeted software workloads. In this context, the Operating System (OS) is the entity that has the most comprehensive view of the running and runnable workloads. Thus, the OS has evolved over time as the primary entity driving and controlling power and performance management along with system control functionality.
OS-based system control and power management has led to complexities in the software stack which have affected its maintainability, portability and security. The race for differentiation among hardware vendors has led to widely different hardware designs requiring specialized software support, which are potentially difficult for a single generic OS kernel to support. This poses a challenge for OS developers who strive to create and maintain a single, generic kernel. The differentiation also poses problems for SoC vendors, who must provide dedicated software for each platform that they must support. Hence many platforms end up maintaining out-of-tree kernel code. This poses challenges in OS upgrades, which in-turn leads to faster obsolescence because the latest software features and security upgrades become difficult to deploy. Additionally, vendors who want to support multiple OS variants on each platform need to create, maintain and debug separate software stacks for each OS with no code commonality.
System-on-Chips may comprise multiple PE clusters, each cluster running a separate OS Instance. In such a scenario any single OS instance may not have complete control and view of the platform. This is true of virtualized systems as well, where there may be multiple OS hosted as Virtual Machines. In such a scenario, the traditional OS-based control of the platform’s system and power management leads to software which is either too bespoke for a generic kernel to support or which compromises functionality.
Maintaining all the system and power controls within the domain of the OS kernel has another side-effect. It exposes the system to security attacks which may result in denial of service, extraction of secrets, or other exploits. Such attacks generally work by attempting to transition the system into unstable states by exploiting the system controls exposed to the OS kernel. As a mitigation, some platforms have migrated system controls away to the Secure Trusted world. However, there is no common mechanism, at least in the Linux kernel, that works for all platforms with such a design.
As SoCs become more powerful, it may not always be feasible to design power supplies for worst case electrical requirements or design the platform chassis for worst case thermal requirements. Such designs require a central entity to regulate platform power and performance according to the electrical and thermal environment and tolerances. This entity must be capable of providing a faster response time than OS kernels.
The above limitations of OS-centric power and performance management leads to an obvious conclusion: the Arm ecosystem needs to adopt a delegation-based approach to power and performance management. This approach exploits a judicious division of power, performance and system control responsibilities between the OS and the platform firmware.
In the delegation-based approach, an entity that can perform the role of the platform firmware is the Arm System Control Processor (SCP) firmware. The SCP firmware can be customized for differentiation, thereby allowing the OS kernel to remain generic. The OS continues to play a primary role in choosing power and performance levels. The firmware validates the OS requests according to overall system policies and constraints, and programs the platform hardware to operate at the selected level.
The delegation-based approach to power management and system control architecture is resistant to security attacks and can be deployed on generic OS kernels without modifications to the latter. The SCP-Firmware can potentially support multiple Operating System variants on the same platform, thereby lowering efforts through firmware commonality. This eases development, debug and maintenance costs for the OS developers and reduces time to market for the SoC vendors.
A key requirement of the delegation-based approach is a standard interface between the platform firmware and the OS kernel. The Arm System Control and Management Interface (SCMI) specification provides this standardized interface, allowing a generic OS kernel to communicate with any platform firmware that complies to this specification. It also enables a common firmware that can be deployed across multiple Operating Systems.
Our newly published white paper provides a high-level overview of the SCMI specification and the benefits it offers to OS developers and SoC vendors in enabling a generic OS kernel that works across a variety of SoC designs. The whitepaper provides details of how a platform design can leverage SCMI to provide the benefits of maintainability, safety and security while still providing differentiation.
[CTAToken URL = "https://developer.arm.com/architectures/system-architectures/software-standards/scmi" target="_blank" text="Download SCMI White Paper" class ="green"]