IP Library Granted Patent US 11,748,270
Granted Patent B2
US 11,748,270 · App. 17/990,812 · Granted Sep 5, 2023

Tracking streaming engine vector predicates to control processor execution

Inventors: Duc Quang Bui (Grand Prairie, TX); Joseph Raymond Michael Zbiciak (Alviso, CA)
Assignee: Texas Instruments Incorporated
G06F12/1045G06F7/24G06F7/487G06F7/4876G06F7/49915G06F7/53G06F7/57G06F9/3001G06F9/30014G06F9/3016G06F9/30021G06F9/30032G06F9/30036G06F9/30065G06F9/30072G06F9/30098G06F9/30112G06F9/30145G06F9/30149G06F9/32G06F9/345G06F9/3802G06F9/383G06F9/3818G06F9/3836G06F9/3851G06F9/3867G06F9/3887G06F9/48G06F11/00G06F11/1048G06F12/0862G06F12/0875G06F12/0897G06F12/1009G06F17/16G06F9/3822G06F11/10G06F2212/452G06F2212/60G06F2212/602G06F2212/68
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 11,748,270
App. No.
17/990,812
Granted
Sep 5, 2023
Kind
B2
Abstract

In a method of operating a computer system, an instruction loop is executed by a processor in which each iteration of the instruction loop accesses a current data vector and an associated current vector predicate. The instruction loop is repeated when the current vector predicate indicates the current data vector contains at least one valid data element and the instruction loop is exited when the current vector predicate indicates the current data vector contains no valid data elements.

Claims (72)

1. A method comprising:

receiving a stream instruction from a processor;

receiving a vector length parameter associated with the stream instruction;

based on the stream instruction, generating a set of addresses;

retrieving a set of data elements associated with the set of addresses from a memory;

arranging the set of data elements into a set of vectors, wherein:

a count of data elements in each vector of the set of vectors is based on the vector length parameter;

each vector of the set of vectors includes a data portion that includes at least one data element of the set of data elements and a remainder that does not include a data element of the set of data elements;

determining a respective validity indicator for each vector of the set of vectors that specifies the data portion and the remainder; and

providing a first vector of the set of vectors and a first respective validity indicator associated with the first vector to a processor.

2. The method of claim 1 , wherein:

each vector of the set of vectors has a set of lanes defined therein; and

the respective validity indicator for each vector includes a bit for each lane of the set of lanes that specifies whether the respective lane is associated with the data portion or the remainder.

3. The method of claim 1 , wherein the remainder of each vector of the set of vectors contains at least one invalid element.

4. The method of claim 3 , wherein the at least one invalid element has a zero value.

5. The method of claim 1 further comprising:

receiving a promotion parameter associated with the stream instruction; and

determining whether to promote the set of elements to a larger size prior to arranging the set of data elements into the set of vectors based on the promotion parameter.

6. The method of claim 1 further comprising receiving a duplication parameter that specifies, for each vector of the set of vectors, whether the remainder includes a null element or a duplicate of a data element contained in the data portion of the respective vector, wherein the respective validity indicator for the respective vector indicates whether the remainder includes the null element or the duplicate of the data element contained in the data portion of the respective vector.

7. The method of claim 1 further comprising:

storing the first vector in a stream head register;

storing the first respective validity indicator in a validity register; and

receiving a read instruction from the processor, wherein:

the providing of the first vector and the first respective validity indicator are performed based on the read instruction;

the first vector is provided from the stream head register to the processor; and

the first respective validity indicator is provided from the validity register to the processor.

8. The method of claim 7 , wherein:

the read instruction is a read and advance instruction; and

the method further comprises, based on the read and advance instruction:

storing a second vector of the set of vectors in the stream head register to replace the first vector; and

storing a second respective validity indicator in the validity register to replace the first respective validity indicator.

9. The method of claim 1 , wherein the memory is a level-two (L2) cache memory.

10. The method of claim 9 , wherein the retrieving of the set of data elements is performed using a data path that does not include a level-one (L1) cache memory.

11. A device comprising:

a memory circuit that includes:

an address generator;

a memory interface configured to couple to a memory;

a head register; and

a validity register, wherein the memory circuit is configured to:

receive a stream instruction;

receive a vector length parameter associated with the stream instruction;

based on the stream instruction, cause the address generator to generate a set of addresses;

based on the set of addresses, cause the memory interface to retrieve a set of data from the memory;

arrange the set of data elements into a set of vectors such that:

each vector of the set of vectors includes a data portion that includes a number of data elements of the set of data elements based on the vector length parameter; and

each vector of the set of vectors includes a remainder that does not include a data element of the set of data elements;

store a first vector of the set of vectors in the head register; and

store a first validity indicator in the validity register that specifies the data portion of the first vector and specifies the remainder of the first vector.

12. The device of claim 11 , wherein:

the first vector has a set of lanes defined therein; and

the first validity indicator includes a bit for each lane of the set of lanes that specifies whether the respective lane is associated with the data portion or the remainder.

13. The device of claim 11 , wherein the remainder of each vector of the set of vectors includes a set of elements each having a zero value.

14. The device of claim 11 , wherein:

the memory circuit includes a butterfly network coupled between the memory interface and the head register; and

the memory circuit is configured to:

cause the butterfly network arrange the set of data elements into the set of vectors;

receive a promotion parameter associated with the stream instruction; and

determine whether to cause the butterfly network to promote the set of elements to a larger size prior.

15. The device of claim 11 , wherein:

the memory circuit is configured to receive a duplication parameter that specifies, for each vector of the set of vectors, whether the remainder includes a null element or a duplicate of a data element contained in the data portion of the respective vector; and

the first validity indicator indicates whether the remainder includes the null element or the duplicate of the data element contained in the data portion of the first vector.

16. The device of claim 11 , wherein the memory circuit is configured to:

receive a read instruction from a processor; and

based on the read instruction, provide the first vector from the head register to the processor and provide the first validity indicator from the validity register to the processor.

17. The device of claim 16 , wherein:

the read instruction is a read and advance instruction; and

the memory circuit is configured to, based on the read and advance instruction:

store a second vector of the set of vectors in the head register to replace the first vector; and

store a second respective validity indicator in the validity register to replace the first respective validity indicator.

18. The device of claim 16 further comprising the processor coupled to the memory circuit.

19. The device of claim 11 , wherein the memory is a level-two (L2) cache memory.

20. The device of claim 19 , wherein the memory interface is configured to couple to the L2 cache memory via a data path that does not include a level-one (L1) cache memory.

Continuity (7)
Continuation 17187984 · Mar 1, 2021
Continuation 16237547 · Dec 31, 2018
Continuation In Part 16227238 · Dec 20, 2018
Continuation 15429205 · Feb 10, 2017
Division 14331986 · Jul 15, 2014
Provisional Application 61846148 · Jul 15, 2013
Related Publication 20230084716A1 · Mar 16, 2023
Cited By (3)
US 12,204,905 US 12,321,747 US 12,530,196