SPECULATIVE THREAD EXECUTION WITH HARDWARE TRANSACTIONAL MEMORY
    1.
    发明申请
    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.

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

    Speculative thread execution with hardware transactional memory
    2.
    发明授权
    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.

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

    Using Hardware Transaction Primitives for Implementing Non-Transactional Escape Actions Inside Transactions
    3.
    发明申请
    Using Hardware Transaction Primitives for Implementing Non-Transactional Escape Actions Inside Transactions 审中-公开
    使用硬件事务原语在事务内部实现非事务性转义操作

    公开(公告)号:US20130013899A1

    公开(公告)日:2013-01-10

    申请号:US13176833

    申请日:2011-07-06

    IPC分类号: G06F9/30

    CPC分类号: G06F9/466

    摘要: Mechanisms are provided for performing escape actions within transactions. These mechanisms execute a transaction comprising a transactional section and an escape action. The transactional section is comprised of one or more instructions that are to be executed in an atomic manner as part of the transaction. The escape action is comprised of one or more instructions to be executed in a non-transactional manner. These mechanisms further populate at least one actions list data structure, associated with a thread of the data processing system that is executing the transaction, with one or more actions associated with the escape action. Moreover, these mechanisms execute one or more actions in the actions list data structure based upon whether the transaction commits successfully or is aborted.

    摘要翻译: 提供了在事务中执行转义操作的机制。 这些机制执行包括事务部分和转义动作的事务。 事务部分由作为事务的一部分以原子方式执行的一个或多个指令组成。 转义动作由以非事务方式执行的一个或多个指令组成。 这些机制进一步填充与执行交易的数据处理系统的线程相关联的至少一个动作列表数据结构,其中一个或多个动作与转义动作相关联。 此外,这些机制基于事务提交成功还是中止,在动作列表数据结构中执行一个或多个动作。

    Method and apparatus for address taken refinement using control flow information
    4.
    发明授权
    Method and apparatus for address taken refinement using control flow information 失效
    使用控制流信息进行地址改善的方法和装置

    公开(公告)号:US08056066B2

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

    申请号:US11843369

    申请日:2007-08-22

    IPC分类号: G06F9/45

    CPC分类号: G06F8/434

    摘要: A computer implemented method, apparatus, and computer program product for obtaining aliasing information for a target variable in a computer program. A control flow graph representing the computer program is partitioned into an taken address portion that includes all reachable nodes in which an address of the target variable is taken and an untaken address portion that includes all other reachable nodes. All references to the target variable are replaced with a temporary variable in the untaken address portion. The target variable is initialized with the value from the temporary variable at each intermediary node in a set of intermediary nodes in the taken address portion. An intermediary node is a node at which an address of a target variable is taken. The aliasing information for the target variable is generated using the modified computer program.

    摘要翻译: 一种用于在计算机程序中获得目标变量的混叠信息的计算机实现的方法,装置和计算机程序产品。 表示计算机程序的控制流程图被划分成一个取得的地址部分,该部分包括其中取得目标变量的地址的所有可到达节点以及包含所有其他可到达节点的未被捕获的地址部分。 所有对目标变量的引用将被替换为未被捕获的地址部分中的临时变量。 目标变量用被采取的地址部分中的一组中间节点中的每个中间节点处的临时变量的值初始化。 中间节点是采用目标变量的地址的节点。 使用修改的计算机程序生成目标变量的混叠信息。

    Efficient method of data reshaping for multidimensional dynamic array objects in the presence of multiple object instantiations
    5.
    发明授权
    Efficient method of data reshaping for multidimensional dynamic array objects in the presence of multiple object instantiations 失效
    在存在多个对象实例化的情况下,用于多维动态数组对象的数据重构的高效方法

    公开(公告)号:US08015556B2

    公开(公告)日:2011-09-06

    申请号:US11548725

    申请日:2006-10-12

    IPC分类号: G06F9/45

    CPC分类号: G06F12/0253

    摘要: A method of data reshaping for multidimensional dynamic array objects in the presence of multiple object instantiations. The method includes collecting all alias information using interprocedural point escape analysis, and collecting all shape information using interprocedural shape analysis. The method progresses with selecting the candidate dynamic objects based on alias and shape analysis, and determining the types of data reshaping for the candidate dynamic objects. The method further includes creating objects for selected dynamic objects with multiple object instantiations. The method proceeds by updating the memory allocation operations for the selected dynamic objects and inserting statements to initialize object descriptors. The method further includes creating the copy of the object descriptors for selected dynamic object assignments. The method concludes by replacing the object references by array-indexed references for selected dynamic objects using object descriptors.

    摘要翻译: 在存在多个对象实例化的情况下,用于多维动态数组对象的数据整形方法。 该方法包括使用过程间点逃逸分析来收集所有别名信息,并使用过程间形状分析收集所有形状信息。 该方法通过基于别名和形状分析来选择候选动态对象,并确定为候选动态对象重新整形的类型。 该方法还包括为具有多个对象实例化的所选择的动态对象创建对象。 该方法通过更新所选动态对象的内存分配操作并插入语句来初始化对象描述符。 该方法还包括为所选择的动态对象分配创建对象描述符的副本。 该方法通过使用对象描述符替换对所选动态对象的数组索引引用的对象引用。

    Systems, Methods, And Computer Products For Compiler Support For Aggressive Safe Load Speculation
    6.
    发明申请
    Systems, Methods, And Computer Products For Compiler Support For Aggressive Safe Load Speculation 失效
    用于编译器支持的系统,方法和计算机产品进行安全负载投机

    公开(公告)号:US20090064119A1

    公开(公告)日:2009-03-05

    申请号:US11845491

    申请日:2007-08-27

    IPC分类号: G06F9/45

    CPC分类号: G06F8/4441

    摘要: Systems, methods and computer products for compiler support for aggressive safe load speculation. Exemplary embodiments include a method for aggressive safe load speculation for a compiler in a computer system, the method including building a control flow graph, identifying both countable and non-countable loops, gathering a set of candidate loops for load speculation, for each candidate loop in the set of candidate loops gathered for load speculation performing computing an estimate of the iteration count, delay cycles, and code size, performing a profitability analysis and determine an unroll factor based on the delay cycles and the code size, transforming the loop by generating a prologue loop to achieve data alignment and an unrolled main loop with loop directives, indicating which loads can safely be executed speculatively and performing low-level instruction on the generated unrolled main loop.

    摘要翻译: 用于编译器的系统,方法和计算机产品支持攻击性安全负载推测。 示例性实施例包括用于计算机系统中的编译器的积极安全负载推测的方法,所述方法包括建立控制流程图,识别可计数循环和不​​可计数循环,为每个候选循环收集用于负载推测的一组候选循环 在针对负载推测而收集的候选循环集合中,执行计算迭代计数,延迟周期和代码大小的估计,执行盈利能力分析并基于延迟周期和代码大小来确定展开因子,通过生成 用于实现数据对齐的序言循环和循环指令的展开主循环,指示哪些负载可以安全地推测执行,并对生成的非滚动主循环执行低级指令。

    METHOD AND APPARATUS FOR ADDRESS TAKEN REFINEMENT USING CONTROL FLOW INFORMATION
    7.
    发明申请
    METHOD AND APPARATUS FOR ADDRESS TAKEN REFINEMENT USING CONTROL FLOW INFORMATION 失效
    使用控制流量信息进行地址修改的方法和装置

    公开(公告)号:US20090055798A1

    公开(公告)日:2009-02-26

    申请号:US11843369

    申请日:2007-08-22

    IPC分类号: G06F9/44

    CPC分类号: G06F8/434

    摘要: A computer implemented method, apparatus, and computer program product for obtaining aliasing information for a target variable in a computer program. A control flow graph representing the computer program is partitioned into an taken address portion that includes all reachable nodes in which an address of the target variable is taken and an untaken address portion that includes all other reachable nodes. All references to the target variable are replaced with a temporary variable in the untaken address portion. The target variable is initialized with the value from the temporary variable at each intermediary node in a set of intermediary nodes in the taken address portion. An intermediary node is a node at which an address of a target variable is taken. The aliasing information for the target variable is generated using the modified computer program.

    摘要翻译: 一种用于在计算机程序中获得目标变量的混叠信息的计算机实现的方法,装置和计算机程序产品。 表示计算机程序的控制流程图被划分成一个取得的地址部分,该部分包括其中取得目标变量的地址的所有可到达节点以及包含所有其他可到达节点的未被捕获的地址部分。 所有对目标变量的引用将被替换为未被捕获的地址部分中的临时变量。 目标变量用被采取的地址部分中的一组中间节点中的每个中间节点处的临时变量的值初始化。 中间节点是采用目标变量的地址的节点。 使用修改的计算机程序生成目标变量的混叠信息。

    DATA SPLITTING FOR RECURSIVE DATA STRUCTURES
    8.
    发明申请
    DATA SPLITTING FOR RECURSIVE DATA STRUCTURES 有权
    数据分析用于重现数据结构

    公开(公告)号:US20090019425A1

    公开(公告)日:2009-01-15

    申请号:US11775848

    申请日:2007-07-10

    IPC分类号: G06F9/44 G06F17/30

    摘要: Embodiments of the present invention provide a method, system and computer program product for the data splitting of recursive data structures. In one embodiment of the invention, a method for data splitting recursive data structures can be provided. The method can include identifying data objects of a recursive data structure type, such as a linked list, within source code, the recursive data structure type defining multiple different data fields. The method further can include grouping the data objects into some memory pool units, each of which can contain the same number of data objects. Each memory pool unit can be seen as an array of data objects. The method can include data splitting, which could be maximal array splitting in each different memory pool unit. Finally, the method can include three different approaches, including field padding, field padding and field splitting, to handle irregular field sizes in the data structure.

    摘要翻译: 本发明的实施例提供了一种用于递归数据结构的数据分割的方法,系统和计算机程序产品。 在本发明的一个实施例中,可以提供用于数据分解递归数据结构的方法。 该方法可以包括在源代码内识别递归数据结构类型的数据对象,例如链表,定义多个不同数据字段的递归数据结构类型。 该方法还可以包括将数据对象分组成一些存储池单元,每个单元可以包含相同数量的数据对象。 每个内存池单元都可以看作是数据对象的数组。 该方法可以包括数据分割,其可以是每个不同存储器池单元中的最大阵列分割。 最后,该方法可以包括三种不同的方法,包括字段填充,字段填充和字段分割,以处理数据结构中的不规则字段大小。

    Systems, methods, and computer products for compiler support for aggressive safe load speculation
    9.
    发明授权
    Systems, methods, and computer products for compiler support for aggressive safe load speculation 失效
    用于编译器的系统,方法和计算机产品支持积极的安全负载推测

    公开(公告)号:US08191057B2

    公开(公告)日:2012-05-29

    申请号:US11845491

    申请日:2007-08-27

    IPC分类号: G06F9/45 G06F9/44

    CPC分类号: G06F8/4441

    摘要: Systems, methods and computer products for compiler support for aggressive safe load speculation. Exemplary embodiments include a method for aggressive safe load speculation for a compiler in a computer system, the method including building a control flow graph, identifying both countable and non-countable loops, gathering a set of candidate loops for load speculation, and for each candidate loop in the set of candidate loops gathered for load speculation, computing an estimate of the iteration count, delay cycles, and code size, performing a profitability analysis and determining an unroll factor based on the delay cycles and the code size, transforming the loop by generating a prologue loop to achieve data alignment and an unrolled main loop with loop directives, indicating which loads can safely be executed speculatively and performing low-level instruction scheduling on the generated unrolled main loop.

    摘要翻译: 用于编译器的系统,方法和计算机产品支持攻击性安全负载推测。 示例性实施例包括用于计算机系统中的编译器的积极的安全负载推测的方法,所述方法包括构建控制流程图,识别可计数和不可计数循环,收集用于负载推测的一组候选循环,以及针对每个候选 针对负载推测收集的候选循环集中的循环,计算迭代计数,延迟周期和代码大小的估计,执行盈利能力分析并基于延迟周期和代码大小确定展开因子,将循环转换为 生成序言循环以实现数据对齐和循环指令的展开主循环,指示哪些负载可以安全地推测执行,并对生成的未展开主循环执行低级指令调度。

    Implementing shadow versioning to improve data dependence analysis for instruction scheduling
    10.
    发明授权
    Implementing shadow versioning to improve data dependence analysis for instruction scheduling 失效
    实施影子版本化,提高指令调度的数据依赖性分析

    公开(公告)号:US08091079B2

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

    申请号:US11846910

    申请日:2007-08-29

    IPC分类号: G06F9/45 G06F9/44

    CPC分类号: G06F8/443

    摘要: A method for implementing shadow versioning to improve data dependence analysis for instruction scheduling in compiling code, and to identify loops within the code to be compiled, for each loop initializing a dependence a matrix, for each loop shadow identifying symbols that are accessed by the loop, examining dependencies, storing, comparing and classifying the dependence vectors, generating new shadow symbols, replacing the old shadow symbols with the new shadow symbols, generating alias relationships between the newly created shadow symbols, scheduling instructions and compiling the code.

    摘要翻译: 一种用于实现阴影版本化的方法,用于改进编译代码中的指令调度的数据依赖性分析,以及识别要编译的代码内的循环,为每个循环初始化依赖矩阵,每个循环阴影标识由循环访问的符号 ,检查依赖性,存储,比较和分类依赖向量,生成新的阴影符号,用新的阴影符号替换旧的阴影符号,生成新创建的阴影符号之间的别名关系,调度指令和编译代码。