Processor which accelerates execution of binary programs intended for execution on a conventional processor core, using a reconfigurable combinational logic array, a function lookup unit, and a compatible conventional processor core, without requiring recompilation or other modification of program binaries
    72.
    发明申请
    Processor which accelerates execution of binary programs intended for execution on a conventional processor core, using a reconfigurable combinational logic array, a function lookup unit, and a compatible conventional processor core, without requiring recompilation or other modification of program binaries 有权
    处理器,其加速了用于在常规处理器核心上执行的二进制程序的执行,使用可重配置的组合逻辑阵列,功能查找单元和兼容的常规处理器核,而不需要对程序二进制进行重新编译或其他修改

    公开(公告)号:US20050149704A1

    公开(公告)日:2005-07-07

    申请号:US10681404

    申请日:2003-10-08

    Applicant: Luther Johnson

    Inventor: Luther Johnson

    Abstract: The invention uses a standard processor to execute an application program. As the instructions of the application program are executed in sequence, a program counter is incremented to contain an address indicator of the next instruction to be executed. The address indicator from the program counter is also fed to a function lookup unit where it is matched to the contents of a tag field. If there is no match, control returns to the processor which continues its normal sequence of operations and performs the function. If there is a match, function indicator identifiers from the function lookup table are fed to a reconfigurable combinational array which has logic functions. The function indicator identifiers select the logic function to be performed. The result of the performed function including the new program counter is then fed back to the processor. The processor then continues its normal operations.

    Abstract translation: 本发明使用标准处理器来执行应用程序。 随着应用程序的指令按顺序执行,程序计数器递增,以包含要执行的下一个指令的地址指示符。 来自程序计数器的地址指示符也被馈送到与标签字段的内容匹配的功能查找单元。 如果没有匹配,则控制返回到处理器,继续其正常的操作顺序并执行该功能。 如果存在匹配,则来自功能查找表的功能指示符标识符被馈送到具有逻辑功能的可重组组合阵列。 功能指示标识符选择要执行的逻辑功能。 包括新的程序计数器的执行功能的结果然后被反馈给处理器。 然后处理器继续其正常操作。

    System and method for iterative code optimization using adaptive size metrics
    73.
    发明申请
    System and method for iterative code optimization using adaptive size metrics 有权
    使用自适应大小度量的迭代代码优化的系统和方法

    公开(公告)号:US20040117779A1

    公开(公告)日:2004-06-17

    申请号:US10727202

    申请日:2003-12-03

    Inventor: Marcus Lagergren

    CPC classification number: G06F9/45525 G06F8/4434

    Abstract: A system and method for iterative code optimization using adaptive or dynamic size metrics, for use with run-time software systems and virtual machines. The dynamic size metric may be calculated both for a set of predetermined factors (together with associated weights), and also for a set of variable factors determined during the runtime code introspection process. The predetermined factors, and their associated weights, may be varied to reflect the overall performance of the code in each optimization instance. In one embodiment a method is provided for performing adaptive optimization of application code within a virtual machine environment, the method comprising the steps of: gathering information about an application code and optimization parameters during run-time, passing said information via a feedback mechanism to an optimizer, calculating a dynamic size metric for the current application code using said optimization parameters, and optimizing the application code based on the dynamic size metric.

    Abstract translation: 一种用于使用自适应或动态大小度量进行迭代代码优化的系统和方法,用于运行时软件系统和虚拟机。 可以针对一组预定因素(连同相关联的权重)以及对于在运行时代码反省过程期间确定的一组可变因子来计算动态尺寸度量。 可以改变预定因子及其相关权重以反映每个优化实例中的代码的整体性能。 在一个实施例中,提供一种用于在虚拟机环境内执行应用代码的自适应优化的方法,所述方法包括以下步骤:在运行时间期间收集关于应用代码和优化参数的信息,将所述信息经由反馈机制传递到 优化器,使用所述优化参数计算当前应用代码的动态尺寸度量,以及基于动态尺寸度量优化应用代码。

    Emulation system that uses dynamic binary translation and permits the safe speculation of trapping operations
    74.
    发明授权
    Emulation system that uses dynamic binary translation and permits the safe speculation of trapping operations 失效
    仿真系统使用动态二进制翻译,并允许安全的诱捕捕捉操作

    公开(公告)号:US06631514B1

    公开(公告)日:2003-10-07

    申请号:US09003572

    申请日:1998-01-06

    Applicant: Bich-Cau Le

    Inventor: Bich-Cau Le

    CPC classification number: G06F9/30174 G06F9/3842 G06F9/3863 G06F9/45525

    Abstract: The inventive emulator dynamically translates instructions in code written for a first architecture into code for a second architecture. The emulator designates various checkpoints in the original code, and speculatively reorders the placement of the translated code instructions according to optimization procedures. If during the execution of the reordered code, a trap should occur, then the emulator resets the original code to the most recent checkpoint and begins executing the original code sequentially in a line-by-line manner until the section is completed or branched out of. The original code is reset by changing the program counter to the checkpoint, and reversing the effects of each instruction which has been executed subsequent to the checkpoint. Thus, any native instructions which correspond to original instructions which occur sequentially prior to the checkpoint have been executed, and any native instructions which correspond to original instructions which occur sequentially subsequent to the checkpoint have not been executed.

    Abstract translation: 本发明的仿真器将针对第一架构编写的代码中的指令动态地转换为用于第二架构的代码。 仿真器指定原始代码中的各种检查点,并根据优化过程推测重新排序翻译的代码指令的位置。 如果在执行重新排序的代码期间,应该发生陷阱,然后仿真器将原始代码重置到最近的检查点,并以逐行方式顺序执行原始代码,直到该段完成或分支为止 。 通过将程序计数器更改为检查点来重置原始代码,并反转在检查点之后执行的每条指令的效果。 因此,对应于在检查点之前顺序发生的原始指令的任何本地指令已被执行,并且与检查点之后顺序发生的对应于原始指令的任何本地指令尚未被执行。

    Virtualization Layer for Mobile Applications
    76.
    发明申请

    公开(公告)号:US20190155580A1

    公开(公告)日:2019-05-23

    申请号:US16257610

    申请日:2019-01-25

    Inventor: Dan Gulkis

    Abstract: Methods, systems, and computer-readable media for providing a virtualization layer for mobile applications are presented. A computing device may parse code of an application to identify a first set of one or more classes in the application. The computing device may transmit code usable by the first set of one or more classes to a module accessible to the application and create a second set of one or more classes in the application to replace the first set of one or more classes, wherein the second set of one or more classes does not inherit from the first set of one or more classes in an object hierarchy. In some embodiments, the second set of one or more classes provides at least one different function from the first set of one or more classes. The computing device may execute the application comprising the second set of one or more classes.

    Technologies for optimizing sparse matrix code with field-programmable gate arrays

    公开(公告)号:US09977663B2

    公开(公告)日:2018-05-22

    申请号:US15200053

    申请日:2016-07-01

    CPC classification number: G06F8/443 G06F8/447 G06F8/452 G06F9/45525

    Abstract: Technologies for optimizing sparse matrix code include a target computing device having a processor and a field-programmable gate array (FPGA). A compiler identifies a performance-critical loop in a sparse matrix source code and generates optimized executable code, including processor code and FPGA code. The target computing device executes the optimized executable code, using the processor for the processor code and the FPGA for the FPGA code. The processor executes a first iteration of the loop, generates reusable optimization data in response to executing the first iteration, and stores the reusable optimization data in a shared memory. The FPGA accesses the optimization data in the shared memory, executes additional iterations of the loop, and optimizes the additional iterations of the loop based on the optimization data. The optimization data may include, for example, loop-invariant data, reordered data, or alternate data storage representations. Other embodiments are described and claimed.

    Hybrid Deoptimization Mechanism for Class Hierarchy Analysis

    公开(公告)号:US20180060048A1

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

    申请号:US15407186

    申请日:2017-01-16

    Applicant: Google Inc.

    CPC classification number: G06F8/443 G06F8/42 G06F9/449 G06F9/4552 G06F9/45525

    Abstract: Apparatus and methods related to compiling software are provided. A computing device can receive software having software-associated instructions for compilation into machine-language instructions. The computing device can perform a class hierarchy analysis to determine a class hierarchy for the software. The computing device can determine whether a particular method call is to be checked for execution as a virtual method call based on the class hierarchy. The computing device can, after determining that the particular method call is to be checked, determine particular machine-language instructions that can include: guarding machine-language instructions for checking a runtime-modifiable deoptimization indicator to determine whether the particular method call is to be executed as a virtual method call, and method-call machine-language instructions for the particular method call. The computing device can provide the particular machine-language instructions to a runtime system.

Patent Agency Ranking