IP Library › Granted Patent US 12,530,196
Granted Patent B2
US 12,530,196 · App. 17/676,910 · Granted Jan 20, 2026

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/30038G06F9/30043G06F9/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 12,530,196
App. No.
17/676,910
Granted
Jan 20, 2026
Kind
B2
Abstract

Software instructions are executed on a processor within a computer system to configure a streaming 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 (60)

1 . A device comprising:

a processor;

a memory; and

a memory controller coupled between the memory and the processor that includes an alignment circuit that includes:

a register file configured to store a first set of data elements from the memory;

an alignment network that includes a set of multiplexers coupled to the register file; and

control logic coupled to the set of multiplexers and configured to cause the set of multiplexers to provide a second set of data elements that includes the first set of data elements and a set of null elements produced without accessing the memory;

wherein the memory controller is configured to provide the second set of data elements to the processor as a set of vectors that includes a null vector that includes the set of null elements.

2 . The device of claim 1 , wherein:

the set of multiplexers is a first set of multiplexers;

the memory controller includes a rotator circuit coupled between the memory and the register file of the alignment circuit; and

the rotator circuit includes a second set of multiplexers coupled to receive a third set of data elements from the memory and to provide the first set of data elements to the register file based on the third set of data elements.

3 . The device of claim 1 , wherein the memory controller includes a butterfly network coupled between the alignment circuit and the processor and configured to reorder the second set of data elements such that the second set of data elements in the set of vectors are reordered by the butterfly network.

4 . The device of claim 1 , wherein:

the processor is configured to provide the memory controller a set of stream parameters;

the set of stream parameters specifies a null vector count; and

the memory controller is configured to provide the set of vectors such that the set of vectors includes a number of null vectors equal to the null vector count.

5 . The device of claim 4 , wherein:

the set of stream parameters specifies an array having a plurality of dimensions; and

the set of stream parameters specifies a dimension from among the plurality of dimensions associated with the null vector.

6 . The device of claim 4 , wherein:

the set of stream parameters specifies an array having a plurality of dimensions; and

the set of stream parameters specifies an element size, a number of elements to include in each vector of the set of vectors, and a number of vectors to include in the set of vectors for each dimension of the plurality of dimensions.

7 . The device of claim 4 , wherein the set of stream parameters specifies a null value for the null vector.

8 . The device of claim 1 , wherein:

the memory controller includes an address generator configured to provide a set of addresses for retrieving the first set of data elements; and

the memory controller is configured to suppress address generation by the address generator for the null vector.

9 . The device of claim 8 , wherein:

the memory controller includes an address lookaside buffer coupled to the address generator; and

the memory controller is configured to produce the null vector without accessing the address lookaside buffer.

10 . The device of claim 1 , wherein the memory is a level two (L2) cache memory.

11 . A device comprising:

a memory controller that includes:

a memory interface configured to couple to a memory to receive a first set of data elements;

a rotator circuit coupled to the memory interface and configured to produce a second set of data elements based on the first set of data elements;

an alignment network that includes a set of multiplexers coupled to the rotator circuit;

control logic coupled to the alignment network configured to cause the set of multiplexers to provide a third set of data elements that includes the second set of data elements and a set of null elements produced without accessing the memory; and

a register coupled to the alignment network and configured to provide the third set of data elements as a set of vectors that includes a null vector that includes the set of null elements.

12 . The device of claim 11 , wherein:

the set of multiplexers is a first set of multiplexers; and

the rotator circuit includes a second set of multiplexers coupled to receive the first set of data elements and to provide the second set of data elements based on the first set of data elements.

13 . The device of claim 11 , wherein the memory controller includes a butterfly network coupled between the set of multiplexers and the register and configured to reorder the third set of data elements such that the third set of data elements in the set of vectors is reordered by the butterfly network.

14 . The device of claim 11 , wherein:

the memory controller is configured to receive a set of stream parameters;

the set of stream parameters specifies a null vector count; and

the memory controller is configured to provide the set of vectors such that the set of vectors includes a number of null vectors equal to the null vector count.

15 . The device of claim 14 , wherein:

the set of stream parameters specifies an array having a plurality of dimensions; and

the set of stream parameters specifies a dimension from among the plurality of dimensions associated with the null vector.

16 . The device of claim 14 , wherein:

the set of stream parameters specifies an array having a plurality of dimensions; and

the set of stream parameters specifies an element size, a number of elements to include in each vector of the set of vectors, and a number of vectors to include in the set of vectors for each dimension of the plurality of dimensions.

17 . The device of claim 14 , wherein the set of stream parameters specifies a null value for the null vector.

18 . The device of claim 11 , wherein:

the memory controller includes an address generator configured to provide a set of addresses for retrieving the first set of data elements; and

the memory controller is configured to suppress address generation by the address generator for the null vector.

19 . The device of claim 18 , wherein:

the memory controller includes an address lookaside buffer coupled to the address generator; and

the memory controller is configured to produce the null vector without accessing the address lookaside buffer.

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

Continuity (6)
Continuation 16420467 · May 23, 2019
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 20220179652A1 · Jun 9, 2022
References Cited (63)
US 5502829A · Sachs · 1996 [cited by applicant]
US 5909573A · Sheaffer · 1999 [cited by applicant]
US 6606686B1 · Agarwala et al. · 2003 [cited by applicant]
US 7750916B2 · Whitaker · 2010 [cited by applicant]
US 8537169B1 · Bolz · 2013 [cited by applicant]
US 8676874B2 · Fossum · 2014 [cited by applicant]
US 8775495B2 · Lumsdaine · 2014 [cited by applicant]
US 9606803B2 · Anderson · 2017 [cited by examiner]
US 9667276B1 · Tunali · 2017 [cited by applicant]
US 9805001B2 · Narayanaswami · 2017 [cited by applicant]
US 9904645B2 · Thompson et al. · 2018 [cited by applicant]
US 10162641B2 · Anderson · 2018 [cited by examiner]
US 10203958B2 · Zbiciak · 2019 [cited by applicant]
US 10942741B2 · Tran · 2021 [cited by examiner]
US 10949206B2 · Tran · 2021 [cited by examiner]
US 10990650B1 · Vantrease · 2021 [cited by applicant]
US 11036648B2 · Anderson · 2021 [cited by examiner]
US 11113062B2 · Bhardwaj · 2021 [cited by examiner]
US 11231929B2 · Tran · 2022 [cited by examiner]
US 11249759B2 · Leven · 2022 [cited by examiner]
US 11256508B2 · Bhardwaj · 2022 [cited by examiner]
US 11269638B2 · Zbiciak · 2022 [cited by examiner]
US 11461625B1 · Wu · 2022 [cited by applicant]
US 11507520B2 · Bui · 2022 [cited by examiner]
US 11748270B2 · Bui · 2023 [cited by examiner]
US 12118358B2 · Tran · 2024 [cited by applicant]
US 20020026569A1 · Liao · 2002 [cited by applicant]
US 20030151774A1 · Washio · 2003 [cited by applicant]
US 20050273450A1 · Mcmillen · 2005 [cited by applicant]
US 20060179257A1 · Chu · 2006 [cited by examiner]
US 20070019005A1 · Van Baarsen · 2007 [cited by applicant]
US 20070189363A1 · Eriksson et al. · 2007 [cited by applicant]
US 20080183792A1 · Inoue · 2008 [cited by applicant]
US 20100054626A1 · Shi · 2010 [cited by applicant]
US 20100241808A1 · Toub · 2010 [cited by applicant]
US 20100303182A1 · Daneshrad et al. · 2010 [cited by applicant]
US 20100306300A1 · Lu et al. · 2010 [cited by applicant]
US 20120254192A1 · Gelbard · 2012 [cited by applicant]
US 20120281747A1 · Abrishamkar et al. · 2012 [cited by applicant]
US 20120324319A1 · Grinchuk · 2012 [cited by applicant]
US 20130339621A1 · Steely, Jr. et al. · 2013 [cited by applicant]
US 20140019635A1 · Reznik · 2014 [cited by applicant]
US 20150019840A1 · Anderson · 2015 [cited by applicant]
US 20150262332A1 · Park · 2015 [cited by applicant]
US 20170153959A1 · Zbiciak · 2017 [cited by applicant]
US 20170351736A1 · Cradick · 2017 [cited by applicant]
US 20180173528A1 · Zbiciak · 2018 [cited by applicant]
US 20190102178A1 · Zbiciak · 2019 [cited by applicant]
US 20190278595A1 · Tran et al. · 2019 [cited by applicant]
US 20190278596A1 · Leven et al. · 2019 [cited by applicant]
US 20190278597A1 · Bhardwaj · 2019 [cited by applicant]
US 20190278598A1 · Bhardwaj et al. · 2019 [cited by applicant]
US 20200348937A1 · Baum · 2020 [cited by applicant]
US 20220164188A1 · Leven · 2022 [cited by applicant]
CN 102156637A · 2011 [cited by applicant]
CN 109213525B · 2023 [cited by applicant]
“66AK2Hx Keystone Multicore DSP+ARM System-on-Chips”, SPRT651A, Texas Instruments, Inc., 2013, pp. 1-3. [cited by applicant]
Herruzo, E. et al., Using Padding to Optimize Locality in Scientific Application,2008, Springer-Verlag, pp. 863-872). (Year: 2008). [cited by applicant]
Hong, C. et al., Effective Padding of Multidimensional Arrays to Avoid Cache Conflict Misses, 2016, ACM, pp. 129-144. (Year: 2016). [cited by applicant]
Yeom, Jae-Seung et al., A Runtime Framework for Optimizing Multi-Dimensional Array Accesses on Multi-Core Processors, 2009, ResearchGate, 9 pages. (Year: 2009). [cited by applicant]
First Office Action and Search Report in corresponding China Application No. No. 202080037266.7, mailed Mar. 31, 2025, 9 pgs. [cited by applicant]
Chinese Notice of Allowance and Search Report for Corresponding Application No. 202080037266.7, mailed Sep. 3, 2025, 4 pgs. [cited by applicant]
Zhang Wenxuan et al., “Application of Cosine Similarity Theory in Hydrological Sequence Correcting and Interpolation” Jilin Water Resources, Mar. 15, 2017, pp. 38-40. [cited by applicant]
Cited By (1)
US 12,743,250