会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
热词
    • 1. 发明授权
    • setjmp/longjmp for speculative execution frameworks
    • setjmp / longjmp用于推测执行框架
    • US08640113B2
    • 2014-01-28
    • US13026702
    • 2011-02-14
    • Raul Esteban SilveraKai-Ting Amy WangPeng WuMark Wayne YamashitaXiaotong Zhuang
    • Raul Esteban SilveraKai-Ting Amy WangPeng WuMark Wayne YamashitaXiaotong Zhuang
    • G06F9/45
    • G06F9/3842G06F9/3004G06F9/30054G06F9/30087G06F9/4484
    • 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的调用的代码块之后的指令。
    • 2. 发明申请
    • SETJMP/LONGJMP FOR SPECULATIVE EXECUTION FRAMEWORKS
    • 用于统一执行框架的SETJMP / LONGJMP
    • US20110289303A1
    • 2011-11-24
    • US13026702
    • 2011-02-14
    • Raul Esteban SilveraKai-Ting Amy WangPeng WuMark Wayne YamashitaXiaotong Zhuang
    • Raul Esteban SilveraKai-Ting Amy WangPeng WuMark Wayne YamashitaXiaotong Zhuang
    • G06F9/312
    • G06F9/3842G06F9/3004G06F9/30054G06F9/30087G06F9/4484
    • 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的调用的代码块之后的指令。
    • 3. 发明授权
    • Pipelined parallelization of multi-dimensional loops with multiple data dependencies
    • 多维循环与多个数据依赖关系的流水线并行化
    • US08146071B2
    • 2012-03-27
    • US11857211
    • 2007-09-18
    • Raul Esteban SilveraPriya Unnikrishnan
    • Raul Esteban SilveraPriya Unnikrishnan
    • G06F9/45
    • G06F8/4452G06F8/443
    • A mechanism for folding all the data dependencies in a loop into a single, conservative dependence. This mechanism leads to one pair of synchronization primitives per loop. This mechanism does not require complicated, multi-stage compile time analysis. This mechanism considers only the data dependence information in the loop. The low synchronization cost balances the loss in parallelism due to the reduced overlap between iterations. Additionally, a novel scheme is presented to implement required synchronization to enforce data dependences in a DOACROSS loop. The synchronization is based on an iteration vector, which identifies a spatial position in the iteration space of the loop. Multiple iterations executing in parallel have their own iteration vector for synchronization where they update their position in the iteration space. As no sequential updates to the synchronization variable exist, this method exploits a greater degree of parallelism.
    • 将循环中的所有数据依赖关系折叠成单个,保守依赖的机制。 这种机制导致每个循环一对同步原语。 该机制不需要复杂的多阶段编译时分析。 该机制只考虑循环中的数据依赖信息。 由于迭代之间的重叠减少,低同步成本平衡了并行性的损失。 另外,提出了一种新颖的方案来实现所需的同步以在DOACROSS循环中实现数据依赖。 同步基于迭代向量,该向量标识循环的迭代空间中的空间位置。 并行执行的多个迭代具有自己的迭代向量,用于同步,它们更新其在迭代空间中的位置。 由于不存在对同步变量的顺序更新,所以该方法利用更大程度的并行性。
    • 4. 发明申请
    • Method and System for Auto Parallelization of Zero-Trip Loops Through the Induction Variable Substitution
    • 通过感应变量替代自动并联零行程循环的方法和系统
    • US20090158018A1
    • 2009-06-18
    • US12356978
    • 2009-01-21
    • Zhixing RenRaul Esteban SilveraGuansong Zhang
    • Zhixing RenRaul Esteban SilveraGuansong Zhang
    • G06F9/44
    • G06F8/443G06F8/452
    • A method and system of auto parallelization of zero-trip loops that substitutes a nested basic linear induction variable by exploiting a parallelizing compiler is provided. Provided is a use of a max{0,N} variable for loop iterations in case of no information is known about the value of N, for a typical loop iterating from 1 to N, in which N is the loop invariant. For the nested basic induction variables, an induction variable substitution process is applied to the nested loops starting from the innermost loop to the outermost one. Then a removal of the max operator afterwards through a copy propagation pass of the IBM compiler is provided. In doing so, the loop dependency on the induction variable is eliminated and an opportunity for a parallelizing compiler to parallel the outermost loop is provided.
    • 提供了通过利用并行化编译器代替嵌套的基本线性感应变量的零跳行循环自动并行化的方法和系统。 提供了对于从1到N迭代的典型循环,在没有关于N的值的信息的情况下,使用max {0,N}变量进行循环迭代,其中N是循环不变量。 对于嵌套的基本感应变量,将诱导变量替换过程应用于从最内循环到最外层循环的嵌套循环。 然后,通过IBM编译器的复制传播传递,随后删除最大运算符。 在这样做时,消除了对感应变量的循环依赖性,并且提供并行化编译器并行最外层循环的机会。
    • 10. 发明申请
    • PIPELINED PARALLELIZATION OF MULTI-DIMENSIONAL LOOPS WITH MULTIPLE DATA DEPENDENCIES
    • 具有多个数据依赖关系的多维数据管道并行化
    • US20090077545A1
    • 2009-03-19
    • US11857211
    • 2007-09-18
    • Raul Esteban SilveraPriya Unnikrishnan
    • Raul Esteban SilveraPriya Unnikrishnan
    • G06F9/45
    • G06F8/4452G06F8/443
    • A mechanism for folding all the data dependencies in a loop into a single, conservative dependence. This mechanism leads to one pair of synchronization primitives per loop. This mechanism does not require complicated, multi-stage compile time analysis. This mechanism considers only the data dependence information in the loop. The low synchronization cost balances the loss in parallelism due to the reduced overlap between iterations. Additionally, a novel scheme is presented to implement required synchronization to enforce data dependences in a DOACROSS loop. The synchronization is based on an iteration vector, which identifies a spatial position in the iteration space of the loop. Multiple iterations executing in parallel have their own iteration vector for synchronization where they update their position in the iteration space. As no sequential updates to the synchronization variable exist, this method exploits a greater degree of parallelism.
    • 将循环中的所有数据依赖关系折叠成单个,保守依赖的机制。 这种机制导致每个循环一对同步原语。 该机制不需要复杂的多阶段编译时分析。 该机制只考虑循环中的数据依赖信息。 由于迭代之间的重叠减少,低同步成本平衡了并行性的损失。 另外,提出了一种新颖的方案来实现所需的同步以在DOACROSS循环中实现数据依赖。 同步基于迭代向量,该向量标识循环的迭代空间中的空间位置。 并行执行的多个迭代具有自己的迭代向量,用于同步,它们更新其在迭代空间中的位置。 由于不存在对同步变量的顺序更新,所以该方法利用更大程度的并行性。