Browse Prior Art Database

CPU Thread De-Balancing for Power Optimization

IP.com Disclosure Number: IPCOM000236903D
Publication Date: 2014-May-21
Document File: 1 page(s) / 20K

Publishing Venue

The IP.com Prior Art Database

Abstract

Disclosed is a method to realize further power savings and increased efficiency in a multi-socket Central Processing Unit (CPU) system with multi-core CPUs. The method is to shift or consolidate loads from underutilized packages to others in order to completely free-up one or more packages to be idled, internally put to sleep, or powered down.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 74% of the total text.

Page 01 of 1

CPU Thread De-Balancing for Power Optimization

In multi-socket Central Processing Unit (CPU) systems with multi-core CPUs, a scenario could arise in which only a few cores in each package are being used for an extended period. Unused cores can be idle during this time in order to save power. However, even while the core is idle, both the core and the rest of the package (uncore) continue to consume some power. Another adverse effect of this configuration is that multiple regulators are running at low capacity, which is less efficient than running at full load.

The novel contribution is a method to realize further power savings and increased efficiency in a multi-socket Central Processing Unit (CPU) system with multi-core CPUs. The method is to shift or consolidate loads from underutilized packages to others in order to completely free-up one or more packages to be idled, internally put to sleep, or powered down. More importantly, the system can shut down an entire CPU regulator, saving power while running the remaining one closer to full load; this increases efficiency.

The Operating System (OS) scheduler knows where each thread is running (i.e. what CPU package) and can set policy regarding where loads can be shifted to consolidate into a package. A policy can be set such that if the OS recognizes a potentially underutilized CPU package, it then makes a decision to move the load to another package and then put the entire package in idle state, versus just x num...