Patents by Inventor Jan Gray

Jan Gray 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).

  • Publication number: 20070250470
    Abstract: The subject disclosure pertains to implicitly and adaptively parallelizing program language-integrated operations comprising queries and the like. In particular, a parallel execution plan can be generated and/or selected based on static information surrounding operations. The plan can be augmented subsequently or concurrently based on dynamic information concerning the operations, machine topology, utilization, as well as data characteristics, among other things. As a result, sizeable parallel speedup can be obtained upon execution of the plan and evaluation of the operations.
    Type: Application
    Filed: April 24, 2006
    Publication date: October 25, 2007
    Applicant: Microsoft Corporation
    Inventors: John Duffy, Jan Gray, Christopher Brumme, Henricus Meijer, Jim Larus
  • Publication number: 20070245128
    Abstract: Various technologies and techniques are disclosed for providing a hardware accelerated software transactional memory application. The software transactional memory application has access to metadata in a cache of a central processing unit that can be used to improve the operation of the STM system. For example, open read barrier filtering is provided that uses an opened-for-read bit that is contained in the metadata to avoid redundant open read processing. Similarly, redundant read log validation can be avoided using the metadata. For example, upon entering commit processing for a particular transaction, a get-evictions instruction in an instruction set architecture of the central processing unit is invoked. A retry operation can be optimized using the metadata. The particular transaction is aborted at a current point and put to sleep. The corresponding cache line metadata in the metadata are marked appropriately to efficiently detect a write by another CPU.
    Type: Application
    Filed: June 8, 2007
    Publication date: October 18, 2007
    Applicant: Microsoft Corporation
    Inventors: Jan Gray, Timothy Harris, James Larus, Burton Smith
  • Publication number: 20070245099
    Abstract: Various technologies and techniques are disclosed for providing a bounded transactional memory application that accesses cache metadata in a cache of a central processing unit. When performing a transactional read from the bounded transactional memory application, a cache line metadata transaction-read bit is set. When performing a transactional write from the bounded transactional memory application, a cache line metadata transaction-write bit is set and a conditional store is performed. At commit time, if any lines marked with the transaction-read bit or the transaction-write bit were evicted or invalidated, all speculatively written lines are discarded. The application can also interrogate a cache line metadata eviction summary to determine whether a transaction is doomed and then take an appropriate action.
    Type: Application
    Filed: June 8, 2007
    Publication date: October 18, 2007
    Applicant: Microsoft Corporation
    Inventors: Jan Gray, Timothy Harris, James Larus, Burton Smith
  • Publication number: 20070245309
    Abstract: Various technologies and techniques are disclosed for providing software accessible metadata on a cache of a central processing unit. The metadata can include at least some bits for each virtual address, at least some bits for each cache line, and at least some bits for the cache overall. An instruction set architecture on the central processing unit is provided that includes additional instructions for interacting with the metadata. New side effects that are introduced into an operation of the central processing unit by a presence of the metadata and the additional instructions. The metadata can be accessed by at least one software program to facilitate an operation of the software program.
    Type: Application
    Filed: June 8, 2007
    Publication date: October 18, 2007
    Applicant: Microsoft Corporation
    Inventors: Jan Gray, Timothy Harris, James Larus, Burton Smith
  • Patent number: 7222217
    Abstract: A cache residency test instruction is described which, when executed by a processor unit, allows the processor unit to determine if a set of data resides in a cache memory that is communicatively coupled to the processor unit and communicate a result of the determination to software being executed on the processor unit.
    Type: Grant
    Filed: June 27, 2003
    Date of Patent: May 22, 2007
    Assignee: Microsoft Corporation
    Inventor: Jan Gray
  • Publication number: 20060179196
    Abstract: A priority register is provided for each of a multiple processor cores of a chip multiprocessor, where the priority register stores values that are used to bias resources available to the multiple processor cores. Even though such multiple processor cores have their own local resources, they must compete for shared resources. These shared resources may be stored on the chip or off the chip. The priority register biases the arbitration process that arbitrates access to or ongoing use of the shared resources based on the values stored in the priority registers. The way it accomplishes such biasing is by tagging operations issued from the multiple processor cores with the priority values, and then comparing the values within each arbiter of the shared resources.
    Type: Application
    Filed: February 4, 2005
    Publication date: August 10, 2006
    Applicant: Microsoft Corporation
    Inventor: Jan Gray
  • Publication number: 20050193369
    Abstract: Systems and methods provide for the rewriting and transformation of a code unit through an extensible, composable, set of code rewriters that can be implemented at various phases throughout the development, deployment, and execution of the code unit. The described systems and methods provide a powerful way for program developers and system administrators to implement code transformations at different stages throughout the development, deployment, and execution of programs that is largely independent of such programs and does not significantly increase the complexity of the source programs, compilers, or execution environments.
    Type: Application
    Filed: February 27, 2004
    Publication date: September 1, 2005
    Inventors: Christopher Brumme, Jan Gray, Jonathan Hawkins, Alan Shi, Sean Trowbridge
  • Publication number: 20050015775
    Abstract: A run-time executive of an object management system for managing execution of software components in an object execution environment uses a component context object to store intrinsic context properties related to an associated component. The run-time executive maintains an implicit association of the component context object with the application component. For example, the context properties can include a client id, an activity id, and a transaction reference. The component context object also provides an interface accessible to the associated component, with member functions for use in transaction processing, in creating additional other application components inheriting component's context properties, and in access control based on abstract user classes (roles).
    Type: Application
    Filed: May 26, 2004
    Publication date: January 20, 2005
    Applicant: Microsoft Corporation
    Inventors: Wilfred Russell, Patrick Helland, Greg Hope, Rodney Limprecht, Mohsen Al-Ghosein, Jan Gray
  • Patent number: 5854932
    Abstract: A minimal rebuild system and process for minimizing rebuilding of a user's programming project analyzes and records dependencies of object code files compiled in a previous build of the project on classes declared in header files. When rebuilding the project, the system detects and records changes made to the classes and header files since the project was last built. The system then determines whether to recompile the object code files from their respective source code files by comparing the recorded dependencies and changes. If an object code file's dependencies do not intersect the changes, recompiling of the object code file can be omitted. The minimal rebuild system utilizes an approximate representation of the dependencies to yield an efficient system while ensuring that the project is correctly rebuilt.
    Type: Grant
    Filed: August 17, 1995
    Date of Patent: December 29, 1998
    Assignee: Microsoft Corporation
    Inventors: Rico Mariani, Daniel R. Spalding, Jonathan E. Caves, Jan Gray, Scott Randell
  • Patent number: 5617569
    Abstract: A method and system in an object-oriented environment for determining the offset of a data member of a derived class when the derived class has a virtually inherited base class and the data member is defined in the base class. In a preferred embodiment, the base class has a data structure and a class address. The base class data structure has the data member located at a data member offset from the base class address. The derived class has a data structure and a class address. The derived class data structure includes an occurrence of the base class data structure. The occurrence of the base class data structure is located at a base class offset from the derived class address.
    Type: Grant
    Filed: April 10, 1995
    Date of Patent: April 1, 1997
    Assignee: Microsoft Corporation
    Inventors: Jan Gray, D. T. Jones, Martin O'Riordan
  • Patent number: 5603030
    Abstract: A method and system for generating code to destroy objects is provided. In a preferred embodiment, a compiler generates a plurality of destructor functions for the class. Each destructor function performs a subset of the destruction process. The compiler generates code to invoke one of the plurality of destructor functions to destroy an object of the class. In a preferred embodiment, destructor functions are generated to destroy an object that is not ultimately derived, to destroy an object that is ultimately derived, to destroy an object that is ultimately derived and to deallocate the object memory, to destroy an array of objects, and to destroy an array of objects and to deallocate the memory of the array.
    Type: Grant
    Filed: January 7, 1993
    Date of Patent: February 11, 1997
    Assignee: Microsoft Corporation
    Inventors: Jan Gray, Martin O'Riordan
  • Patent number: 5432936
    Abstract: A method and system in an object-oriented environment for determining the offset of a data member of a derived class when the derived class has a virtually inherited base class and the data member is defined in the base class. In a preferred embodiment, the base class has a data structure and a class address. The base class data structure has the data member located at a data member offset from the base class address. The derived class has a data structure and a class address. The derived class data structure includes an occurrence of the base class data structure. The occurrence of the base class data structure is located at a base class offset from the derived class address.
    Type: Grant
    Filed: April 9, 1992
    Date of Patent: July 11, 1995
    Assignee: Microsoft Corporation
    Inventors: Jan Gray, D. T. Jones, Martin O'Riordan
  • Patent number: 5371891
    Abstract: An improved method and system for implementing constructors and destructors in a compiler for an object-oriented programming language is provided. In a preferred embodiment of the present invention, a construction displacement value is added to the this pointer for a virtual function that is invoked by a constructor for a class that virtually inherits a base class. The construction displacement value corresponds to the difference between the offset of an occurrence of a virtually inherited class within an instance of the base class and the offset of the occurrence of the virtually inherited class from the occurrence of the base class within an instance of a derived class that inherits the base class.
    Type: Grant
    Filed: April 9, 1992
    Date of Patent: December 6, 1994
    Assignee: Microsoft Corporation
    Inventors: Jan Gray, David Jones, Martin O'Riordan