Patents by Inventor Jan-Willem Maessen

Jan-Willem Maessen has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 8813091
    Abstract: A data structure, the distribution, may be provided to track the desired and/or actual location of computations and data that range over a multidimensional rectangular index space in a parallel computing system. Examples of such iteration spaces include multidimensional arrays and counted loop nests. These distribution data structures may be used in conjunction with locality-guided work stealing and may provide a structured way to track load balancing decisions so they can be reproduced in related computations, thus maintaining locality of reference. They may allow computations to be tied to array layout, and may allow iteration over subspaces of an index space in a manner consistent with the layout of the space itself. Distributions may provide a mechanism to describe computations in a manner that is oblivious to precise machine size or structure. Programming language constructs and/or library functions may support the implementation and use of these distribution data structures.
    Type: Grant
    Filed: August 4, 2008
    Date of Patent: August 19, 2014
    Assignee: Oracle America, Inc.
    Inventors: Jan-Willem Maessen, JaĆ£o P. Dias
  • Patent number: 8473950
    Abstract: A system for managing transactions, including a first reference cell associated with a starting value for a first variable, a first thread having an outer atomic transaction including a first instruction to write a first value to the first variable, a second thread, executing in parallel with the first thread, having an inner atomic transaction including a second instruction to write a second value to the first variable, where the inner atomic transaction is nested within the outer atomic transaction, a first value node created by the outer atomic transaction and storing the first value in response to execution of the first instruction, and a second value node created by the inner atomic transaction, storing the second value in response to execution of the second instruction, and having a previous node pointer referencing the first value node.
    Type: Grant
    Filed: June 23, 2009
    Date of Patent: June 25, 2013
    Assignee: Oracle America, Inc.
    Inventors: Christine H. Flood, Victor M. Luchangco, Jan-Willem Maessen
  • Patent number: 8117605
    Abstract: In a multi-threaded computer system that uses transactional memory, object fields accessed by only one thread are accessed by regular non-transactional read and write operations. When an object may be visible to more than one thread, access by non-transactional code is prevented and all accesses to the fields of that object are performed using transactional code. In one embodiment, the current visibility of an object is stored in the object itself. This stored visibility can be checked at runtime by code that accesses the object fields or code can be generated to check the visibility prior to access during compilation.
    Type: Grant
    Filed: December 19, 2005
    Date of Patent: February 14, 2012
    Assignee: Oracle America, Inc.
    Inventors: Yosef Lev, Jan-Willem Maessen, Mark S. Moir
  • Publication number: 20100325630
    Abstract: A system for managing transactions, including a first reference cell associated with a starting value for a first variable, a first thread having an outer atomic transaction including a first instruction to write a first value to the first variable, a second thread, executing in parallel with the first thread, having an inner atomic transaction including a second instruction to write a second value to the first variable, where the inner atomic transaction is nested within the outer atomic transaction, a first value node created by the outer atomic transaction and storing the first value in response to execution of the first instruction, and a second value node created by the inner atomic transaction, storing the second value in response to execution of the second instruction, and having a previous node pointer referencing the first value node.
    Type: Application
    Filed: June 23, 2009
    Publication date: December 23, 2010
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Christine H. Flood, Victor M. Luchangco, Jan-Willem Maessen
  • Patent number: 7702628
    Abstract: One embodiment of the present invention provides a system that performs operations on a hash table that is fully dynamic and lock-free. This hash table is implemented with a linked list containing data nodes and a bucket array containing bucket pointers, wherein the bucket pointers point to portions of the linked list that function as hash buckets, and wherein the linked list contains only data nodes and no dummy nodes.
    Type: Grant
    Filed: June 30, 2004
    Date of Patent: April 20, 2010
    Assignee: Sun Microsystems, Inc.
    Inventors: Victor Luchangco, Paul A. Martin, Jan-Willem Maessen
  • Publication number: 20100031267
    Abstract: A data structure, the distribution, may be provided to track the desired and/or actual location of computations and data that range over a multidimensional rectangular index space in a parallel computing system. Examples of such iteration spaces include multidimensional arrays and counted loop nests. These distribution data structures may be used in conjunction with locality-guided work stealing and may provide a structured way to track load balancing decisions so they can be reproduced in related computations, thus maintaining locality of reference. They may allow computations to be tied to array layout, and may allow iteration over subspaces of an index space in a manner consistent with the layout of the space itself. Distributions may provide a mechanism to describe computations in a manner that is oblivious to precise machine size or structure. Programming language constructs and/or library functions may support the implementation and use of these distribution data structures.
    Type: Application
    Filed: August 4, 2008
    Publication date: February 4, 2010
    Inventors: Jan-Willem Maessen, Joao P. Dias
  • Patent number: 7530051
    Abstract: In general, in one aspect, the invention relates to a method for integrating dimensional analysis in a program comprising defining a specific dimension class within the program, wherein the specific dimension class is an instance of the dimension meta-class, defining an instantiation of a unit class within the program, wherein the instantiation of the unit class comprises the specific dimension class as a type parameter associated with the instantiation of the unit class, defining a method within the program using the instantiation of the unit class and the specific dimension class, and compiling the program to generate an executable code corresponding to the program, wherein the program is written in an object-oriented language.
    Type: Grant
    Filed: January 13, 2005
    Date of Patent: May 5, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: Eric E. Allen, David R. Chase, Victor M. Luchangco, Jan-Willem Maessen, Guy L. Steele
  • Patent number: 7516366
    Abstract: Split hardware transaction techniques may support execution of serial and parallel nesting of code within an atomic block to an arbitrary nesting depth. An atomic block including child code sequences nested within a parent code sequence may be executed using separate hardware transactions for each child, but the execution of the parent code sequence, the child code sequences, and other code within the atomic block may appear to have been executed as a single transaction. If a child transaction fails, it may be retried without retrying the parent code sequence or other child code sequences. Before a child transaction is executed, a determination of memory consistency may be made. If a memory inconsistency is detected, the child transaction may be retried or control may be returned to its parent. Memory inconsistencies between parallel child transactions may be resolved by serializing their execution before retrying at least one of them.
    Type: Grant
    Filed: August 17, 2007
    Date of Patent: April 7, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: Yosef Lev, Jan-Willem Maessen
  • Publication number: 20090031310
    Abstract: Split hardware transaction techniques may support execution of serial and parallel nesting of code within an atomic block to an arbitrary nesting depth. An atomic block including child code sequences nested within a parent code sequence may be executed using separate hardware transactions for each child, but the execution of the parent code sequence, the child code sequences, and other code within the atomic block may appear to have been executed as a single transaction. If a child transaction fails, it may be retried without retrying the parent code sequence or other child code sequences. Before a child transaction is executed, a determination of memory consistency may be made. If a memory inconsistency is detected, the child transaction may be retried or control may be returned to its parent. Memory inconsistencies between parallel child transactions may be resolved by serializing their execution before retrying at least one of them.
    Type: Application
    Filed: August 17, 2007
    Publication date: January 29, 2009
    Inventors: Yosef Lev, Jan-Willem Maessen
  • Patent number: 7383390
    Abstract: A system including a memory, a first processor operatively connected to a first cache, a second processor operatively connected to a second cache, a directory implemented in hardware operatively connected to the first cache, the second cache, and the memory, wherein the directory comprises at least one location, and wherein the at least one location is configured to store a first entry and a second entry.
    Type: Grant
    Filed: October 19, 2004
    Date of Patent: June 3, 2008
    Assignee: Sun Microsystems, Inc.
    Inventor: Jan-Willem Maessen
  • Patent number: 7370054
    Abstract: One embodiment of the present invention provides a system that implements a hash table that is fully dynamic and lock-free. During a lookup in the hash table the system first uses a hash key to lookup a bucket pointer in a bucket array. Next, the system follows the bucket pointer to a data node within a linked list that contains all of the data nodes in the hash table, wherein the linked list contains only data nodes and at most a constant number of dummy nodes. The system then searches from the data node through the linked list to locate a node that matches the hash key, if one exists.
    Type: Grant
    Filed: June 29, 2004
    Date of Patent: May 6, 2008
    Assignee: Sun Microsystems, Inc
    Inventors: Paul A. Martin, Victor Luchangco, Jan-Willem Maessen
  • Patent number: 7287131
    Abstract: One embodiment of the present invention provides a system that implements a hash table that is fully dynamic and lock-free. During a lookup in the hash table the system first uses a hash key to lookup a bucket pointer in a bucket array. Next, the system follows the bucket pointer to a data node within a linked list that contains all of the data nodes in the hash table, wherein the linked list contains only data nodes and at most a constant number of dummy nodes. The system then searches from the data node through the linked list to locate a node that matches the hash key, if one exists.
    Type: Grant
    Filed: September 29, 2003
    Date of Patent: October 23, 2007
    Assignee: Sun Microsystems, Inc.
    Inventors: Paul A. Martin, Victor Luchangco, Jan-Willem Maessen
  • Publication number: 20070150509
    Abstract: In a multi-threaded computer system that uses transactional memory, object fields accessed by only one thread are accessed by regular non-transactional read and write operations. When an object may be visible to more than one thread, access by non-transactional code is prevented and all accesses to the fields of that object are performed using transactional code. In one embodiment, the current visibility of an object is stored in the object itself. This stored visibility can be checked at runtime by code that accesses the object fields or code can be generated to check the visibility prior to access during compilation.
    Type: Application
    Filed: December 19, 2005
    Publication date: June 28, 2007
    Applicant: Sun Microsystems, Inc.
    Inventors: Yosef Lev, Jan-Willem Maessen, Mark Moir