IP Library Granted Patent US 11,256,508
Granted Patent B2
US 11,256,508 · App. 16/420,467 · Granted Feb 22, 2022

Inserting null vectors into a stream of vectors

Inventors: Asheesh Bhardwaj (Allen, TX); William Franklin Leven (Dallas, TX); Son Hung Tran (Murphy, TX); Timothy David Anderson (University Park, TX)
Assignee: Texas Instruments Incorporated
G06F9/3016G06F9/30014G06F9/30036G06F9/30098G06F9/30112G06F9/30145G06F9/32G06F9/345G06F9/3802G06F9/383G06F9/3867G06F11/00G06F11/1048G06F12/0875G06F12/0897G06F9/3822G06F11/10G06F17/16G06F2212/452G06F2212/60
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,256,508
App. No.
16/420,467
Granted
Feb 22, 2022
Kind
B2
Abstract

Software instructions are executed on a processor within a computer system to configure a steaming engine with stream parameters to define a multidimensional array. The stream parameters define a size for each dimension of the multidimensional array, a null vector count (N), and a selected dimension. Data is fetched from a memory coupled to the streaming engine responsive to the stream parameters. A stream of vectors is formed for the multidimensional array responsive to the stream parameters from the data fetched from memory. N null stream vectors are inserted into the stream of vectors for the selected dimension without fetching respective null data from the memory.

Claims (44)

1. A method of operating a streaming engine in a computer system, the method comprising:

receiving stream parameters into control logic of the streaming engine that define a multidimensional array, wherein the stream parameters define a count for each dimension of the multidimensional array and a null vector count;

based on the count for a first dimension of the multidimensional array:

fetching a set of data from a memory coupled to the streaming engine; and

forming a stream of vectors for the multidimension array responsive to the stream parameters from the set of data fetched from memory; and

based on reaching an end of the count of the first dimension and based on the null vector count, forming a set of null stream vectors for the stream of vectors without accessing the memory.

2. The method of claim 1 , in which the stream parameters define a selected dimension of the multidimensional array, and in which the set of null stream vectors are formed in the selected dimension of the stream of vectors.

3. The method of claim 1 , in which the stream parameters include an element size of the multidimensional array, a number of elements to include in each stream vector, and a number of stream vectors to include in the stream of vectors for each dimension of the multidimensional array.

4. The method of claim 1 , in which all elements in a null stream vector have a value of zero.

5. The method of claim 1 , wherein the forming of the set of null stream vectors is performed without accessing an address lookaside buffer.

6. The method of claim 1 , in which elements in a null stream vector have a null value that is specified by the stream parameters.

7. A system comprising:

a system memory; and

a streaming engine coupled to the system memory, wherein the streaming engine comprises:

a stream template register to hold stream parameters, wherein the stream parameters define a count for each dimension of a multidimensional array and a null vector count;

address generation logic coupled to the stream template register and configured to generate a set of addresses based on the stream parameters;

a memory interface logic coupled to receive a stream of address from the address generation logic and coupled to access the system memory; and

control logic coupled to memory interface and configured to:

provide a set of data elements received from the memory interface logic in a stream of vectors; and

based on an end of the count of a first dimension of the multidimensional array and based on the null vector count, provide a set of null stream vectors in the stream of vectors without fetching from the system memory.

8. The system of claim 7 , further comprising a translation lookaside buffer coupled to the address generation logic, wherein the control logic is configured to provide the set of null stream vectors without accessing the translation lookaside buffer.

9. The system of claim 7 , in which all elements in a null stream vector have a value of zero.

10. The system of claim 7 , in which elements in a null stream vector have a null value that is specified by the stream parameters.

11. The system of claim 7 , further comprising:

a register file with inputs coupled to receive a vector fetched from the system memory; and

an alignment network with inputs coupled to outputs of the register file, the alignment network coupled to the control logic for control, the alignment network having outputs coupled to outputs of the streaming engine to provide the set of null stream vectors responsive to the stream parameters.

12. The system of claim 7 being a system on a chip (SoC), further comprising a processing unit coupled to outputs of the streaming engine to receive the stream of vectors.

13. The system of claim 7 , wherein the stream parameters specify a dimension associated with the null vector count from among dimensions of the multidimensional array.

14. A system comprising:

a system memory;

a streaming engine coupled to access the system memory to form a stream of stream vectors, wherein the streaming engine is configured to insert a specified null vector count of null stream vectors into the stream of stream vectors without accessing the system memory based on an end of a count of accesses of the system memory, wherein the streaming engine includes:

a stream template register to hold stream parameters that define a count for each dimension of a multidimensional array and the null vector count; and

control logic coupled to receive the stream parameters from the stream template register that is configured to insert the null stream vectors into the stream of stream vectors; and

a processing unit coupled to outputs of the streaming engine to receive the stream of stream vectors.

15. The system of claim 14 , further comprising a translation lookaside buffer coupled to the streaming engine, wherein the streaming engine is configured to insert the null stream vectors into the stream of stream vectors without accessing the translation lookaside buffer.

16. The system of claim 14 , in which all elements in a null stream vector have a value of zero.

17. The system of claim 14 , in which elements in a null stream vector have a null value that is specified by the stream parameters.

18. The system of claim 14 , further comprising:

a register file with inputs coupled to receive a vector fetched from the system memory; and

an alignment network with inputs coupled to outputs of the register file, the alignment network coupled to the control logic for control, the alignment network having outputs coupled to outputs of the streaming engine to provide the null stream vectors responsive to the stream parameters.

19. The system of claim 14 , wherein the stream parameters specify a dimension of an array associated with the null vector count.

20. The system of claim 14 , wherein the streaming engine includes an address generator that is configured to:

generate a set of addresses to retrieve data of the multidimensional array from the system memory based on the count for each dimension of the multidimensional array in the stream parameters; and

provide the set of addresses for retrieving the data of the multidimensional array, wherein the streaming engine is configured to provide the data of the multidimensional array in the stream of stream vectors.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2019
From: BHARDWAJ, ASHEESH; LEVEN, WILLIAM FRANKLIN; TRAN, SON HUNG; ANDERSON, TIMOTHY DAVID
To: TEXAS INSTRUMENTS INCORPORATED
Reel/Frame 049268/0693 →
Continuity (5)
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 20190278597A1 · Sep 12, 2019
Cited By (5)
US 12,204,905 US 12,367,147 US 12,461,746 US 12,530,196 US 12,705,303