IP Library Granted Patent US 7,401,178
Granted Patent B1
US 7,401,178 · App. 10/858,832 · Granted Jul 15, 2008

Expanded memory space in environments including virtual machines

Assignee: Azul Systems, Inc.
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 7,401,178
App. No.
10/858,832
Granted
Jul 15, 2008
Kind
B1
Abstract

Accessing data comprises executing a set of computer instructions in a first environment, wherein the first environment has limited addressing capability to address memory up to a size limit, specifying a set of data in a memory space of a second environment, wherein the memory space has a size that exceeds the size limit, and accessing the set of data from the first environment using the limited addressing capability.

Claims (27)

1. A method of accessing data, comprising:

executing a set of computer instructions in a first environment, wherein the first environment includes a shell virtual machine that has limited addressing capability to address memory up to a size limit and execute computer instructions that are capable of directly addressing memory up to the size limit;

specifying a set of data in a memory space of a second environment, wherein the memory space has a size that exceeds the size limit, the second environment is an environment separate from the first environment, wherein the second environment includes a core virtual machine that has greater addressing capability than the shell virtual machine included in the first environment; and

accessing from the first environment the set of data in the memory space of the second environment, the access includes using the limited addressing capability.

2. A method of accessing data as recited in claim 1 , wherein the first environment is a 32-bit environment and the second environment is a 64-bit environment.

3. A method of accessing data as recited in claim 1 , wherein the first environment and the second environment operate on the same device.

4. A method of accessing data as recited in claim 1 , wherein the first environment and the second environment operate on separate devices.

5. A method of accessing data as recited in claim 1 , further comprising specifying a handle to the set of data.

6. A method of accessing data as recited in claim 1 , wherein accessing the set of data from the first environment includes specifying a handle for the set of data in the first environment.

7. A method of accessing data as recited in claim 1 , further comprising specifying a handle to the set of data and storing the handle in the first environment.

8. A method of accessing data as recited in claim 1 , wherein accessing the set of data from the first environment includes performing a native interface call in the first environment.

9. A method of accessing data as recited in claim 1 , further comprising specifying a handle to the set of data and storing the handle in the first environment, and wherein accessing the set of data from the first environment comprises translating the handle

10. A method of accessing data as recited in claim 1 , wherein accessing the set of data from the first environment includes cooperating with a core virtual machine operating in the second environment.

11. A method of accessing data as recited in claim 1 , wherein specifying the set of data is performed in a virtual machine.

12. A method of accessing data as recited in claim 1 , wherein specifying the set of data is performed in a segmented virtual machine.

13. A method of accessing data as recited in claim 1 , wherein the set of computer instructions include instructions native to the first environment.

14. A method of accessing data as recited in claim 1 , wherein the set of computer instructions target a virtual machine.

15. A method of accessing data as recited in claim 1 , wherein the set of data includes a Java object.

16. A method of accessing data as recited in claim 1 , wherein the set of data is specified by a program in the second environment, wherein the program is able to execute in the first environment without recompiling.

17. A method of accessing data as recited in claim 1 , wherein the set of data is specified by a program in the second environment, wherein the program is able to execute in the first environment without substantial modification to the program.

18. A computer program product for accessing data, the computer program product being embodied in a computer readable storage medium and comprising computer instructions for:

executing a set of computer instructions in a first environment, wherein the first environment includes a shell virtual machine that has limited addressing capability to address memory up to a size limit and execute computer instructions that are capable of directly addressing memory up to the size limit; specifying a set of data in a memory space of a second environment, wherein the memory space has a size that exceeds the size limit, the second environment is an environment separate from the first environment, wherein the second environment includes a core virtual machine that has greater addressing capability than the shell virtual machine included in the first environment; and

accessing from the first environment the set of data in the memory space of the second environment, the access includes using the limited addressing capability.

19. A system for accessing data, comprising:

a shell virtual machine operating in a first environment comprising a first processor, wherein the shell virtual machine has limited addressing capability to address memory up to a size limit and execute computer instructions that are capable of directly addressing memory up to the size limit; and

a core virtual machine operating in a second environment comprising a second processor, wherein:

the core virtual machine is configured to specify a set of data in a memory space of a second environment and to allow access of the set of data from the first environment, wherein the memory space has a size that exceeds the size limit, the second environment is an environment separate from the first environment, and the core virtual machine has greater addressing capability than the shell virtual machine included in the first environment.

Assignments (7)
RELEASE OF SECURITY INTERESTS IN PATENTS RECORDED AT REEL/FRAME 052293/0121 Recorded Dec 3, 2025
From: GOLUB CAPITAL LLC, AS COLLATERAL AGENT
To: AZUL SYSTEMS, INC.
Reel/Frame 073466/0064 →
SECURITY INTEREST Recorded Apr 2, 2020
From: AZUL SYSTEMS, INC.
To: GOLUB CAPITAL LLC, AS COLLATERAL AGENT
Reel/Frame 052293/0121 →
RELEASE OF SECURITY INTEREST Recorded Apr 2, 2020
From: SILICON VALLEY BANK
To: AZUL SYSTEMS, INC.
Reel/Frame 052293/0869 →
RELEASE OF SECURITY INTEREST Recorded Feb 21, 2019
From: PARTNERS FOR GROWTH IV, L.P.
To: AZUL SYSTEMS, INC.
Reel/Frame 048411/0138 →
SECURITY INTEREST Recorded Mar 1, 2016
From: AZUL SYSTEMS, INC.
To: PARTNERS FOR GROWTH IV, L.P.
Reel/Frame 037959/0694 →
SECURITY AGREEMENT Recorded Nov 18, 2009
From: AZUL SYSTEMS, INC.
To: SILICON VALLEY BANK
Reel/Frame 023538/0316 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2004
From: TENE, GIL; ANNAMALAI, SIVAKUMAR
To: AZUL SYSTEMS, INC.
Reel/Frame 015137/0685 →
Continuity (1)
Continuation In Part 1037806100 · Feb 28, 2003