Thread Weave for Cross-ISA Procedure Calls Across Heterogeneous Processors
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Generating code for heterogeneous multiprocessors with different instruction set architectures is complex due to binary incompatibilities and transition complexities, making it difficult for programmers to focus on functional correctness using conventional high-level computer languages.
Innovation Solution
A method involving storing an application with multiple functions, compiling it to different processors, pruning unnecessary functions, proxy inserting remote procedure calls, and renaming sections to create a common application library, allowing seamless transitions between processors.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If code is compiled separately for heterogeneous processors with different ISAs, then each processor can execute optimized code, but the complexity of managing binary incompatibilities and transition boundaries increases
Solution Approach 1:
The patent introduces a common application library as an intermediary layer between the high-level application code and the heterogeneous processor ISAs. This library serves as a mediator that handles the complexity of binary incompatibilities and transition boundaries, allowing seamless code generation for multiple processors without requiring the programmer to directly manage ISA differences.
Solution Approach 2:
The patent segments the application into a high-level application layer and a separate common application library layer. This segmentation allows the application code to remain independent of ISA details while the library handles the complex compilation and transition management for different processors, reducing overall system complexity.
2Productivity
If procedure calls transition between threads at processor boundaries, then workload can be distributed across heterogeneous cores, but the difficulty of maintaining functional correctness increases
Solution Approach 1:
The patent changes the fundamental parameter of code organization from processor-specific compilation to a unified common application library approach. This parameter change allows procedure calls to transition between threads at processor boundaries while maintaining functional correctness, as the library ensures consistent interface definitions and calling conventions across all ISAs.
3Productivity
If separate libraries are used for different ISAs, then each processor can have optimized code, but the programmer must deal with multiple incompatible binary interfaces
Solution Approach 1:
The patent creates a universal common application library that serves multiple processor ISAs simultaneously. This single library provides multi-functional support by compiling to different ISAs while maintaining consistent binary interfaces, eliminating the need for separate incompatible libraries and simplifying interface management across heterogeneous processors.
Data Source
AI summary
The invention provides a method of initiating code including (i) storing an application having first, second and third functions, the first function being a main function that calls the second and third functions to run the application, (ii) compiling the application to first and second heterogeneous processors to create first and second central processing unit (CPU) instruction set architecture (ISA) objects respectively, (iii) pruning the first and second CPU ISA objects by removing the third function from the first CPU ISA objects and removing first and second functions from the second CPU ISA objects, (iv) proxy inserting first and second remote procedure calls (RPC's) in the first and second CPU ISA objects respectively, and pointing respectively to the third function in the second CPU ISA objects and the second function in the first CPU ISA objects, and (v) section renaming the second CPU ISA objects to common application library.


