IP Library Granted Patent US 10,025,591
Granted Patent B2
US 10,025,591 · App. 15/363,785 · Granted Jul 17, 2018

Instruction for element offset calculation in a multi-dimensional array

Inventors: Mikhail Plotnikov (Nizhny Novgorod, RU); Andrey Naraikin (Nizhny Novgorod, RU); Elmoustapha Ould-Ahmed-Vall (Chandler, AZ)
Assignee: INTEL CORPORATION
G06F9/3555G06F9/3001G06F9/3016G06F9/30036G06F9/30098G06F9/30145G06F9/355G06F9/3802G06F9/3893
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,025,591
App. No.
15/363,785
Granted
Jul 17, 2018
Kind
B2
Abstract

An apparatus is described having functional unit logic circuitry. The functional unit logic circuitry has a first register to store a first input vector operand having an element for each dimension of a multi-dimensional data structure. Each element of the first vector operand specifying the size of its respective dimension. The functional unit has a second register to store a second input vector operand specifying coordinates of a particular segment of the multi-dimensional structure. The functional unit also has logic circuitry to calculate an address offset for the particular segment relative to an address of an origin segment of the multi-dimensional structure.

Claims (51)

1. A processor comprising:

a decoder to decode an instruction into a decoded instruction; and

an execution unit to execute the decoded instruction to:

read a first input vector operand having an element for each dimension of a multi-dimensional structure, each element of the first input vector operand to specify a size of its respective dimension,

read a second input operand to specify coordinates of a particular segment of the multi-dimensional structure,

calculate an address offset for the particular segment relative to an address of an origin segment of the multi-dimensional structure,

determine an address of the particular segment from the address offset and the address of the origin segment, and

provide the address of the particular segment as a resultant of the instruction.

2. The processor of claim 1 , further comprising a register specified by the instruction to store the address of the origin segment.

3. The processor of claim 2 , further comprising an adder coupled to the register, the adder to calculate the address for the particular segment.

4. The processor of claim 1 , wherein the address of the particular segment is a binary address.

5. The processor of claim 1 , wherein the execution unit is to cause the address of the particular segment to be stored as the resultant in a register specified by the instruction.

6. The processor of claim 1 , wherein the first input vector operand is read from a first register specified by the instruction, and the second input operand is read from a second register specified by the instruction.

7. A non-transitory machine readable medium that stores code that when executed by a machine causes the machine to perform a method comprising:

decoding an instruction into a decoded instruction; and

executing the decoded instruction to:

read a first input vector operand having an element for each dimension of a multi-dimensional structure, each element of the first input vector operand specifying a size of its respective dimension,

read a second input operand specifying coordinates of a particular segment of the multi-dimensional structure, and

calculate an address offset for the particular segment relative to an address of an origin segment of the multi-dimensional structure.

8. The non-transitory machine readable medium of claim 7 , wherein the method further comprises fetching the address of the origin segment.

9. The non-transitory machine readable medium of claim 8 , wherein the method further comprises adding the address of the origin segment.

10. The non-transitory machine readable medium of claim 7 , wherein the address of the origin segment is a binary address.

11. The non-transitory machine readable medium of claim 7 , wherein the method further comprises storing the address offset in scalar register space.

12. The non-transitory machine readable medium of claim 7 , wherein the method further comprises storing the address offset in vector register space.

13. A non-transitory machine readable medium that stores code that when executed by a machine causes the machine to perform a method comprising:

decoding an instruction into a decoded instruction; and

executing the decoded instruction to:

read a first input vector operand having an element for each dimension of a multi-dimensional structure, each element of the first input vector operand specifying a size of its respective dimension,

read a second input operand specifying coordinates of a particular segment of the multi-dimensional structure,

calculate an address offset for the particular segment relative to an address of an origin segment of the multi-dimensional structure, and

apply the address offset to the address of the origin segment to construct an address for the particular segment, and

using the address for the particular segment to access data for the particular segment.

14. The non-transitory machine readable medium of claim 13 , wherein the method further comprises fetching the address of the origin segment.

15. The non-transitory machine readable medium of claim 13 , wherein the address of the particular segment is a binary address.

16. The non-transitory machine readable medium of claim 13 , wherein the method further comprises storing the address offset in scalar register space.

17. The non-transitory machine readable medium of claim 13 , wherein the method further comprises storing the address offset in vector register space.

18. The non-transitory machine readable medium of claim 13 , wherein the access includes appending lower ordered bits to the address for the particular segment.

19. The non-transitory machine readable medium of claim 13 , wherein the address of the origin segment is not zero.

20. The non-transitory machine readable medium of claim 13 , wherein the method further comprises storing the address offset into a register from which an input operand for the executing was provided.

21. A non-transitory machine readable medium that stores code that when executed by a machine causes the machine to perform a method comprising:

decoding an instruction into a decoded instruction; and

executing the decoded instruction to:

read a first input vector operand having an element for each dimension of a multi-dimensional structure, each element of the first input vector operand to specify a size of its respective dimension,

read a second input operand to specify coordinates of a particular segment of the multi-dimensional structure,

calculate an address offset for the particular segment relative to an address of an origin segment of the multi-dimensional structure,

determine an address of the particular segment from the address offset and the address of the origin segment, and

provide the address of the particular segment as a resultant of the instruction.

22. The non-transitory machine readable medium of claim 21 , wherein the address of the particular segment is a binary address.

23. The non-transitory machine readable medium of claim 21 , wherein the executing is to cause the address of the particular segment to be stored as the resultant in a register specified by the instruction.

24. The non-transitory machine readable medium of claim 23 , wherein the method further comprises providing an adder coupled to the register, the adder to calculate the address for the particular segment.

25. The non-transitory machine readable medium of claim 21 , wherein the executing is to cause the first input vector operand to be read from a first register specified by the instruction, and the second input operand to be read from a second register specified by the instruction.

Continuity (2)
Continuation 13976004
Related Publication 20170075691A1 · Mar 16, 2017