会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
热词
    • 61. 发明申请
    • System and Method for Supporting Phased Transactional Memory Modes
    • 支持分阶段存储器模式的系统和方法
    • US20090172306A1
    • 2009-07-02
    • US11967371
    • 2007-12-31
    • Daniel S. NussbaumMark S. Moir
    • Daniel S. NussbaumMark S. Moir
    • G06F12/00G06F9/06
    • G06F9/466
    • A phased transactional memory (PhTM) may support a plurality of transactional memory implementations, including software, hardware, and hybrid implementations, and may provide mechanisms for dynamically transitioning between transactional memory modes in response to changing workload characteristics; upon discovering that the current mode does not perform well, is not suitable, or does not support functionality required for particular transactions; or according to scheduled phases. A system providing PhTM may be configured to transition from a first transactional memory mode to a second transactional memory mode while ensuring that transactions executing in the first transactional memory mode do not interfere with correct execution of transactions in the second transactional memory mode. The system may be configured to abort transactions in progress or to wait for transactions to complete, be aborted, or reach a safe transition point before transitioning to a new mode, and may use a global mode indicator in coordinating transitions.
    • 分阶段事务存储器(PhTM)可以支持包括软件,硬件和混合实现在内的多个事务存储器实现,并且可以提供用于响应于变化的工作负载特性而在事务存储器模式之间动态转换的机制; 在发现当前模式不能很好的情况下,不适合或不支持特定交易所需的功能; 或按照预定的阶段。 提供PhTM的系统可以被配置为从第一事务存储器模式转换到第二事务存储器模式,同时确保以第一事务存储器模式执行的事务不干扰第二事务存储器模式中的事务的正确执行。 该系统可以被配置为在转换到新模式之前中止正在进行的事务或等待事务完成,被中止或达到安全转换点,并且可以在协调转换中使用全局模式指示符。
    • 62. 发明授权
    • Non-blocking growable arrays
    • 非阻塞可生长阵列
    • US07502906B2
    • 2009-03-10
    • US11612264
    • 2006-12-18
    • Mark S. MoirSimon Doherty
    • Mark S. MoirSimon Doherty
    • G06F12/00
    • G06F12/0646
    • A computer system stores a dynamically sized array as a base array that contains references to subarrays in which the (composite) array's data elements reside. Each of the base-array elements that thus refers to a respective subarray is associated with a respective subarray size. Each base-array index is thereby at least implicitly associated with a cumulative base value equal to the sum of all preceding base indexes' associated subarray sizes. In response to a request for access to the element associated with a given (composite-array) index, the array-access system identifies the base index associated with the highest cumulative base value not greater than the composite-array index and performs the access to the subarray identified by the element associated with that base index. Composite-array expansion can be performed in a multi-threaded environment without locking, simply by employing a compare-and-swap or similar atomic operation.
    • 计算机系统将动态大小的数组存储为基数组,其中包含对(复合)数组元素所在的子阵列的引用。 因此,引用相应子阵列的每个基数组元素与相应的子阵列大小相关联。 因此,每个基数组索引至少隐含地与等于所有先前的基本索引的相关子阵列大小的总和的累积基值相关联。 响应于访问与给定(复合数组)索引相关联的元素的请求,阵列访问系统识别与不大于复合数组索引的最高累积基值相关联的基本索引,并执行对 由与该基础索引相关联的元素识别的子阵列。 复合阵列扩展可以在没有锁定的多线程环境中执行,简单地通过采用比较和交换或类似的原子操作。
    • 63. 发明申请
    • REPLAY DEBUGGING
    • US20070288902A1
    • 2007-12-13
    • US11608830
    • 2006-12-10
    • Yosef LevMark S. Moir
    • Yosef LevMark S. Moir
    • G06F9/44
    • G06F11/3632
    • Transactional programming promises to substantially simplify the development and maintenance of correct, scalable, and efficient concurrent programs. Designs for supporting transactional programming using transactional memory implemented in hardware, software, and a mixture of the two have emerged recently. Unfortunately, conventional debugging programs are often inadequate when employed in relation to code that employs transactional memory and new or modified techniques are needed. We describe techniques whereby certain facilities of a transactional memory implementation can be leveraged to provide replay debugging. With replay debugging, the user can examine a partial or complete execution of an atomic block after it has happened—for example, right before the execution commits. Moreover, in some cases the user can modify the replayed execution, and decide to commit the new modified execution instead of the original replayed one.
    • 事务性规划将大大简化正确,可扩展和高效并发程序的开发和维护。 最近出现了使用在硬件,软件和两者的混合中实现的事务性存储来支持事务性编程的设计。 不幸的是,传统的调试程序在采用事务性存储器的代码方面经常是不足够的,需要新的或修改的技术。 我们描述了可以利用事务性存储器实现的某些设施来提供重播调试的技术。 通过重播调试,用户可以在发生原子块之后检查原子块的部分或完全执行,例如在执行提交之前。 此外,在某些情况下,用户可以修改重播的执行,并决定提交新的修改的执行,而不是原始的被重播的执行。
    • 64. 发明授权
    • Lock free reference counting
    • 锁定自由引用计数
    • US06993770B1
    • 2006-01-31
    • US09837671
    • 2001-04-18
    • David L. DetlefsPaul A. MartinMark S. MoirGuy L. Steele, Jr.
    • David L. DetlefsPaul A. MartinMark S. MoirGuy L. Steele, Jr.
    • G06F9/54
    • G06F9/526G06F12/0261Y10S707/99944Y10S707/99947
    • We present a methodology for transforming concurrent data structure implementations that depend on garbage collection to equivalent implementations that do not. Assuming the existence of garbage collection makes it easier to design implementations of concurrent data structures, particularly because it eliminates the well-known ABA problem. However, this assumption limits their applicability. Our results demonstrate that, for a significant class of data structures, designers can first tackle the easier problem of an implementation that does depend on garbage collection, and then apply our methodology to achieve a garbage-collection-independent implementation. Our methodology is based on the well-known reference counting technique, and employs the double compare-and-swap operation.
    • 我们提出一种方法,用于将依赖于垃圾回收的并行数据结构实现转换为不具有相同的实现。 假设垃圾收集的存在使得设计并发数据结构的实现变得更加容易,特别是因为它消除了众所周知的ABA问题。 然而,这个假设限制了它们的适用性。 我们的研究结果表明,对于重要的数据结构类,设计人员可以首先解决实现依赖于垃圾回收的更容易的问题,然后应用我们的方法来实现与垃圾回收无关的实现。 我们的方法是基于众所周知的参考计数技术,并采用双重比较和交换操作。
    • 66. 发明授权
    • System and method for reducing serialization in transactional memory using gang release of blocked threads
    • 使用阻塞线程的释放来减少事务性内存中的序列化的系统和方法
    • US08789057B2
    • 2014-07-22
    • US12327659
    • 2008-12-03
    • David DiceMark S. Moir
    • David DiceMark S. Moir
    • G06F9/46G06F9/48G06F9/52
    • G06F9/466G06F9/4843G06F9/4881G06F9/52G06F9/528
    • Transactional Lock Elision (TLE) may allow multiple threads to concurrently execute critical sections as speculative transactions. Transactions may abort due to various reasons. To avoid starvation, transactions may revert to execution using mutual exclusion when transactional execution fails. Because threads may revert to mutual exclusion in response to the mutual exclusion of other threads, a positive feedback loop may form in times of high congestion, causing a “lemming effect”. To regain the benefits of concurrent transactional execution, the system may allow one or more threads awaiting a given lock to be released from the wait queue and instead attempt transactional execution. A gang release may allow a subset of waiting threads to be released simultaneously. The subset may be chosen dependent on the number of waiting threads, historical abort relationships between threads, analysis of transactions of each thread, sensitivity of each thread to abort, and/or other thread-local or global criteria.
    • 事务锁定Elision(TLE)可允许多个线程同时执行关键部分作为投机交易。 交易可能因各种原因而中止。 为了避免饥饿,当事务执行失败时,事务可以使用互斥来恢复执行。 因为线程可能会因为其他线程的相互排斥而回到互斥状态,所以在高拥塞的时候可能形成正反馈回路,导致“线性效应”。 为了重新获得并发事务执行的好处,系统可能允许一个或多个线程等待给定的锁从等待队列中释放,而不是尝试事务执行。 帮派版本可能允许同时释放等待线程的子集。 可以根据等待线程的数量,线程之间的历史中止关系,每个线程的事务分析,每个线程的中止的灵敏度和/或其他线程局部或全局标准来选择该子集。
    • 67. 发明授权
    • System and method for performing dynamic mixed mode read validation in a software transactional memory
    • 用于在软件事务存储器中执行动态混合模式读取验证的系统和方法
    • US08595446B2
    • 2013-11-26
    • US12626333
    • 2009-11-25
    • Yosef LevMarek K. OlszewskiMark S. Moir
    • Yosef LevMarek K. OlszewskiMark S. Moir
    • G06F12/00G06F13/00G06F13/28
    • G06F9/467G06F9/5016G06F9/526
    • The transactional memory system described herein may apply a mix of read validation techniques to validate read operations (e.g., invisible reads and/or semi-visible reads) in different transactions, or to validate different read operations within a single transaction (including reads of the same location). The system may include mechanisms to dynamically determine that a read validation technique should be replaced by a different technique for reads of particular locations or for all subsequent reads, and/or to dynamically adjust the balance between different read validation techniques to manage costs. Some of the read validation techniques may be supported by hardware transactional memory (HTM). The system may delay acquisition of ownership records for reading, and may acquire two or more ownership records back-to-back (e.g., within a single hardware transaction). The user code of a software transaction may be divided into multiple segments, some of which may be executed within a hardware transaction.
    • 本文描述的事务存储器系统可以应用读取验证技术的混合来验证不同事务中的读取操作(例如,不可见的读取和/或半可见读取),或验证单个事务中的不同读取操作(包括 相同的位置)。 该系统可以包括动态地确定读取验证技术应该被用于读取特定位置或所有后续读取的不同技术所替代的机制,和/或动态地调整不同读取验证技术之间的平衡来管理成本。 一些读取验证技术可能由硬件事务存储器(HTM)支持。 系统可能会延迟获取所有权记录以进行读取,并可能背靠背获取两个或多个所有权记录(例如,在单个硬件事务中)。 软件事务的用户代码可以被划分成多个段,其中一些可以在硬件事务中执行。
    • 68. 发明授权
    • System and method for optimizing a code section by forcing a code section to be executed atomically
    • 通过强制代码段以原子方式执行来优化代码段的系统和方法
    • US08533699B2
    • 2013-09-10
    • US13077793
    • 2011-03-31
    • Mark S. MoirDavid DiceSrikanta N. Tirthapura
    • Mark S. MoirDavid DiceSrikanta N. Tirthapura
    • G06F9/45G06F9/46
    • G06F9/467G06F8/443G06F9/30087G06F12/0261
    • Systems and methods for optimizing code may use transactional memory to optimize one code section by forcing another code section to execute atomically. Application source code may be analyzed to identify instructions in one code section that only need to be executed if there exists the possibility that another code section (e.g., a critical section) could be partially executed or that its results could be affected by interference. In response to identifying such instructions, alternate code may be generated that forces the critical section to be executed as an atomic transaction, e.g., using best-effort hardware transactional memory. This alternate code may replace the original code or may be included in an alternate execution path that can be conditionally selected for execution at runtime. The alternate code may elide the identified instructions (which are rendered unnecessary by the transaction) by removing them, or by including them in the alternate execution path.
    • 用于优化代码的系统和方法可以使用事务存储器来通过强制另一个代码部分以原子方式执行来优化一个代码段。 可以分析应用源代码以识别一个代码部分中的指令,其仅在存在可以部分地执行另一代码部分(例如,关键部分)或其结果可能受到干扰的影响的情况下才需要执行。 响应于识别这样的指令,可以生成迫使关键部分作为原子事务执行的替代代码,例如使用尽力而为的硬件事务存储器。 该替代代码可以替换原始代码,或者可以被包括在可以有选择地在运行时执行的备用执行路径中。 替代代码可以通过删除它们或者将它们包括在备用执行路径中来去除所识别的指令(由事务变得不必要)。
    • 69. 发明申请
    • System and Method for Mitigating the Impact of Branch Misprediction When Exiting Spin Loops
    • 减少自旋循环中分支预测影响的系统和方法
    • US20130198499A1
    • 2013-08-01
    • US13362903
    • 2012-01-31
    • David DiceMark S. Moir
    • David DiceMark S. Moir
    • G06F9/38
    • G06F9/30058G06F9/30079G06F9/325G06F9/3848
    • A computer system may recognize a busy-wait loop in program instructions at compile time and/or may recognize busy-wait looping behavior during execution of program instructions. The system may recognize that an exit condition for a busy-wait loop is specified by a conditional branch type instruction in the program instructions. In response to identifying the loop and the conditional branch type instruction that specifies its exit condition, the system may influence or override a prediction made by a dynamic branch predictor, resulting in a prediction that the exit condition will be met and that the loop will be exited regardless of any observed branch behavior for the conditional branch type instruction. The looping instructions may implement waiting for an inter-thread communication event to occur or for a lock to become available. When the exit condition is met, the loop may be exited without incurring a misprediction delay.
    • 计算机系统可以在编译时识别程序指令中的忙等待循环和/或可以在程序指令执行期间识别忙等待循环行为。 系统可以认识到忙 - 等待循环的退出条件由程序指令中的条件分支类型指令指定。 响应于识别循环和指定其退出条件的条件分支类型指令,系统可以影响或覆盖由动态分支预测器做出的预测,导致预测退出条件将被满足,并且循环将 退出条件分支类型指令的任何观察到的分支行为。 循环指令可以实现等待线程间通信事件发生或锁定变得可用。 当满足退出条件时,可以退出循环而不产生误预计延迟。
    • 70. 发明授权
    • System and method for executing a transaction using parallel co-transactions
    • 使用并行共同交易执行事务的系统和方法
    • US08464261B2
    • 2013-06-11
    • US12750901
    • 2010-03-31
    • Mark S. MoirRobert E. CypherDaniel S. Nussbaum
    • Mark S. MoirRobert E. CypherDaniel S. Nussbaum
    • G06F9/46G06F13/28
    • G06F9/467
    • The transactional memory system described herein may implement parallel co-transactions that access a shared memory such that at most one of the co-transactions in a set will succeed and all others will fail (e.g., be aborted). Co-transactions may improve the performance of programs that use transactional memory by attempting to perform the same high-level operation using multiple algorithmic approaches, transactional memory implementations and/or speculation options in parallel, and allowing only the first to complete to commit its results. If none of the co-transactions succeeds, one or more may be retried, possibly using a different approach and/or transactional memory implementation. The at-most-one property may be managed through the use of a shared “done” flag. Conflicts between co-transactions in a set and accesses made by transactions or activities outside the set may be managed using lazy write ownership acquisition and/or a priority-based approach. Each co-transaction may execute on a different processor resource.
    • 这里描述的事务存储器系统可以实现访问共享存储器的并行共同事务,使得一组中的至多一个共同事务将成功并且所有其他事务将失败(例如,被中止)。 共同交易可以通过尝试使用多种算法方法,事务性存储器实现和/或投机选项并行执行相同的高级操作,并且仅允许第一个完成来提交其结果来提高使用事务性存储器的程序的性能 。 如果没有一个共同交易成功,则可能会重试一个或多个,可能使用不同的方法和/或事务内存实现。 最多的一个属性可以通过使用共享的“完成”标志进行管理。 集合中的交易和集合之外的交易或活动所进行的访问之间的冲突可以使用懒惰书写所有权获取和/或基于优先级的方法进行管理。 每个共同事务可以在不同的处理器资源上执行。