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: 7433862Abstract: 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: GrantFiled: June 10, 2004Date of Patent: October 7, 2008Assignee: Microsoft CorporationInventors: Patrick H. Dussud, Vance P. Morrison
-
Publication number: 20080172431Abstract: 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: ApplicationFiled: January 17, 2007Publication date: July 17, 2008Applicant: Microsoft CorporationInventors: Maoni Z. Stephens, Patrick H. Dussud, Peter F. Sollich, Claudio Caldato
-
Patent number: 7310655Abstract: 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: GrantFiled: November 18, 2002Date of Patent: December 18, 2007Assignee: Microsoft CorporationInventor: Patrick H. Dussud
-
Patent number: 7284108Abstract: 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: GrantFiled: September 23, 2005Date of Patent: October 16, 2007Assignee: Microsoft CorporationInventor: Patrick H. Dussud
-
Patent number: 6980997Abstract: 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: GrantFiled: June 28, 2001Date of Patent: December 27, 2005Assignee: Microsoft CorporationInventors: Frank V. Peschel-Gallee, Raja Krishnaswamy, Patrick H. Dussud
-
Patent number: 6973554Abstract: 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: GrantFiled: April 23, 2003Date of Patent: December 6, 2005Assignee: Microsoft CorporationInventor: Patrick H. Dussud
-
Patent number: 6898611Abstract: 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: GrantFiled: June 4, 2001Date of Patent: May 24, 2005Assignee: Microsoft CorporationInventors: Patrick H. Dussud, Vance P. Morrison
-
Patent number: 6865585Abstract: 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: GrantFiled: July 31, 2000Date of Patent: March 8, 2005Assignee: Microsoft CorporationInventor: Patrick H. Dussud
-
Patent number: 6836883Abstract: 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: GrantFiled: June 21, 2000Date of Patent: December 28, 2004Assignee: Microsoft CorporationInventors: Bradley M. Abrams, George H. Bosworth, Christopher W. Brumme, Patrick H. Dussud, Brian D. Harry, James S. Miller, Vance P. Morrison
-
Publication number: 20040261065Abstract: 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: ApplicationFiled: July 12, 2004Publication date: December 23, 2004Applicant: Microsoft CorporationInventors: Bradley M. Abrams, George H. Bosworth, Christopher W. Brumme, Patrick H. Dussud, Brian D. Harry, James S. Miller, Vance P. Morrison
-
Publication number: 20040216094Abstract: 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: ApplicationFiled: May 17, 2004Publication date: October 28, 2004Applicant: Microsoft CorporationInventors: George H. Bosworth, Patrick H. Dussud, James S. Miller, Daryl B. Olander
-
Publication number: 20040215914Abstract: 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: ApplicationFiled: April 23, 2003Publication date: October 28, 2004Inventor: Patrick H. Dussud
-
Patent number: 6804762Abstract: 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: GrantFiled: July 31, 2000Date of Patent: October 12, 2004Assignee: Microsoft CorporationInventors: Patrick H. Dussud, Brian D. Harry
-
Patent number: 6738968Abstract: 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: GrantFiled: July 11, 2000Date of Patent: May 18, 2004Assignee: Microsoft CorporationInventors: George H. Bosworth, Patrick H. Dussud, James S. Miller, Daryl B. Olander
-
Patent number: 6622226Abstract: 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: GrantFiled: July 31, 2000Date of Patent: September 16, 2003Assignee: Microsoft CorporationInventor: Patrick H. Dussud
-
Patent number: 6598141Abstract: 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: GrantFiled: March 8, 2001Date of Patent: July 22, 2003Assignee: Microsoft CorporationInventors: Patrick H. Dussud, Vance P. Morrison
-
Publication number: 20030069905Abstract: 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: ApplicationFiled: November 18, 2002Publication date: April 10, 2003Applicant: Microsoft CorporationInventor: Patrick H. Dussud
-
Patent number: 6502111Abstract: 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: GrantFiled: July 31, 2000Date of Patent: December 31, 2002Assignee: Microsoft CorporationInventor: Patrick H. Dussud