会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
热词
    • 2. 发明授权
    • Statically linking an application process with a wrapper library
    • 将应用程序流程与包装库静态链接
    • US06282703B1
    • 2001-08-28
    • US09182364
    • 1998-10-29
    • Kalman Z. MethJan CivlinItai Nahshon
    • Kalman Z. MethJan CivlinItai Nahshon
    • G06F9445
    • G06F8/54
    • A technique for statically linking an application process to a wrapper library employed in intercepting one or more calls invoked by the application process. The intercepted calls may comprise system calls or library calls. In a first link step, the application process is statically linked with at least the intercept library, and in one embodiment, all libraries associated with the application process except for the wrapper library. This first statically linking step creates a first module. Thereafter, at least one call invoked by the application process, and to be intercepted by the intercept library, is renamed. The renaming of the intercepted call is from its original name to a temporary name in the standard program library, the intercept library and the application program. This renaming step creates a second module that no longer contains the original name of the at least one intercepted call. The second linking step is to statically link the second module with the wrapper library, thereby creating an executable module wherein the application process is statically linked to all libraries while still providing for interception of the at least one system or library call within the executable.
    • 一种用于将应用程序进程静态链接到拦截应用程序调用的一个或多个调用的包装库。 截获的呼叫可能包括系统调用或库调用。 在第一链接步骤中,应用进程至少与截取库静态链接,并且在一个实施例中,除了包装库之外与应用进程相关联的所有库。 第一个静态链接步骤创建一个第一个模块。 此后,由应用进程调用并由拦截库拦截的至少一个调用被重命名。 被拦截的呼叫的重命名是从其原始名称到标准程序库中的临时名称,拦截库和应用程序。 此重命名步骤创建不再包含至少一个被截取的呼叫的原始名称的第二个模块。 第二链接步骤是将第二模块与包装库静态链接,从而创建可执行模块,其中应用程序进程静态链接到所有库,同时仍提供在可执行程序内截取至少一个系统或库调用。
    • 3. 发明授权
    • Methods and hardware for safe memory allocation in arbitrary program environments
    • 在任意程序环境中安全内存分配的方法和硬件
    • US07269830B2
    • 2007-09-11
    • US10667274
    • 2003-09-16
    • Jan Civlin
    • Jan Civlin
    • G06F9/445
    • G06F12/145G06F12/0223
    • In a method for dynamic allocation of memory address space, an original version of a program is executed. This execution includes the execution of a request to use memory address space occupied by an optimized version of the program that is protected from modification. When this request is detected, execution control is passed to an optimization code that was used to define the optimized program. The optimization code copies a portion of the optimized program residing in the memory address space requested by the original program, writes the copied portion to unallocated memory address space, and adjusts the code of the optimized program. The protection of the copied portion of the optimized program is released, and execution control is returned to the original program. The request to use the memory address space occupied by the portion of the optimized for which the protection has been released is then re-executed.
    • 在用于动态分配存储器地址空间的方法中,执行程序的原始版本。 该执行包括执行使用被保护以免修改的程序的优化版本所占用的存储器地址空间的请求。 当检测到此请求时,执行控制将传递给用于定义优化程序的优化代码。 优化代码复制驻留在原始程序请求的存储器地址空间中的优化程序的一部分,将复制的部分写入未分配的存储器地址空间,并调整优化程序的代码。 释放优化程序复制部分的保护,执行控制返回到原程序。 然后重新执行使用被优化的部分所占用的存储器地址空间的请求,该部分被保护已被释放。
    • 4. 发明授权
    • Method and apparatus for prefetching memory pages during execution of a computer program
    • 在执行计算机程序期间预取存储器页的方法和装置
    • US07143399B2
    • 2006-11-28
    • US10354331
    • 2003-01-29
    • Jan Civlin
    • Jan Civlin
    • G06F9/45G06F12/00
    • G06F8/4442
    • One embodiment of the present invention provides a system that facilitates prefetching memory pages for a computer program. The system operates by analyzing the computer program within a compiler to identify memory pages accessed within a portion of the computer program. Next, the system creates a map of these memory pages accessed by the computer program, wherein the map is indexed by a program counter for the computer program. A given program counter value indexes memory pages within this map that are likely to be accessed during subsequent execution of the computer program. The system examines the map during execution of the computer program, and if the current program counter for the computer program indexes memory pages in the map, the system touches the memory pages, thereby causing the system to prefetch the memory pages.
    • 本发明的一个实施例提供一种便于预取计算机程序的存储器页面的系统。 该系统通过分析编译器内的计算机程序来识别在计算机程序的一部分内访问的存储器页面。 接下来,系统创建由计算机程序访问的这些存储器页面的映射,其中,映射由计算机程序的程序计数器索引。 给定的程序计数器值对该映射中的后续执行计算机程序中可能被访问的内存页进行索引。 系统在执行计算机程序期间检查地图,如果计算机程序的当前程序计数器对映射中的存储器页进行索引,则系统触摸存储器页面,从而使系统预取存储器页面。
    • 6. 发明授权
    • Method for safely instrumenting large binary code
    • 安全测量大二进制码的方法
    • US07269828B2
    • 2007-09-11
    • US10315967
    • 2002-12-09
    • Jan Civlin
    • Jan Civlin
    • G06F9/45G06F9/44
    • G06F11/3644G06F8/60
    • A method is provided for safely editing a binary code to be executed on a computer system. The method allows the binary code to be directly edited without compromising its integrity. More specifically, a larger binary code is transformed into a number of smaller binary code segments having sizes within a reference range of a control transfer function such as a branch instruction. A branch slamming operation can then used to displace a binary instruction contained within a smaller binary code segment with a branch instruction referring to a binary patch that is appended to the smaller binary code segment. The binary instruction displaced by the branch instruction is preserved in the binary patch. Upon completion of the binary patch execution, the smaller binary code segment continues executing with a binary instruction immediately following the branch instruction. The method for safely editing the binary code is particularly useful with large binary codes having sizes greater than the reference range of the control transfer function.
    • 提供了一种用于安全地编辑要在计算机系统上执行的二进制代码的方法。 该方法允许直接编辑二进制代码而不损害其完整性。 更具体地说,较大的二进制码被转换成具有诸如分支指令之类的控制传递函数的参考范围内的大小的较小的二进制代码段。 然后可以使用分支激活操作来移位包含在较小的二进制代码段内的二进制指令,其中分支指令引用附加到较小的二进制代码段的二进制补丁。 由分支指令移位的二进制指令保留在二进制补丁中。 二进制补丁执行完成后,较小的二进制代码段继续执行紧跟在分支指令之后的二进制指令。 用于安全地编辑二进制代码的方法对于具有大于控制传递函数的参考范围的大型二进制代码特别有用。
    • 7. 发明授权
    • Processor with tagging buffer and methods for avoiding memory collisions
    • 具有标记缓冲区的处理器和避免内存冲突的方法
    • US07080231B2
    • 2006-07-18
    • US10273714
    • 2002-10-18
    • Jan Civlin
    • Jan Civlin
    • G06F12/00
    • G06F9/3824G06F8/445G06F9/3836
    • A processor includes a tagging buffer for storing information that advises the processor of potential memory collisions caused by program instruction pairs that refer to the same memory address. In one method for avoiding memory collisions, a program having tagging code identifying program instruction pairs of the program that refer to a same memory address is compiled. The program instruction pairs in the compiled program code are processed while verifying an order in which the program instruction pairs are to be executed using the compiled tagging code, which is loaded into a tagging buffer. In another method, a program that does not include tagging code is compiled. When a trap occurs in the processing of a program instruction pair, program counters that cause the instructions to be executed in a desired order are added to a tagging buffer. A computer system including the processor also is described.
    • 处理器包括标记缓冲器,用于存储向处理器通知引用相同存储器地址的程序指令对引起的潜在存储器冲突的信息。 在一种用于避免存储器冲突的方法中,编译具有识别参考相同存储器地址的程序的程序指令对的标签代码的程序。 在编译程序代码中的程序指令对被处理,同时使用加载到标记缓冲器中的编译标签代码验证要执行程序指令对的顺序。 在另一种方法中,编译不包括标记代码的程序。 当在程序指令对的处理中发生陷阱时,使得以所需顺序执行指令的程序计数器被添加到标记缓冲器。 还描述了包括处理器的计算机系统。
    • 8. 发明申请
    • Methods for execution control acquisition of a program and for executing an optimized version of a program
    • 用于执行控制获取程序并执行程序的优化版本的方法
    • US20050050530A1
    • 2005-03-03
    • US10650190
    • 2003-08-27
    • Jan Civlin
    • Jan Civlin
    • G06F9/318G06F9/45G06F9/48
    • G06F9/45525G06F9/4812
    • In a method for execution control acquisition of a program, during the execution of the program, it is determined when a hardware performance counter has reached a threshold. When the threshold is reached, execution control is switched to a dynamic optimizer. Thereafter, an optimized version of the program is executed. In a method for executing an optimized version of a program, during execution of the optimized version, an interrupt is received and execution control is returned to an operating system. An original version of the program is then executed. During the execution of the original version, a hardware performance counter is monitored. When the hardware performance counter reaches a threshold during the execution of the original version, execution control is switched to a dynamic optimizer. Thereafter, the execution of the optimized version of the program is continued as directed by the dynamic optimizer.
    • 在程序的执行控制获取方法中,在程序执行期间,确定硬件性能计数器何时达到阈值。 当达到阈值时,执行控制切换到动态优化器。 此后,执行程序的优化版本。 在执行程序的优化版本的方法中,在优化版本的执行期间,接收到中断并将执行控制返回到操作系统。 然后执行程序的原始版本。 在执行原始版本期间,监视硬件性能计数器。 当硬件性能计数器在执行原始版本期间达到阈值时,执行控制切换到动态优化器。 此后,根据动态优化器的指示继续执行程序的优化版本。
    • 9. 发明申请
    • Method for dynamic recompilation of a program
    • 程序动态重新编译的方法
    • US20050028148A1
    • 2005-02-03
    • US10633108
    • 2003-08-01
    • Jan Civlin
    • Jan Civlin
    • G06F9/45
    • G06F9/45516
    • In a method for dynamic recompilation of a program, binary code for a program is identified, a portion of the binary code is obtained, and the obtained portion of the binary code is executed while being optimized for, e.g., use with a new hardware architecture. During execution, dynamic changes in flow are identified to enable additional portions of the binary code to be obtained and executed. The executed and optimized portion of the binary code and any additional portions of the binary code are saved to an optimized binary code file for the program. The obtaining and executing of portions of the binary code is continued until all portions of the binary code have been saved to the optimized binary code file for the program. Thereafter, when the program is called, the optimized binary code file for the program can be executed.
    • 在用于程序的动态重新编译的方法中,识别用于程序的二进制代码,获得二进制代码的一部分,并且所获得的二进制代码部分在被优化时被执行,例如使用新的硬件架构 。 在执行期间,识别流动的动态变化,以使二进制代码的附加部分得到并被执行。 将二进制代码的执行和优化部分以及二进制代码的任何其他部分保存到程序的优化二进制代码文件中。 继续获取并执行二进制代码的部分,直到二进制代码的所有部分都被保存到程序的优化的二进制代码文件中。 此后,当调用程序时,可以执行程序的优化二进制代码文件。