Hardware Transactional Memory-Assisted Flat Combining

    公开(公告)号:US20250123879A1

    公开(公告)日:2025-04-17

    申请号:US19000259

    申请日:2024-12-23

    Abstract: An HTM-assisted Combining Framework (HCF) may enable multiple (combiner and non-combiner) threads to access a shared data structure concurrently using hardware transactional memory (HTM). As long as a combiner executes in a hardware transaction and ensures that the lock associated with the data structure is available, it may execute concurrently with other threads operating on the data structure. HCF may include attempting to apply operations to a concurrent data structure utilizing HTM and if the HTM attempt fails, utilizing flat combining within HTM transactions. Publication lists may be used to announce operations to be applied to a concurrent data structure. A combiner thread may select a subset of the operations in the publication list and attempt to apply the selected operations using HTM. If the thread fails in these HTM attempts, it may acquire a lock associated with the data structure and apply the selected operations without HTM.

    Systems and methods for safely subscribing to locks using hardware extensions

    公开(公告)号:US10521277B2

    公开(公告)日:2019-12-31

    申请号:US14736123

    申请日:2015-06-10

    Abstract: Transactional Lock Elision allows hardware transactions to execute unmodified critical sections protected by the same lock concurrently, by subscribing to the lock and verifying that it is available before committing the transaction. A “lazy subscription” optimization, which delays lock subscription, can potentially cause behavior that cannot occur when the critical sections are executed under the lock. Hardware extensions may provide mechanisms to ensure that lazy subscriptions are safe (e.g., that they result in correct behavior). Prior to executing a critical section transactionally, its lock and subscription code may be identified (e.g., by writing their locations to special registers). Prior to committing the transaction, the thread executing the critical section may verify that the correct lock was correctly subscribed to. If not, or if locations identified by the special registers have been modified, the transaction may be aborted. Nested critical sections associated with different lock types may invoke different subscription code.

    Read concurrency using hardware transactional lock elision

    公开(公告)号:US10055129B2

    公开(公告)日:2018-08-21

    申请号:US15050396

    申请日:2016-02-22

    Abstract: Threads using hardware transactions and executing instrumented critical sections that do not perform any writes may complete as long as the thread holding the lock has not yet executed its first write operation. If the thread executing the instrumented critical section performs any writes, or if the thread holding the lock performs any writes during its critical section, the hardware transaction may be aborted. A write flag may be used to determine whether the thread holding the lock performs any writes. The thread holding the lock may set the flag before performing any write operation. The thread executing the hardware transaction may subscribe to that flag and abort the transaction if the flag is set to true, indicating that the thread holding the lock performed a write operation.

    System and method for implementing reader-writer locks using hardware transactional memory
    4.
    发明授权
    System and method for implementing reader-writer locks using hardware transactional memory 有权
    使用硬件事务内存实现读写器锁的系统和方法

    公开(公告)号:US09342380B2

    公开(公告)日:2016-05-17

    申请号:US13784965

    申请日:2013-03-05

    CPC classification number: G06F9/467 G06F9/5027 G06F9/528 G06F2209/523

    Abstract: Transactional reader-writer locks may leverage available hardware transactional memory (HTM) to simplify the procedures of the reader-writer lock algorithm and to eliminate a requirement for type stable memory An HTM-based reader-writer lock may include an ordered list of client-provided nodes, each of which represents a thread that holds (or desires to acquire) the lock, and a tail pointer. The locking and unlocking procedures invoked by readers and writers may access the tail pointer or particular ones of the nodes in the list using various combinations of transactions and non-transactional accesses to insert nodes into the list or to remove nodes from the list. A reader or writer that owns a node at the head of the list (or a reader whose node is preceded in the list only by other readers' nodes) may access a critical section of code or shared resource.

    Abstract translation: 事务读写器锁可以利用可用的硬件事务存储器(HTM)来简化读写器锁定算法的过程,并消除对类型稳定存储器的要求基于HTM的读写器锁可以包括客户端 - 提供的节点,每个节点表示一个保存(或希望获取)锁的线程和一个尾部指针。 读者和作者调用的锁定和解锁过程可以使用事务和非事务性访问的各种组合来访问列表中的尾部指针或特定节点,以将节点插入到列表中或从列表中删除节点。 在列表头部拥有一个节点的阅读器或写入器(或者只有其他读取器节点在其列表中的节点之前的读取器)可以访问代码或共享资源的关键部分。

    Systems and methods for safely subscribing to locks using hardware extensions

    公开(公告)号:US11809917B2

    公开(公告)日:2023-11-07

    申请号:US16723766

    申请日:2019-12-20

    CPC classification number: G06F9/526 G06F9/30087 G06F9/3851 G06F9/467

    Abstract: Transactional Lock Elision allows hardware transactions to execute unmodified critical sections protected by the same lock concurrently, by subscribing to the lock and verifying that it is available before committing the transaction. A “lazy subscription” optimization, which delays lock subscription, can potentially cause behavior that cannot occur when the critical sections are executed under the lock. Hardware extensions may provide mechanisms to ensure that lazy subscriptions are safe (e.g., that they result in correct behavior). Prior to executing a critical section transactionally, its lock and subscription code may be identified (e.g., by writing their locations to special registers). Prior to committing the transaction, the thread executing the critical section may verify that the correct lock was correctly subscribed to. If not, or if locations identified by the special registers have been modified, the transaction may be aborted. Nested critical sections associated with different lock types may invoke different subscription code.

    System and method for implementing shared probabilistic counters storing update probability values
    7.
    发明授权
    System and method for implementing shared probabilistic counters storing update probability values 有权
    用于实现存储更新概率值的共享概率计数器的系统和方法

    公开(公告)号:US09417910B2

    公开(公告)日:2016-08-16

    申请号:US13722839

    申请日:2012-12-20

    CPC classification number: G06F9/4881 G06F9/52 G06F9/524

    Abstract: The systems and methods described herein may implement probabilistic counters and/or update mechanisms for those counters such that they are dependent on the value of a configurable accuracy parameter. The accuracy parameter value may be adjusted to provide fine-grained control over the tradeoff between the accuracy of the counters and the performance of applications that access them. The counters may be implemented as data structures that include a mantissa portion and an exponent portion that collectively represent an update probability value. When updating the counters, the value of the configurable accuracy parameter may affect whether, when, how often, or by what amount the mantissa portion and/or the exponent portion are updated. Updating a probabilistic counter may include multiplying its value by a constant that is dependent on the value of a configurable accuracy parameter. The counters may be accessible within transactions. The counters may have deterministic update policies.

    Abstract translation: 这里描述的系统和方法可以为这些计数器实现概率计数器和/或更新机制,使得它们取决于可配置精度参数的值。 可以调整精度参数值,以便在计数器的准确性和访问它们的应用程序的性能之间进行权衡,以提供细粒度的控制。 计数器可以被实现为数据结构,其包括统一地表示更新概率值的尾数部分和指数部分。 当更新计数器时,可配置的精度参数的值可能会影响是否,何时,多长时间还是影响尾数部分和/或指数部分的更新量。 更新概率计数器可以包括将其值乘以一个取决于可配置精度参数的值的常数。 柜台可能在交易中可访问。 计数器可能具有确定性的更新策略。

    Systems and Methods for Safely Subscribing to Locks Using Hardware Extensions
    8.
    发明申请
    Systems and Methods for Safely Subscribing to Locks Using Hardware Extensions 审中-公开
    使用硬件扩展安全地使用锁定的系统和方法

    公开(公告)号:US20160011915A1

    公开(公告)日:2016-01-14

    申请号:US14736123

    申请日:2015-06-10

    Abstract: Transactional Lock Elision allows hardware transactions to execute unmodified critical sections protected by the same lock concurrently, by subscribing to the lock and verifying that it is available before committing the transaction. A “lazy subscription” optimization, which delays lock subscription, can potentially cause behavior that cannot occur when the critical sections are executed under the lock. Hardware extensions may provide mechanisms to ensure that lazy subscriptions are safe (e.g., that they result in correct behavior). Prior to executing a critical section transactionally, its lock and subscription code may be identified (e.g., by writing their locations to special registers). Prior to committing the transaction, the thread executing the critical section may verify that the correct lock was correctly subscribed to. If not, or if locations identified by the special registers have been modified, the transaction may be aborted. Nested critical sections associated with different lock types may invoke different subscription code.

    Abstract translation: 事务锁定Elision允许硬件事务通过订阅锁并在提交事务之前验证它是否可用来同时执行受同一锁定保护的未修改的关键段。 延迟锁订阅的“延迟订阅”优化可能会导致在锁定下执行关键部分时不会发生的行为。 硬件扩展可以提供机制来确保延迟订阅是安全的(例如,它们导致正确的行为)。 在事务执行关键部分之前,可以识别其锁定和订阅代码(例如,通过将其位置写入特殊寄存器)。 在提交事务之前,执行关键部分的线程可能会验证正确锁定是否正确。 如果不是,或者如果由特殊寄存器识别的位置已被修改,则可能会中止该事务。 与不同锁类型相关联的嵌套关键部分可能会调用不同的订阅代码。

    System and Method for Implementing Constrained Data-Driven Parallelism
    9.
    发明申请
    System and Method for Implementing Constrained Data-Driven Parallelism 有权
    实现受约束数据驱动并行的系统和方法

    公开(公告)号:US20140282574A1

    公开(公告)日:2014-09-18

    申请号:US14047749

    申请日:2013-10-07

    CPC classification number: G06F9/4881

    Abstract: Systems and methods for implementing constrained data-driven parallelism may provide programmers with mechanisms for controlling the execution order and/or interleaving of tasks spawned during execution. For example, a programmer may define a task group that includes a single task, and the single task may define a direct or indirect trigger that causes another task to be spawned (e.g., in response to a modification of data specified in the trigger). Tasks spawned by a given task may be added to the same task group as the given task. A deferred keyword may control whether a spawned task is to be executed in the current execution phase or its execution is to be deferred to a subsequent execution phase for the task group. Execution of all tasks executing in the current execution phase may need to be complete before the execution of tasks in the next phase can begin.

    Abstract translation: 用于实现约束的数据驱动并行性的系统和方法可以为程序员提供用于控制在执行期间产生的任务的执行顺序和/或交错的机制。 例如,程序员可以定义包括单个任务的任务组,并且单个任务可以定义导致另一任务被产生的直接或间接触发(例如,响应于在触发器中指定的数据的修改)。 给定任务产生的任务可以添加到与给定任务相同的任务组。 延迟关键字可以控制是否在当前执行阶段执行产生的任务,否则将其执行推迟到任务组的后续执行阶段。 执行当前执行阶段中执行的所有任务可能需要在下一阶段的任务执行开始之前完成。

    System and Method for Implementing NUMA-Aware Statistics Counters
    10.
    发明申请
    System and Method for Implementing NUMA-Aware Statistics Counters 有权
    实现NUMA感知统计计数器的系统和方法

    公开(公告)号:US20140181423A1

    公开(公告)日:2014-06-26

    申请号:US13722817

    申请日:2012-12-20

    CPC classification number: G06F13/18 G06F9/5027 G06F9/52 G06F9/526

    Abstract: The systems and methods described herein may be used to implement scalable statistics counters suitable for use in systems that employ a NUMA style memory architecture. The counters may be implemented as data structures that include a count value portion and a node identifier portion. The counters may be accessible within transactions. The node identifier portion may identify a node on which a thread that most recently incremented the counter was executing or one on which a thread that has requested priority to increment the shared counter was executing. Threads executing on identified nodes may have higher priority to increment the counter than other threads. Threads executing on other nodes may delay their attempts to increment the counter, thus encouraging consecutive updates from threads on a single node. Impatient threads may attempt to update the node identifier portion or may update an anti-starvation variable to indicate a request for priority.

    Abstract translation: 本文描述的系统和方法可以用于实现适用于采用NUMA风格存储器架构的系统中的可伸缩统计计数器。 计数器可以被实现为包括计数值部分和节点标识符部分的数据结构。 柜台可能在交易中可访问。 节点标识符部分可以标识正在执行计数器最近递增的线程的节点,或者正在执行已经请求优先级以增加共享计数器的线程的节点。 在标识节点上执行的线程可能比其他线程具有更高的优先级来增加计数器。 在其他节点上执行的线程可能会延迟其增加计数器的尝试,从而鼓励单个节点上线程的连续更新。 不耐烦的线程可以尝试更新节点标识符部分,或者可以更新反饥饿变量以指示优先级请求。

Patent Agency Ranking