Dispatch Mechanism Using UCB for Heterogeneous Co-Processor Instruction Translation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In multi-processor systems, maintaining cache coherency between heterogeneous processors with different instruction sets is challenging, leading to inefficiencies in dispatching instructions and processing tasks, as traditional cache coherency protocols do not apply across processors with distinct instruction sets.
Innovation Solution
A dispatch mechanism is implemented that uses a user command block (UCB) for storing instructions intended for a dynamically reconfigurable co-processor, allowing the co-processor to process instructions with its own set, while the host processor handles instructions with its fixed instruction set, leveraging cache coherency to facilitate efficient task distribution and processing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If traditional cache coherency protocols are used in multi-processor systems, then cache coherency can be maintained between homogeneous processors, but the system cannot efficiently support heterogeneous processors with different instruction sets
Solution Approach 1:
The patent introduces a co-processor with a translation layer that mediates between the host processor's instruction set and the co-processor's different instruction set. The co-processor receives instructions from the host processor, translates them into its native instruction set, and executes them, thereby enabling efficient communication and task execution between heterogeneous processors without requiring complex system-wide protocol changes
Solution Approach 2:
The patent divides the processing system into distinct segments: the host processor with its fixed instruction set, and the co-processor with its own instruction set and translation capability. This segmentation allows each processor to operate independently with its optimized instruction set while the co-processor handles translation for specific tasks, improving overall system versatility without compromising instruction dispatch efficiency
2Adaptability or versatility
If a fixed instruction set is used in the host processor, then the processor architecture remains simple and stable, but the system cannot dynamically adapt to different processing requirements
Solution Approach 1:
The co-processor acts as an intermediary that provides dynamic instruction set adaptation without modifying the host processor's fixed architecture. The co-processor maintains a library of different instruction sets and selectively translates host processor instructions into the appropriate co-processor instruction set based on the task requirements, enabling dynamic adaptability while keeping the host processor architecture simple and stable
Solution Approach 2:
The co-processor implements dynamic instruction set selection and translation capabilities, allowing the system to adapt to different processing requirements in real-time. The co-processor can dynamically load and switch between different instruction set implementations based on the specific task at hand, providing flexibility without requiring the host processor to maintain multiple fixed instruction sets
Data Source
AI summary
A dispatch mechanism is provided for dispatching instructions of an executable from a host processor to a heterogeneous co-processor. According to certain embodiments, cache coherency is maintained between the host processor and the heterogeneous co-processor, and such cache coherency is leveraged for dispatching instructions of an executable that are to be processed by the co-processor. For instance, in certain embodiments, a designated portion of memory (e.g., “UCB”) is utilized, wherein a host processor may place information in such UCB and the co-processor can retrieve information from the UCB (and vice-versa). The UCB may thus be used to dispatch instructions of an executable for processing by the co-processor. In certain embodiments, the co-processor may comprise dynamically reconfigurable logic which enables the co-processor's instruction set to be dynamically changed, and the dispatching operation may identify one of a plurality of predefined instruction sets to be loaded onto the co-processor.


