Master and subordinate operating system kernels for heterogeneous multiprocessor systems
First Claim
1. A computer-executable method for a computing system that includes an operating system and multiple heterogeneous processors, comprising:
- establishing communication between the multiple heterogeneous processors for managing resources associated with the multiple heterogeneous processors, the multiple heterogeneous processors including a first subset of processors executing an operating system and an operating system kernel, and a second subset of processors executing a subordinate kernel agent;
allocating, by the subordinate kernel agent executing on the second subset of the multiple heterogeneous processors, a plurality of processes of a software application among resources of the second subset of the multiple heterogeneous processors; and
directing, by an application binary interface (ABI) shim executing on the second subset of the multiple heterogeneous processors, a call from the software application for one of the resources to the subordinate kernel based on a determination by the ABI shim that the subordinate kernel manages the one of the resources.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods establish communication and control between various heterogeneous processors in a computing system so that an operating system can run an application across multiple heterogeneous processors. With a single set of development tools, software developers can create applications that will flexibly run on one CPU or on combinations of central, auxiliary, and peripheral processors. In a computing system, application-only processors can be assigned a lean subordinate kernel to manage local resources. An application binary interface (ABI) shim is loaded with application binary images to direct kernel ABI calls to a local subordinate kernel or to the main OS kernel depending on which kernel manifestation is controlling requested resources.
-
Citations
20 Claims
-
1. A computer-executable method for a computing system that includes an operating system and multiple heterogeneous processors, comprising:
-
establishing communication between the multiple heterogeneous processors for managing resources associated with the multiple heterogeneous processors, the multiple heterogeneous processors including a first subset of processors executing an operating system and an operating system kernel, and a second subset of processors executing a subordinate kernel agent; allocating, by the subordinate kernel agent executing on the second subset of the multiple heterogeneous processors, a plurality of processes of a software application among resources of the second subset of the multiple heterogeneous processors; and directing, by an application binary interface (ABI) shim executing on the second subset of the multiple heterogeneous processors, a call from the software application for one of the resources to the subordinate kernel based on a determination by the ABI shim that the subordinate kernel manages the one of the resources. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A computing system, comprising:
-
multiple heterogeneous processors; an operating system executable by a first subset of the multiple heterogeneous processors; a multiple-processor manager configured to establish communication between the multiple heterogeneous processors for managing computing resources among the multiple heterogeneous processors, wherein the operating system is configured to allocate processes of a software application among different ones of the multiple heterogeneous processors; a subordinate kernel agent of the operating system, executable by a second subset of the multiple heterogeneous processors, and configured to initiate a process of the software application on the second subset of the multiple heterogeneous processors upon reception of an instruction from the operating system; and an application binary interface shim (ABI) including an application binary executable by the second subset of the multiple heterogeneous processors, the ABI shim configured to determine a locality of a particular resource'"'"'s management, the ABI shim further configured to direct a call to one of a kernel of the operating system and the subordinate kernel agent based on the determined locality. - View Dependent Claims (18)
-
-
19. A computer-executable method, comprising:
-
enabling communication between an operating system and a plurality of heterogeneous processors, the plurality of heterogeneous processors configured to perform operating system services for processes of a software application; assigning the processes of the software application among the plurality of heterogeneous processors; and loading an application binary interface (ABI) shim on a subset of the plurality of heterogeneous processors, the ABI shim configured to determine a locality of a resource'"'"'s managing entity, and to direct, based on the determined locality, a call relating to the resource to one of a subordinate kernel agent executing on the subset of the plurality of heterogeneous processors and an operating system kernel executing on another subset of the plurality of heterogeneous processors. - View Dependent Claims (20)
-
Specification