IP Library Granted Patent US 11,724,205
Granted Patent B2
US 11,724,205 · App. 16/889,597 · Granted Aug 15, 2023

Suspending state of cloud-based legacy applications

Inventors: Jacob P. Stine (East Palo Alto, CA); Brian Michael Christopher Watson (San Mateo, CA); Victor Octav Suba Miura (Foster City, CA); Nicholas J. Cardell (Foster City, CA)
A63F13/88A63F13/49A63F13/60A63F2300/209
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 11,724,205
App. No.
16/889,597
Granted
Aug 15, 2023
Kind
B2
Abstract

A snapshot of a game may be generated by a client. At some point, a suspension request is delivered to a computer system. Once the suspension request is received, the computer system will suspend the emulated title. The computer system generates a snapshot of the game by recording the current state of all devices being emulated. The snapshot is then delivered to the client. It is emphasized that this abstract is provided to comply with the rules requiring an abstract that will allow a searcher or other reader to quickly ascertain the subject matter of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims.

Claims (49)

1. In a computer system configured to operate on a network, a method comprising:

a) advancing a state of execution of an application running on a device from a first operation in a sequence of operations to a second operation in the sequence of operations in response to inputs from a remote client device over a network;

b) after receiving a suspension request from the remote client over the network, determining when the application running on the device is in a steady state;

c) generating a snapshot of the application in response to the suspension request from the remote client over the network, wherein the snapshot is a recording of the state of execution of the application running on the device in the steady state, wherein the recording of the state of execution of the application running on the device in steady state includes a state of register values of the device; and

d) delivering the snapshot to the remote client over the network.

2. The method of claim 1 , wherein the state of execution of the application is a steady state in which one or more devices are in the steady state when there are no outstanding disk requests.

3. The method of claim 1 , wherein the state of execution of the application is a steady state in which one or more devices are in the steady state when there is no asynchronous activity.

4. The method of claim 1 , wherein the suspension request is received before the application has advanced to a second state.

5. The method of claim 1 , wherein one or more application inputs are received from the remote client over a period of time.

6. The method of claim 1 , wherein the computer system includes a deterministic emulator.

7. The method of claim 6 , wherein the deterministic emulator uses basic blocks to emulate the application.

8. The method of claim 1 wherein the sequence of operations advances the application from a first state of execution to a second state of execution, wherein the snapshot captures the second state of the state of execution of the application running on the device.

9. A nontransitory computer readable medium containing program instructions wherein execution of the program instructions by one or more processors of a computer system causes the one or more processors to carry out the steps of:

a) advancing a state of execution of an application running on a device from a first operation in a sequence of operations to a second operation in the sequence of operations in response to inputs from a remote client device over a network;

b) after receiving a suspension request from the remote client over the network, determining when the application running on the device is in a steady state;

c) generating a snapshot of the application in response to the suspension request from the remote client over the network, wherein the snapshot is a recording of the state of execution of the application running on the device in the steady state, wherein the recording of the state of execution of the application running on the device in steady state includes a state of register values of the device; and

d) delivering the snapshot to the remote client over the network.

10. A computer system configured to operate on a network, the computer system comprising:

a processor;

a memory coupled to the processor;

one or more instructions embodied in memory for execution by the processor, the instructions being configured to implement a method, the method comprising:

a) advancing a state of execution of an application running on a device from a first operation in a sequence of operations to a second operation in the sequence of operations in response to inputs from a remote client device over a network;

b) after receiving a suspension request from the remote client over the network, determining when the application running on the device is in a steady state;

c) generating a snapshot of the application with the computer system, wherein the snapshot is a recording of the state of execution of the application running on the device in the steady state, wherein the recording of the state of execution of the application running on the device in the steady state includes a state of register values of the device; and

d) delivering the snapshot to the remote client over the network.

11. In a client configured to operate on a network, a method comprising:

a) sending inputs over a network to a remote computer system configured to advance a state of execution of an application running on a device from a first operation in a sequence of operations to a second operation in the sequence of operations,

b) sending a suspension request over the network during execution of the application to the remote computer system executing the application; and

c) receiving a snapshot from the remote computer system wherein the snapshot is a recording of the state of execution of the application running on the device in steady state, wherein the recording of the state of execution of the application running on the device in steady state includes a state of register values of the device

d) resuming the state of execution of the application.

12. The client of claim 11 , wherein the suspension request is delivered to the remote computer system before the remote computer system has advanced the application from the first operation to the second operation.

13. The client of claim 12 , wherein the one or more inputs are automatically generated.

14. The client of claim 12 , wherein the one or more inputs received over a period of time.

15. The client of claim 11 , wherein the remote computer system includes a deterministic emulator.

16. The client of claim 15 , wherein the deterministic emulator uses basic blocks to emulate the application.

17. The method of claim 11 wherein the sequence of operations advances the application from a first state of execution to a second state of execution, wherein the snapshot captures the second state of the state of execution of the application running on the device.

18. A nontransitory computer readable medium containing program instructions wherein execution of the program instructions by one or more processors of a computer system causes the one or more processors to carry out the steps of:

a) sending inputs over a network to a remote computer system configured to advance a state of execution of an application running on a device from a first operation in a sequence of operations to a second operation in the sequence of operations;

b) sending a suspension request over the network to the remote computer system executing the application during execution of the application; and

c) receiving a snapshot from the remote computer system, wherein the snapshot is a recording of the state of execution of the application running on the device in steady state, wherein the recording of the state of execution of the application running on the device in steady state includes a state of register values of the device

d) resuming the state of execution of the application.

19. A client configured to operate on a network, comprising:

a processor;

a memory coupled to the processor;

one or more instructions embodied in memory for execution by the processor, the instructions being configured to implement a method, the method comprising:

a) sending inputs over a network to a remote computer system configured to advance a state of execution of an application running on a device from a first operation in a sequence of operations to a second operation in the sequence of operations;

b) sending a suspension request over the network to the remote computer executing the application during execution of the application; and

c) receiving a snapshot from the remote computer system, wherein the snapshot is a recording of the state of execution of the application running on the device in steady state, wherein the recording of the state of execution of the application running on the device in steady state includes a state of register values of the device

d) resuming the state of execution of the application.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2020
From: STINE, JACOB P.; WATSON, BRIAN MICHAEL CHRISTOPER; SUBA MIURA, VICTOR OCTAV; CARDELL, NICHOLAS J.
To: SONY COMPUTER ENTERTAINMENT INC.
Reel/Frame 052809/0497 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2020
From: SONY COMPUTER ENTERTAINMENT INC.
To: SONY INTERACTIVE ENTERTAINMENT INC.
Reel/Frame 052810/0096 →