IP Library Granted Patent US 10,572,252
Granted Patent B2
US 10,572,252 · App. 15/382,467 · Granted Feb 25, 2020

Variable-length instruction buffer management

Inventors: Brendan Barry (Dublin, IE); Fergal Connor (Dundalk, IE); Martin O'Riordan (Maynooth, IE); David Moloney (Dublin, IE); Sean Power (Cork, IE)
Assignee: Movidius Limited
G06F9/30036G06F1/32G06F1/3203G06F1/3243G06F1/3287G06F9/3001G06F9/3004G06F9/30032G06F9/30058G06F9/30072G06F9/30149G06F9/3804G06F9/3816G06F9/3822G06F15/8053G06F9/30
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,572,252
App. No.
15/382,467
Granted
Feb 25, 2020
Kind
B2
Abstract

A vector processor is disclosed including a variety of variable-length instructions. Computer-implemented methods are disclosed for efficiently carrying out a variety of operations in a time-conscious, memory-efficient, and power-efficient manner. Methods for more efficiently managing a buffer by controlling the threshold based on the length of delay line instructions are disclosed. Methods for disposing multi-type and multi-size operations in hardware are disclosed. Methods for condensing look-up tables are disclosed. Methods for in-line alteration of variables are disclosed.

Claims (48)

1. A method for processing data with a hardware logic circuit, the method comprising:

accessing, with a processor associated with the hardware logic circuit, a first variable-length instruction representing a first operation, the first variable-length instruction referencing one or more first operands of an integer data type, the first variable-length instruction having a first opcode value to represent the first operation, a data type field of the first variable-length instruction having a first value to indicate the one or more first operands are of the integer data type;

performing the first operation on the one or more first operands of the integer data type with the hardware logic circuit;

accessing, with the processor, a second variable-length instruction representing the first operation, the second variable-length instruction referencing one or more second operands of a floating point data type, the second variable-length instruction having the same first opcode value as the first variable-length instruction to represent the first operation, a data type field of the second variable-length instruction having a second value, different from the first value, to indicate the one or more second operands are of the floating point data type; and

performing the first operation on the one or more second operands of the floating point data type with the hardware logic circuit.

2. The method of claim 1 , wherein the hardware logic circuit is to perform the first operation on operands of two or more different sizes.

3. The method of claim 1 , wherein the hardware logic circuit is to perform the first operation on at least one of (1) the one or more first operands of the integer data type, (2) the one of more second operands of the floating point data type, (3) one of more third operands of a fixed point data type, or (4) one or more fourth operands of a scaled integer data type.

4. The method of claim 1 , wherein a data size field of the first variable-length instruction has a third value to designate a first size of the one or more first operands, and a data size field of the second variable-length instruction has a fourth value to designate a second size of the one or more second operands.

5. The method of claim 4 , wherein the second size of the one or more second operands is different from the first size of the one or more first operands.

6. The method of claim 1 , further including re-formatting a result of the performing of the first operation on the one or more first operands to be a different data type than the integer data type.

7. The method of claim 1 , further including re-formatting a result of the performing of the second operation on the one or more second operands to be a different data type than the floating point data type.

8. An apparatus comprising:

memory to store variable-length instructions; and

a vector processor including a hardware logic circuit, the vector processor to:

access a first variable-length instruction having a first opcode value to represent a first operation, the first variable-length instruction referencing one or more first operands of an integer data type, a data type field of the first variable-length instruction having a first value to indicate the one or more first operands are of the integer data type;

perform the first operation on the one or more first operands of the integer data type with the hardware logic circuit;

access a second variable-length instruction having the same first opcode value to represent the first operation, the second variable-length instruction referencing one or more second operands of a floating point data type, a data type field of the second variable-length instruction having a second value, different from the first value, to indicate the one or more second operands are of the floating point data type; and

perform the first operation on the one or more second operands of the floating point data type with the hardware logic circuit.

9. The apparatus of claim 8 , wherein the hardware logic circuit is to perform the first operation on operands of two or more different sizes.

10. The apparatus of claim 8 , wherein the hardware logic circuit is to perform the first operation on at least one of (1) the one or more first operands of the integer data type, (2) the one of more second operands of the floating point data type, (3) one of more third operands of a fixed point data type, or (4) one or more fourth operands of a scaled integer data type.

11. The apparatus of claim 8 , wherein a data size field of the first variable-length instruction has a third value to designate a first size of the one or more first operands, and a data size field of the second variable-length instruction has a fourth value to designate a second size of the one or more second operands.

12. The apparatus of claim 11 , wherein the second size of the one or more second operands is different from the first size of the one or more first operands.

13. The apparatus of claim 8 , wherein the hardware logic circuit is to:

re-format a result of the first operation on the one or more first operands to be a different data type than the integer point data type; and

re-format a result of the first operation on the one or more second operands to be a different data type than the floating point data type.

14. Computer readable memory comprising computer readable instructions that, when executed by a processor, cause the processor to at least:

access a first variable-length instruction having a first opcode value to represent a first operation, the first variable-length instruction referencing one or more first operands of an integer data type, a data type field of the first variable-length instruction having a first value to indicate the one or more first operands are of the integer data type;

perform the first operation on the one or more first operands of the integer data type with hardware logic;

access a second variable-length instruction having the same first opcode value to represent the first operation, the second variable-length instruction referencing one or more second operands of a floating point data type, a data type field of the second variable-length instruction having a second value, different from the first value, to indicate the one or more second operands are of the floating point data type; and

perform the first operation on the one or more second operands of the floating point data type with the same hardware logic.

15. The computer readable memory of claim 14 , wherein the first and second operands have two or more different sizes.

16. The computer readable memory of claim 14 , wherein the hardware logic is to perform the first operation on at least one of (1) the one or more first operands of the integer data type, (2) the one of more second operands of the floating point data type, (3) one of more third operands of a fixed point data type, or (4) one or more fourth operands of a scaled integer data type.

17. The computer readable memory of claim 14 , wherein a data size field of the first variable-length instruction has a third value to designate a first size of the one or more first operands, and a data size field of the second variable-length instruction has a fourth value to designate a second size of the one or more second operands.

18. The computer readable memory of claim 17 , wherein the second size of the one or more second operands is different from the first size of the one or more first operands.

19. The computer readable memory of claim 14 , wherein the hardware logic is to:

re-format a result of the first operation on the one or more first operands to be a different data type than the integer point data type; and

re-format a result of the first operation on the one or more second operands to be a different data type than the floating point data type.

20. A computing system comprising:

memory to store variable-length instructions;

means for accessing a first variable-length instruction having a first opcode value to represent a first operation and for accessing a second variable-length instruction having the same first opcode value to represent the first operation, the first variable-length instruction referencing one or more first operands of an integer data type, the second variable-length instruction referencing one or more second operands of a floating point data type, a data type field of the first variable-length instruction having a first value to indicate the one or more first operands are of the integer data type, a data type field of the second variable-length instruction having a second value, different from the first value, to indicate the one or more second operands are of the floating point data type; and

means for performing (i) the first operation on the one or more first operands of the integer data type and (ii) the first operation on the one or more second operands of the floating point data type.

21. The computing system of claim 20 , wherein the means for performing is to perform the first operation on operands of two or more different sizes.

22. The computing system of claim 20 , wherein the means for performing is to perform the first operation on at least one of (1) the one or more first operands data of the integer type, (2) the one of more second operands of the floating point data type, (3) one of more third operands of a fixed point data type, or (4) one or more fourth operands of a scaled integer data type.

23. The computing system of claim 20 , wherein a data size field of the first variable-length instruction has a third value to designate a first size of the one or more first operands, and a data size field of the second variable-length instruction has a fourth value to designate a second size of the one or more second operands.

24. The computing system of claim 23 , wherein the second size of the one or more second operands is different from the first size of the one or more first operands.

25. The computing system of claim 20 , wherein the means for performing is to:

re-format a result of the first operation on the one or more first operands to be a different data type than the integer point data type; and

re-format a result of the first operation on the one or more second operands to be a different data type than the floating point data type.

Assignments (2)
MERGER Recorded Dec 30, 2019
From: LINEAR ALGEBRA TECHNOLOGIES LIMITED
To: MOVIDIUS LIMITED
Reel/Frame 051386/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2017
From: BARRY, BRENDAN; CONNOR, FERGAL; MOLONEY, DAVID; O'RIORDAN, MARTIN; POWER, SEAN
To: LINEAR ALGEBRA TECHNOLOGIES LIMITED
Reel/Frame 042355/0415 →
Priority Claims (2)
GB 1314263.3 · Aug 8, 2013 · national
RO A/00812 · Nov 6, 2013 · national
Continuity (4)
Division 14457929 · Aug 12, 2014
Continuation In Part 14082396 · Nov 18, 2013
Provisional Application 62030913 · Jul 30, 2014
Related Publication 20170293346A1 · Oct 12, 2017