G06F9/4484

Transactional execution of native methods

Approaches for more efficiently executing calls to native code from within a managed execution environment are described. The techniques involve attempting to execute a native call, such as a call to a C function from within Java code, using a single hardware transaction. Not only is the native code executed in a hardware transaction, but also various transitional operations needed for transitioning between managed execution mode and native execution mode. If the hardware transaction is successful, at least some of the operations that would normally be performed during transitions between modes may be omitted or simplified. If the hardware transaction is unsuccessful, the native calls may be performed as they normally would, outside of hardware transactions.

Stack overflow protection device, method, and related compiler and computing device

The present disclosure relates to a stack overflow protection device and a stack protection method. According to the present disclosure, a stack overflow protection device is provided, which includes a dividing unit configured to divide at least one function in the input codes into a code region with a string operation and a code region without a string operation. The device also includes a stack protection unit configured to set up stack protection in the code region with a string operation. The present disclosure further provides a stack protection method.

INTELLIGENT SERVERLESS FUNCTION SCALING
20220038355 · 2022-02-03 ·

A system and method of serverless function scaling is described. The method may include receiving one or more types of serverless function invocations. The method also includes invoking one or more serverless functions and receiving metrics from the one or more serverless functions. The method also includes generating scaling heuristics for scaling of a number of serverless functions in view of the received metrics.

APPLICATION DEPLOYMENT USING REDUCED OVERHEAD BYTECODE
20220269518 · 2022-08-25 ·

A system includes a memory, a processor in communication with the memory, and a recorder. The recorder is configured to obtain a proxy for each respective real object. Each respective real object is related to a respective service. The recorder is also configured to record a sequence of each invocation on each respective proxy and generate an intermediate representation of an application that is configured to invoke the sequence of each invocation on each real object associated with each respective proxy.

Computer-implemented systems and methods to enable complex functionality on a blockchain while preserving security-based restrictions on script size and opcode limits
11238450 · 2022-02-01 · ·

The invention relates to blockchain technologies such as the Bitcoin blockchain. The invention uses a novel technique to decompose the functionality of a blockchain transaction script into several chunks or functional parts, and to use the output of a chunk as the input of the next chunk. Advantageously, this allows the blockchain to be used for ever complex tasks and computations while minimising script size, and also provides a novel architecture for the distributed execution of computational processes. The invention comprises a method of using a plurality of blockchain transactions to execute a computer-implemented task, comprising the steps: using an unlocking script (ULS1) associated with a first input (In1) in a blockchain transaction (Tx2) to present at least one data item to a locking script (LS1) of another transaction (Tx1) so as to provide a result on a stack; amending the blockchain transaction (Tx2) to include a second input (In2); generating a further unlocking script (ULS2) associated with the second input (In2), the further unlocking script (ULS2) comprising the result from the stack; and presenting the further unlocking script (ULS2) to a further locking script (LS2) such that the result from the stack is provided as input to the further locking script (LS2). Preferably, the locking script (LS1) and the further locking script (LS2) are provided in association with different outputs within the same blockchain transaction (Tx1).

BEST PERFORMANCE DELIVERY IN HETEROGENEOUS COMPUTING UNIT ENVIRONMENT
20170277550 · 2017-09-28 ·

An apparatus for selecting an efficient processor includes a comparison module that compares performance characteristics of a plurality of processors available for execution of a function, where each performance characteristic varies as a function of function size. The apparatus includes a selection module that selects, based on a size of the function, a processor from the plurality of processors with a best performance for execution of the function, and an execution module that executes the function on the selected processor.

INTERCEPTION OF A FUNCTION CALL, SELECTING A FUNCTION FROM AVAILABLE FUNCTIONS AND REROUTING THE FUNCTION CALL
20170277551 · 2017-09-28 ·

An apparatus for dynamically selecting a function includes an intercept module that intercepts a function call from an executing application. The function call specifies a target function and the target function is associated with a target processor. The apparatus includes a selection module that selects a function from a plurality of available functions to execute the function call, where each available function is associated with a separate processor. The apparatus includes an execution module that reroutes the function call to execute the selected function.

Apparatus and method for efficient call/return emulation using a dual return stack buffer

An apparatus and method for a dual return stack buffer (RSB) for use in binary translation systems. An embodiment of a processor includes: a dual return stack buffer (DRSB) comprising a native RSB and an extended RSB (XRSB), the dual RSB to be used within a binary translation execution environment in which guest call-return instruction sequences are translated to native call-return instruction sequences to be executed directly by the processor; the native RSB to store native return addresses associated with the native call-return instruction sequences; and the XRSB to store emulated return addresses associated with the guest call-return instruction sequences, wherein each native return address stored in the RSB is associated with an emulated return address stored in the XRSB.

Conditional branch frame barrier
11249758 · 2022-02-15 · ·

Establishing a conditional branch frame barrier is described. A conditional branch in a function epilogue is used to provide frame-specific control. The conditional branch evaluates a return condition to determine whether to return from a callee function to a calling function, or to execute a slow path instead. The return condition is evaluated based on a thread local value. The thread local value is set such that returns to potentially unsafe frames in a call stack are prohibited. The prohibition to return to a potentially unsafe frame may be referred to as a “frame barrier.” Additionally, the thread local value may be used to establish safepointing and/or thread local handshakes, both after execution of a function body and after execution of a loop body.

Attack Protection for valid gadget control transfers

In one embodiment, a processor comprises: a first register to store a first bound value for a stack to be stored in a memory; a second register to store a second bound value for the stack; a checker logic to determine, prior to an exit point at a conclusion of a function to be executed on the processor, whether a value of a stack pointer is within a range between the first bound value and the second bound value; and a logic to prevent a return to a caller of the function if the stack pointer value is not within the range. Other embodiments are described and claimed.