Instruction Decoder Switching Dedicated Hardware Software Routines

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Data processing systems with dedicated function hardware often require software emulation when the coprocessor is absent, leading to inefficiencies and limited flexibility in processing operations.

Innovation Solution

An apparatus and method that allows switching between dedicated function hardware and software routines using an instruction decoder responsive to a software processing flag, enabling flexible data processing with low overhead, even when dedicated hardware is present.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If dedicated function hardware is provided to perform specific processing functions, then processing speed and efficiency for dedicated operations is improved, but flexibility and adaptability to perform different processing operations is reduced

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidprocessing flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The system combines dedicated function hardware with a general purpose processor that can execute software routines. The instruction decoder is modified to recognize end instructions and software processing flags, enabling the same processing pipeline to operate in both dedicated hardware mode and software emulation mode. This multi-functionality allows the system to maintain high processing efficiency for dedicated operations while gaining the flexibility to perform different processing operations through software emulation when needed.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Reliability

If software emulation is used when coprocessor is absent, then system compatibility is maintained, but processing performance and efficiency deteriorates

Engineering Contradiction:
Improvesystem compatibilityVSAvoidprocessing performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system dynamically switches between dedicated hardware execution and software emulation based on the presence and capability of the coprocessor. The instruction decoder monitors the software processing flag and end instructions to determine the execution mode. When dedicated hardware is available, the system uses it for optimal performance. When the coprocessor is absent or unavailable, the system automatically falls back to software emulation, maintaining compatibility while optimizing performance based on available hardware resources.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If the instruction decoder is modified to recognize end instructions and software processing flags, then switching flexibility between hardware and software modes is improved, but device complexity increases

Engineering Contradiction:
Improvemode switching capabilityVSAvoidinstruction decoder complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system merges the dedicated function hardware execution path with the general purpose processor software execution path through a unified instruction decoder. By combining the recognition of end instructions and software processing flags into the existing instruction decoder, the system achieves mode switching capability without requiring separate decoding mechanisms. This integration minimizes the increase in device complexity while enabling flexible switching between hardware and software execution modes.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9417877B2Switching between dedicated function hardware and use of a software routine to generate result data
Publication Date: 2016.08.16 ARM LTD
  • US9417877B2 patent drawing
  • US9417877B2 patent drawing
  • US9417877B2 patent drawing

AI summary

An apparatus for processing data 2 is provided including processing circuitry 24 controlled by an instruction decoder 20 in response to a stream of program instructions. There is also provided dedicated function hardware 12 configured to receive output data from the processing circuitry and to perform a dedicated processing operation. The instruction decoder 20 is responsive to an end instruction 54 and a software processing flag (blend_shade_enabled) to control the processing circuitry to end a current software routine, to generate output data and in dependence upon the software processing flag either trigger processing of the output data by the dedicated function hardware or trigger the processing circuitry to perform a further software routine upon the output data to generate software generated result data instead of hardware generated result data as generated by the dedicated hardware circuitry.