Multi-processor systems include many types of processors. The processors of a server are often housed together in a single structure, creating high-density systems with a modular architecture that ensures flexibility and scalability. Thus, this modular architecture reduces space requirements. Server processors, along with storage, networking and other types of processors, are typically installed in a common enclosure, or chassis, that hosts multiple processors that share common resources such as cabling, power supplies, and cooling fans.
Multi-processor systems create challenging engineering problems, due largely in part to heat produced by the processors and limited space in the chassis. Typically, multi-processor systems are limited by an underlying power and thermal envelope. For example, a chassis that hosts a multi-processor system may only be designed to utilize a limited number of watts. That is, the chassis can only consume so much power and is limited in the amount of airflow that is available to cool the processors in the chassis.
Engineering challenges occur in optimizing the tradeoff between performance and thermal and power requirements. In a multi-processor system multiple processors, each representing a separate system, are present in the same chassis. Associated with the chassis are a specific set of power and thermal requirements. Specifically, these requirements put a limit on the amount of power that can be consumed by the respective processors. Known power limiting strategies include powering down a CPU functional unit, e.g., a floating-point unit or an on-die cache, or trading off speed for reduced power consumption in a hard drive.
This power limitation puts a constraint on the frequency that the processors can run, and thus, limits the performance. In addition, the processors in a system are usually all configured to operate at the same frequency. This further limits the ability for the individual processors to operate at optimal performance and capacity.
Prior solutions run all the processors at a performance level less than their maximum in order to meet the overall chassis power and thermal cooling budget. A disadvantage associated with this solution is that the performance of each processor is degraded or diminished to fall within these budgets. For example, if the ability of the chassis to cool is limited to X and there are Y processors, each processor can only contribute approximately X/Y to the dissipated power in the chassis. Thus, each processor is limited to the performance associated with an X/Y power level.
Another solution has been to add a plurality of loud, space-consuming fans that require expensive control circuitry. These cooling systems increase the cost of the multi-processor system, leave less space for other features within the chassis for other features, and run a higher risk for failures and increased downtime. Other solutions have included limiting the number of I/O cards in the multi-processor system, as well as restricting the number of other use features. A further solution has been to reduce the power budget available for other features in the multi-processor system.
What is needed is a method for optimizing the performance of a multi-processor system by modulating the voltage of the processors within the system in conjunction with the frequency of the processors to increase the thermal and power benefit of the multi-processor system.