Computer-implemented method, system and program product for establishing multiple read-only locks on a shared data object
    1.
    发明申请
    Computer-implemented method, system and program product for establishing multiple read-only locks on a shared data object 有权
    用于在共享数据对象上建立多个只读锁的计算机实现的方法,系统和程序产品

    公开(公告)号:US20060168585A1

    公开(公告)日:2006-07-27

    申请号:US11042778

    申请日:2005-01-25

    IPC分类号: G06F9/46

    CPC分类号: G06F9/526 G06F2209/523

    摘要: Under the present invention, a locking primitive associated with a shared data object is automatically transformed to allow multiple read-only locks if certain conditions are met. To this extent, when a read-only lock on a shared data object is desired, a thread identifier of an object header lock word (hereinafter “lock word”) associated with the shared data object is examined to determine if a read-write lock on the shared data object already exists. If not, then the thread identifier is set to a predetermined value indicative of read-only locks, and a thread count in the lock word is incremented. If another thread attempts a read-only lock, the thread identifier will be examined for the predetermined value. If it is present, the thread count will be incremented again, and a second read-only lock will be simultaneously established.

    摘要翻译: 在本发明中,如果满足某些条件,则与共享数据对象相关联的锁定原语被自动转换以允许多个只读锁。 在这种情况下,当需要共享数据对象上的只读锁时,检查与共享数据对象相关联的对象头锁定字(以下称为“锁字”)的线程标识符,以确定是否读写锁 对共享数据对象已经存在。 如果不是,则将线程标识符设置为指示只读锁定的预定值,并且增加锁定字中的线程数。 如果另一个线程尝试只读锁,则将检查线程标识符的预定值。 如果它存在,则线程计数将再次递增,并且将同时建立第二个只读锁。

    RUN-TIME INSTRUMENTATION DIRECTED SAMPLING
    2.
    发明申请
    RUN-TIME INSTRUMENTATION DIRECTED SAMPLING 有权
    运行时间仪表指示采样

    公开(公告)号:US20130246741A1

    公开(公告)日:2013-09-19

    申请号:US13422532

    申请日:2012-03-16

    IPC分类号: G06F9/312

    摘要: Embodiments of the invention relate to implementing run-time instrumentation directed sampling. An aspect of the invention includes fetching a run-time instrumentation next (RINEXT) instruction from an instruction stream. The instruction stream includes the RINEXT instruction followed by a next sequential instruction (NSI) in program order. The method further includes executing the RINEXT instruction by a processor. The executing includes determining whether a current run-time instrumentation state enables setting a sample point for reporting run-time instrumentation information during program execution. Based on the current run-time instrumentation state enabling setting the sample point, the NSI is a sample instruction for causing a run-time instrumentation event. Based on executing the NSI sample instruction, the run-time instrumentation event causes recording of run-time instrumentation information into a run-time instrumentation program buffer as a reporting group.

    摘要翻译: 本发明的实施例涉及实现运行时仪表定向采样。 本发明的一个方面包括从指令流获取运行时仪器下一个(RINEXT)指令。 指令流包括RINEXT指令,后面是程序顺序的下一个顺序指令(NSI)。 该方法还包括由处理器执行RINEXT指令。 该执行包括确定当前运行时仪表状态是否能够在程序执行期间设置用于报告运行时仪表信息的采样点。 根据当前的运行时仪器状态设置采样点,NSI是一个用于引起运行时仪表事件的示例指令。 基于执行NSI示例指令,运行时仪表事件将运行时仪表信息记录到作为报告组的运行时仪表程序缓冲区中。

    Programmatic compiler optimization of glacial constants
    3.
    发明申请
    Programmatic compiler optimization of glacial constants 有权
    编程优化的冰川常数

    公开(公告)号:US20070240135A1

    公开(公告)日:2007-10-11

    申请号:US11371724

    申请日:2006-03-09

    IPC分类号: G06F9/45

    CPC分类号: G06F9/45516

    摘要: Optimizations are programmatically applied by a compiler (preferably, a just-in-time or “JIT” compiler), and enable achieving improved performance while a variable acts as a global constant, yet also allow code to execute correctly if the global constant's run-time value changes from the value on which the optimization was originally based. Code snippets that dynamically patch executable code are described, where these code snippets take corrective actions to enable correct program execution following a run-time change to the value of a glacial constant. A backup recovery path may also be maintained, where this path provides code that is executed in the event of a change to a glacial constant and that treats the glacial constant as a variable. Recompilation may also be used after a change to a glacial constant, where the originally-compiled code has made an assumption about the glacial constant's value that is no longer accurate. Combinations of these approaches may be used.

    摘要翻译: 优化由编译器(最好是即时或“JIT”编译器)以编程方式应用,并且当变量充当全局常量时,可以实现改进的性能,而且如果全局常量的运行 - 时间值从优化最初所基于的值变化。 描述了动态修补可执行代码的代码片段,其中这些代码段采取纠正措施,以便在运行时更改为冰川常数的值后启用正确的程序执行。 还可以维护备份恢复路径,其中该路径提供在对冰川常数变化的情况下执行的代码,并且将冰川常数作为变量来处理。 重新编译也可以在更改为冰川常数之后使用,其中原始编译的代码已经对不再准确的冰川常数的值作出假设。 可以使用这些方法的组合。

    Computer-implemented method and processing unit for predicting branch target addresses
    4.
    发明申请
    Computer-implemented method and processing unit for predicting branch target addresses 审中-公开
    用于预测分支目标地址的计算机实现的方法和处理单元

    公开(公告)号:US20070088937A1

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

    申请号:US11250057

    申请日:2005-10-13

    IPC分类号: G06F9/00

    CPC分类号: G06F9/30058 G06F9/3806

    摘要: Under the present invention, a branch target address corresponding to a target instruction to be pre-fetched is predicted based on two values. The first value is a “predictor value” that is known for the branch target address. The second value is the address of the branch instruction from which the target instruction is branched to within the program code. Once these two values are provided, they can be processed (e.g., hashed) to yield an index value, which is used to obtain a predicted branch target address from a cache. This technique is generally implemented for branch instructions such as switch statements or polymorphic calls. In the case of the former, the predictor value is a selector operand, while in the case of the latter the predictor value is a class object address (in JAVA) or a virtual function table address (in C++).

    摘要翻译: 在本发明中,基于两个值预测与预取的目标指令对应的分支目标地址。 第一个值是分支目标地址已知的“预测值”。 第二个值是目标指令从该程序代码中分支到的分支指令的地址。 一旦提供了这两个值,就可以对它们进行处理(例如,散列)以产生索引值,该索引值用于从高速缓存获得预测的分支目标地址。 这种技术通常用于分支指令,例如switch语句或多态调用。 在前者的情况下,预测值是一个选择器操作数,而在后者的情况下,预测值是类对象地址(在JAVA中)或虚函数表地址(C ++中)。

    Run-time instrumentation directed sampling
    5.
    发明授权
    Run-time instrumentation directed sampling 有权
    运行时间仪表定向采样

    公开(公告)号:US09465716B2

    公开(公告)日:2016-10-11

    申请号:US13422532

    申请日:2012-03-16

    IPC分类号: G06F11/34 G06F11/36

    摘要: The invention relates to implementing run-time instrumentation directed sampling. An aspect of the invention includes fetching a run-time instrumentation next (RINEXT) instruction from an instruction stream. The instruction stream includes the RINEXT instruction followed by a next sequential instruction (NSI) in program order. The method further includes executing the RINEXT instruction by a processor. The executing includes determining whether a current run-time instrumentation state enables setting a sample point for reporting run-time instrumentation information during program execution. Based on the current run-time instrumentation state enabling setting the sample point, the NSI is a sample instruction for causing a run-time instrumentation event. Based on executing the NSI sample instruction, the run-time instrumentation event causes recording of run-time instrumentation information into a run-time instrumentation program buffer as a reporting group.

    摘要翻译: 本发明涉及实施运行时仪表定向抽样。 本发明的一个方面包括从指令流获取运行时仪器下一个(RINEXT)指令。 指令流包括RINEXT指令,后面是程序顺序的下一个顺序指令(NSI)。 该方法还包括由处理器执行RINEXT指令。 该执行包括确定当前运行时仪表状态是否能够在程序执行期间设置用于报告运行时仪表信息的采样点。 根据当前的运行时仪器状态设置采样点,NSI是一个用于引起运行时仪表事件的示例指令。 基于执行NSI示例指令,运行时仪表事件将运行时仪表信息记录到作为报告组的运行时仪表程序缓冲区中。

    Method of efficiently performing precise profiling in a multi-threaded dynamic compilation environment
    6.
    发明申请
    Method of efficiently performing precise profiling in a multi-threaded dynamic compilation environment 失效
    在多线程动态编译环境中有效执行精确剖析的方法

    公开(公告)号:US20070226683A1

    公开(公告)日:2007-09-27

    申请号:US11388607

    申请日:2006-03-24

    IPC分类号: G06F9/44

    CPC分类号: G06F8/443

    摘要: Synchronizing clones of a software method to be executed by at least one thread while the software method is compiled. The software method is cloned to generate a software method clone. At least one transition is created between equivalent program points in the software method and the software method clone. A lock object is inserted into one of the software method and the software method clone. Then, code that controls the at least one transition between a profiling clone and a non-profiling clone is changed to access thread-local storage. The non-profiling clone is the one of the software method and the software method clone into which the lock object was inserted. A first synchronization operation is performed at or after an entry point of the non-profiling clone. Then, the profiling clone is executed using thread-local storage.

    摘要翻译: 在软件方法被编译的同时,由至少一个线程执行的软件方法的克隆。 克隆软件方法以生成软件方法克隆。 在软件方法中的等效程序点和软件方法克隆之间至少创建一个转换。 将锁定对象插入到软件方法和软件方法克隆之一中。 然后,更改控制概要分析克隆和非概要分析克隆之间的至少一个转换的代码,以访问线程本地存储。 非分析克隆是插入锁定对象的软件方法和软件方法克隆之一。 在非分析克隆的入口点之前或之后执行第一同步操作。 然后,使用线程本地存储执行概要分析克隆。

    Method and apparatus for inlining native functions into compiled Java code
    7.
    发明申请
    Method and apparatus for inlining native functions into compiled Java code 失效
    将本机函数集成为编译Java代码的方法和装置

    公开(公告)号:US20060190934A1

    公开(公告)日:2006-08-24

    申请号:US11062293

    申请日:2005-02-18

    IPC分类号: G06F9/45

    CPC分类号: G06F9/45516

    摘要: A method, apparatus, and computer instructions are provided for inlining native functions into compiled Java code. A conversion engine is provided by the present invention for converting the intermediate representation of native functions to the just-in-time (JIT) compiler's intermediate representation. With the converted intermediate representation, an inliner recursively inlines the converted JIT compiler's intermediate representation into the native callsite to remove the need of invoking the native function and subsequent native calls made by the function. The inlining process continues until either a call to an opaque function is encountered or until a JIT compiler intermediate representation growth limits are reached. The inliner also replaces calls to most native functions that are non-inlineable or opaque with calls to synthesized native functions that provide access to native libraries containing implementations of the original non-inlineable calls.

    摘要翻译: 提供了一种方法,装置和计算机指令,用于将本机函数内联到编译的Java代码中。 本发明提供了一种转换引擎,用于将本机函数的中间表示转换为即时(JIT)编译器的中间表示。 使用转换的中间表示法,内联函数将转换的JIT编译器的中间表示递归内嵌到本机调用现场,以消除调用本机函数和该函数进行的后续本机调用的需要。 内联过程继续,直到遇到不透明函数的调用或直到达到JIT编译器中间表示增长限制为止。 内置函数还可以通过调用合成本机函数来替换非绝对或不透明的大多数本机函数,该函数提供对包含原始非可嵌入调用的实现的本机库的访问。

    Distributed counter and centralized sensor in barrier wait synchronization

    公开(公告)号:US20060048147A1

    公开(公告)日:2006-03-02

    申请号:US10929165

    申请日:2004-08-30

    IPC分类号: G06F9/46

    CPC分类号: G06F9/52 G06F9/522

    摘要: A method, system and apparatus for barrier synchronization using distributed counters and a centralized sensor. The system can include multiple distributed counters coupled to corresponding application processes in a computing application. The barrier synchronization system further can include a centralized sensor coupled for observation by the application processes. Preferably, the application processes can be separate threads of execution in the computing application. The barrier synchronization centralized sensor yet further can be managed by a designated master one of the application processes. Moreover, preferably the system further can include a backup sensor coupled for observation by the application processes and managed by the designated master one of the application processes.

    Method for improving performance of executable code
    9.
    发明授权
    Method for improving performance of executable code 失效
    提高可执行代码性能的方法

    公开(公告)号:US07954094B2

    公开(公告)日:2011-05-31

    申请号:US11389961

    申请日:2006-03-27

    IPC分类号: G06F9/45

    CPC分类号: G06F9/45516

    摘要: A computer-implemented method, computer program product and data processing system to improve runtime performance of executable program code when executed on the data-processing system. During execution, data is collected and analyzed to identify runtime behavior of the program code. Heuristic models are applied to select region(s) of the program code where application of a performance improvement algorithm is expected to improve runtime performance. Each selected region is recompiled using selected performance improvement algorithm(s) for that region to generate corresponding recompiled region(s), and the program code is modified to replace invocations of each selected region with invocations of the corresponding recompiled region. Alternatively or additionally, the program code may be recompiled to be adapted to characteristics of the execution environment of the data processing system. The process may be carried out in a continuous recursive manner while the program code executes, or may be carried out a finite number of times.

    摘要翻译: 一种计算机实现的方法,计算机程序产品和数据处理系统,用于在数据处理系统上执行时提高可执行程序代码的运行时性能。 在执行期间,收集和分析数据以识别程序代码的运行时行为。 启发式模型被应用于选择程序代码的区域,其中应用性能改进算法预期将提高运行时性能。 使用针对该区域的所选择的性能改进算法重新编译每个所选择的区域,以生成相应的重新编译区域,并且修改程序代码以用相应重新编译区域的调用来替换每个所选区域的调用。 或者或另外,可以重新编译程序代码以适应数据处理系统的执行环境的特性。 该过程可以在程序代码执行时以连续递归的方式执行,或者可以执行有限次数。

    Method for improving performance of executable code
    10.
    发明申请
    Method for improving performance of executable code 失效
    提高可执行代码性能的方法

    公开(公告)号:US20070226698A1

    公开(公告)日:2007-09-27

    申请号:US11389961

    申请日:2006-03-27

    IPC分类号: G06F9/44

    CPC分类号: G06F9/45516

    摘要: A computer-implemented method, computer program product and data processing system to improve runtime performance of executable program code when executed on the data-processing system. During execution, data is collected and analyzed to identify runtime behavior of the program code. Heuristic models are applied to select region(s) of the program code where application of a performance improvement algorithm is expected to improve runtime performance. Each selected region is recompiled using selected performance improvement algorithm(s) for that region to generate corresponding recompiled region(s), and the program code is modified to replace invocations of each selected region with invocations of the corresponding recompiled region. Alternatively or additionally, the program code may be recompiled to be adapted to characteristics of the execution environment of the data processing system. The process may be carried out in a continuous recursive manner while the program code executes, or may be carried out a finite number of times.

    摘要翻译: 一种计算机实现的方法,计算机程序产品和数据处理系统,用于在数据处理系统上执行时提高可执行程序代码的运行时性能。 在执行期间,收集和分析数据以识别程序代码的运行时行为。 启发式模型被应用于选择程序代码的区域,其中应用性能改进算法预期将提高运行时性能。 使用针对该区域的所选择的性能改进算法重新编译每个所选择的区域,以生成相应的重新编译区域,并且修改程序代码以用对应的重新编译区域的调用来替换每个所选区域的调用。 或者或另外,可以重新编译程序代码以适应数据处理系统的执行环境的特性。 该过程可以在程序代码执行时以连续递归的方式执行,或者可以执行有限次数。