Patents Assigned to Azul Systems
  • Patent number: 8589920
    Abstract: A technique for executing a segmented virtual machine (VM) is disclosed. A plurality of core VMs is implemented in a plurality of core spaces. Each core VM is associated with one of a plurality of shell VMs. Resources of the core spaces are allocated among the core VMs.
    Type: Grant
    Filed: September 25, 2009
    Date of Patent: November 19, 2013
    Assignee: Azul Systems, Inc.
    Inventors: Gil Tene, Shyam Prasad Pillalamarri
  • Patent number: 8572605
    Abstract: Stitching a proxied connection between a first core virtual machine (VM) and a second core VM is disclosed. Stitching includes determining that a stitched connection should be generated between the first core VM and the second core VM and generating the stitched connection between the first core VM and the second core VM.
    Type: Grant
    Filed: April 28, 2005
    Date of Patent: October 29, 2013
    Assignee: Azul Systems, Inc.
    Inventors: Gil Tene, Shyam Prasad Pillalamarri
  • Patent number: 8544020
    Abstract: Preempting the execution of a thread is disclosed. Preempting includes receiving an indication that a preemption of the thread is desired and context switching the thread out at a thread safe point in the event that a thread safe point is reached.
    Type: Grant
    Filed: September 14, 2005
    Date of Patent: September 24, 2013
    Assignee: Azul Systems, Inc.
    Inventors: Gil Tene, Michael A. Wolf, Scott Sellers, Jack H. Choquette
  • Patent number: 8452938
    Abstract: Memory management includes identifying a region of virtual memory to be reclaimed, the region including at an object that is currently located at an original virtual memory location, and the region being supported by at least a portion of a memory resource; relocating the object from the original virtual memory location to a target virtual memory location; remapping one or more references to the object to the target virtual memory location; and releasing the portion of the memory resource prior to or contemporaneously with remapping the one or more references to the target location.
    Type: Grant
    Filed: April 8, 2008
    Date of Patent: May 28, 2013
    Assignee: Azul Systems, Inc.
    Inventors: Gil Tene, Michael A. Wolf
  • Patent number: 8356297
    Abstract: Interacting with an external environment of a segmented virtual machine is disclosed. An indication that a communication with an external environment is desired is received. It is determined whether the communication can be initiated directly from a core virtual machine of the segmented virtual machine without initiating the communication from a shell virtual machine of the segmented virtual machine. An attempt to initiate the communication is made based as at least in part on the determination.
    Type: Grant
    Filed: March 21, 2007
    Date of Patent: January 15, 2013
    Assignee: Azul Systems, Inc.
    Inventors: Ivan Posva, Daniel Dwight Grove, Anirban Sengupta, Sivakumar Annamalai, Gil Tene
  • Patent number: 8336048
    Abstract: Providing data to an application running on a segmented virtual machine (VM) is disclosed. Providing data includes opening an interface between the segmented VM and an external data source, transferring data from the external data source to an interface buffer, transferring a first selected amount of data from the interface buffer to a shell VM buffer, transferring a second selected amount of data from the shell VM buffer to a core VM buffer, and providing portions of the data from the core VM buffer to the application in response to read requests from the application.
    Type: Grant
    Filed: December 5, 2008
    Date of Patent: December 18, 2012
    Assignee: Azul Systems, Inc.
    Inventors: Gil Tene, Michael A. Wolf, Anirban Sengupta, Sivakumar Annamalai, Adrian Sun
  • Patent number: 8276138
    Abstract: Providing data to an application running on a segmented virtual machine (VM) is disclosed. Providing data includes opening an interface between the segmented VM and an external data source, transferring data from the external data source to an interface buffer, transferring a first selected amount of data from the interface buffer to a shell VM buffer, transferring a second selected amount of data from the shell VM buffer to a core VM buffer, and providing portions of the data from the core VM buffer to the application in response to read requests from the application.
    Type: Grant
    Filed: December 5, 2008
    Date of Patent: September 25, 2012
    Assignee: Azul Systems, Inc.
    Inventors: Gil Tene, Michael A. Wolf, Anirban Sengupta, Sivakumar Annamalai, Adrian Sun
  • Patent number: 8230271
    Abstract: Detecting a race condition is disclosed. An indication of a store operation to a memory address is received. An identifier of the memory address is stored. The identifier is used to detect an occurrence of a memory operation that is not associated with a previous ordering operation.
    Type: Grant
    Filed: October 22, 2010
    Date of Patent: July 24, 2012
    Assignee: Azul Systems, Inc.
    Inventors: Daniel Dwight Grove, Ivan Posva, Jack H. Choquette, Cliff N. Click, Jr., Jeffrey Gee
  • Patent number: 8108628
    Abstract: Instruction execution includes fetching an instruction that comprises a first set of one or more bits identifying the instruction, and a second set of one or more bits associated with a first address value. It further includes executing the instruction to determine whether to perform a trap, wherein executing the instruction includes selecting from a plurality of tests at least one test for determining whether to perform a trap and carrying out the at least one test.
    Type: Grant
    Filed: February 12, 2010
    Date of Patent: January 31, 2012
    Assignee: Azul Systems, Inc.
    Inventors: Jack H. Choquette, Gil Tene, Michael A. Wolf
  • Patent number: 8099651
    Abstract: A memory system provides data error detection and correction and address error detection. A cyclical-redundancy-check (CRC) code generates address check bits. A 32-bit address is compressed to 6 address check bits using the CRC code. The 6 address check bits are concatenated with 64 data bits and 2 flag bits to generate a 72-bit check word. The 72-bit check word is input to an error-correction code (ECC) generator that generates 12 check bits that are stored in memory with the 64 data bits. A 76-bit memory module can store the 64 data and 12 check bits. Nibble errors can be corrected, and all nibble+1 bit errors can be detected. Also, a 6-bit error in a sequence of bits can be detected. This allows all errors in the 6-bit CRC of the address to be detected. The CRC code and ECC are ideal for detecting double-bit errors common with multiplexed-address DRAMs.
    Type: Grant
    Filed: June 4, 2008
    Date of Patent: January 17, 2012
    Assignee: Azul Systems, Inc.
    Inventors: Kevin B. Normoyle, Robert G. Hathaway
  • Publication number: 20110321064
    Abstract: Handling a virtual method call includes extracting, from a pointer to an object, an identifier associated with the class of the object, the pointer to the object being associated with the virtual method call, and the identifier being embedded within the pointer; using the identifier to obtain a virtual method table, including locating a first entry in a class identifier table mapping a plurality of class identifiers to a corresponding plurality of class data, the first entry being associated with the identifier and comprising the virtual method table or a pointer used to obtain the virtual method table; locating a second entry in the virtual method table, the second entry being associated with the virtual method call; and jumping to an address associated with the second entry to execute code at the address.
    Type: Application
    Filed: September 7, 2011
    Publication date: December 29, 2011
    Applicant: AZUL SYSTEMS, INC.
    Inventors: Gil Tene, Cliff N. Click, JR., Murali Sundaresan, Michael A. Wolf
  • Publication number: 20110302594
    Abstract: Determining a class of an object is disclosed. A pointer of the object is obtained. One or more bits that are not implemented as address bits are extracted from the pointer. The one or more bits are interpreted as an identifier of the class of the object. The class of the object is determined to correspond to the identifier.
    Type: Application
    Filed: June 9, 2011
    Publication date: December 8, 2011
    Applicant: AZUL SYSTEMS, INC.
    Inventors: Gil Tene, Murali Sundaresan, Michael A. Wolf
  • Patent number: 8046544
    Abstract: A computer system includes a processor; and a memory coupled to the processor, configured to provide the processor with a plurality of instructions including a set of garbage collection instructions configured to perform one or more garbage collection barrier operations and a subsequent instruction that immediately follows the garbage collection instruction; wherein the processor is configured to execute the set of garbage collection instructions, including by: evaluating a memory reference to determine a condition associated with the set of garbage collection instructions; and in the event that the condition is met, while maintaining the same privilege level, saving information that is based at least in part on the current value of a program counter, and setting the program counter to correspond to a target location that is other than the location of the subsequent instruction.
    Type: Grant
    Filed: November 25, 2009
    Date of Patent: October 25, 2011
    Assignee: Azul Systems, Inc.
    Inventors: Cliff N. Click, Jr., Gil Tene, Michael A. Wolf
  • Patent number: 8041926
    Abstract: Executing a block of code is disclosed. Executing includes receiving an indication that the block of code is to be executed using a synchronization mechanism and speculatively executing the block of code on a virtual machine. The block of code may include application code. The block of code does not necessarily indicate that the block of code should be speculatively executed.
    Type: Grant
    Filed: October 6, 2010
    Date of Patent: October 18, 2011
    Assignee: Azul Systems, Inc.
    Inventors: Gil Tene, Michael A. Wolf
  • Patent number: 8037482
    Abstract: Reaching a determination associated with a class of an object is disclosed. An identifier associated with the class of the object is extracted from a pointer to the object. The extracted identifier is compared to a comparison value. At least in part using a result of the comparison a determination is reached.
    Type: Grant
    Filed: December 6, 2005
    Date of Patent: October 11, 2011
    Assignee: Azul Systems, Inc.
    Inventors: Gil Tene, Cliff N. Click, Jr., Murali Sundaresan, Michael A. Wolf
  • Patent number: 7987473
    Abstract: Determining a class of an object is disclosed. A pointer of the object is obtained. One or more bits that are not implemented as address bits are extracted from the pointer. The one or more bits are interpreted as an identifier of the class of the object. The class of the object is determined to correspond to the identifier.
    Type: Grant
    Filed: September 14, 2005
    Date of Patent: July 26, 2011
    Assignee: Azul Systems, Inc.
    Inventors: Gil Tene, Murali Sundaresan, Michael A. Wolf
  • Patent number: 7975114
    Abstract: Managing memory comprises execute a mutator comprising a plurality of mutator threads, and concurrently execute a garbage collector. Each of the plurality of mutator threads is separately stopped and notified, and is interrupted at a respective safepoint. In some cases executing the garbage collector includes remapping one or more references to one or more objects in an existing from-space, releasing the existing from-space, relocating one or more live objects that currently reside in a new from-space to one or more corresponding new locations, and identifying a set of one or more candidate pages suitable for forming next from-space during next garbage collection iteration.
    Type: Grant
    Filed: May 5, 2008
    Date of Patent: July 5, 2011
    Assignee: Azul Systems, Inc.
    Inventors: Gil Tene, Michael A. Wolf
  • Publication number: 20110093684
    Abstract: Executing a block of code is disclosed. Executing includes receiving an indication that the block of code is to be executed using a synchronization mechanism and speculatively executing the block of code on a virtual machine. The block of code may include application code. The block of code does not necessarily indicate that the block of code should be speculatively executed.
    Type: Application
    Filed: October 6, 2010
    Publication date: April 21, 2011
    Applicant: AZUL SYSTEMS, INC.
    Inventors: Gil Tene, Michael A. Wolf
  • Publication number: 20110041015
    Abstract: Detecting a race condition is disclosed. An indication of a store operation to a memory address is received. An identifier of the memory address is stored. The identifier is used to detect an occurrence of a memory operation that is not associated with a previous ordering operation.
    Type: Application
    Filed: October 22, 2010
    Publication date: February 17, 2011
    Applicant: AZUL SYSTEMS, INC.
    Inventors: Daniel Dwight Grove, Ivan Posva, Jack H. Choquette, Cliff N. Click, JR., Jeffrey Gee
  • Patent number: 7865701
    Abstract: Executing a set one or more instructions atomically is disclosed. Executing includes saving a set of one or more register states in a software data structure, speculatively executing the set of instructions, and restoring the state of one or more registers when an abort indication is received.
    Type: Grant
    Filed: September 14, 2005
    Date of Patent: January 4, 2011
    Assignee: Azul Systems, Inc.
    Inventors: Gil Tene, Ivan Posva, Michael A. Wolf, Daniel Dwight Grove, Tom Kraljevic