Software-Hardware Benchmarking for Real-Time Processor Selection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing benchmarks are inadequate for accurately estimating the real-time performance of specific software applications on particular hardware systems, as they are generally designed to measure hardware performance rather than software-specific requirements, making it difficult to determine the optimal hardware processor for real-time systems.
Innovation Solution
A system and method that generates unique performance benchmarks for specific computer object code running on designated hardware microprocessors, allowing for the identification of optimal hardware processors for code modules and selecting the best software modules for deployment by analyzing instruction execution patterns and processor-specific timing data.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If generalized hardware benchmarks are used to measure processor performance, then hardware performance can be characterized, but software-specific real-time performance requirements cannot be accurately assessed
Solution Approach 1:
The patent segments the benchmarking process into distinct components: instruction mix analysis, timing data collection, and performance calculation. By breaking down the monolithic benchmark into measurable segments (instruction frequency, cycle counts, memory access patterns), the system achieves precise software-specific performance measurement while maintaining adaptability across different applications
Solution Approach 2:
The patent changes the parameters being measured from general hardware metrics (raw processing speed) to software-specific parameters (instruction mix distribution, actual execution timing, memory access patterns). This parameter transformation enables accurate assessment of real-time software performance while adapting to diverse application requirements through customizable measurement sets
2Measurement precision
If custom performance benchmarks are generated for specific software-hardware combinations, then accurate real-time performance estimation is achieved, but the complexity of the benchmarking system increases
Solution Approach 1:
The benchmarking system performs self-service by automatically collecting timing data from the actual hardware platform, analyzing the software's instruction mix, and generating performance metrics without requiring manual configuration. The system services itself by using the target hardware to benchmark the target software, reducing external complexity while maintaining high measurement precision
Solution Approach 2:
The patent introduces an intermediary benchmarking layer that sits between the software and hardware, collecting timing data and instruction information without requiring direct modification of either. This intermediary approach simplifies the overall system by providing a standardized interface that translates complex hardware-software interactions into measurable performance metrics
3Productivity
If generalized benchmarks measure only hardware performance, then processor capabilities can be characterized, but the interaction between software and hardware cannot be evaluated
Solution Approach 1:
The patent performs preliminary analysis of the software's instruction mix and execution patterns before conducting the actual performance measurement. By pre-identifying critical instruction sequences, memory access patterns, and timing characteristics, the system captures complete software-hardware interaction data that would otherwise be lost in generic benchmarks, enabling accurate productivity assessment
Data Source
Figure 1
Figure 2A~2B
Figure 3~4
AI summary
A system and method determines a unique performance benchmark for specific computer object code for a particular microprocessor. By generating multiple unique benchmarks for a single, same code module on multiple different processors, the method determines which processor is optimal for the code module. By generating for a single designated processor a performance benchmark for each code modules of multiple modules, where the multiple modules have a same/similar functionality but variations in detailed code or algorithms, the system and method identifies code variation(s) which is/are optimal for the single designated processor. The system and method may entail first extracting selected features of object code (as actually executed) into a code profile, and then generating the performance benchmark based on the code profile and in machine-level timing data for the selected microprocessor. In this way, code security is achieved by fire-walling the object code from the second stage of the method.