发明名称 Instruction to load data up to a dynamically determined memory boundary
摘要 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 is dynamically determined based on a specified type of boundary and one or more characteristics of the processor executing the instruction, such as cache line size or page size used by the processor.
申请公布号 US9471312(B2) 申请公布日期 2016.10.18
申请号 US201313783332 申请日期 2013.03.03
申请人 INTERNATIONAL BUSINESS MACHINES CORPORATION 发明人 Bradbury Jonathan D.;Gschwind Michael K.;Jacobi Christian;Schwarz Eric M.;Slegel Timothy J.
分类号 G06F9/30;G06F9/38 主分类号 G06F9/30
代理机构 Heslin Rothenberg Farley & Mesiti P.C. 代理人 Kinnaman, Jr., Esq. William A.;Hulihan, Esq. Matthew M.;Heslin Rothenberg Farley & Mesiti P.C.
主权项 1. 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; anda block boundary type indicator to indicate a specified type of block boundary of the second operand; and executing the machine instruction, the execution comprising: loading from a memory block of the second operand a variable amount of data into the first operand while ensuring only data within the memory block of the second operand is being loaded into the first operand, the memory block being of a fixed, predefined size, wherein the loading from the memory block of the second operand starts at a starting address in the memory block of the second operand, the starting address provided by the machine instruction, and wherein the loading ends at or before a determined block boundary of the memory block of the second operand, the determined block boundary being fixed and predefined based on the fixed, predefined size of the memory block and being dynamically determined based on the specified type of block boundary and one or more characteristics of the processor, wherein an address of the second operand is the starting address in memory from which data is to be loaded in the first operand; anddetermining 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