Sizing a new system for power is building an estimate of what the requirements are for various components.
It's not something one does all the time, so it's handy to have some notes on how it can be done to act as a guide of sorts.
If the system architecture is already set - or at least proposed - that will give you a framework for what the parts are that you're going to consider.
For example, for a phone, you would probably want identify the CPU, GPU, memory, display, touch panel, speakers, microphones, and radio as significant contributors.
But there is often a list of less-frequently used components to consider like camera, light sensors, motion sensors, GPS modules, thermal sensors, external ports, or the power management units (the PMIC of the sytem).
Depending on what you're after, you might also want to know how heat flows through the system - which things are going to be close together and which ones will be far apart. Closer together usually means it's less expensive to transfer data, but you might see things heat up one another more.
The next thing to consider is what work you expect the system to do.
Most commonly you'll be able to start with desired outcomes for the users of the system. For a router, you'll care first and foremost about managing traffic, but also management and diagnostics. For a PC, you might care about running applications or games or driving machinery.
Note that in very early design, you might iterate back and forth between components and workloads. Given a workload you might want to find the components that can provide the required functionality, and given components you can identify the workloads it can support. As you make changes to one, you can adjust by making changes to the other.
Now, workloads don't just exist in isolation. Frequently they can be combined in various ways (your system will service network traffic while also displaying content or handling input).
It's useful to understand how various workloads will vary both in terms of power utilization level as well as how they drive the various components. On a PC, you might have something like the following.
Not every workload will require the same work of every component. For example, the camera system on your phone is probably idle most of the time. Your games might use the GPU extensively, while 2D applications will barely induce any work.
Having representative workloads on hand can be massively useful. You can turn to benchmarks in some cases, which are very useful in comparing the characteristics of different components or configurations, but you can also use existing programs if you have them or use prototypes to simulate the work placed on one or more components.
Some common ways of characterizing workloads include the following.
You can use these estimates to create a power model and figure out what power supply you should use, evaluate battery capacity, analyze thermals on your device, etc.
Happy power!
Tags: perf