Processor Operating Point Optimization via Post-Distribution Profiling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing profiling methods do not provide for improved performance of computer programs after they have been distributed to end users, as they are limited to pre-distribution optimization and do not account for post-distribution usage patterns.
Innovation Solution
A method where statistical data from program execution is gathered from multiple programmable devices, uploaded to a central profiling apparatus, and used to assign operating points that optimize power supply voltages and clock frequencies, allowing for dynamic adjustment based on user-driven execution states.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If profiling is performed only before program distribution, then program optimization can be achieved for initial release, but no performance improvement can be provided after distribution to end users
Solution Approach 1:
The system performs preliminary profiling actions by embedding instrumentation code in the distributed program that automatically collects execution statistics from multiple end-user devices. This preliminary data collection enables subsequent optimization iterations without requiring manual intervention, resolving the contradiction by enabling post-distribution performance improvement while maintaining the initial distribution timeline.
Solution Approach 2:
The invention implements a feedback loop where execution profiles collected from multiple devices are analyzed to generate optimized versions of the program, which are then redistributed to users. This continuous feedback mechanism enables ongoing performance optimization after distribution, transforming the one-time pre-distribution optimization into an iterative improvement process that adapts to real-world usage patterns.
2Reliability
If statistical data is collected from multiple devices during user-driven execution, then a broad range of operation conditions can be captured, but data collection and processing complexity increases
Solution Approach 1:
The profiling system uses a standardized instrumentation approach that can be universally applied across multiple different devices and execution conditions. The same profiling code structure collects data from various sources (CPU usage, memory access, I/O operations) in a unified manner, enabling comprehensive data collection without proportionally increasing system complexity. This universal profiling framework resolves the contradiction by capturing diverse operational conditions through a scalable, standardized mechanism.
Data Source
AI summary
A program is executed with a first programmable device (10). Device operating points such as power supply voltage and/or clock frequency are adapted dependent on the states reached by the device during execution. Operation of programs that may have been sold after the device has been supplied to users is optimized by executing the computer program on each of a plurality of programmable devices (10) like the first programmable device, and collecting statistical data associated with the execution states encountered during execution by the plurality of programmable devices (10). Each of the plurality of programmable devices (10) collects its own statistical data and uploads the collected information to a common profiling apparatus (14). The profiling apparatus assigns device operating points to respective ones of the execution states, using an optimization that depends on the combined statistical data from the plurality of programmable devices (10). Subsequently the device operating points of the first programmable device (10) are set in the respective execution states to the assigned device operating points.

