Patents by Inventor Erez Petrank
Erez Petrank 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: 9110791Abstract: Object relocation often involves a multi-word copy of the object from a source address to a destination address, followed by updating the references (e.g., pointers) to the object. However, during the relocation, other threads may write to portions of the object that have already been relocated, and the updates may be lost when the references are updated to point to the destination address. A non-blocking relocation technique may be implemented to permit threads to write to the object during the relocation, wherein the memory accesses are monitored for a write to the object. If a write is detected during the relocation, the relocation fails and the memory at the destination address is deallocated; but if no write is detected, the relocation succeeds and the references are updated to point to the destination address. Refinements of this technique may be implemented to reduce other synchronization issues.Type: GrantFiled: March 3, 2008Date of Patent: August 18, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Filip Pizlo, Erez Petrank, Bjarne Steensgaard
-
Patent number: 8825719Abstract: Concurrent, incremental, and lock-free stack scanning for garbage collectors is disclosed. This method uses a summary table and return barriers to allow high responsiveness. The method also supports programs that employ fine-synchronization to avoid locks, imposes negligible overhead on program execution, can be used with existing concurrent collectors, and supports the special in-stack references existing in languages such as C#.Type: GrantFiled: October 30, 2008Date of Patent: September 2, 2014Assignee: Microsoft CorporationInventors: Bjarne Steensgaard, Erez Petrank, Gabriel Kliot
-
Patent number: 8782627Abstract: Mechanism that employs code cloning and specialized code execution for barriers to minimize runtime overhead. This is facilitated by duplicating code and inserting specializations of the barriers in the code copies. The mechanism is effective for garbage collection when the garbage collection executes through different phases, and the barrier behavior and overheads depend on these phases. The duplicated and specialized code enables the program to run efficiently by reducing the dynamic count of a phase check when the phase is well-known and phase checks can be avoided.Type: GrantFiled: November 29, 2007Date of Patent: July 15, 2014Assignee: Microsoft CorporationInventors: Bjarne Steensgaard, Erez Petrank, Filip Pizlo
-
Patent number: 8245005Abstract: Object relocation often involves a multi-word copy of the object from a source memory to a destination memory, followed by updating the references (e.g., pointers) to the object. However, during the relocation, other threads may write to portions of the object that have already been relocated, and the updates may be lost when the references are updated to point to the destination memory. The object relocation may therefore mark the words of the object during relocation with a relocation value to indicate transfer to the destination memory without locking the threads. The threads may be configured to check the value the source memory during object access, and to access the corresponding word of the destination memory if the source memory word comprises the relocation value. While the probability of a large (e.g., 64-bit) relocation value appearing in the object is small, safety measures are provided to detect and mitigate conflicts.Type: GrantFiled: March 3, 2008Date of Patent: August 14, 2012Assignee: Microsoft CorporationInventors: Filip Pizlo, Erez Petrank, Bjarne Steensgaard
-
Patent number: 8041752Abstract: Described is a technology by which a real-time data relocating mechanism is provided for multiprocessing environments, including supporting lock-free programs that run in parallel. The relocating mechanism moves an object by using a status field related to the data field, possibly in an interim (wide) object space, which is then copied to a to-space object. The status information for each data field of the original object contains information indicating where a current version of the data for each field is present, that is, in the original, wide or to-space object. In one example, a handshake mechanism of a garbage collector establishes preparation and copy phases between the mechanism and other threads that determine where memory accesses occur. Also described is support for program thread compare-and-swap (CAS) operations and/or multi-word atomic operations.Type: GrantFiled: March 24, 2010Date of Patent: October 18, 2011Assignee: Microsoft CorporationInventors: Erez Petrank, Filip Jerzy Pizlo, Bjarne Steensgaard
-
Publication number: 20100179971Abstract: Described is a technology by which a real-time data relocating mechanism is provided for multiprocessing environments, including supporting lock-free programs that run in parallel. The relocating mechanism moves an object by using a status field related to the data field, possibly in an interim (wide) object space, which is then copied to a to-space object. The status information for each data field of the original object contains information indicating where a current version of the data for each field is present, that is, in the original, wide or to-space object. In one example, a handshake mechanism of a garbage collector establishes preparation and copy phases between the mechanism and other threads that determine where memory accesses occur. Also described is support for program thread compare-and-swap (CAS) operations and/or multi-word atomic operations.Type: ApplicationFiled: March 24, 2010Publication date: July 15, 2010Applicant: Microsoft CorporationInventors: Erez Petrank, Filip Jerzy Pizlo, Bjarne Steensgaard
-
Patent number: 7716192Abstract: Described is a technology by which a real-time data relocating mechanism is provided for multiprocessing environments, including supporting lock-free programs that run in parallel. The relocating mechanism moves an object by using a status field related to the data field, possibly in an interim (wide) object space, which is then copied to a to-space object. The status information for each data field of the original object contains information indicating where a current version of the data for each field is present, that is, in the original, wide or to-space object. In one example, a handshake mechanism of a garbage collector establishes preparation and copy phases between the mechanism and other threads that determine where memory accesses occur. Also described is support for program thread compare-and-swap (CAS) operations and/or multi-word atomic operations.Type: GrantFiled: May 8, 2007Date of Patent: May 11, 2010Assignee: Microsoft CorporationInventors: Erez Petrank, Filip Jerzy Pizlo, Bjarne Steensgaard
-
Publication number: 20100114998Abstract: Concurrent, incremental, and lock-free stack scanning for garbage collectors is disclosed. This method uses a summary table and return barriers to allow high responsiveness. The method also supports programs that employ fine-synchronization to avoid locks, imposes negligible overhead on program execution, can be used with existing concurrent collectors, and supports the special in-stack references existing in languages such as C#.Type: ApplicationFiled: October 30, 2008Publication date: May 6, 2010Applicant: Microsoft CorporationInventors: Bjarne Steensgaard, Erez Petrank, Gabriel Kliot
-
Publication number: 20090327621Abstract: Enhanced performance and functionality in virtual memory is possible when a virtual memory manager and a memory manager are configured to collaborate.Type: ApplicationFiled: June 27, 2008Publication date: December 31, 2009Applicant: Microsoft CorporationInventors: Gabriel Kliot, Erez Petrank, Bjame Steensgaard
-
Publication number: 20090222494Abstract: Object relocation often involves a multi-word copy of the object from a source address to a destination address, followed by updating the references (e.g., pointers) to the object. However, during the relocation, other threads may write to portions of the object that have already been relocated, and the updates may be lost when the references are updated to point to the destination address. A non-blocking relocation technique may be implemented to permit threads to write to the object during the relocation, wherein the memory accesses are monitored for a write to the object. If a write is detected during the relocation, the relocation fails and the memory at the destination address is deallocated; but if no write is detected, the relocation succeeds and the references are updated to point to the destination address. Refinements of this technique may be implemented to reduce other synchronization issues.Type: ApplicationFiled: March 3, 2008Publication date: September 3, 2009Applicant: MICROSOFT CORPORATIONInventors: Filip Pizlo, Erez Petrank, Bjarne Steensgaard
-
Publication number: 20090222634Abstract: Object relocation often involves a multi-word copy of the object from a source memory to a destination memory, followed by updating the references (e.g., pointers) to the object. However, during the relocation, other threads may write to portions of the object that have already been relocated, and the updates may be lost when the references are updated to point to the destination memory. The object relocation may therefore mark the words of the object during relocation with a relocation value to indicate transfer to the destination memory without locking the threads. The threads may be configured to check the value the source memory during object access, and to access the corresponding word of the destination memory if the source memory word comprises the relocation value. While the probability of a large (e.g., 64-bit) relocation value appearing in the object is small, safety measures are provided to detect and mitigate conflicts.Type: ApplicationFiled: March 3, 2008Publication date: September 3, 2009Applicant: MICROSOFT CORPORATIONInventors: Filip Pizlo, Erez Petrank, Bjarne Steensgaard
-
Publication number: 20090144712Abstract: Mechanism that employs code cloning and specialized code execution for barriers to minimize runtime overhead. This is facilitated by duplicating code and inserting specializations of the barriers in the code copies. The mechanism is effective for garbage collection when the garbage collection executes through different phases, and the barrier behavior and overheads depend on these phases. The duplicated and specialized code enables the program to run efficiently by reducing the dynamic count of a phase check when the phase is well-known and phase checks can be avoided.Type: ApplicationFiled: November 29, 2007Publication date: June 4, 2009Applicant: MICROSOFT CORPORATIONInventors: Bjarne Steensgaard, Erez Petrank, Filip Pizlo
-
Publication number: 20080281886Abstract: Described is a technology by which a real-time data relocating mechanism is provided for multiprocessing environments, including supporting lock-free programs that run in parallel. The relocating mechanism moves an object by using a status field related to the data field, possibly in an interim (wide) object space, which is then copied to a to-space object. The status information for each data field of the original object contains information indicating where a current version of the data for each field is present, that is, in the original, wide or to-space object. In one example, a handshake mechanism of a garbage collector establishes preparation and copy phases between the mechanism and other threads that determine where memory accesses occur. Also described is support for program thread compare-and-swap (CAS) operations and/or multi-word atomic operations.Type: ApplicationFiled: May 8, 2007Publication date: November 13, 2008Applicant: Microsoft CorporationInventors: Erez Petrank, Filip Jerzy Pizlo, Bjarne Steensgaard
-
Patent number: 7321908Abstract: A method for collecting garbage in a computing environment, the method including tracing root objects to their reachable objects in a population of objects, marking the traced objects, unmarking a marked card including any of the objects, tracing any marked object on the unmarked card to an unmarked referent object of the marked object, marking the unmarked referent object, and tracing the marked referent object to its reachable objects, concurrently with the operation of a mutator upon the population of objects within the computing environment, and, while no mutator operates upon the population of objects within the computing environment, marking the traced objects, tracing unmarked root object referents to their reachable objects, marking any of the objects, and designating any unmarked object in the population of objects as available for reallocation.Type: GrantFiled: July 23, 2003Date of Patent: January 22, 2008Assignee: International Business Machines CorporationalInventors: Katherine Barabash, Yoav Ossia, Erez Petrank
-
Patent number: 6920541Abstract: A method for memory management in execution of a program by a computer having a memory includes allocating respective portions of the memory to data objects using mutator threads of the program, whereby the objects are held in a heap created by the program. The data objects in the heap are traced so as to mark the data objects that are reachable at a given stage in the program. The computer loops over the mutator threads so as to verify for each of the mutator threads that every update to the allocated portions of the memory in progress by the mutator thread has been completed. The heap is then swept so as to free the memory that is allocated to the data objects that are not marked as reachable, for reallocation to new data objects.Type: GrantFiled: December 19, 2001Date of Patent: July 19, 2005Assignee: International Business Machines CorporationInventors: Elliot K. Kolodner, Ethan Lewis, Erez Petrank
-
Publication number: 20050021576Abstract: A method for collecting garbage in a computing environment, the method including tracing root objects to their reachable objects in a population of objects, marking the traced objects, unmarking a marked card including any of the objects, tracing any marked object on the unmarked card to an unmarked referent object of the marked object, marking the unmarked referent object, and tracing the marked referent object to its reachable objects, concurrently with the operation of a mutator upon the population of objects within the computing environment, and, while no mutator operates upon the population of objects within the computing environment, marking the traced objects, tracing unmarked root object referents to their reachable objects, marking any of the objects, and designating any unmarked object in the population of objects as available for reallocation.Type: ApplicationFiled: July 23, 2003Publication date: January 27, 2005Applicant: International Business Machines CorporationInventors: Katherine Barabash, Yoav Ossia, Erez Petrank
-
Patent number: 6490599Abstract: A method for performing garbage collection of memory objects in a memory heap, the method includes the steps of partitioning the heap into old and new generations. There follows the step of applying an on-the-fly garbage collection to memory objects in the young generation, whilst running simultaneously a program thread.Type: GrantFiled: December 11, 2000Date of Patent: December 3, 2002Assignee: International Business Machines CorporationInventors: Elliot K. Kolodner, Erez Petrank
-
Publication number: 20020120823Abstract: A method for memory management in execution of a program by a computer having a memory includes allocating respective portions of the memory to data objects using mutator threads of the program, whereby the objects are held in a heap created by the program. The data objects in the heap are traced so as to mark the data objects that are reachable at a given stage in the program. The computer loops over the mutator threads so as to verify for each of the mutator threads that every update to the allocated portions of the memory in progress by the mutator thread has been completed. The heap is then swept so as to free the memory that is allocated to the data objects that are not marked as reachable, for reallocation to new data objects.Type: ApplicationFiled: December 19, 2001Publication date: August 29, 2002Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Elliot K. Kolodner, Ethan Lewis, Erez Petrank
-
Patent number: 6430580Abstract: Improved method of replication-based garbage collection in a multiprocessing system comprising a plurality of processors, a memory divided into a current area (from-space) used by the processors during current program execution and a reserved area (to-space), and at least a garbage collector for performing, when necessary, a garbage collection consisting in flipping the roles of the current area and reserved area after all the live objects stored in current area have been copied into the reserved area and for reclaiming the current area after the flipping operation. Several program threads (mutators) are currently running in parallel and the garbage collector performs the garbage collection in parallel with the program threads, the flipping operation being performed after the program threads have been stopped and the garbage collection has been completed.Type: GrantFiled: June 25, 1999Date of Patent: August 6, 2002Assignee: International Business Machines CorporationInventors: Alain Azagury, Elliot Karl Kolodner, Erez Petrank
-
Patent number: 6427154Abstract: The present invention relates to a method of delaying space allocation for parallel copying garbage collection in a data processing system comprising a memory divided in a current area (from-space) used by at least a program thread during current program execution and reserve area (to-space), and wherein a copying garbage collection is run in parallel by several collector threads, the garbage collection consisting in stopping the program threads and flipping the roles of the current area and reserved area before copying into the reserved area the live objects stored in the current area.Type: GrantFiled: August 2, 2000Date of Patent: July 30, 2002Assignee: International Business Machines CorporationInventors: Elliot K. Kolodner, Erez Petrank