Patents Assigned to Azul Systems
  • Patent number: 7689782
    Abstract: An instruction used by a processor in a determination of whether to perform a trap is disclosed. The instruction includes 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 used in the determination. The determination does not include performing a memory access that uses the first address value to determine a memory location of the memory access. The determination is based at least in part on more than one of the following: a group of one or more marker bits included in the first address value, a matrix entry located at least in part using one or more bits of the first address value, a Translation Look-aside Buffer entry associated with the first address value, whether the first address value is associated with stack allocated memory, and whether the first address value includes a null value.
    Type: Grant
    Filed: December 6, 2005
    Date of Patent: March 30, 2010
    Assignee: Azul Systems, Inc.
    Inventors: Jack Choquette, Gil Tene, Michael A. Wolf
  • Patent number: 7669202
    Abstract: A technique for executing a segmented virtual machine (VM) is disclosed. A plurality of core VM's are implemented in a common core space. Each core VM is associated with a shell VM. Resources of the core space are allocated among the core VM's. A core VM is associated with a shell VM configured to perform shell VM functions and communicate with the core VM. VM internal execution functionality is performed on the core VM. The shell VM may be bypassed to communicate with an external application.
    Type: Grant
    Filed: October 5, 2004
    Date of Patent: February 23, 2010
    Assignee: Azul Systems, Inc.
    Inventors: Gil Tene, Shyam Pillalamarri
  • Patent number: 7647458
    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 garbage collection barrier instruction and a subsequent instruction that immediately follows the garbage collection barrier instruction; wherein the processor is configured to execute the garbage collection barrier instruction, including by: evaluating a memory reference to determine a condition associated with the garbage collection barrier instruction; 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: April 8, 2008
    Date of Patent: January 12, 2010
    Assignee: Azul Systems, Inc.
    Inventors: Cliff N. Click, Jr., Gil Tene, Michael A. Wolf
  • Patent number: 7620953
    Abstract: A technique for executing a segmented virtual machine (VM) is disclosed. A plurality of core VM's is implemented in a plurality of core spaces. Each core VM is associated with one of a plurality of shell VM's. Resources of the core spaces are allocated among the core VM's.
    Type: Grant
    Filed: October 5, 2004
    Date of Patent: November 17, 2009
    Assignee: Azul Systems, Inc.
    Inventors: Gil Tene, Shyam Prasad Pillalamarri
  • Patent number: 7577801
    Abstract: Accessing memory in an array includes performing a first instruction, including by determining whether an index used by the first instruction is within a valid range and in the event that the index is within a valid range, determining a memory address related to an array element that corresponds to the index. Accessing memory in the array further includes, in the event that the index is within a valid range, performing a second instruction to access the array element, the access being based at least in part on the memory address determined by the first instruction.
    Type: Grant
    Filed: December 6, 2005
    Date of Patent: August 18, 2009
    Assignee: Azul Systems, Inc.
    Inventors: Gil Tene, Jack H. Choquette, Scott Sellers, Cliff N. Click, Jr.
  • Patent number: 7565507
    Abstract: A computer system includes a memory and a processor coupled with the memory, configured to assign to each of a plurality of processes a corresponding amount of committed memory from a memory pool, the memory pool including committed memory and uncommitted memory; and dynamically allocate an additional amount of memory required by one of the plurality of processes from the uncommitted memory in the memory pool. Managing memory includes assigning to each of a plurality of processes a corresponding amount of committed memory from a memory pool, the memory pool including committed memory and uncommitted memory; and dynamically allocating an additional amount of memory required by one of the plurality of processes from the uncommitted memory in the memory pool.
    Type: Grant
    Filed: August 20, 2007
    Date of Patent: July 21, 2009
    Assignee: Azul Systems, Inc.
    Inventors: Michael A. Wolf, Gil Tene, Luca Andrea Castellano
  • Patent number: 7552302
    Abstract: Executing an ordering operation is disclosed. A store operation associated with storing a value into a portion of a memory is initiated. An ordering operation to ensure that the store operation, but not necessarily all store operations, are completed is executed.
    Type: Grant
    Filed: September 14, 2005
    Date of Patent: June 23, 2009
    Assignee: Azul Systems, Inc.
    Inventors: Gil Tene, Kevin Normoyle, Jack Choquette, David Kruckernyer, Cliff N. Click, Jr.
  • Patent number: 7536688
    Abstract: A system and method are disclosed for a segmented virtual machine. The segmented virtual machine includes a core VM and a shell VM associated with the core VM. The core VM is configured to perform VM internal execution functionality and the shell VM is configured to perform shell VM functions and communicate with the core VM.
    Type: Grant
    Filed: February 28, 2003
    Date of Patent: May 19, 2009
    Assignee: Azul Systems
    Inventors: Gil Tene, Shyam Prasad Pillalamarri
  • Patent number: 7483824
    Abstract: A self-checking test generator program creates a self-checking test program that can test a device under test (DUT). The self-checking test generator selects instructions for a test. Selected instructions are executed on a software DUT model to generate results that can be self-checked by other instructions such as compare and branch instructions. The software DUT model has fuzzy models and unknown models for blocks in the DUT. Fuzzy models generate expected outputs for a block of the DUT. Fuzzy models may propagate unknown data from their inputs to their outputs. Unknown models do not predict expected outputs. Instead, unknown models always output unknown (X). Over time, as more of the DUT logic is modeled, unknown models may be replaced with fuzzy models.
    Type: Grant
    Filed: March 3, 2006
    Date of Patent: January 27, 2009
    Assignee: Azul Systems, Inc.
    Inventor: Eric L. Hill
  • Patent number: 7480908
    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: June 24, 2005
    Date of Patent: January 20, 2009
    Assignee: Azul Systems, Inc.
    Inventors: Gil Tene, Michael A. Wolf, Anirban Sengupta, Sivakumar Annamalai, Adrian Sun
  • Patent number: 7469324
    Abstract: A method, system, and computer program product for managing a heap of memory allocated to a program being executed on a data processing system is disclosed. A limited amount of memory is allocated to a program being executed by a mutator on a data processing system. The memory comprises memory objects. The disclosed method identifies memory objects, which are allocated to the program but are not referenced anymore. These dead memory objects are freed and made available for further allocation in the program. The memory objects that are still referenced are organized in compact contiguous blocks. Thus, the disclosed method recycles memory allocated to the program. The disclosed method is executed iteratively and concurrently with the execution of the program. The disclosed method does not interfere with program execution. Amount of memory required is specified before the commencement of the disclosed method and the same amount is freed without any surplus.
    Type: Grant
    Filed: January 7, 2005
    Date of Patent: December 23, 2008
    Assignee: Azul Systems, Inc.
    Inventors: Gil Tene, Michael A. Wolf
  • Patent number: 7437597
    Abstract: A write-back cache has error-correction code (ECC) fields storing ECC bits for cache lines. Clean cache lines are re-fetched from memory when an ECC error is detected. Dirty cache lines are corrected using the ECC bits or signal an uncorrectable error. The type of ECC code stored is different for clean and dirty lines. Clean lines use an error-detection code that can detect longer multi-bit errors than the error correction code used by dirty lines. Dirty lines use a correction code that can correct a bit error in the dirty line, while the detection code for clean lines may not be able to correct any errors. Dirty lines' ECC is optimized for correction while clean lines' ECC is optimized for detection. A single-error-correction, double-error-detection (SECDED) code may be used for dirty lines while a triple-error-detection code is used for clean lines.
    Type: Grant
    Filed: May 18, 2005
    Date of Patent: October 14, 2008
    Assignee: Azul Systems, Inc.
    Inventors: David A. Kruckemyer, Kevin B. Normoyle, Jack H. Choquette
  • Patent number: 7401178
    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.
    Type: Grant
    Filed: June 1, 2004
    Date of Patent: July 15, 2008
    Assignee: Azul Systems, Inc.
    Inventors: Gil Tene, Sivakumar Annamalai
  • Patent number: 7401202
    Abstract: Addressing memory includes receiving a first operand to a memory addressing operator, receiving a second operand to the memory addressing operator, performing sign extension on the first operand to provide a sign-extended operand, shifting the sign-extended operand to provide a shifted, sign-extended operand, and adding the shifted, sign-extended operand to the second operand. The second operand has a different bit length than the first operand.
    Type: Grant
    Filed: September 14, 2005
    Date of Patent: July 15, 2008
    Assignee: Azul Systems, Inc.
    Inventor: Cliff N. Click, Jr.
  • Patent number: 7398449
    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: July 20, 2005
    Date of Patent: July 8, 2008
    Assignee: Azul Systems, Inc.
    Inventors: Kevin B. Normoyle, Robert G. Hathaway
  • Patent number: 7376800
    Abstract: A technique for performing a plurality of operations in a shared memory system having a plurality of addresses is disclosed. The technique includes entering into a speculative mode, speculatively performing each of the plurality of operations on addresses in the shared memory system, marking addresses in the shared memory system that have been operated on speculatively as being in a speculative state, and exiting the speculative mode, wherein exiting the speculative mode includes marking the addresses in the shared memory system that have been operated on as being in a non-speculative state.
    Type: Grant
    Filed: April 27, 2005
    Date of Patent: May 20, 2008
    Assignee: Azul Systems, Inc.
    Inventors: Jack H. Choquette, Gil Tene, Kevin Normoyle
  • Patent number: 7366847
    Abstract: A multi-processor, multi-cache system has filter pipes that store entries for request messages sent to a central coherency controller. The central coherency controller orders requests from filter pipes using coherency rules but does not track completion of invalidations. The central coherency controller reads snoop tags to identify sharing caches having a copy of a requested cache line. The central coherency controller sends an ordering message to the requesting filter pipe. The ordering message has an invalidate count indicating the number of sharing caches. Each sharing cache receives an invalidation message from the central coherency controller, invalidates its copy of the cache line, and sends an invalidation acknowledgement message to the requesting filter pipe. The requesting filter pipe decrements the invalidate count until all sharing caches have acknowledged invalidation.
    Type: Grant
    Filed: February 6, 2006
    Date of Patent: April 29, 2008
    Assignee: Azul Systems, Inc.
    Inventors: David A. Kruckemyer, Kevin B. Normoyle, Robert G. Hathaway
  • Patent number: 7337339
    Abstract: Power management for a multi-processor chip includes a centralized global power manager that monitors global power for the whole chip, and local power managers. Local power managers manage power for local blocks such as processor cores, caches, and memory controllers. When a local block executes an instruction or accesses memory, an event is generated and looked up in a local power estimate table. A local power estimate for that event is sent to the global power manager, which sums all local power estimates received from all local blocks. An exponential moving average (EMA) is generated and compared to a global power threshold. When global power is over the threshold, local targets are sent to power managers that generate and monitor local power averages that must remain under the local target. The local block is throttled by the local power manager to reduce power when the local target is exceeded.
    Type: Grant
    Filed: September 15, 2005
    Date of Patent: February 26, 2008
    Assignee: Azul Systems, Inc.
    Inventors: Jack H. Choquette, Kevin B. Normoyle, Elias Atmeh, Scott D. Sellers, Murali Sundaresan, Manuel Gautho
  • Patent number: 7332929
    Abstract: A system chip has many local blocks including processor cores, caches, and memory controllers. Each local block has a local sample-select mux that is controlled by a local selection control register. The mux selects from among hundreds of internal sample nodes in the local block, and can also pass through samples output by an upstream local block. The selected samples from local blocks are sent to a central on-chip logic analyzer that compares the samples to a maskable trigger value. When the trigger value is matched, a trigger state machine advances, and samples are stored into a central capture buffer. A user debugging the chip can later read out the central capture buffer at a slower speed. Thousands of internal nodes from local blocks can be selected for sampling, triggering, and debugging. Local blocks include valid bits in 64-bit-wide samples. Only valid samples are written to the capture buffer.
    Type: Grant
    Filed: March 3, 2006
    Date of Patent: February 19, 2008
    Assignee: Azul Systems, Inc.
    Inventors: Kevin B. Normoyle, Sreenivas Reddy, John Phillips
  • Patent number: 7278005
    Abstract: A method for managing memory in some embodiments comprises maintaining a memory pool, and specifying an amount of memory required for allocation. In some embodiments, the method also comprises requesting a process to release memory into the memory pool. In some embodiments, the method also comprises allocating an amount of the memory pool to a process. In some embodiments, the method comprises maintaining a memory pool, receiving status information from a plurality of processes, and managing memory among the plurality of processes using the status information.
    Type: Grant
    Filed: April 1, 2004
    Date of Patent: October 2, 2007
    Assignee: Azul Systems, Inc.
    Inventors: Michael A. Wolf, Gil Tene, Luca Andrea Castellano