Patents by Inventor Patrick H. Dussud

Patrick H. Dussud 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: 7433862
    Abstract: A system and method is provided for efficiently pinning references to the managed heap. The system and method allow for references to managed objects to be declared as pinned during a call to unmanaged code. The references are then reported as pinned to a garbage collector in response to invocation of a garbage collection service. The reference can be declared as pinned by a programmer within the source code or automatically invoked at run-time based on an unsafe condition. The garbage collection service will not move or relocate objects that are referenced by the active pinned local variables. If a garbage collection does not occur, the fact that the local variables are declared pinned is ignored.
    Type: Grant
    Filed: June 10, 2004
    Date of Patent: October 7, 2008
    Assignee: Microsoft Corporation
    Inventors: Patrick H. Dussud, Vance P. Morrison
  • Publication number: 20080172431
    Abstract: Various technologies and techniques are disclosed for providing optimized garbage collection. A garbage collector is provided for managing a garbage collection process. An optimized garbage collection feature is provided that allows the garbage collection process to be suggested. When the optimized garbage collection feature is invoked at a particular moment, the system determines if collection is appropriate at the particular moment. If collection is determined to be appropriate at the particular moment, then the system performs the garbage collection process. If collection is determined to not be appropriate at the particular moment, then the system delays garbage collection until an appropriate time. A low latency mode can be used to automatically ensure that the garbage collection process starts sooner than it would in a normal mode. The latency mode in use can be changed at different points in time during the garbage collection process.
    Type: Application
    Filed: January 17, 2007
    Publication date: July 17, 2008
    Applicant: Microsoft Corporation
    Inventors: Maoni Z. Stephens, Patrick H. Dussud, Peter F. Sollich, Claudio Caldato
  • Patent number: 7310655
    Abstract: A method and system for concurrent garbage collection wherein live memory objects, i.e., not garbage, can be marked while an application executes. Root information is gleaned by taking a snapshot program roots or by arranging the stack to be scanned during execution of the program. Next, a first marking act is performed using the root information while the program executes. Modifications in the memory structure that occur during the concurrent marking act are logged or accumulated by a write watch module. The application is then paused or stopped to perform a second marking act using information from the write watch module. Following the second marking act, the garbage collection may be completed using various techniques.
    Type: Grant
    Filed: November 18, 2002
    Date of Patent: December 18, 2007
    Assignee: Microsoft Corporation
    Inventor: Patrick H. Dussud
  • Patent number: 7284108
    Abstract: Systems and methods providing a multiprocessor scalable write barrier to a main memory card table are described. The main memory is divided into multiple cards bit-mapped by the card table. In one aspect, an application store operation (reference) associated with one of the cards is detected. Responsive to detecting the reference, card table bit(s) that are mapped to the card are evaluated. Responsive to determining that the bit(s) have already been marked as dirty, the card table bit(s) are not again marked. This technique effectively reduces the probability of more than a single overlapping write operation to a card table cache line by two or more processors in the system.
    Type: Grant
    Filed: September 23, 2005
    Date of Patent: October 16, 2007
    Assignee: Microsoft Corporation
    Inventor: Patrick H. Dussud
  • Patent number: 6980997
    Abstract: A system and method is provided to facilitate communications between object systems. A caller is provided having optimized in-lined functionality when initiating a remote function call between managed and unmanaged object systems, for example. The in-lined functionality includes utilizing direct calls and returns within a calling function. In this manner, pushing additional arguments onto an execution stack because of an external stub reference is mitigated. In addition, one or more code loops can be analyzed to enable stack markers to be “hoisted” and thus pushed a single time instead of each time the calling function executes. Other aspects of the optimized caller provide garbage collection and thread management, security attribute checking on outgoing calls, calling convention considerations, wherein arguments and return values are organized according to the convention utilized by the remote object system, and in-lined marshalling to provide enhanced performance over external stub code references.
    Type: Grant
    Filed: June 28, 2001
    Date of Patent: December 27, 2005
    Assignee: Microsoft Corporation
    Inventors: Frank V. Peschel-Gallee, Raja Krishnaswamy, Patrick H. Dussud
  • Patent number: 6973554
    Abstract: Systems and methods providing a multiprocessor scalable write barrier to a main memory card table are described. The main memory is divided into multiple cards bit-mapped by the card table. In one aspect, an application store operation (reference) associated with one of the cards is detected. Responsive to detecting the reference, card table bit(s) that are mapped to the card are evaluated. Responsive to determining that the bit(s) have already been marked as dirty, the card table bit(s) are not again marked. This technique effectively reduces the probability of more than a single overlapping write operation to a card table cache line by two or more processors in the system.
    Type: Grant
    Filed: April 23, 2003
    Date of Patent: December 6, 2005
    Assignee: Microsoft Corporation
    Inventor: Patrick H. Dussud
  • Patent number: 6898611
    Abstract: A system and method is provided for efficiently pinning references to the managed heap. The system and method allow for references to managed objects to be declared as pinned during a call to unmanaged code. The references are then reported as pinned to a garbage collector in response to invocation of a garbage collection service. The reference can be declared as pinned by a programmer within the source code or automatically invoked at run-time based on an unsafe condition. The garbage collection service will not move or relocate objects that are referenced by the active pinned local variables. If a garbage collection does not occur, the fact that the local variables are declared pinned is ignored.
    Type: Grant
    Filed: June 4, 2001
    Date of Patent: May 24, 2005
    Assignee: Microsoft Corporation
    Inventors: Patrick H. Dussud, Vance P. Morrison
  • Patent number: 6865585
    Abstract: A garbage collection system and method in a multiprocessor environment having a shared memory wherein two or more processing units participate in the reclamation of garbage memory objects. The shared memory is divided into regions or heaps and all heaps are dedicated to one of the participating processing units. The processing units generally perform garbage collection operations, i.e., a thread on the heap or heaps that are dedicated to that the processing unit. However, the processing units are also allowed to access and modify other memory objects, in other heaps when those objects are referenced by and therefore may be traced back to memory objects within the processing units dedicated heap. The processors are synchronized at rendezvous points to prevent reclamation of used memory objects.
    Type: Grant
    Filed: July 31, 2000
    Date of Patent: March 8, 2005
    Assignee: Microsoft Corporation
    Inventor: Patrick H. Dussud
  • Patent number: 6836883
    Abstract: A method and system for compiling multiple source language files that share a common library. The common library is represented in a common language that can be used by multiple different source languages. Font end compiler systems read the common language files that make up the common library and the source language files that use the library. Additionally, the front end systems produce common language files. The common language files produced by the front end systems can be used in the common library. The common language files may also be supplied to a back end system or runtime environment that further compiles the common language file to an executable form and executes the file. At runtime, the common language file is used by the runtime environment to layout the objects and methods used during execution.
    Type: Grant
    Filed: June 21, 2000
    Date of Patent: December 28, 2004
    Assignee: Microsoft Corporation
    Inventors: Bradley M. Abrams, George H. Bosworth, Christopher W. Brumme, Patrick H. Dussud, Brian D. Harry, James S. Miller, Vance P. Morrison
  • Publication number: 20040261065
    Abstract: A method and system for compiling multiple source language files that share a common library. The common library is represented in a common language that can be used by multiple different source languages. Font end compiler systems read the common language files that make up the common library and the source language files that use the library. Additionally, the front end systems produce common language files. The common language files produced by the front end systems can be used in the common library. The common language files may also be supplied to a back end system or runtime environment that further compiles the common language file to an executable form and executes the file. At runtime, the common language file is used by the runtime environment to layout the objects and methods used during execution.
    Type: Application
    Filed: July 12, 2004
    Publication date: December 23, 2004
    Applicant: Microsoft Corporation
    Inventors: Bradley M. Abrams, George H. Bosworth, Christopher W. Brumme, Patrick H. Dussud, Brian D. Harry, James S. Miller, Vance P. Morrison
  • Publication number: 20040216094
    Abstract: A type system includes a dual representation for basic data types. One representation is the basic data type representation common to such basic built-in data types, known as an unboxed value type or simply as a value type. Each of the basic data types also has a boxed representation that can be stored in the object hierarchy of the type system. This dual representation can also be extended to user-defined types, so that user-defined types may exist both as an unboxed value type and as an object within the object hierarchy of the type system. This dual representation allows the compiler and/or runtime environment to select the most effective and efficient representation for the data type depending on the particular need at the moment.
    Type: Application
    Filed: May 17, 2004
    Publication date: October 28, 2004
    Applicant: Microsoft Corporation
    Inventors: George H. Bosworth, Patrick H. Dussud, James S. Miller, Daryl B. Olander
  • Publication number: 20040215914
    Abstract: Systems and methods providing a multiprocessor scalable write barrier to a main memory card table are described. The main memory is divided into multiple cards bit-mapped by the card table. In one aspect, an application store operation (reference) associated with one of the cards is detected. Responsive to detecting the reference, card table bit(s) that are mapped to the card are evaluated. Responsive to determining that the bit(s) have already been marked as dirty, the card table bit(s) are not again marked. This technique effectively reduces the probability of more than a single overlapping write operation to a card table cache line by two or more processors in the system.
    Type: Application
    Filed: April 23, 2003
    Publication date: October 28, 2004
    Inventor: Patrick H. Dussud
  • Patent number: 6804762
    Abstract: A method of detecting and indicating pointers in an ephemeral region of memory in a computing system includes monitoring stored memory for pointers; detecting if there are pointers above the ephemeral range; and if there are not pointers above the ephemeral range, then testing if a pointer is above a lower limit of the ephemeral range without testing if the pointer is also below an upper limit of the ephemeral range. A system for detecting and indicating pointers in an ephemeral region of memory in a computing system includes a monitor module, a pointer module, and a lower limit module. The monitor module monitors stored memory for pointers. The pointer module detects if there are pointers above the ephemeral range. The lower limit module tests if a pointer is above a lower limit of the ephemeral range without testing if the pointer is also below an upper limit of the ephemeral range, if there are not pointers above the ephemeral range.
    Type: Grant
    Filed: July 31, 2000
    Date of Patent: October 12, 2004
    Assignee: Microsoft Corporation
    Inventors: Patrick H. Dussud, Brian D. Harry
  • Patent number: 6738968
    Abstract: A type system includes a dual representation for basic data types. One representation is the basic data type representation common to such basic built-in data types, known as an unboxed value type or simply as a value type. Each of the basic data types also has a boxed representation that can be stored in the object hierarchy of the type system. This dual representation can also be extended to user-defined types, so that user-defined types may exist both as an unboxed value type and as an object within the object hierarchy of the type system. This dual representation allows the compiler and/or runtime environment to select the most effective and efficient representation for the data type depending on the particular need at the moment.
    Type: Grant
    Filed: July 11, 2000
    Date of Patent: May 18, 2004
    Assignee: Microsoft Corporation
    Inventors: George H. Bosworth, Patrick H. Dussud, James S. Miller, Daryl B. Olander
  • Patent number: 6622226
    Abstract: A method of reclaiming unused memory objects in a computing system includes traversing memory objects referenced by a program; marking the memory objects reached; adding the memory objects reached to a mark-list; detecting if the mark-list if full; and if the mark-list is full, sweeping the memory objects, and reclaiming the memory objects not marked. A system for reclaiming unused memory objects in a computing system includes a traverse module, a mark module, a record module, a mark-list module, a sweep module, and a reclaim module. The traverse module traverses memory objected reference by a program. The mark module marks the memory objects reached. The record module adds the memory objects reached to a mark-list. The mark-list module detects if the mark-list is full. The sweep module sweeps the memory objects if the mark-list is full. And, the sweep module skips the unmarked objects if the mark-list is not full. The reclaim operation reclaims the memory objects not marked.
    Type: Grant
    Filed: July 31, 2000
    Date of Patent: September 16, 2003
    Assignee: Microsoft Corporation
    Inventor: Patrick H. Dussud
  • Patent number: 6598141
    Abstract: A system and method is provided for executing both managed and unmanaged code in a managed environment and managing memory employing a garbage collection system or service. The code may be precompiled, compiled in real-time or interpreted. The system and method identify roots including object references and interior references on a stack. The object references and interior references are then reported to the garbage collection system or service. The garbage collection system or service employs both the object references and interior references when tracing the heap for objects and data members within the objects. Memory segments that are inaccessible are then reclaimed for assignment to other objects. The garbage collection system or service may be invoked periodically by an operating system, a memory manager or some other service. Alternatively, the garbage collection system can be invoked in response to a request for memory by an executing program.
    Type: Grant
    Filed: March 8, 2001
    Date of Patent: July 22, 2003
    Assignee: Microsoft Corporation
    Inventors: Patrick H. Dussud, Vance P. Morrison
  • Publication number: 20030069905
    Abstract: A method and system for concurrent garbage collection wherein live memory objects, i.e., not garbage, can be marked while an application executes. Root information is gleaned by taking a snapshot program roots or by arranging the stack to be scanned during execution of the program. Next, a first marking act is performed using the root information while the program executes. Modifications in the memory structure that occur during the concurrent marking act are logged or accumulated by a write watch module. The application is then paused or stopped to perform a second marking act using information from the write watch module. Following the second marking act, the garbage collection may be completed using various techniques.
    Type: Application
    Filed: November 18, 2002
    Publication date: April 10, 2003
    Applicant: Microsoft Corporation
    Inventor: Patrick H. Dussud
  • Patent number: 6502111
    Abstract: A method and system for concurrent garbage collection wherein live memory objects, i.e., not garbage, can be marked while an application executes. Root information is gleaned by taking a snapshot program roots or by arranging the stack to be scanned during execution of the program. Next, a first marking act is performed using the root information while the program executes. Modifications in the memory structure that occur during the concurrent marking act are logged or accumulated by a write watch module. The application is then paused or stopped to perform a second marking act using information from the write watch module. Following the second marking act, the garbage collection may be completed using various techniques.
    Type: Grant
    Filed: July 31, 2000
    Date of Patent: December 31, 2002
    Assignee: Microsoft Corporation
    Inventor: Patrick H. Dussud