Hardware Resource Sharing Optimizer for Streaming Code

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing code generation systems for hardware description languages struggle to optimize code for hardware resource sharing and streaming while maintaining bit true and cycle accurate results, especially when dealing with overclocking constraints and varying computation latencies.

Innovation Solution

A code generation system that includes an integrity checker, intermediate representation generator, optimization engine, and global scheduler, which utilizes streaming and resource sharing optimizers to transform source models into optimized hardware description code, inserting data unbuffer and demultiplexor blocks to share resources without overclocking, and ensures timing alignment through delay balancing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If hardware resources are shared to reduce resource consumption, then hardware resource efficiency is improved, but timing alignment and computation latency may be compromised

Engineering Contradiction:
Improvehardware resource consumptionVSAvoidtiming alignment precision
Core Design Contradiction:
Quantity of substanceVSManufacturing precision

Solution Approach 1:

The system segments the hardware resource sharing problem into multiple independent optimization phases: resource sharing identification, timing analysis, delay calculation, and validation. Each phase handles specific aspects of the contradiction separately, allowing resource sharing to be implemented while timing constraints are systematically managed and validated throughout the transformation process.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary timing analysis and delay calculation before finalizing the resource sharing transformation. By calculating required delays in advance and incorporating them into the transformed model, the system ensures that timing alignment is preserved even when resources are shared, thus resolving the contradiction between resource efficiency and timing precision.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If code is optimized for streaming to improve data flow efficiency, then processing throughput is improved, but bit true and cycle accurate results may be compromised

Engineering Contradiction:
Improvedata flow throughputVSAvoidbit true and cycle accurate precision
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The system implements feedback mechanisms through validation models that compare the behavior of the transformed streaming-optimized model against the original model. This feedback loop ensures that bit true and cycle accurate results are maintained by detecting and correcting any deviations introduced by streaming optimizations, thus resolving the contradiction between throughput improvement and result precision.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system dynamically adjusts the level of streaming optimization applied to different parts of the model based on timing constraints and data flow characteristics. By making the optimization dynamic and adaptive rather than uniform, the system can maximize throughput where safe while preserving bit true and cycle accurate behavior where required, thus resolving the precision-throughput contradiction.

Inventive Principle:
Principle #15Dynamics

3Reliability

If resources are shared without overclocking to maintain timing constraints, then hardware reliability is improved, but resource sharing flexibility is limited

Engineering Contradiction:
Improvetiming constraint adherenceVSAvoidresource sharing flexibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system changes parameters such as delay values, sampling rates, and timing offsets to enable resource sharing while maintaining timing constraints without overclocking. By adjusting these parameters systematically, the system achieves flexible resource sharing that adapts to timing requirements, resolving the contradiction between reliability and flexibility.

Inventive Principle:
Principle #35Parameter changes

4Measurement precision

If the system validates transformed models to ensure bit true results, then result accuracy is improved, but validation time and complexity increase

Engineering Contradiction:
Improvebit true result accuracyVSAvoidvalidation time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system performs partial validation by focusing on critical paths and key timing constraints rather than exhaustive validation of all model behaviors. This selective validation approach maintains bit true result accuracy for the most important aspects while reducing overall validation time and complexity, thus resolving the contradiction between accuracy and time cost.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9710237B1Systems and methods for hardware resource sharing
Publication Date: 2017.07.18 MATHWORKS INC
  • US9710237B1 patent drawing
  • US9710237B1 patent drawing
  • US9710237B1 patent drawing

AI summary

A system and method optimizes hardware description generated from a graphical program or model having oversampling constraints automatically. The system may include a streaming optimizer, a resource sharing optimizer, a delay balancing engine, and a global scheduler. The streaming optimizer may transform vector data paths to scalar or smaller-sized vector data paths. The resource sharing optimizer may replace multiple, functionally equivalent blocks with a single shared block. The delay balancing may insert one or more elements to correct for data path misalignment. The global scheduler may place portions of the program or model into conditional execution sections and create control logic that controls the model sample times or steps that the portions are enabled. A validation model, a report, or hardware description code that utilizes fewer hardware resources may be generated from a modified version of the model that is created.