One interesting part of the recent Kabini briefings was on power management, and AMD had some very nice illustrations to go with the presentation. While nothing new was revealed, Sam Naffziger gave one of the best summaries of the topic we have heard to date.
The idea behind AMD’s digital power management scheme is pretty simple and it has been around since the Husky core in Llano. SemiAccurate wrote it up here, and the version in Kabini is an evolution of that technology. Instead of analog thermal sensors all over the die measuring temperature, there are digital sensors that measure what the chip is executing and a controller that can compute power used from that data. Temperature and power draw are still used but since they are orders of magnitude slower than the digital method, they are mainly used for backup.
Once AMD went digital it not only allowed them to react faster to power changes, that would be the easy way of saying finer granularity on turbo modes, but also opened the door to some new tricks. Like Intel has been doing, AMD can shuffle power from one part of the chip to other units. What started out in Llano as more or less core-only technology has now pulled in most of the SoC. With each subsequent iteration things get faster, most inclusive, and less semi-accurate. Kabini is the latest AMD chip so it has the latest digital power management iteration. Take a look at how things work in a GPU heavy workload.
Loaded GPU, low use CPU look like this
The graphs above shouldn’t be a surprise to most people, the GPU is working hard so it heats up, the CPU is unloaded so it isn’t producing much heat. On the CPU heavy workload below, the opposite is the case, hot CPU and cooler GPU. This part isn’t rocket science, just basic physics.
Loaded CPU, low use GPU this time
That brings us to the part that most people don’t think about, powered down units. Silicon chips transfer heat across the die at a known rate that depends on a lot of different variables. If you characterize your chip well enough, you can get a very good idea on how much heat will move between adjacent blocks and how quickly it will do so. While this is once again vastly oversimplifying a massive multi-dimensional graph, the power controller in Kabini is obviously up to the task of parsing it properly. The end result looks a bit like this.
Idle cores become a heat sink
Proper characterization allows you to use idle cores as heat sinks but you obviously have to know your workload and silicon thermals very precisely to do it safely. The end result however is turbo, or more to the point turbo that can temporarily exceed the steady state TDP of a device or functional unit on it. The better you can characterize and the faster the you can sample the workload, the faster you can get in and out of turbo and the higher you can go. It isn’t magic, it is just clever engineering and very detailed observation. Best of all, this time we heard it there were some pretty nice slides.S|A