setjmp/longjmp for speculative execution frameworks
    1.
    发明授权
    setjmp/longjmp for speculative execution frameworks 失效
    setjmp / longjmp用于推测执行框架

    公开(公告)号:US08640113B2

    公开(公告)日:2014-01-28

    申请号:US13026702

    申请日:2011-02-14

    IPC分类号: G06F9/45

    摘要: A process for check pointing in speculative execution frameworks, identifies calls to a set of setjmp/longjmp instructions to form identified calls to setjmp/longjmp, determines a control flow path between a call to a setjmp and a longjmp pair of instructions in the identified calls to setjmp/longjmp and replaces calls to the setjmp/longjmp pair of instructions with calls to an improved_setjmp and improved_longjmp instruction pair. The process creates a context data structure in memory, computes a non-volatile save/restore set and replaces the call to improved_setjmp of the setjmp/longjmp pair of instructions with instructions to save all required non-volatile and special purpose registers and replaces a call to improved_longjmp of the setjmp/longjmp pair of instructions with instructions to restore all required non-volatile and special purpose registers and to branch to an instruction immediately following a block of code containing the call to improved_setjmp.

    摘要翻译: 用于检查指向推测执行框架的过程,识别对一组setjmp / longjmp指令的调用以形成对setjmp / longjmp的标识的调用,确定在所识别的呼叫中对setjmp的调用和longjmp指令之间的控制流路径 到setjmp / longjmp,并且通过调用一个improved_setjmp和improved_longjmp指令对来替换对setjmp / longjmp指令对的调用。 该过程在内存中创建一个上下文数据结构,计算一个非易失性存储/恢复集,并用setjmp / longjmp指令对来替换一个改进_setjmp的调用,其中包含所有需要的非易失性和特殊用途寄存器的指令,并替换一个调用 到具有用于恢复所有需要的非易失性和特殊目的寄存器的指令的setjmp / longjmp指令指令的改进_longjmp,并且分支到紧跟在包含对converted_setjmp的调用的代码块之后的指令。

    SETJMP/LONGJMP FOR SPECULATIVE EXECUTION FRAMEWORKS
    2.
    发明申请
    SETJMP/LONGJMP FOR SPECULATIVE EXECUTION FRAMEWORKS 失效
    用于统一执行框架的SETJMP / LONGJMP

    公开(公告)号:US20110289303A1

    公开(公告)日:2011-11-24

    申请号:US13026702

    申请日:2011-02-14

    IPC分类号: G06F9/312

    摘要: A process for check pointing in speculative execution frameworks, identifies calls to a set of setjmp/longjmp instructions to form identified calls to setjmp/longjmp, determines a control flow path between a call to a setjmp and a longjmp pair of instructions in the identified calls to setjmp/longjmp and replaces calls to the setjmp/longjmp pair of instructions with calls to an improved_setjmp and improved_longjmp instruction pair. The process creates a context data structure in memory, computes a non-volatile save/restore set and replaces the call to improved_setjmp of the setjmp/longjmp pair of instructions with instructions to save all required non-volatile and special purpose registers and replaces a call to improved_longjmp of the setjmp/longjmp pair of instructions with instructions to restore all required non-volatile and special purpose registers and to branch to an instruction immediately following a block of code containing the call to improved_setjmp.

    摘要翻译: 用于检查指向推测执行框架的过程,识别对一组setjmp / longjmp指令的调用以形成对setjmp / longjmp的标识的调用,确定在所识别的呼叫中对setjmp的调用和longjmp指令之间的控制流路径 到setjmp / longjmp,并且通过调用一个improved_setjmp和improved_longjmp指令对来替换对setjmp / longjmp指令对的调用。 该过程在内存中创建一个上下文数据结构,计算一个非易失性存储/恢复集,并用setjmp / longjmp指令对来替换一个改进_setjmp的调用,其中包含所有需要的非易失性和特殊用途寄存器的指令,并替换一个调用 到具有用于恢复所有需要的非易失性和特殊目的寄存器的指令的setjmp / longjmp指令指令的改进_longjmp,并且分支到紧跟在包含对converted_setjmp的调用的代码块之后的指令。

    Speculative thread execution with hardware transactional memory
    3.
    发明授权
    Speculative thread execution with hardware transactional memory 有权
    使用硬件事务内存的推测线程执行

    公开(公告)号:US08438568B2

    公开(公告)日:2013-05-07

    申请号:US12711352

    申请日:2010-02-24

    IPC分类号: G06F9/46 G06F7/00 G06F13/00

    摘要: In an embodiment, if a self thread has more than one conflict, a transaction of the self thread is aborted and restarted. If the self thread has only one conflict and an enemy thread of the self thread has more than one conflict, the transaction of the self thread is committed. If the self thread only conflicts with the enemy thread and the enemy thread only conflicts with the self thread and the self thread has a key that has a higher priority than a key of the enemy thread, the transaction of the self thread is committed. If the self thread only conflicts with the enemy thread, the enemy thread only conflicts with the self thread, and the self thread has a key that has a lower priority than the key of the enemy thread, the transaction of the self thread is aborted.

    摘要翻译: 在一个实施例中,如果自线程具有多于一个冲突,则自线程的事务被中止并重新启动。 如果自线程只有一个冲突,并且自线程的敌方线程有多个冲突,则自线程的事务被提交。 如果自线程只与敌方线程冲突,敌方线程只与自线程冲突,自线程的密钥优先级高于敌方线程的密钥,则自线程的事务被提交。 如果自线程只与敌方线程相冲突,敌方线程只会与自身线程冲突,自线程的密钥优先级低于敌方线程的密钥,自身线程的事务中止。

    SPECULATIVE THREAD EXECUTION WITH HARDWARE TRANSACTIONAL MEMORY
    4.
    发明申请
    SPECULATIVE THREAD EXECUTION WITH HARDWARE TRANSACTIONAL MEMORY 有权
    具有硬件交互式存储器的线性螺纹执行

    公开(公告)号:US20110209155A1

    公开(公告)日:2011-08-25

    申请号:US12711352

    申请日:2010-02-24

    IPC分类号: G06F9/46 G06F12/08 G06F12/00

    摘要: In an embodiment, if a self thread has more than one conflict, a transaction of the self thread is aborted and restarted. If the self thread has only one conflict and an enemy thread of the self thread has more than one conflict, the transaction of the self thread is committed. If the self thread only conflicts with the enemy thread and the enemy thread only conflicts with the self thread and the self thread has a key that has a higher priority than a key of the enemy thread, the transaction of the self thread is committed. If the self thread only conflicts with the enemy thread, the enemy thread only conflicts with the self thread, and the self thread has a key that has a lower priority than the key of the enemy thread, the transaction of the self thread is aborted.

    摘要翻译: 在一个实施例中,如果自线程具有多于一个冲突,则自线程的事务被中止并重新启动。 如果自线程只有一个冲突,并且自线程的敌方线程有多个冲突,则自线程的事务被提交。 如果自线程只与敌方线程冲突,敌方线程只与自线程冲突,自线程的密钥优先级高于敌方线程的密钥,则自线程的事务被提交。 如果自线程只与敌方线程相冲突,敌方线程只会与自身线程冲突,自线程的密钥优先级低于敌方线程的密钥,自身线程的事务中止。

    Thread speculative execution and asynchronous conflict
    5.
    发明授权
    Thread speculative execution and asynchronous conflict 有权
    线程推测执行和异步冲突

    公开(公告)号:US08438571B2

    公开(公告)日:2013-05-07

    申请号:US12711328

    申请日:2010-02-24

    IPC分类号: G06F9/46

    摘要: In an embodiment, asynchronous conflict events are received during a previous rollback period. Each of the asynchronous conflict events represent conflicts encountered by speculative execution of a first plurality of work units and may be received out-of-order. During a current rollback period, a first work unit is determined whose speculative execution raised one of the asynchronous conflict events, and the first work unit is older than all other of the first plurality of work units. A second plurality of work units are determined, whose ages are equal to or older than the first work unit, wherein each of the second plurality of work units are assigned to respective executing threads. Rollbacks of the second plurality of work units are performed. After the rollbacks of the second plurality of work units are performed, speculative executions of the second plurality of work units are initiated in age order, from oldest to youngest.

    摘要翻译: 在一个实施例中,在先前的回滚期间期间接收到异步冲突事件。 每个异步冲突事件表示由第一多个工作单元的推测性执行而遇到的冲突,并且可以被无序地接收。 在当前回滚期间,确定第一工作单元,其推测执行引起异步冲突事件中的一个,并且第一工作单元比第一多个工作单元中的所有其他工作单元老。 确定第二多个作业单元,其年龄等于或小于第一工作单元,其中第二多个作业单元中的每一个分配给相应的执行螺纹。 执行第二多个工作单元的回滚。 在执行第二多个作业单元的回滚之后,第二个多个作业单元的推测性执行以年龄从最早到最小的顺序发起。

    Path-Sensitive Analysis for Reducing Rollback Overheads
    6.
    发明申请
    Path-Sensitive Analysis for Reducing Rollback Overheads 有权
    减少回滚开销的路径敏感分析

    公开(公告)号:US20120017203A1

    公开(公告)日:2012-01-19

    申请号:US12835820

    申请日:2010-07-14

    IPC分类号: G06F9/45

    CPC分类号: G06F8/441

    摘要: A mechanism is provided for path-sensitive analysis for reducing rollback overheads. The mechanism receives, in a compiler, program code to be compiled to form compiled code. The mechanism divides the code into basic blocks. The mechanism then determines a restore register set for each of the one or more basic blocks to form one or more restore register sets. The mechanism then stores the one or more register sets such that responsive to a rollback during execution of the compiled code. A rollback routine identifies a restore register set from the one or more restore register sets and restores registers identified in the identified restore register set.

    摘要翻译: 提供了一种用于路径敏感分析以减少回滚开销的机制。 该机制在编译器中接收要编译的程序代码,以形成编译代码。 该机制将代码分为基本块。 该机制然后为一个或多个基本块中的每一个确定恢复寄存器集合以形成一个或多个恢复寄存器集。 该机制然后存储一个或多个寄存器集,以便响应于在编译代码的执行期间的回滚。 回滚程序从一个或多个恢复寄存器集中识别恢复寄存器集,并恢复在所识别的恢复寄存器集中识别的寄存器。

    Path-sensitive analysis for reducing rollback overheads
    7.
    发明授权
    Path-sensitive analysis for reducing rollback overheads 有权
    用于减少回滚开销的路径敏感分析

    公开(公告)号:US08789025B2

    公开(公告)日:2014-07-22

    申请号:US12835820

    申请日:2010-07-14

    IPC分类号: G06F9/45

    CPC分类号: G06F8/441

    摘要: A mechanism is provided for path-sensitive analysis for reducing rollback overheads. The mechanism receives, in a compiler, program code to be compiled to form compiled code. The mechanism divides the code into basic blocks. The mechanism then determines a restore register set for each of the one or more basic blocks to form one or more restore register sets. The mechanism then stores the one or more register sets such that responsive to a rollback during execution of the compiled code. A rollback routine identifies a restore register set from the one or more restore register sets and restores registers identified in the identified restore register set.

    摘要翻译: 提供了一种用于路径敏感分析以减少回滚开销的机制。 该机制在编译器中接收要编译的程序代码,以形成编译代码。 该机制将代码分为基本块。 该机制然后为一个或多个基本块中的每一个确定恢复寄存器集合以形成一个或多个恢复寄存器集。 该机制然后存储一个或多个寄存器集,以便响应于在编译代码的执行期间的回滚。 回滚程序从一个或多个恢复寄存器集中识别恢复寄存器集,并恢复在所识别的恢复寄存器集中识别的寄存器。

    THREAD SPECULATIVE EXECUTION AND ASYNCHRONOUS CONFLICT EVENTS
    8.
    发明申请
    THREAD SPECULATIVE EXECUTION AND ASYNCHRONOUS CONFLICT EVENTS 有权
    螺旋线性执行和异常冲突事件

    公开(公告)号:US20110209154A1

    公开(公告)日:2011-08-25

    申请号:US12711328

    申请日:2010-02-24

    IPC分类号: G06F9/46

    摘要: In an embodiment, asynchronous conflict events are received during a previous rollback period. Each of the asynchronous conflict events represent conflicts encountered by speculative execution of a first plurality of work units and may be received out-of-order. During a current rollback period, a first work unit is determined whose speculative execution raised one of the asynchronous conflict events, and the first work unit is older than all other of the first plurality of work units. A second plurality of work units are determined, whose ages are equal to or older than the first work unit, wherein each of the second plurality of work units are assigned to respective executing threads. Rollbacks of the second plurality of work units are performed. After the rollbacks of the second plurality of work units are performed, speculative executions of the second plurality of work units are initiated in age order, from oldest to youngest.

    摘要翻译: 在一个实施例中,在先前的回滚期间期间接收到异步冲突事件。 每个异步冲突事件表示由第一多个工作单元的推测性执行而遇到的冲突,并且可以被无序地接收。 在当前回滚期间,确定第一工作单元,其推测执行引起异步冲突事件中的一个,并且第一工作单元比第一多个工作单元中的所有其他工作单元老。 确定第二多个作业单元,其年龄等于或小于第一工作单元,其中第二多个作业单元中的每一个分配给相应的执行螺纹。 执行第二多个工作单元的回滚。 在执行第二多个工作单元的回滚之后,第二个多个工作单元的推测性执行以年龄从最早到最小的顺序启动。

    Optimizing search query logic to speed retrieval
    9.
    发明授权
    Optimizing search query logic to speed retrieval 有权
    优化搜索查询逻辑,加快检索速度

    公开(公告)号:US08661023B1

    公开(公告)日:2014-02-25

    申请号:US13588545

    申请日:2012-08-17

    IPC分类号: G06F17/30

    CPC分类号: G06F17/30961

    摘要: Systems and methods are provided for processing a query at a computer system. The method includes building a query tree based on the query and grouping at least some nodes of the query tree into a group of nodes. Grouping is based on an operator node that is a parent of the at least some nodes. The group of nodes retains the functionality of the operator node but the operator node is eliminated by replacing the operator node with the group of nodes in the query tree. The method also includes traversing the query tree to obtain a result list from a search index that is responsive to the query.

    摘要翻译: 提供的系统和方法用于在计算机系统处理查询。 该方法包括基于查询构建查询树,并将查询树的至少一些节点分组为一组节点。 分组基于作为至少一些节点的父节点的运营商节点。 节点组保留运营商节点的功能,但通过用查询树中的节点组替换运营商节点来消除运营商节点。 该方法还包括遍历查询树以从响应于查询的搜索索引获得结果列表。

    Data Placement Optimization Using Data Context Collected During Garbage Collection
    10.
    发明申请
    Data Placement Optimization Using Data Context Collected During Garbage Collection 有权
    垃圾收集期间使用数据上下文收集的数据放置优化

    公开(公告)号:US20110252199A1

    公开(公告)日:2011-10-13

    申请号:US12757173

    申请日:2010-04-09

    IPC分类号: G06F12/08 G06F12/02

    摘要: Mechanisms are provided for data placement optimization during runtime of a computer program. The mechanisms detect cache misses in a cache of the data processing system and collect cache miss information for objects of the computer program. Data context information is generated for an object in an object access sequence of the computer program. The data context information identifies one or more additional objects accessed as part of the object access sequence in association with the object. The cache miss information is correlated with the data context information of the object. Data placement optimization is performed on the object, in the object access sequence, with which the cache miss information is associated. The data placement optimization places connected objects in the object access sequence in close proximity to each other in a memory structure of the data processing system.

    摘要翻译: 提供了在计算机程序运行期间进行数据放置优化的机制。 这些机制检测数据处理系统的缓存中的高速缓存未命中,并收集计算机程序对象的高速缓存未命中信息。 为计算机程序的对象访问序列中的对象生成数据上下文信息。 数据上下文信息识别作为与对象相关联的对象访问序列的一部分访问的一个或多个附加对象。 高速缓存未命中信息与对象的数据上下文信息相关联。 在对象访问序列中对对象进行数据放置优化,与缓存未命中信息相关联。 数据放置优化将连接的对象放置在数据处理系统的存储器结构中彼此靠近的对象访问序列中。