Methods and apparatuses for compiler-creating helper threads for multi-threading
    1.
    发明申请
    Methods and apparatuses for compiler-creating helper threads for multi-threading 审中-公开
    用于多线程的编译器创建帮助线程的方法和设备

    公开(公告)号:US20050071438A1

    公开(公告)日:2005-03-31

    申请号:US10676889

    申请日:2003-09-30

    IPC分类号: G06F9/38 G06F9/45 G06F15/167

    摘要: Methods and apparatuses for compiler-created helper thread for multi-threading are described herein. In one embodiment, exemplary process includes identifying a region of a main thread that likely has one or more delinquent loads, the one or more delinquent loads representing loads which likely suffer cache misses during an execution of the main thread, analyzing the region for one or more helper threads with respect to the main thread, and generating code for the one or more helper threads, the one or more helper threads being speculatively executed in parallel with the main thread to perform one or more tasks for the region of the main thread. Other methods and apparatuses are also described.

    摘要翻译: 本文描述了用于多线程的编译器创建的辅助线程的方法和装置。 在一个实施例中,示例性过程包括识别可能具有一个或多个拖欠负载的主线程的区域,所述一个或多个违规负载表示在执行主线程期间可能遭受高速缓存未命中的负载,分析该区域中的一个或多个 相对于主线程的更多帮助线程,以及为一个或多个辅助线程生成代码,一个或多个辅助线程与主线程并行地被推测地执行,以对主线程的区域执行一个或多个任务。 还描述了其它方法和装置。

    Method and system for performing reassociation in software loops
    6.
    发明申请
    Method and system for performing reassociation in software loops 有权
    在软件循环中执行重新关联的方法和系统

    公开(公告)号:US20070074186A1

    公开(公告)日:2007-03-29

    申请号:US11238303

    申请日:2005-09-29

    IPC分类号: G06F9/45

    CPC分类号: G06F8/443 G06F8/433

    摘要: Various embodiments of the present invention relate to methods and systems for optimizing an intermediate code in a compilation logic. The intermediate code is optimized by performing reassociation in software loops. The intermediate code includes at least one critical recurrence cycle. The performance of reassociation in software loops can reduce a critical recurrence cycle in them, which can speed up their execution. The subject method can include the determination of one or more critical recurrence cycles in a software loop. The method can also include the determination of at least one edge in a critical recurrence cycle, with respect to which reassociation can be performed, if one or more pre-determined criteria are met. The method can further include performing reassociation of a dependee and a dependent of an edge. In an embodiment, when one or more pre-determined criteria are met, the logic of the software loop is maintained after performing reassociation of the dependee and the dependent of the edge. Consequently, the number of cycles in a critical recurrence cycle of the software loop is reduced. The execution time of the software loop is also decreased.

    摘要翻译: 本发明的各种实施例涉及用于优化编译逻辑中的中间代码的方法和系统。 通过在软件循环中执行重新关联来优化中间代码。 中间代码包括至少一个临界循环。 在软件循环中重新关联的性能可以减少其中的重复循环,这可以加快其执行速度。 主题方法可以包括在软件循环中确定一个或多个关键的循环周期。 如果满足一个或多个预定标准,该方法还可以包括确定关键循环周期中的至少一个边缘,关于可以执行哪些重新关联。 该方法还可以包括执行依赖关系和边缘的依赖关系的重新关联。 在一个实施例中,当满足一个或多个预定标准时,在执行依赖关系的重新关联和边缘的依赖之后,维持软件循环的逻辑。 因此,软件循环的关键复发循环中的循环次数减少。 软件循环的执行时间也减少了。

    Methods and apparatus for reducing memory latency in a software application
    8.
    发明申请
    Methods and apparatus for reducing memory latency in a software application 有权
    减少软件应用程序内存延迟的方法和装置

    公开(公告)号:US20050086652A1

    公开(公告)日:2005-04-21

    申请号:US10677414

    申请日:2003-10-02

    摘要: Methods and apparatus for reducing memory latency in a software application are disclosed. A disclosed system uses one or more helper threads to prefetch variables for a main thread to reduce performance bottlenecks due to memory latency and/or a cache miss. A performance analysis tool is used to profile the software application's resource usage and identifies areas in the software application experiencing performance bottlenecks. Compiler-runtime instructions are generated into the software application to create and manage the helper thread. The helper thread prefetches data in the identified areas of the software application experiencing performance bottlenecks. A counting mechanism is inserted into the helper thread and a counting mechanism is inserted into the main thread to coordinate the execution of the helper thread with the main thread and to help ensure the prefetched data is not removed from the cache before the main thread is able to take advantage of the prefetched data.

    摘要翻译: 公开了一种用于减少软件应用中的存储器延迟的方法和装置。 所公开的系统使用一个或多个辅助线程来预取主线程的变量,以减少由于存储器延迟和/或高速缓存未命中引起的性能瓶颈。 使用性能分析工具来描述软件应用程序的资源使用情况,并识别遇到性能瓶颈的软件应用程序中的区域。 编译器运行时指令生成到软件应用程序中以创建和管理辅助线程。 辅助线程预取了遇到性能瓶颈的软件应用程序的已识别区域中的数据。 计数机制被插入到辅助线程中,并且计数机制被插入到主线程中以协调辅助线程与主线程的执行,并且有助于确保在主线程可用之前预取数据不被从高速缓存中移除 以利用预取的数据。

    Methods and apparatuses for thread management of multi-threading
    9.
    发明申请
    Methods and apparatuses for thread management of multi-threading 失效
    多线程线程管理方法与设备

    公开(公告)号:US20050081207A1

    公开(公告)日:2005-04-14

    申请号:US10779193

    申请日:2004-02-13

    IPC分类号: G06F9/45 G06F9/46

    CPC分类号: G06F8/441

    摘要: Methods and apparatuses for thread management for multi-threading are described herein. In one embodiment, exemplary process includes selecting, during a compilation of code having one or more threads executable in a data processing system, a current thread having a most bottom order, determining resources allocated to one or more child threads spawned from the current thread, and allocating resources for the current thread in consideration of the resources allocated to the current thread's one or more child threads to avoid resource conflicts between the current thread and its one or more child threads. Other methods and apparatuses are also described.

    摘要翻译: 本文描述了用于多线程的线程管理的方法和装置。 在一个实施例中,示例性过程包括在具有在数据处理系统中可执行的一个或多个线程的代码的编译期间选择具有最低阶的当前线程,确定分配给从当前线程产生的一个或多个子线程的资源, 并且考虑分配给当前线程的一个或多个子线程的资源来为当前线程分配资源,以避免当前线程与其一个或多个子线程之间的资源冲突。 还描述了其它方法和装置。

    Method for predicate promotion in a software loop
    10.
    发明申请
    Method for predicate promotion in a software loop 失效
    软件循环中谓词升级的方法

    公开(公告)号:US20070079302A1

    公开(公告)日:2007-04-05

    申请号:US11241144

    申请日:2005-09-30

    IPC分类号: G06F9/45

    CPC分类号: G06F8/443 G06F8/433

    摘要: A method and system for optimizing the execution of a software loop is provided. The method involves the determination of an edge in a critical recurrence cycle in the software loop. The edge is a dependency link between two instructions and contains a dependee and a dependent. The dependee is an instruction that produces a result, and the dependent is an instruction that uses the result. The method further involves performing predicate promotion of at least one of the dependee and the dependent if one or more pre-determined conditions are met.

    摘要翻译: 提供了一种用于优化软件循环执行的方法和系统。 该方法涉及在软件循环中确定临界循环中的边缘。 边缘是两条指令之间的依赖关系,包含一个依赖关系和一个依赖关系。 依赖者是产生结果的指令,依赖关系是使用结果的指令。 该方法还涉及如果满足一个或多个预定条件,则执行至少一个依赖者和依赖者的谓词升级。