Back to results
US 9,959,117 B2Granted
Instruction to load data up to a specified memory boundary indicated by the instruction
AssigneeInternational Business Machines Corporation
InventorsJonathan D Bradbury, Michael K. Gschwind, Christian Jacobi, Eric M. Schwarz, Timothy J. Slegel
Life of this patent
Estimating the term…
Abstract
A Load to Block Boundary instruction is provided that loads a variable number of bytes of data into a register while ensuring that a specified memory boundary is not crossed. The boundary may be specified a number of ways, including, but not limited to, a variable value in the instruction text, a fixed instruction text value encoded in the opcode, or a register based boundary.
Claims10
A method of executing a machine instruction in a central processing unit, the method comprising:
- obtaining, by a processor, a machine instruction for execution, the machine instruction being defined for computer execution according to a computer architecture, the machine instruction comprising:
- at least one opcode field to provide an opcode, the opcode identifying a load to block boundary operation;
- a register field to be used to designate a register, the register comprising a first operand;
- at least one field for locating a second operand in main memory;
- and
- a block boundary size indicator for a memory block of the second operand, the memory block being a segment of memory having a fixed and predefined boundary size that is architecturally defined by a system architecture;
- and
- executing the machine instruction, the execution comprising:
- loading from the memory block of the second operand a variable amount of data into the first operand while ensuring only data within the memory block is being loaded into the first operand, wherein the loading from the memory block starts at a starting address in the memory block of the second operand, the starting address provided by the machine instruction, and ends at an ending address, the loading comprising:
- determining a boundary mask based on boundary size, the boundary mark for determining closeness of the starting address to a boundary of the memory block;
- determining an ending address at which loading is to stop, the determining comprising selecting between a first memory position and a second memory position, the first memory position determined based on the boundary size and on masking the starting address using the boundary mask, and the second memory position determined as the starting address plus a length of the first operand;
- and
- loading the amount of data into the first operand, the loading terminating at the ending address.
10 more elements
Dependencies are inferred from the claim text.