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.

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

    setjmp/longjmp for speculative execution frameworks
    3.
    发明授权
    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
    4.
    发明申请
    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的调用的代码块之后的指令。

    Efficient generation of SIMD code in presence of multi-threading and other false sharing conditions and in machines having memory protection support
    7.
    发明授权
    Efficient generation of SIMD code in presence of multi-threading and other false sharing conditions and in machines having memory protection support 有权
    在存在多线程和其他虚假共享条件的情况下以及具有存储器保护支持的机器中有效地生成SIMD代码

    公开(公告)号:US07730463B2

    公开(公告)日:2010-06-01

    申请号:US11358372

    申请日:2006-02-21

    IPC分类号: G06F9/45

    CPC分类号: G06F9/3851 G06F8/44

    摘要: A computer implemented method, system and computer program product for automatically generating SIMD code. The method begins by analyzing data to be accessed by a targeted loop including at least one statement, where each statement has at least one memory reference, to determine if memory accesses are safe. If memory accesses are safe, the targeted loop is simdized. If not safe, it is determined if a scheme can be applied in which safety need not be guaranteed. If such a scheme can be applied, the targeted loop is simdized according to the scheme. If such a scheme cannot be applied, it is determined if padding is appropriate. If padding is appropriate, the data is padded and the targeted loop is simdized. If padding is not appropriate, non-simdized code is generated based on the targeted loop for handling boundary conditions, the targeted loop is simdized and combined with the non-simdized code.

    摘要翻译: 一种用于自动生成SIMD代码的计算机实现的方法,系统和计算机程序产品。 该方法开始于分析要由目标循环访问的数据,包括至少一个语句,其中每个语句具有至少一个存储器引用,以确定存储器访问是否安全。 如果存储器访问是安全的,则对象循环被简化。 如果不安全,则确定是否可以应用不需要保证安全性的方案。 如果可以应用这种方案,则根据该方案对目标循环进行模拟。 如果不能应用这种方案,则确定填充是否合适。 如果填充是合适的,则填充数据并对目标循环进行模拟。 如果填充不合适,则基于用于处理边界条件的目标循环生成非模拟代码,目标循环被简化并与非模拟代码组合。

    SIMD code generation for loops with mixed data lengths
    8.
    发明授权
    SIMD code generation for loops with mixed data lengths 失效
    具有混合数据长度的循环的SIMD代码生成

    公开(公告)号:US07475392B2

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

    申请号:US10919131

    申请日:2004-08-16

    IPC分类号: G06F9/45

    CPC分类号: G06F8/4452

    摘要: Generating loop code to execute on Single-Instruction Multiple-Datapath (SIMD) architectures, where the loop operates on datatypes having different lengths, is disclosed. Further, a preferred embodiment of the present invention includes a novel technique to efficiently realign or shift arbitrary streams to an arbitrary offset, regardless whether the alignments or offsets are known at the compile time or not. This technique enables the application of advanced alignment optimizations to runtime alignment. Length conversion operations, for packing and unpacking data values, are included in the alignment handling framework. These operations are formally defined in terms of standard SIMD instructions that are readily available on various SIMD platforms. This allows sequential loop code operating on datatypes of disparate length to be transformed (“simdized”) into optimized SIMD code through a fully automated process.

    摘要翻译: 公开了在单指令多数据路径(SIMD)架构中生成循环码,其循环对具有不同长度的数据类型进行操作。 此外,本发明的优选实施例包括一种用于有效地将任意流重新对准或将任意流移动到任意偏移的新技术,无论在编译时是否知道对准或偏移。 这种技术使得可以将高级对齐优化应用于运行时对齐。 用于打包和解包数据值的长度转换操作包含在对齐处理框架中。 这些操作根据在各种SIMD平台上容易获得的标准SIMD指令正式定义。 这允许对具有不同长度的数据类型的顺序循环代码通过完全自动化的过程进行转换(“模拟化”)成优化的SIMD代码。

    METHOD TO EXPLOIT SUPERWORD-LEVEL PARALLELISM USING SEMI-ISOMORPHIC PACKING
    9.
    发明申请
    METHOD TO EXPLOIT SUPERWORD-LEVEL PARALLELISM USING SEMI-ISOMORPHIC PACKING 失效
    使用半正交包装开发超级平行平行的方法

    公开(公告)号:US20080127144A1

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

    申请号:US11536990

    申请日:2006-09-29

    IPC分类号: G06F9/45

    CPC分类号: G06F8/456

    摘要: A computer program product is provided for extracting SIMD parallelism. The computer program product includes instructions for providing a stream of input code comprising basic blocks; identifying pairs of statements that are semi-isomorphic with respect to each other within a basic block; iteratively combining into packs, pairs of statements that are semi-isomorphic with respect to each other, and combining packs into combined packs; collecting packs whose statements can be scheduled together for processing; and generating SIMD instructions for each pack to provide for extracting the SIMD parallelism.

    摘要翻译: 提供了一种用于提取SIMD并行性的计算机程序产品。 计算机程序产品包括用于提供包括基本块的输入代码流的指令; 识别在基本块内相对于彼此半同构的语句对; 迭代地组合成包,相对于半同构的语句对,以及将包合并成组合包; 收集包,其陈述可以一起安排处理; 并为每个包生成SIMD指令以提供SIMD并行性。