Performance optimization of close code
AssigneeUnisys Corporation
InventorsAndrew Ward Beale, David Strong
Life of this patent
Estimating the term…
Abstract
Methods and systems described herein utilize a jump table in directly-addressable, near code, to facilitate improved execution of frequent calls to executable code from other workloads outside of the near code. By executing a directly-addressable call and jump instruction to access frequently-accessed executable code, indirect call instructions are avoided.
Claims20
A method comprising:
- instantiating executable code in a memory of a computing system, the executable code having a starting location in the memory;
- implementing, within a near code area within the memory relative to the executable code, a jump table at a memory location proximate to a boundary of directly-addressable memory in the near code, the jump table including a plurality of entries each associated with one of a plurality of functions included in the executable code;
- upon executing a call to one of the plurality of functions in the executable code from a workload:
- executing a call instruction into the jump table from the workload, the call instruction including a direct address to a location in the jump table;
- and
- executing the direct jump instruction from the jump table into the function.
A method of executing a hosted workload executable according to a non-native instruction set architecture on a computing system having a memory and a processor implemented using a native instruction set architecture, the method comprising:
- instantiating a core emulation executable at a location in memory of the computing system, the core emulation executable including a plurality of functions;
- placing a jump table in memory at a location from which the core emulation executable may be reached via a direct jump instruction in the native instruction set architecture, each of a plurality of entries in the jump table including a direct jump instruction to a different one of the plurality of functions;
- executing a hosted workload from the memory of the computing system, the hosted workload being located, at least in part, in code outside of a region in memory from which the core emulation executable may be reached via a direct call instruction;
- upon executing a call from the workload to a function included in the plurality of functions of the core emulation executable:
- performing a directly-addressable call instruction to access the jump table;
- and
- performing a direct jump instruction from the jump table to the function within the core emulation executable.
A computing system comprising:
- a processor capable of executing instructions according to a native instruction set architecture;
- a memory communicatively connected to the processor, the memory storing instructions which, when executed by the processor, cause the computing system to perform:
- instantiating a core emulation executable at a location in memory of the computing system, the core emulation executable including a plurality of functions;
- placing a jump table in memory at a location from which the core emulation executable may be reached via a direct jump instruction in the native instruction set architecture, each of a plurality of entries in the jump table including a direct jump instruction to a different one of the plurality of functions;
- executing a hosted workload from the memory of the computing system, the hosted workload located at least in part in code outside of a region in memory from which the core emulation executable may be reached via a direct call instruction;
- and
- upon executing a call from the workload to a function included in the plurality of functions of the core emulation executable:
- performing a directly-addressable call instruction to access the jump table;
- and
- performing a direct jump instruction from the jump table to the function within the core emulation executable.
Dependencies are inferred from the claim text.