-
公开(公告)号:US20090144712A1
公开(公告)日:2009-06-04
申请号:US11947031
申请日:2007-11-29
申请人: Bjarne Steensgaard , Erez Petrank , Filip Pizlo
发明人: Bjarne Steensgaard , Erez Petrank , Filip Pizlo
IPC分类号: G06F9/45
CPC分类号: G06F8/4441
摘要: 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.
摘要翻译: 机制采用代码克隆和专门的代码执行障碍来最小化运行时开销。 这通过复制代码并在代码副本中插入障碍的专门化来实现。 当垃圾收集通过不同阶段执行时,该机制对于垃圾收集是有效的,并且屏障行为和开销取决于这些阶段。 复制和专用的代码使程序能够有效地运行,当相位是众所周知的时候减少相位检查的动态计数,并且可以避免相位检查。
-
公开(公告)号:US09110791B2
公开(公告)日:2015-08-18
申请号:US12041354
申请日:2008-03-03
申请人: Filip Pizlo , Erez Petrank , Bjarne Steensgaard
发明人: Filip Pizlo , Erez Petrank , Bjarne Steensgaard
CPC分类号: G06F12/0269 , G06F12/0207 , G06F12/0215 , G06F12/0223 , G06F12/0284 , G06F12/0802
摘要: 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.
摘要翻译: 对象重定位通常涉及从源地址到目标地址的对象的多字副本,随后更新对象的引用(例如,指针)。 然而,在重定位期间,其他线程可以写入已经被重新定位的对象的部分,并且当引用被更新以指向目的地址时,更新可能丢失。 可以实施非阻塞重定位技术以允许线程在重定位期间写入对象,其中监视存储器访问以对对象进行写入。 如果在重定位期间检测到写入,则重定位失败,并且释放目的地址中的存储器; 但如果没有检测到写入,则重定位成功并且引用被更新以指向目的地址。 可以实现该技术的改进以减少其他同步问题。
-
公开(公告)号:US08782627B2
公开(公告)日:2014-07-15
申请号:US11947031
申请日:2007-11-29
申请人: Bjarne Steensgaard , Erez Petrank , Filip Pizlo
发明人: Bjarne Steensgaard , Erez Petrank , Filip Pizlo
IPC分类号: G06F9/45
CPC分类号: G06F8/4441
摘要: 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.
摘要翻译: 机制采用代码克隆和专门的代码执行障碍来最小化运行时开销。 这通过复制代码并在代码副本中插入障碍的专门化来实现。 当垃圾收集通过不同阶段执行时,该机制对于垃圾收集是有效的,并且屏障行为和开销取决于这些阶段。 复制和专用的代码使程序能够有效地运行,当相位是众所周知的时候减少相位检查的动态计数,并且可以避免相位检查。
-
公开(公告)号:US20090222634A1
公开(公告)日:2009-09-03
申请号:US12041380
申请日:2008-03-03
申请人: Filip Pizlo , Erez Petrank , Bjarne Steensgaard
发明人: Filip Pizlo , Erez Petrank , Bjarne Steensgaard
IPC分类号: G06F12/00
CPC分类号: G06F12/0269
摘要: 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.
摘要翻译: 对象重定位通常涉及从源存储器到目的地存储器的对象的多字副本,随后更新对象的引用(例如,指针)。 然而,在重定位期间,其他线程可能会写入已经重新定位的对象的部分,并且当引用被更新以指向目的地存储器时,更新可能会丢失。 因此,对象重新定位可以用重定位值在重定位期间标记对象的单词,以指示在不锁定线程的情况下传送到目的地存储器。 线程可以被配置为在对象访问期间检查源存储器的值,并且如果源存储器字包括重定位值,则访问目标存储器的对应字。 虽然出现在对象中的大(例如,64位)重定位值的概率很小,但是提供了用于检测和减轻冲突的安全措施。
-
公开(公告)号:US20090222494A1
公开(公告)日:2009-09-03
申请号:US12041354
申请日:2008-03-03
申请人: Filip Pizlo , Erez Petrank , Bjarne Steensgaard
发明人: Filip Pizlo , Erez Petrank , Bjarne Steensgaard
IPC分类号: G06F17/30
CPC分类号: G06F12/0269 , G06F12/0207 , G06F12/0215 , G06F12/0223 , G06F12/0284 , G06F12/0802
摘要: 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.
摘要翻译: 对象重定位通常涉及从源地址到目标地址的对象的多字副本,随后更新对象的引用(例如,指针)。 然而,在重定位期间,其他线程可以写入已经被重新定位的对象的部分,并且当引用被更新以指向目的地址时,更新可能丢失。 可以实现非阻塞重定位技术以允许线程在重定位期间写入对象,其中监视存储器访问以对对象进行写入。 如果在重定位期间检测到写入,则重定位失败,并且释放目的地址中的存储器; 但如果没有检测到写入,则重定位成功并且引用被更新以指向目的地址。 可以实现该技术的改进以减少其他同步问题。
-
公开(公告)号:US08245005B2
公开(公告)日:2012-08-14
申请号:US12041380
申请日:2008-03-03
申请人: Filip Pizlo , Erez Petrank , Bjarne Steensgaard
发明人: Filip Pizlo , Erez Petrank , Bjarne Steensgaard
IPC分类号: G06F12/00
CPC分类号: G06F12/0269
摘要: 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.
摘要翻译: 对象重定位通常涉及从源存储器到目的地存储器的对象的多字副本,随后更新对象的引用(例如,指针)。 然而,在重定位期间,其他线程可能会写入已经重新定位的对象的部分,并且当引用被更新以指向目的地存储器时,更新可能会丢失。 因此,对象重新定位可以用重定位值在重定位期间标记对象的单词,以指示在不锁定线程的情况下传送到目的地存储器。 线程可以被配置为在对象访问期间检查源存储器的值,并且如果源存储器字包括重定位值,则访问目标存储器的对应字。 虽然出现在对象中的大(例如,64位)重定位值的概率很小,但提供了安全措施来检测和减轻冲突。
-
公开(公告)号:US08825719B2
公开(公告)日:2014-09-02
申请号:US12261920
申请日:2008-10-30
申请人: Bjarne Steensgaard , Erez Petrank , Gabriel Kliot
发明人: Bjarne Steensgaard , Erez Petrank , Gabriel Kliot
CPC分类号: G06F12/0269
摘要: 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#.
摘要翻译: 披露了垃圾收集器的并发,增量和无锁堆栈扫描。 该方法使用汇总表和返回障碍以允许高响应性。 该方法还支持使用精细同步来避免锁定的程序,对程序执行造成可忽略的开销,可以与现有的并发收集器一起使用,并支持以C语言编写的特殊堆栈内参考。
-
公开(公告)号:US08041752B2
公开(公告)日:2011-10-18
申请号:US12731018
申请日:2010-03-24
CPC分类号: G06F12/0269
摘要: 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.
摘要翻译: 描述了一种为多处理环境提供实时数据重定位机制的技术,包括支持并行运行的无锁程序。 重新定位机制可以通过使用与数据字段相关的状态字段来移动对象,可能在临时(宽)对象空间中,然后将其复制到空间对象。 原始对象的每个数据字段的状态信息包含指示每个字段的数据的当前版本在哪里的信息,即原始,宽或空间对象中的信息。 在一个示例中,垃圾收集器的握手机制在机制和确定存储器访问发生的其他线程之间建立准备和复制阶段。 还描述了对程序线程比较和交换(CAS)操作和/或多字原子操作的支持。
-
公开(公告)号:US20100179971A1
公开(公告)日:2010-07-15
申请号:US12731018
申请日:2010-03-24
CPC分类号: G06F12/0269
摘要: 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.
摘要翻译: 描述了一种为多处理环境提供实时数据重定位机制的技术,包括支持并行运行的无锁程序。 重新定位机制可以通过使用与数据字段相关的状态字段来移动对象,可能在临时(宽)对象空间中,然后将其复制到空间对象。 原始对象的每个数据字段的状态信息包含指示每个字段的数据的当前版本在哪里的信息,即原始,宽或空间对象中的信息。 在一个示例中,垃圾收集器的握手机制在机制和确定存储器访问发生的其他线程之间建立准备和复制阶段。 还描述了对程序线程比较和交换(CAS)操作和/或多字原子操作的支持。
-
公开(公告)号:US07716192B2
公开(公告)日:2010-05-11
申请号:US11801039
申请日:2007-05-08
IPC分类号: G06F7/00
CPC分类号: G06F12/0269
摘要: 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.
摘要翻译: 描述了一种为多处理环境提供实时数据重定位机制的技术,包括支持并行运行的无锁程序。 重新定位机制可以通过使用与数据字段相关的状态字段来移动对象,可能在临时(宽)对象空间中,然后将其复制到空间对象。 原始对象的每个数据字段的状态信息包含指示每个字段的数据的当前版本在哪里的信息,即原始,宽或空间对象中的信息。 在一个示例中,垃圾收集器的握手机制在机制和确定存储器访问发生的其他线程之间建立准备和复制阶段。 还描述了对程序线程比较和交换(CAS)操作和/或多字原子操作的支持。
-
-
-
-
-
-
-
-
-