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: 8813091Abstract: 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: GrantFiled: August 4, 2008Date of Patent: August 19, 2014Assignee: Oracle America, Inc.Inventors: Jan-Willem Maessen, JaĆ£o P. Dias
-
Patent number: 8473950Abstract: 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: GrantFiled: June 23, 2009Date of Patent: June 25, 2013Assignee: Oracle America, Inc.Inventors: Christine H. Flood, Victor M. Luchangco, Jan-Willem Maessen
-
Patent number: 8117605Abstract: 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: GrantFiled: December 19, 2005Date of Patent: February 14, 2012Assignee: Oracle America, Inc.Inventors: Yosef Lev, Jan-Willem Maessen, Mark S. Moir
-
Publication number: 20100325630Abstract: 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: ApplicationFiled: June 23, 2009Publication date: December 23, 2010Applicant: SUN MICROSYSTEMS, INC.Inventors: Christine H. Flood, Victor M. Luchangco, Jan-Willem Maessen
-
Patent number: 7702628Abstract: 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: GrantFiled: June 30, 2004Date of Patent: April 20, 2010Assignee: Sun Microsystems, Inc.Inventors: Victor Luchangco, Paul A. Martin, Jan-Willem Maessen
-
Publication number: 20100031267Abstract: 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: ApplicationFiled: August 4, 2008Publication date: February 4, 2010Inventors: Jan-Willem Maessen, Joao P. Dias
-
Patent number: 7530051Abstract: 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: GrantFiled: January 13, 2005Date of Patent: May 5, 2009Assignee: Sun Microsystems, Inc.Inventors: Eric E. Allen, David R. Chase, Victor M. Luchangco, Jan-Willem Maessen, Guy L. Steele
-
Patent number: 7516366Abstract: 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: GrantFiled: August 17, 2007Date of Patent: April 7, 2009Assignee: Sun Microsystems, Inc.Inventors: Yosef Lev, Jan-Willem Maessen
-
Publication number: 20090031310Abstract: 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: ApplicationFiled: August 17, 2007Publication date: January 29, 2009Inventors: Yosef Lev, Jan-Willem Maessen
-
Patent number: 7383390Abstract: 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: GrantFiled: October 19, 2004Date of Patent: June 3, 2008Assignee: Sun Microsystems, Inc.Inventor: Jan-Willem Maessen
-
Patent number: 7370054Abstract: 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: GrantFiled: June 29, 2004Date of Patent: May 6, 2008Assignee: Sun Microsystems, IncInventors: Paul A. Martin, Victor Luchangco, Jan-Willem Maessen
-
Patent number: 7287131Abstract: 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: GrantFiled: September 29, 2003Date of Patent: October 23, 2007Assignee: Sun Microsystems, Inc.Inventors: Paul A. Martin, Victor Luchangco, Jan-Willem Maessen
-
Publication number: 20070150509Abstract: 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: ApplicationFiled: December 19, 2005Publication date: June 28, 2007Applicant: Sun Microsystems, Inc.Inventors: Yosef Lev, Jan-Willem Maessen, Mark Moir