Mark-compact Patents (Class 707/817)
-
Patent number: 10387039Abstract: A method of managing a plurality of storage devices. The method comprises at a first device connected to the plurality of storage devices via a switch, receiving an indication of a plurality of logical disks, each logical disk being provided by a respective one of the plurality of storage devices. Each logical disk comprises a plurality of logical blocks. Data representing a virtual disk is generated, the virtual disk comprising a plurality of virtual blocks, each virtual block being provided by a logical block. Access is provided to the virtual disk to a second device different to the first device. A first virtual block is selected, the first virtual block being provided by a first logical block, and a re-mapping operation is performed after which the first virtual block is provided by a second logical block different to the first logical block.Type: GrantFiled: December 4, 2018Date of Patent: August 20, 2019Assignee: Micron Technology, Inc.Inventor: Marek Piekarski
-
Patent number: 10156990Abstract: A method of managing a plurality of storage devices. The method comprises at a first device connected to the plurality of storage devices via a switch, receiving an indication of a plurality of logical disks, each logical disk being provided by a respective one of the plurality of storage devices. Each logical disk comprises a plurality of logical blocks. Data representing a virtual disk is generated, the virtual disk comprising a plurality of virtual blocks, each virtual block being provided by a logical block. Access is provided to the virtual disk to a second device different to the first device. A first virtual block is selected, the first virtual block being provided by a first logical block, and a re-mapping operation is performed after which the first virtual block is provided by a second logical block different to the first logical block.Type: GrantFiled: January 17, 2018Date of Patent: December 18, 2018Assignee: Micron Technology, Inc.Inventor: Marek Piekarski
-
Patent number: 9882846Abstract: A virtual online meeting room is provided. An external message is received by an originator user from an outside source. The external message is displayed to an originator user and is prevented from being displayed to remainder users. The originator user is permitted to designate at least a portion of the external message as shared. At least one of the remainder users is permitted to have at least the portion of the external message displayed to them responsive to the at least the portion of the external message being designated as shared.Type: GrantFiled: July 17, 2017Date of Patent: January 30, 2018Assignee: Wrinkl, Inc.Inventors: Marc A. Cohen, Erik S. Katz, Jeffrey A. Cohen
-
Patent number: 9690491Abstract: A non-volatile memory system may have a group of non-volatile memory cells having a plurality of predetermined portions, where each predetermined portion is associated with an open host write block of a different host data type than each other predetermined portion. A host data router directs received data from a host to an appropriate predetermined portion based on a determined data type. A maintenance data router, based on predetermined minimum capacity overprovisioning targets for each predetermined portion, operates to adjust an amount of overprovisioning of physical capacity among the plurality of predetermined portions to reduce write amplification and increase performance in predetermined portions having data with a higher probability of host update. The method may include selecting a particular predetermined portion and a particular block within the selected predetermined portion on which to perform a maintenance operation to achieve the desired capacity overprovisioning.Type: GrantFiled: December 17, 2014Date of Patent: June 27, 2017Assignee: SanDisk Technologies LLCInventor: Alan Welsh Sinclair
-
Patent number: 8935302Abstract: An apparatus, system, and method are disclosed for data block usage information synchronization for a non-volatile storage volume. The method includes referencing first data block usage information for data blocks of a non-volatile storage volume managed by a storage manager. The first data block usage information is maintained by the storage manager. The method also includes synchronizing second data block usage information managed by a storage controller with the first data block usage information maintained by the storage manager. The storage manager maintains the first data block usage information separate from second data block usage information managed by the storage controller.Type: GrantFiled: February 23, 2010Date of Patent: January 13, 2015Assignee: Intelligent Intellectual Property Holdings 2 LLCInventors: David Flynn, David Atkisson, Drex Dixon, Jonathan Flynn, Brandon Hansen
-
Patent number: 8892610Abstract: A method to schedule garbage collection operations may be executed in a client/server system using multiple servers. The method includes comparing usage of memory in respective ones of the plurality of servers to one or more memory usage thresholds and dynamically identifying one or more servers in which to perform garbage collection of memory objects during a particular time period. By distributing the durations over which garbage collection is performed on respective servers, the client server system, among other things, reduces the pauses in servicing client requests.Type: GrantFiled: July 29, 2011Date of Patent: November 18, 2014Assignee: Google Inc.Inventor: Clement Ho Yan Pang
-
Patent number: 8769230Abstract: A method to implement parallel, single-pass compaction in a garbage collector is described. In one embodiment, such a method includes conducting a planning phase for multiple regions to be compacted. During the planning phase, the method determines new locations for data entities in the multiple regions. The method then performs a move phase for the multiple regions to move the data entities to their new locations. During the move phase, the method initiates multiple compaction threads to move the data entities to their new locations. While executing, the compaction threads dynamically build a dependency graph of the regions being compacted. The dependency graph guarantees that no data entity is moved to its new location until all data entities that it overwrites have been moved to their new locations. A corresponding computer program product and apparatus are also disclosed herein.Type: GrantFiled: March 28, 2012Date of Patent: July 1, 2014Assignee: International Business Machines CorporationInventors: Peter Wiebe Burka, Jeffrey Michael Disher, Daryl James Maier, Aleksandar Micic, Ryan Andrew Sciampacone
-
Patent number: 8725982Abstract: Memory management includes identifying a region of virtual memory to be reclaimed, the region including an object that is currently located at an original virtual memory location, and the region being supported by at least a portion of a memory resource; relocating the object from the original virtual memory location to a target virtual memory location; releasing the portion of the memory resource so that the portion of memory resource can be reused; and after the portion of the memory resource is released, replacing a reference of the object that points to the original virtual memory location with a reference of the object that points to the target virtual memory location.Type: GrantFiled: April 25, 2013Date of Patent: May 13, 2014Assignee: Azul Systems, Inc.Inventors: Gil Tene, Michael A. Wolf
-
Patent number: 8694562Abstract: A generational garbage collector utilizes a pool-based heap to store objects dynamically generated at runtime. The pool-based heap is configured as a collection of pools where each pool stores objects associated with the same generation. Each pool contains a pool header that identifies the generation of all objects within the pool. The pools are aligned to a memory boundary that is a multiple of the pool size. Select bits of an object's memory address may be used to access the pool header so that an object's generation, which is needed in various phases of the garbage collection process, is readily determined.Type: GrantFiled: May 22, 2012Date of Patent: April 8, 2014Assignee: Microsoft CorporationInventors: Abhinaba Basu, Jaiprakash Sharma
-
Patent number: 8677054Abstract: A method includes storing data in a non-volatile memory that includes multiple memory blocks. At least first and second regions are defined in the non-volatile memory. A definition is made of a first over-provisioning ratio between a first logical address space and a first physical memory space of the first region, and a second over-provisioning ratio, different from the first over-provisioning ratio, between a second logical address space and a second physical memory space of the second region. Portions of the data are compacted, individually within each of the first and second regions and independently of the other region, by copying the portions from one or more source memory blocks to one or more destination memory blocks using the first and second over-provisioning ratios, respectively.Type: GrantFiled: December 9, 2010Date of Patent: March 18, 2014Assignee: Apple Inc.Inventors: Avraham Meir, Oren Golov
-
Patent number: 8639730Abstract: A system and method for efficient garbage collection. A general-purpose central processing unit (CPU) sends a garbage collection request and a first log to a special processing unit (SPU). The first log includes an address and a data size of each allocated data object stored in a heap in memory corresponding to the CPU. The SPU has a single instruction multiple data (SIMD) parallel architecture and may be a graphics processing unit (GPU). The SPU efficiently performs operations of a garbage collection algorithm due to its architecture on a local representation of the data objects stored in the memory. The SPU records a list of changes it performs to remove dead data objects and compact live data objects. This list is subsequently sent to the CPU, which performs the included operations.Type: GrantFiled: September 24, 2012Date of Patent: January 28, 2014Assignee: Advanced Micro Devices, Inc.Inventors: Azeem S. Jiva, Gary R. Frost
-
Patent number: 8626804Abstract: This invention disclosed a system and method for resource based virtual communities. Any resources that can be shared or used by multiple people, including Internet resources, software or other resources can be the basis for the community, whose members are users of the resource. Web resources include web sites, web pages news groups or discussion forums. Other types of resources include software products, bulletin boards, games or other products. The community composes of the current resource users such as web page readers, bulletin board posters, game players, software users. Whenever a person accesses or uses the resource, the user is automatically joined as part of the community. At the same time they are using the resource, they can access all services provided by the community, such as talking with other members, collaborating with others, publishing comments, or even adding new community services.Type: GrantFiled: September 19, 2010Date of Patent: January 7, 2014Inventor: Yongyong Xu
-
Patent number: 8621171Abstract: An illustrative embodiment of a computer-implemented process for compaction planning selects a source region from a set of regions to form a selected source region, initializes process data using information from the selected source region and responsive to a determination that a current destination is not NULL and not full, determines whether to atomically consume from a destination. Responsive to a determination to atomically consume from a destination, the computer-implemented process plans to evacuate into a consumed extent and updates the process data and responsive to a determination that the source region is empty, determines whether more work remains. Responsive to a determination that more work does not remain, the computer-implemented process generates a relocation table.Type: GrantFiled: February 8, 2011Date of Patent: December 31, 2013Assignee: International Business Machines CorporationInventors: Peter Wiebe Burka, Jeffrey Michael Disher, Daryl James Maier, Aleksandar Micic, Ryan Andrew Sciampacone
-
Patent number: 8612493Abstract: Tracking newly created objects during a garbage collection cycle includes marking newly allocated objects in the GC cycle during the allocation cache population phase. The goal is to take a high performance system for tracing live objects, such as the mark map, and combine the SATB with a cached allocation system for heap memory such that SATB representation is preserved. Embodiments combine both efficient support for an SATB model during a collection cycle and a highly optimized allocation path for heap objects in an allocation scheme (which may optionally be a size segregated class allocation scheme) that allows both mechanisms to co-exist effectively. Specifically, embodiments track newly created objects during a GC cycle such that they are kept alive during the trace phase while continuing to support a highly efficient allocating caching strategy.Type: GrantFiled: October 30, 2008Date of Patent: December 17, 2013Assignee: International Business Machines CorporationInventors: Aleksandar Micic, Ryan A. Sciampacone
-
Patent number: 8527560Abstract: Aspects for conservative garbage collecting are disclosed. In one aspect, a heap of objects is generated during an execution of a script, and script objects in an unexecuted portion are traced to corresponding memory locations on the heap. The heap is then marked concurrently with executing the script such that a marked heap includes reachable and unreachable objects. Memory allocated to the unreachable objects is then freed concurrently with executing the script based on the marking. In another aspect, an object graph associated with a call stack is generated and traced such that script objects in an unexecuted portion of the stack are traced to corresponding memory locations on a heap. Heap objects are marked concurrently with executing the stack so that a marked heap includes reachable and unreachable objects. Memory allocated to the unreachable objects is then cleared concurrently with executing the stack based on the marked heap.Type: GrantFiled: March 29, 2011Date of Patent: September 3, 2013Assignee: Microsoft CorporationInventors: Steven Lucco, Curtis Cheng-Cheng Man
-
Patent number: 8452938Abstract: Memory management includes identifying a region of virtual memory to be reclaimed, the region including at an object that is currently located at an original virtual memory location, and the region being supported by at least a portion of a memory resource; relocating the object from the original virtual memory location to a target virtual memory location; remapping one or more references to the object to the target virtual memory location; and releasing the portion of the memory resource prior to or contemporaneously with remapping the one or more references to the target location.Type: GrantFiled: April 8, 2008Date of Patent: May 28, 2013Assignee: Azul Systems, Inc.Inventors: Gil Tene, Michael A. Wolf
-
Patent number: 8392476Abstract: According to one embodiment, a semiconductor memory device performs writing of data to a semiconductor memory element in response to a request to write the data with a specified logical block address from a host and performs writing of valid data to the semiconductor memory element for compaction according to a log-structured method. The semiconductor memory device adjusts a frequency of the writing response to a request from the host and a frequency of the writing for compaction according to a predetermined ratio.Type: GrantFiled: September 20, 2010Date of Patent: March 5, 2013Assignee: Kabushiki Kaisha ToshibaInventors: Shigehiro Asano, Kenichiro Yoshii, Kazuhiro Fukutomi, Shinichi Kanno
-
Patent number: 8327109Abstract: A system and method for efficient garbage collection. A general-purpose central processing unit (CPU) partitions an allocated heap according to a generational garbage collection technique. The generations are partitioned into fixed size cards. The CPU marks indications of qualified dirty cards during application execution since the last garbage collection. When the CPU detects a next garbage collection start condition is satisfied, the CPU sends a notification to a special processing unit (SPU) corresponding to a determination of one or more card root addresses, each card root address corresponding to one of said marked indications. The SPU has a single instruction multiple data (SIMD) parallel architecture and may be a graphics processing unit (GPU). The SPU may utilize the parallel architecture of its SIMD core to simultaneously compute multiple card root addresses. Following, the SPU sends these addresses to the CPU to be used in a garbage collection algorithm.Type: GrantFiled: March 2, 2010Date of Patent: December 4, 2012Assignee: Advanced Micro Devices, Inc.Inventor: Eric R Caspole
-
Patent number: 8316204Abstract: One embodiment of the present invention provides a system that uses versioned pointers to facilitate reusing memory without having to reclaim the objects solely through garbage collection. The system operates by first receiving a request to allocate an object. Next, the system obtains the object from a pool of free objects, and sets an allocated/free flag in the object to indicate that the object is allocated. The system also increments a version number in the object, and also encodes the version number into a pointer for the object. The system then returns the pointer, which includes the encoded version number. In this way, subsequent accesses to the object through the pointer can compare the version number encoded in the pointer with the version number in the object to determine whether the object has been reused since the pointer was generated.Type: GrantFiled: September 28, 2011Date of Patent: November 20, 2012Assignee: Oracle America, Inc.Inventor: David R. Chase
-
Patent number: 8301672Abstract: A system and method for efficient garbage collection. A general-purpose central processing unit (CPU) sends a garbage collection request and a first log to a special processing unit (SPU). The first log includes an address and a data size of each allocated data object stored in a heap in memory corresponding to the CPU. The SPU has a single instruction multiple data (SIMD) parallel architecture and may be a graphics processing unit (GPU). The SPU efficiently performs operations of a garbage collection algorithm due to its architecture on a local representation of the data objects stored in the memory. The SPU records a list of changes it performs to remove dead data objects and compact live data objects. This list is subsequently sent to the CPU, which performs the included operations.Type: GrantFiled: September 22, 2008Date of Patent: October 30, 2012Assignee: Advanced Micro Devices, Inc.Inventors: Azeem S. Jiva, Gary R. Frost
-
Patent number: 8296337Abstract: An apparatus, system, and method are disclosed for managing data with an empty data segment directive at the requesting device. The apparatus, system, and method include a token directive generation module and a token directive transmission module. The token directive generation module generates a storage request with a token directive. The token directive includes a request to store on the storage device a data segment token. The token directive substitutes for a series of repeated, identical characters or a series of repeated, identical character strings to be stored as a data segment. The token directive includes at least a data segment identifier and a data segment length. The data segment token and the token directive are substantially free from data of the data segment. The token directive transmission module transmits the token directive to the storage device.Type: GrantFiled: December 6, 2007Date of Patent: October 23, 2012Assignee: Fusion-io, Inc.Inventors: David Flynn, Jonathan Thatcher, Michael Zappe
-
Patent number: 8266190Abstract: Mechanisms of memory management in a real time runtime environment having a garbage collected memory heap are provided. The runtime environment includes a critical real time thread that is precluded from accessing the garbage collected memory heap. The runtime environment further includes a scoped memory area for the allocation of objects therein for access by the critical real time thread. The mechanisms determine whether the critical real time thread is in a defined state in which a delay associated with garbage collection can be accommodated by the critical thread. The mechanisms further initiate, in response to a determination that the critical real time thread is in the defined state, a process of garbage collection of the scoped memory area.Type: GrantFiled: September 23, 2008Date of Patent: September 11, 2012Assignee: International Business Machines CorporationInventor: Andrew Johnson
-
Patent number: 8195721Abstract: In a virtual machine, Java Virtual Machine, or other runtime environment, a system and a method for improving the garbage collection times of the virtual machine memory. The JVM, or a garbage collector operating therein, can estimate, for an area of the memory space, the sum of the pause times for garbage collection of the software objects within the area, and control the garbage collection process so that the sum of the pause times for garbage collection will be lower than a target pause time limit, with a high degree of probability. A preselected compaction area can be pre-compacted to keep the compaction time within the target limit. The garbage collector can also predict the time required for final marking and repeat precleaning until the predicted final marking time is within the limits for pause times, and can improve pause times by redirecting application worker threads to do garbage collector work when entering or leaving the memory subsystem.Type: GrantFiled: May 3, 2011Date of Patent: June 5, 2012Assignee: Oracle International CorporationInventors: David Lindholm, Mattias Joelson, Noora Peura
-
Patent number: 8176235Abstract: Enhanced write performance for non-volatile memories including a memory system that includes a receiver for receiving a data rate of a data sequence to be written to a non-volatile flash memory device. The memory system also includes a physical page selector for selecting a physical address of an invalid previously written memory page from a group of physical addresses of invalid previously written memory pages located on the non-volatile memory device, and for determining if the number of free bits in the invalid previously written memory page at the selected physical address is greater than or equal to the data rate. The memory system also includes a transmitter for outputting the selected physical address of the invalid previously written memory page, the outputting in response to the physical page selector determining that the number of free bits is greater than or equal to the data rate.Type: GrantFiled: December 4, 2009Date of Patent: May 8, 2012Assignee: International Business Machines CorporationInventors: Michele M. Franceschini, Ashish Jagmohan, Luis A. Lastras-Montano, Mayank Sharma
-
Patent number: 8176234Abstract: Multi-write coding of non-volatile memories including a method that receives write data, and a write address of a memory page. The memory page is in either an erased state or a previously written state. If the memory page is in the erased state: selecting a first codeword from a code such that the first codeword encodes the write data and is consistent with a target set of distributions of electrical charge levels in the memory page; and writing the first codeword to the memory page. If the memory page is in the previously written state: selecting a coset from a linear code such that the coset encodes the write data and includes one or more words that are consistent with previously written content of the memory page; selecting a subsequent codeword from the one or more words in the coset; and writing the subsequent codeword to the memory page.Type: GrantFiled: December 4, 2009Date of Patent: May 8, 2012Assignee: International Business Machines CorporationInventors: Michele M. Franceschini, Ashish Jagmohan, Luis A. Lastras-Montano
-
Patent number: 8051267Abstract: One embodiment of the present invention provides a system that uses versioned pointers to facilitate reusing memory without having to reclaim the objects solely through garbage collection. The system operates by first receiving a request to allocate an object. Next, the system obtains the object from a pool of free objects, and sets an allocated/free flag within the object to indicate that the object is allocated. The system also increments a version number within the object, and also encodes the version number into a pointer for the object. The system then returns the pointer, which includes the encoded version number. In this way, subsequent accesses to the object through the pointer can compare the version number encoded in the pointer with the version number within the object to determine whether the object has been reused since the pointer was generated.Type: GrantFiled: February 9, 2005Date of Patent: November 1, 2011Assignee: Oracle America, Inc.Inventor: David R. Chase
-
Publication number: 20110208791Abstract: In a virtual machine, Java Virtual Machine, or other runtime environment, a system and a method for improving the garbage collection times of the virtual machine memory. The JVM, or a garbage collector operating therein, can estimate, for an area of the memory space, the sum of the pause times for garbage collection of the software objects within the area, and control the garbage collection process so that the sum of the pause times for garbage collection will be lower than a target pause time limit, with a high degree of probability. A preselected compaction area can be pre-compacted to keep the compaction time within the target limit. The garbage collector can also predict the time required for final marking and repeat precleaning until the predicted final marking time is within the limits for pause times, and can improve pause times by redirecting application worker threads to do garbage collector work when entering or leaving the memory subsystem.Type: ApplicationFiled: May 3, 2011Publication date: August 25, 2011Applicant: ORACLE INTERNATIONAL CORPORATIONInventors: David Lindholm, Mattias Joelson, Noora Peura
-
Patent number: 8001125Abstract: One embodiment of the present invention provides a system that facilitates defining relationships between tags. During operation, the system receives a user-specified tag that describes a data item. Next, the system displays this tag to a user via a user interface that gives the user the option to suggest additional relationships for the tag. Based on user input, the system may define a relationships between the two tags, thereby facilitating the definition of a set of related tags for an organization.Type: GrantFiled: July 30, 2008Date of Patent: August 16, 2011Assignee: Intuit Inc.Inventors: Vladimir Magdalin, Marcus Tad Milbourn
-
Patent number: 7966607Abstract: One embodiment of the present invention provides a system that facilitates managing compiled program methods in a unified heap. The system partitions the unified heap into a first area and a second area. This allows the system to store objects other than compiled program methods and temporary compiler data structures in the first area, and to store compiled program methods and temporary compiler data structures in the second area.Type: GrantFiled: December 22, 2004Date of Patent: June 21, 2011Assignee: Oracle America, Inc.Inventors: Ioi K. Lam, Frank N. Yellin, Oleg A. Pliss
-
Patent number: 7953773Abstract: In a virtual machine, Java Virtual Machine, or other runtime environment, a system and a method for improving the garbage collection times of the virtual machine memory. The JVM, or a garbage collector operating therein, can estimate, for an area of the memory space, the sum of the pause times for garbage collection of the software objects within the area, and control the garbage collection process so that the sum of the pause times for garbage collection will be lower than a target pause time limit, with a high degree of probability. A preselected compaction area can be pre-compacted to keep the compaction time within the target limit. The garbage collector can also predict the time required for final marking and repeat precleaning until the predicted final marking time is within the limits for pause times, and can improve pause times by redirecting application worker threads to do garbage collector work when entering or leaving the memory subsystem.Type: GrantFiled: July 15, 2005Date of Patent: May 31, 2011Assignee: Oracle International CorporationInventors: David Lindholm, Mattias Joelson, Noora Peura
-
Patent number: 7930325Abstract: A garbage collection algorithm that achieves hierarchical copy order with parallel garbage collection threads. More specifically, the present invention provides a garbage collection method and system for copying objects from a from-space to a to-space. The method comprises the steps of (a) having multiple threads that simultaneously perform work for garbage collection (GC), (b) examining the placement of objects on blocks, and (c) changing the placement of objects on blocks based on step (b). Preferably, the method includes the additional step of calculating a placement of object(s) based on step (b), and using the result of the calculation for step (c). For example, the calculation may be used to increase the frequency of intra-block pointers and/or to increase the frequency of siblings on the same block.Type: GrantFiled: May 29, 2008Date of Patent: April 19, 2011Assignee: International Business Machines CorporationInventors: David K. Siegwart, Martin Hirzel
-
Patent number: 7882159Abstract: Associative references in a garbage collected programming environment is disclosed. An indication that an object is not reachable from any root object. The object is kept alive if it is determined by a garbage collection process, based at least in part on data other than data comprising the object or managed by an application with which the object is associated, that the object is associated with at least one other object that has been determined to be reachable.Type: GrantFiled: July 25, 2007Date of Patent: February 1, 2011Assignee: Apple Inc.Inventor: Patrick C. Beard
-
Patent number: 7882158Abstract: 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: May 12, 2009Date of Patent: February 1, 2011Assignee: Microsoft CorporationInventors: Patrick H. Dussud, Vance P. Morrison
-
Patent number: 7870170Abstract: An improved method, apparatus, and computer instructions for identifying a memory leak in a heap. Prior to the start of the observation period, all live objects in the heap are identified to form a set of live objects by altering an indicator in the live objects. After running the system for the required amount of time or until completion of the event being monitored, the system is used to obtain the list of live objects without the altered indicator. Live objects without the altered indicators form the most likely objects associated with a memory leak.Type: GrantFiled: May 3, 2005Date of Patent: January 11, 2011Assignee: International Business Machines CorporationInventors: Phani Gopal V. Achanta, Robert Dimpsey, Frank Eliot Levine, Robert John Urquhart
-
Patent number: 7814130Abstract: A method, system, and program for efficient parallel bitwise sweeps of larger objects during garbage collection are provided. During a bitwise sweep, a helper thread scans a mark vector looking for a consecutive sequence of unmarked bits of a sufficient length following a marked bit. Once a consecutive sequence of unmarked bits of a sufficient length following a marked bit is detected, the helper thread fetches the size of a marked object corresponding to the marked bit. If the size of the marked object exceeds a size represented by the consecutive sequence of unmarked bits, the remainder of the bits representing the marked object are skipped, such that once a marked object is identified as potentially exceeding an object fetch threshold the helper thread efficiently skips the remainder of the bits represents the marked object and continues scanning for a number of consecutive zeroes indicating free space.Type: GrantFiled: March 19, 2008Date of Patent: October 12, 2010Assignee: International Business Machines CorporationInventor: Geoffrey Owen Blandy
-
Patent number: 7792880Abstract: A garbage collection system that needs to meet real-time requirements breaks large objects that need to be moved into a series of arraylets. The arraylets are sized such that the amount of time required to move the arraylets is bounded by a predetermined amount. The arrays are preferably uniformly represented in the header for each array with a series of arraylet pointers that indicate the location of the arraylets. Control-flow graph splitting is used to eliminate multiple tests and allow common sub-expression elimination. Strip-mining can also be used to improve the efficiency of the process.Type: GrantFiled: January 5, 2004Date of Patent: September 7, 2010Assignee: International Business Machines CorporationInventors: Matthew Arnold, David Francis Bacon, Perry Cheng, Vadakkedathu Thomas Rajan
-
Patent number: 7734667Abstract: A system and method is provided for reducing memory leaks in virtual machine programs, such as those encountered in programs running in the Java Virtual Machine (JVM) environment. A compiler, such as a Java Just-In-Time (JIT) compiler, is used to identify the last use of an variable and, subsequent to the program statement where the last use occurs, insert a nullification statement. The nullification statement nullifies the variable so that it no longer references an object stored in a garbage collected heap. Variables in a program are identified in the activation records of the program. The nullification statement, when executed, severs the link between the program and the objects stored in the garbage-collected heap so that the program is no longer seen as a “root” for the object, often enabling the garbage collector to reclaim memory occupied by the object sooner.Type: GrantFiled: November 12, 2007Date of Patent: June 8, 2010Assignee: International Business Machines CorporationInventor: John M. Lake
-
Patent number: RE42396Abstract: A garbage collection method that distinguishes between local objects and managed objects, and between an ordinary pointer to an object, an owning pointer to an object, and a non-owning pointer to an object is presented. Ordinary pointers point only to local objects, and owning and non-owning pointers point only to managed objects. Managed objects have attributes including a count of the number of owning pointers referring to them, and a linked list of non-owning pointers referring to them. Managed objects only possess non-owning pointers. Only an invocation of a subroutine within a thread can possess an owning pointer. Using this method, when an invocation exits, its exit code gives up ownership of all objects it owned. When an object is no longer reachable from any owning pointer, either directly, or indirectly through non-owning pointers, the object is immediately de-allocated.Type: GrantFiled: November 23, 2005Date of Patent: May 24, 2011Assignee: Tangie Data Holdings LLCInventor: Theodore S. Hills