Patent application number | Description | Published |
20110016458 | SYSTEMS, METHODS, AND COMPUTER PROGRAMS FOR DYNAMIC BINARY TRANSLATION IN A MASTER CONTROL PROGRAM INTERPRETER - Various embodiments of systems and methods for dynamic binary translation in an interpreter are disclosed. An embodiment comprises a method for dynamic binary translation in an interpreter. One such method comprises: receiving non-native code comprising a sequence of one or more operators to be interpreted; building a static branch destination table associated with the operators, the static branch destination table specifying a static branch operator that branches to another operator in the sequence and a corresponding memory location to which the static branch operator branches; parsing the sequence of operators and building a cross-reference table that specifies a pointer to an operator function associated with the corresponding operator, an index of the operator in a native code sequence, and a call to a native operator; selecting a dynamic branch code template for the native operator; and based on the static branch table and the cross-reference table, emitting the native code sequence to be executed via a native processor. | 01-20-2011 |
20110016459 | SYSTEMS, METHODS, AND COMPUTER PROGRAMS FOR DYNAMIC BINARY TRANSLATION IN AN INTERPRETER - Various embodiments of systems and methods for dynamic binary translation in an interpreter are disclosed. An embodiment comprises a method for dynamic binary translation in an interpreter. One such method comprises: receiving non-native code comprising a sequence of one or more operators to be interpreted; building a static branch destination table associated with the operators, the static branch destination table specifying a static branch operator that branches to another operator in the sequence and a corresponding memory location to which the static branch operator branches; parsing the sequence of operators and building a cross-reference table that specifies a pointer to an operator function associated with the corresponding operator, an index of the operator in a native code sequence, and a call to a native operator; selecting a dynamic branch code template for the native operator; and based on the static branch table and the cross-reference table, emitting the native code sequence to be executed via a native processor. | 01-20-2011 |
20110154334 | METHOD AND SYSTEM FOR OFFLOADING PROCESSING TASKS TO A FOREIGN COMPUTING ENVIRONMENT - A method and apparatus for offloading processing tasks from a first computing environment to a second computing environment, such as from a first interpreter emulation environment to a second native operating system within which the interpreter is running. The offloading method uses memory queues in the first computing environment that are accessible by the first computing environment and one or more offload engines residing in the second computing environment. Using the queues, the first computing environment can allocate and queue a control block for access by a corresponding offload engine. Once the offload engine dequeues the control block and performs the processing task in the control block, the control block is returned for interrogation into the success or failure of the requested processing task. The offload engine is a separate process in a separate computing environment, and does not execute as part of any portion of the first computing environment. | 06-23-2011 |
20110154371 | METHOD AND SYSTEM FOR OFFLOADING PROCESSING TASKS TO A FOREIGN COMPUTING ENVIRONMENT - A method and apparatus for offloading processing tasks from a first computing environment to a second computing environment, such as from a first interpreter emulation environment to a second native operating system within which the interpreter is running. The offloading method uses memory queues in the first computing environment that are accessible by the first computing environment and one or more offload engines residing in the second computing environment. Using the queues, the first computing environment can allocate and queue a control block for access by a corresponding offload engine. Once the offload engine dequeues the control block and performs the processing task in the control block, the control block is returned for interrogation into the success or failure of the requested processing task. The offload engine is a separate process in a separate computing environment, and does not execute as part of any portion of the first computing environment. | 06-23-2011 |
20120143589 | MULTI-MODAL COMPILING APPARATUS AND METHOD FOR GENERATING A HYBRID CODEFILE - A non-native, multi-modal compiler and an emulated computing environment for use in a native computing environment. The multi-modal compiler includes a parser configured to parse or divide received source code into a plurality of token elements, whereby at least one statement is recognized from a collection of token elements. The multi-modal compiler also includes a code emitter configured to emit machine code to implement the at least one statement, whereby the emitted machine code is compiled multi-modal object code that includes non-native operators (e.g., E-Mode operators) and NATV operators. The compiled multi-modal object code is configured in such a way that when translated by a code translation unit, the compiled multi-modal object code generates a merged codefile having translated native code segments corresponding to the non-native operators and native code segments corresponding to the NATV operators. The merged codefile is executable by a native processor in the native computing environment. | 06-07-2012 |
20130080744 | ABSTRACTING COMPUTATIONAL INSTRUCTIONS TO IMPROVE PERFORMANCE - Methods and systems for executing a code stream of non-native binary code on a computing system are disclosed. One method includes parsing the code stream to detect a plurality of elements including one or more branch destinations, and traversing the code stream to detect a plurality of non-native operators. The method also includes executing a pattern matching algorithm against the plurality of non-native operators to find combinations of two or more non-native operators that do not span across a detected branch destination and that correspond to one or more target operators executable by the computing system. The method further includes generating a second code stream executable on the computing system including the one or more target operators. | 03-28-2013 |
20130219370 | PROFILING AND SEQUENCING OPERATORS EXECUTABLE IN AN EMULATED COMPUTING SYSTEM - Methods and systems are disclosed for analyzing performance of a translated code stream executing within a central processing module. One method includes, during execution of one or more native instructions corresponding to each non-native operator in the code stream by the code execution unit, counting the occurrence of the non-native operator, determining a duration of execution of the one or more native instructions, and adding the non-native operator to a trace sequence. The method also includes, after execution of the code stream within the central processing module, generating a data file of non-native operators executed within the code stream, the data file of operators including a name of each non-native operator, an elapsed amount of time within the code execution unit that the one or more native operators corresponding to the non-native operator are executed, and a number of occurrences of the non-native operator within the code stream. | 08-22-2013 |
20140033187 | DYNAMIC FIRMWARE UPDATING SYSTEM FOR USE IN TRANSLATED COMPUTING ENVIRONMENTS - Systems and methods for updating firmware executing on a computing system are disclosed. One method includes building an initial stack for use by an updated firmware module, and quiescing I/O operations occurring on the computing system. The method also includes halting all but a remaining firmware module from among one or more firmware modules to be updated and that are executing on the computing system, and, with the remaining firmware module executing on the computing system, indicating to perform a firmware update. The method further includes halting execution of a partition including the remaining firmware module. The method also includes updating the remaining firmware module executing on the computing system with the updated firmware module, and initiating execution of the updated firmware module using the initial stack. | 01-30-2014 |