发明名称 Instruction to load data up to a specified memory boundary indicated by the instruction
摘要 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.
申请公布号 US9459867(B2) 申请公布日期 2016.10.04
申请号 US201213421456 申请日期 2012.03.15
申请人 INTERNATIONAL BUSINESS MACHINES CORPORATION 发明人 Bradbury Jonathan D.;Gschwind Michael K.;Jacobi Christian;Schwarz Eric M.;Slegel Timothy J.
分类号 G06F9/30;G06F9/38;G06F9/455 主分类号 G06F9/30
代理机构 Heslin Rothenberg Farley & Mesiti P.C. 代理人 Kinnaman, Esq. William A.;Hulihan, Esq. Matthew M.;Heslin Rothenberg Farley & Mesiti P.C.
主权项 1. A computer program product for executing a machine instruction in a central processing unit, the computer program product comprising: a non-transitory computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a 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; anda block boundary size indicator to indicate a specified block boundary of a block of the second operand; andexecuting the machine instruction, the execution comprising: loading from a block of the second operand a variable amount of data into the first operand while ensuring only data within the block is being loaded into the first operand, wherein the loading from the blockstarts at a starting address in the block of the second operand, the starting address provided by the machine instruction, wherein an address of the second operand is the starting address in memory from which data is to be loaded in the first operand, wherein the loading ends at or before the specified block boundary of the block of the second operand, wherein the executing further comprises determining an ending address at which loading is to stop, wherein the loading stops at the ending address, and wherein the determining the ending address comprises computing the ending address as follows: ending address =minimum. of (starting address +(boundary size −(starting address AND NOT boundary mask)), starting address +register size, wherein the boundary size is the block boundary, boundary mask is equal to 0−boundary size, and register size is a specified length of the register.
地址 Armonk NY US