System and method for securely restoring a program context from a shared memory
    21.
    发明授权
    System and method for securely restoring a program context from a shared memory 有权
    用于从共享存储器安全地还原程序上下文的系统和方法

    公开(公告)号:US07945789B2

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

    申请号:US11530933

    申请日:2006-09-12

    CPC classification number: G06F9/461 G06F21/52 G06F21/74

    Abstract: A system and method for securely restoring software program context is presented. A special purpose processor core is included in a heterogeneous processing environment where each processor can access a shared memory. The isolated special purpose processor core includes an isolated local memory. The isolated special purpose processor core receives an identifier corresponding to the secured program. The identifier is used to read an encrypted context of the secured program from the shared memory. The encrypted context is decrypted using an encryption key. The decrypted context is stored in the isolated special purpose processor core's local memory. The secured program's context integrity is verified by using a persistent security data that is retrieved from a secure location, such as a persistent storage register that can only be accessed when the special purpose processor core is running in isolation mode. If the context is verified, the secured program is executed.

    Abstract translation: 提出了一种安全恢复软件程序环境的系统和方法。 专用处理器核心包含在异构处理环境中,每个处理器可以访问共享内存。 隔离的专用处理器内核包括一个隔离的本地存储器。 隔离的专用处理器核心接收对应于安全程序的标识符。 标识符用于从共享存储器读取加密程序的加密上下文。 使用加密密钥对加密的上下文进行解密。 解密的上下文存储在隔离的专用处理器核心的本地存储器中。 安全程序的上下文完整性通过使用从安全位置检索的持久性安全数据(例如只有专用处理器内核以隔离模式运行时才能访问的持久存储寄存器)来验证。 如果上下文被验证,则执行安全程序。

    Balancing computational load across a plurality of processors
    23.
    发明授权
    Balancing computational load across a plurality of processors 失效
    平衡跨多个处理器的计算负载

    公开(公告)号:US07694306B2

    公开(公告)日:2010-04-06

    申请号:US12145709

    申请日:2008-06-25

    CPC classification number: G06F9/5044

    Abstract: Computational load is balanced across a plurality of processors. Source code subtasks are compiled into byte code subtasks whereby the byte code subtasks are translated into processor-specific object code subtasks at runtime. The processor-type selection is based upon one of three approaches which are 1) a brute force approach, 2) higher-level approach, or 3) processor availability approach. Each object code subtask is loaded in a corresponding processor type for execution. In one embodiment, a compiler stores a pointer in a byte code file that references the location of a byte code subtask. In this embodiment, the byte code subtask is stored in a shared library and, at runtime, a runtime loader uses the pointer to identify the location of the byte code subtask in order to translate the byte code subtask.

    Abstract translation: 计算负载在多个处理器之间平衡。 源代码子任务被编译成字节代码子任务,从而在运行时将字节代码子任务转换为处理器特定目标代码子任务。 处理器类型选择基于以下三种方法之一:1)强力方法,2)较高级别的方法,或3)处理器可用性方法。 每个对象代码子任务都以相应的处理器类型加载以执行。 在一个实施例中,编译器将指针存储在引用字节代码子任务的位置的字节代码文件中。 在本实施例中,字节代码子任务存储在共享库中,并且在运行时,运行时加载器使用指针来标识字节代码子任务的位置,以便翻译字节代码子任务。

    Processor dedicated code handling in a multi-processor environment
    24.
    发明授权
    Processor dedicated code handling in a multi-processor environment 失效
    处理器专用代码处理在多处理器环境中

    公开(公告)号:US07549145B2

    公开(公告)日:2009-06-16

    申请号:US10670836

    申请日:2003-09-25

    CPC classification number: G06F9/5044 G06F2209/509

    Abstract: Code handling, such as interpreting language instructions or performing “just-in-time” compilation, uses a heterogeneous processing environment that shares a common memory. In a heterogeneous processing environment that includes a plurality of processors, one of the processors is programmed to perform a dedicated code-handling task, such as perform just-in-time compilation or interpretation of interpreted language instructions, such as Java. The other processors request code handling processing that is performed by the dedicated processor. Speed is achieved using a shared memory map so that the dedicated processor can quickly retrieve data provided by one of the other processors.

    Abstract translation: 代码处理(如解释语言指令或执行“即时”编译)使用共享公共内存的异​​构处理环境。 在包括多个处理器的异构处理环境中,处理器之一被编程为执行专用代码处理任务,例如执行诸如Java的解释性语言指令的即时编译或解释。 其他处理器请求由专用处理器执行的代码处理处理。 使用共享存储器映射实现速度,使得专用处理器可以快速检索由其他处理器之一提供的数据。

    Virtual devices using a pluarlity of processors
    26.
    发明授权
    Virtual devices using a pluarlity of processors 失效
    使用多种处理器的虚拟设备

    公开(公告)号:US07496917B2

    公开(公告)日:2009-02-24

    申请号:US10670835

    申请日:2003-09-25

    CPC classification number: G06F9/4843 G06F9/544

    Abstract: A method is provided to allow virtual devices that use a plurality of processors in a multiprocessor systems, such as the BE environment. Using this method, a synergistic processing unit (SPU) can either be dedicated to performing a particular function (i.e., audio, video, etc.) or a single SPU can be programmed to perform several functions on behalf of the other processors in the system. The application, preferably running in one of the primary (PU) processors, issues IOCTL commands through device drivers that correspond to SPUs. The kernel managing the primary processors responds by sending an appropriate message to the SPU that is performing the dedicated function. Using this method, an SPU can be virtualized for swapping multiple tasks or dedicated to performing a particular task.

    Abstract translation: 提供了一种方法来允许在诸如BE环境的多处理器系统中使用多个处理器的虚拟设备。 使用这种方法,协同处理单元(SPU)可以专用于执行特定功能(即,音频,视频等),或者单个SPU可被编程为代表系统中的其他处理器执行若干功能 。 优选地,在主(PU)处理器之一中运行的应用通过对应于SPU的设备驱动器发出IOCTL命令。 管理主处理器的内核通过向执行专用功能的SPU发送适当的消息来做出响应。 使用此方法,可以将SPU虚拟化用于交换多个任务或专用于执行特定任务。

    Balancing Computational Load Across a Plurality of Processors
    27.
    发明申请
    Balancing Computational Load Across a Plurality of Processors 失效
    平衡跨多个处理器的计算负载

    公开(公告)号:US20080271003A1

    公开(公告)日:2008-10-30

    申请号:US12145709

    申请日:2008-06-25

    CPC classification number: G06F9/5044

    Abstract: Computational load is balanced across a plurality of processors. Source code subtasks are compiled into byte code subtasks whereby the byte code subtasks are translated into processor-specific object code subtasks at runtime. The processor-type selection is based upon one of three approaches which are 1) a brute force approach, 2) higher-level approach, or 3) processor availability approach. Each object code subtask is loaded in a corresponding processor type for execution. In one embodiment, a compiler stores a pointer in a byte code file that references the location of a byte code subtask. In this embodiment, the byte code subtask is stored in a shared library and, at runtime, a runtime loader uses the pointer to identify the location of the byte code subtask in order to translate the byte code subtask.

    Abstract translation: 计算负载在多个处理器之间平衡。 源代码子任务被编译成字节代码子任务,从而在运行时将字节代码子任务转换为处理器特定目标代码子任务。 处理器类型选择基于以下三种方法之一:1)强力方法,2)较高级别的方法,或3)处理器可用性方法。 每个对象代码子任务都以相应的处理器类型加载以执行。 在一个实施例中,编译器将指针存储在引用字节代码子任务的位置的字节代码文件中。 在本实施例中,字节代码子任务存储在共享库中,并且在运行时,运行时加载器使用指针来标识字节代码子任务的位置,以便翻译字节代码子任务。

    Asynchronous Linked Data Structure Traversal
    28.
    发明申请
    Asynchronous Linked Data Structure Traversal 有权
    异步链接数据结构遍历

    公开(公告)号:US20080263091A1

    公开(公告)日:2008-10-23

    申请号:US12147540

    申请日:2008-06-27

    Abstract: Asynchronously traversing a disjoint linked data structure is presented. A synergistic processing unit (SPU) includes a handler that works in conjunction with a memory flow controller (MFC) to traverse a disjoint linked data structure. The handler compares a search value with a node value, and provides the MFC with an effective address of the next node to traverse based upon the comparison. In turn, the MFC retrieves the corresponding node data from system memory and stores the node data in the SPU's local storage area. The MFC stalls processing and sends an asynchronous event interrupt to the SPU which, as a result, instructs the handler to retrieve and compare the latest node data in the local storage area with the search value. The traversal continues until the handler matches the search value with a node value or until the handler determines a failed search.

    Abstract translation: 呈现异步遍历不相交的数据结构。 协同处理单元(SPU)包括与存储器流控制器(MFC)一起工作的处理程序,以遍历不相交的数据结构。 处理程序将搜索值与节点值进行比较,并根据比较为MFC提供下一个节点的有效地址进行遍历。 反过来,MFC从系统存储器检索相应的节点数据,并将节点数据存储在SPU的本地存储区域中。 MFC停止处理并向SPU发送异步事件中断,结果指示处理程序检索和比较本地存储区域中的最新节点数据与搜索值。 遍历继续,直到处理程序与搜索值与节点值匹配,或者直到处理程序确定失败的搜索。

    Dynamically Partitioning Processing Across A Plurality of Heterogeneous Processors
    29.
    发明申请
    Dynamically Partitioning Processing Across A Plurality of Heterogeneous Processors 失效
    跨多个异构处理器的动态分区处理

    公开(公告)号:US20080250414A1

    公开(公告)日:2008-10-09

    申请号:US12116628

    申请日:2008-05-07

    Abstract: A program is into at least two object files: one object file for each of the supported processor environments. During compilation, code characteristics, such as data locality, computational intensity, and data parallelism, are analyzed and recorded in the object file. During run time, the code characteristics are combined with runtime considerations, such as the current load on the processors and the size of the data being processed, to arrive at an overall value. The overall value is then used to determine which of the processors will be assigned the task. The values are assigned based on the characteristics of the various processors. For example, if one processor is better at handling intensive computations against large streams of data, programs that are highly computationally intensive and process large quantities of data are weighted in favor of that processor. The corresponding object is then loaded and executed on the assigned processor.

    Abstract translation: 一个程序进入至少两个对象文件:一个对象文件,用于每个受支持的处理器环境。 在编译过程中,将数据位置,计算强度和数据并行等代码特征分析并记录在目标文件中。 在运行时间期间,代码特征与运行时考虑相结合,例如处理器上的当前负载和正在处理的数据的大小,以达到总体值。 然后,总体值用于确定哪些处理器将被分配任务。 这些值基于各种处理器的特性分配。 例如,如果一个处理器更好地处理针对大量数据流的密集计算,则高度计算密集的程序和处理大量数据的程序对该处理器进行加权。 然后在分配的处理器上加载和执行相应的对象。

    System and method for processor thread for software debugging
    30.
    发明授权
    System and method for processor thread for software debugging 有权
    处理器线程的系统和方法用于软件调试

    公开(公告)号:US07318218B2

    公开(公告)日:2008-01-08

    申请号:US10670834

    申请日:2003-09-25

    CPC classification number: G06F11/366

    Abstract: A system and method for using a processor thread as a debugger is presented. A computer system boots up and initiates a debugger thread. The debugger thread loads a robust, debugger operating system and executes the debugger operating system. Once the debugger thread is functioning, the debugger thread invokes an operational thread. In turn, the operational thread loads a primary operating system and may run various applications. While the operational thread executes the primary operating system and the applications, the debugger thread monitors the operational thread for proper functionality. When the operational thread crashes or terminates, the debugger thread retrieves operational data from the operational thread and provides the operational data to a software developer for analysis.

    Abstract translation: 提出了一种使用处理器线程作为调试器的系统和方法。 计算机系统启动并启动调试器线程。 调试器线程加载一个强大的调试器操作系统,并执行调试器操作系统。 一旦调试器线程正常运行,调试器线程调用一个操作线程。 反过来,操作线程加载主操作系统并且可以运行各种应用。 当操作线程执行主操作系统和应用程序时,调试器线程监视操作线程以获得正确的功能。 当操作线程崩溃或终止时,调试器线程从操作线程中检索操作数据,并将操作数据提供给软件开发人员进行分析。

Patent Agency Ranking