IP Library Granted Patent US 10,623,479
Granted Patent B2
US 10,623,479 · App. 16/209,842 · Granted Apr 14, 2020

Selective migration of resources or remapping of virtual processors to provide access to resources

Inventor: Isaac R. Nassi (Los Gatos, CA)
Assignee: TidalScale, Inc.
H04L67/10G06F9/455G06F9/5077G06F9/4856G06F9/5011G06F2009/45583
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,623,479
App. No.
16/209,842
Granted
Apr 14, 2020
Kind
B2
Abstract

Selective resource migration is disclosed. A computer system includes physical memory and a plurality of physical processors. Each of the processors has one or more cores and each core instantiates one or more virtual processors that executes program code. Each core is configured to invoke a hyper-kernel on its hosting physical processor when the core cannot access a portion of the physical memory needed by the core. The hyper-kernel selectively moves the needed memory closer to a location accessible by the physical processor or remaps the virtual processor to another core.

Claims (38)

1. A computer system, comprising:

one or more I/O devices;

physical memory; and

a plurality of physical nodes, wherein an operating system is run collectively across the plurality of physical nodes;

wherein each physical node includes one or more physical processors, and wherein each physical processor has one or more cores, and wherein each core has one or more hyperthreads;

wherein each core or hyperthread instantiates one or more virtual processors, wherein a virtual processor comprises a computing engine visible to the operating system run collectively across the plurality of physical nodes;

wherein each core or hyperthread is configured to invoke a hyper-kernel on its hosting physical processor when the core or hyperthread cannot access a resource needed by the core or hyperthread, the needed resource comprising at least one of: (1) a portion of the physical memory needed by the core or hyperthread, and (2) an I/O resource needed by the core or hyperthread; and

wherein the hyper-kernel remaps the virtual processor to another core or hyperthread that can access the needed resource.

2. The computer system of claim 1 wherein remapping the virtual processor comprises transferring a continuation to a remote node, wherein the continuation comprises a representation of a state of the virtual processor.

3. The computer system of claim 2 wherein the hyper-kernel provides the remote node with information usable to build the continuation.

4. The computer system of claim 2 wherein when the remote node is in possession of the needed resource, the continuation is placed in a hierarchical data structure usable to schedule execution of the continuation.

5. The computer system of claim 2 wherein when the remote node needs additional resources to handle the continuation, the continuation is placed in an event table local to the remote node.

6. A method, comprising:

receiving, at a hyper-kernel on a hosting physical processor, an indication that a core or hyperthread which instantiates one or more virtual processors cannot access a resource needed by the core or hyperthread, the needed resource comprising at least one of: (1) a portion of a physical memory needed by the core or hyperthread, and (2) an I/O resource needed by the core or hyperthread; and

remapping, by the hyper-kernel, the virtual processor to another core or hyperthread that can access the needed resource.

7. The method of claim 6 wherein remapping the virtual processor comprises transferring a continuation to a remote node, wherein the continuation comprises a representation of a state of the virtual processor.

8. The method of claim 7 wherein the hyper-kernel provides the remote node with information usable to build the continuation.

9. The method of claim 7 wherein when the remote node is in possession of the needed resource, the continuation is placed in a hierarchical data structure usable to schedule execution of the continuation.

10. The method of claim 7 wherein when the remote node needs additional resources to handle the continuation, the continuation is placed in an event table local to the remote node.

11. A computer system, comprising:

one or more I/O devices;

physical memory; and

a plurality of physical nodes, wherein an operating system is run collectively across the plurality of physical nodes;

wherein each physical node includes one or more physical processors, and wherein each physical processor has one or more cores, and wherein each core has one or more hyperthreads;

wherein each core or hyperthread instantiates one or more virtual processors, wherein a virtual processor comprises a computing engine visible to the operating system run collectively across the plurality of physical nodes;

wherein each core or hyperthread is configured to invoke a hyper-kernel on its hosting physical processor when the core or hyperthread cannot access a resource needed by the core or hyperthread, the needed resource comprising at least one of: (1) a portion of the physical memory needed by the core or hyperthread, and (2) an I/O resource needed by the core or hyperthread; and

wherein the hyper-kernel moves the needed resource to a location accessible by the hosting physical processor.

12. The computer system of claim 11 wherein the hyper-kernel requests the needed resource at least in part by sending a message to a remote node.

13. The computer system of claim 12 wherein the hyper-kernel determines the remote node based at least in part on a resource map.

14. The computer system of claim 11 wherein the hyper-kernel generates a continuation, and wherein the continuation comprises a representation of the virtual processor.

15. The computer system of claim 14 wherein the hyper-kernel places the continuation in an event table.

16. A method, comprising:

receiving, at a hyper-kernel on a hosting physical processor, an indication that a core or hyperthread which instantiates one or more virtual processors cannot access a resource needed by the core or hyperthread, the needed resource comprising at least one of: (1) a portion of a physical memory needed by the core or hyperthread, and (2) an I/O resource needed by the core or hyperthread; and

moving, by the hyper-kernel, the needed resource to a location accessible by the hosting physical processor.

17. The method of claim 16 wherein the hyper-kernel requests the needed resource at least in part by sending a message to a remote node.

18. The method of claim 17 wherein the hyper-kernel determines the remote node based at least in part on a resource map.

19. The method of claim 16 wherein the hyper-kernel generates a continuation, and wherein the continuation comprises a representation of the virtual processor.

20. The method of claim 19 wherein the hyper-kernel places the continuation in an event table.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 5, 2023
From: TIDALSCALE, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 062282/0452 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 060724/0458 Recorded Dec 30, 2022
From: COMERICA BANK
To: TIDALSCALE, INC.
Reel/Frame 062252/0199 →
RELEASE OF SECURITY INTEREST Recorded Dec 15, 2022
From: COMERICA BANK
To: TIDALSCALE, INC.
Reel/Frame 062108/0963 →
SECURITY INTEREST Recorded Aug 4, 2022
From: TIDALSCALE, INC.
To: COMERICA BANK
Reel/Frame 060724/0458 →
Continuity (5)
Continuation 15429638 · Feb 10, 2017
Continuation 14880132 · Oct 9, 2015
Continuation 13830094 · Mar 14, 2013
Provisional Application 61692648 · Aug 23, 2012
Related Publication 20190190984A1 · Jun 20, 2019
Cited By (1)
US 12,346,249