IP Library › Granted Patent US 12,547,406
Granted Patent B2
US 12,547,406 · App. 18/477,657 · Granted Feb 10, 2026

Look-up table read

Inventors: Naveen Bhoria (Plano, TX); Duc Bui (Grand Prairie, TX); Dheera Balasubramanian Samudrala (Richardson, TX); Rama Venkatasubramanian (Plano, TX)
Assignee: Texas Instruments Incorporated
G06F9/30145G06F9/30007G06F9/30032G06F9/355
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,547,406
App. No.
18/477,657
Granted
Feb 10, 2026
Kind
B2
Abstract

A digital data processor includes a multi-stage butterfly network, which is configured to, in response to a look up table read instruction, receive look up table data from an intermediate register, reorder the look up table data based on control signals comprising look up table configuration register data, and write the reordered look up table data to a destination register specified by the look up table read instruction.

Claims (67)

1 . A device comprising:

a cache memory that includes a set of banks, wherein the cache memory is configured to store a set of table elements;

an intermediate register that includes a set of portions, wherein:

each portion of the set of portions of the intermediate register is coupled to a respective bank of the set of banks of the cache memory; and

each portion of the set of portions of the intermediate register is configured to:

receive a respective element of a first subset of the set of table elements from the respective bank; and

store the respective element of the first subset of the set of table elements;

a circuit coupled to the intermediate register and configured to:

receive a set of indices;

receive the first subset of the set of table elements from the intermediate register; and

reorder the first subset of the set of table elements based on the set of indices to produce a second subset of the set of table elements; and

a destination register coupled to the circuit and configured to store the second subset of the set of table elements.

2 . The device of claim 1 , wherein:

the set of table elements is arranged in a set of tables;

each element of the set of table elements has a respective index with respect to the set of tables; and

the set of indices corresponds to the respective index of each element of the first subset of the set of table elements with respect to the set of tables.

3 . The device of claim 2 , wherein the circuit is configured to reorder the first subset of the set of table elements based on the indices such that elements of the second subset of the set of table elements that correspond to a table of the set of tables are arranged in order based on the respective indices.

4 . The device of claim 1 , wherein the intermediate register is configured to store a first table element of the set of table elements that is received from a first bank of the set of banks adjacent to a second table element of the set of table elements that is received from a second bank of the set of banks that is adjacent to the first bank.

5 . The device of claim 4 , wherein:

the first and second subsets of the set of table elements include the first table element and the second table element; and

the circuit is configured to reorder the first subset of the set of table elements such that the first table element and the second table element are not adjacent in the destination register.

6 . The device of claim 1 , wherein:

the set of table elements is arranged as a set of tables that includes a first table and a second table;

the first subset of the set of elements includes a first portion associated with the first table and a second portion associated with the second table; and

the circuit is configured to reorder the first portion of the first subset of the set of elements and the second portion of the first subset of the set of elements independently.

7 . The device of claim 6 , wherein the circuit is configured to reorder the first portion of the first subset of the set of elements without reordering the second portion of the first subset of the set of elements.

8 . The device of claim 1 , wherein:

the set of table elements is arranged as a set of tables;

the intermediate register is configured to receive the first subset of the set of table elements from the cache memory based on an instruction; and

the instruction specifies, for each table of the set of tables, a first data element and a number of sequential data elements to retrieve from the respective table.

9 . The device of claim 8 , wherein the circuit is configured to reorder the first subset of the set of table elements such that, for each table of the set of tables, the first data element precedes the sequential data elements.

10 . The device of claim 8 further comprising a vector source index register coupled to the cache memory and configured to store, for each table of the set of tables, a respective index that specifies the first data element of the respective table.

11 . The device of claim 1 , wherein the cache memory is a level-one (L1) cache memory.

12 . An integrated circuit device comprising:

a processor;

a cache memory that includes a set of banks and that is coupled to the processor;

an intermediate register that includes a set of portions, wherein each portion of the set of portions is coupled to a respective bank of the set of banks of the cache memory;

a circuit coupled to the intermediate register; and

a destination register coupled to the circuit,

wherein the processor is configured to:

receive a first instruction;

based on the first instruction, cause the cache memory to store a set of table elements;

receive a second instruction; and

based on the second instruction:

cause the intermediate register to store a first subset of the set of table elements received from the cache memory such that each portion of the set of portions of the intermediate register stores a respective element of the first subset of the set of table elements from the respective bank;

cause the circuit to reorder the first subset of the set of table elements to produce a second subset of the set of table elements; and

cause the destination register to store the second subset of the set of table elements.

13 . The integrated circuit device of claim 12 , wherein:

the cache memory is configured to store the set of table elements arranged in a set of tables;

the integrated circuit device further comprises an index register configured to store a respective index for each table of the set of tables; and

the second instruction includes a first field that specifies the index register.

14 . The integrated circuit device of claim 13 , wherein the second instruction includes:

a second field that specifies the set of table elements; and

a third field that specifies the destination register.

15 . The integrated circuit device of claim 12 , wherein:

each table element of the set of table elements has a respective index; and

the circuit is configured to reorder the first subset of the set of table elements such that elements of the second subset that correspond to a table are arranged in order based on the respective indices.

16 . The integrated circuit device of claim 12 , wherein the intermediate register is configured to store a first table element of the set of table elements that is received from a first bank of the set of banks adjacent to a second table element of the set of table elements that is received from a second bank of the set of banks that is adjacent to the first bank.

17 . The integrated circuit device of claim 16 , wherein:

the first and second subsets of the set of table elements include the first table element and the second table element; and

the circuit is configured to reorder the first subset of the set of table elements such that the first table element and the second table element are not adjacent in the destination register.

18 . The integrated circuit device of claim 12 , wherein:

the set of table elements is arranged as a set of tables that includes a first table and a second table;

the first subset of the set of elements includes a first portion associated with the first table and a second portion associated with the second table; and

the circuit is configured to reorder the first portion of the first subset of the set of elements and the second portion of the first subset of the set of elements independently.

19 . The integrated circuit device of claim 18 , wherein the circuit is configured to reorder the first portion of the first subset of the set of elements without reordering the second portion of the first subset of the set of elements.

20 . The integrated circuit device of claim 12 , wherein the cache memory is a level-one (L1) cache memory.

Continuity (4)
Continuation 17901940 · Sep 2, 2022
Continuation 16570874 · Sep 13, 2019
Provisional Application 62853120 · May 27, 2019
Related Publication 20240020125A1 · Jan 18, 2024
References Cited (97)
US 5237616A · Abraham · 1993 [cited by applicant]
US 5475856A · Kogge · 1995 [cited by applicant]
US 5881282A · Shipman · 1999 [cited by applicant]
US 6112298A · Deao · 2000 [cited by applicant]
US 6430674B1 · Trivedi · 2002 [cited by applicant]
US 6567910B2 · Tessarolo · 2003 [cited by applicant]
US 6581086B1 · Morrison · 2003 [cited by applicant]
US 6583945B1 · Bar · 2003 [cited by applicant]
US 6592626B1 · Bauchot et al. · 2003 [cited by applicant]
US 6622193B1 · Avery · 2003 [cited by applicant]
US 6772370B1 · Sun · 2004 [cited by applicant]
US 6810475B1 · Tardieux · 2004 [cited by applicant]
US 6820189B1 · Hoffman · 2004 [cited by applicant]
US 6917899B2 · Wilt · 2005 [cited by applicant]
US 7444641B1 · Diepstraten · 2008 [cited by applicant]
US 7673190B1 · Engelbrecht · 2010 [cited by applicant]
US 7805592B2 · Joyce · 2010 [cited by applicant]
US 7941651B1 · Toll et al. · 2011 [cited by applicant]
US 8352532B1 · Kostarnov · 2013 [cited by applicant]
US 8782293B1 · Diewald · 2014 [cited by applicant]
US 8898212B2 · Chen et al. · 2014 [cited by applicant]
US 9280773B1 · Evans · 2016 [cited by applicant]
US 9304775B1 · Lindholm · 2016 [cited by applicant]
US 9804839B2 · Kuo · 2017 [cited by applicant]
US 9804988B1 · Ayoub · 2017 [cited by applicant]
US 10404284B1 · Landon · 2019 [cited by examiner]
US 10761850B2 · Bui · 2020 [cited by examiner]
US 11226822B2 · Bhoria et al. · 2022 [cited by applicant]
US 11269636B2 · Bhoria et al. · 2022 [cited by applicant]
US 11455169B2 · Bhoria · 2022 [cited by applicant]
US 11709677B2 · Bhoria et al. · 2023 [cited by applicant]
US 11960891B2 · Bhoria et al. · 2024 [cited by applicant]
US 20020031220A1 · Lee et al. · 2002 [cited by applicant]
US 20020053015A1 · Tan et al. · 2002 [cited by applicant]
US 20020083253A1 · Leijten · 2002 [cited by applicant]
US 20020112228A1 · Granston · 2002 [cited by applicant]
US 20020178210A1 · Khare · 2002 [cited by applicant]
US 20040049660A1 · Jeppesen · 2004 [cited by applicant]
US 20040059766A1 · Yeh · 2004 [cited by applicant]
US 20040073773A1 · Demjaneko · 2004 [cited by applicant]
US 20040128487A1 · Brashears · 2004 [cited by applicant]
US 20040139293A1 · Barth · 2004 [cited by applicant]
US 20040193859A1 · Okabayashi · 2004 [cited by applicant]
US 20040268007A1 · Nguyen · 2004 [cited by applicant]
US 20050071835A1 · Essick, IV · 2005 [cited by applicant]
US 20050172105A1 · Doering et al. · 2005 [cited by applicant]
US 20050251621A1 · Theis · 2005 [cited by applicant]
US 20060184765A1 · Krueger · 2006 [cited by applicant]
US 20060218124A1 · Williamson · 2006 [cited by applicant]
US 20060224864A1 · DeMent · 2006 [cited by applicant]
US 20070079179A1 · Jourdan · 2007 [cited by applicant]
US 20070282888A1 · Vazquez et al. · 2007 [cited by applicant]
US 20080126743A1 · Jusufovic · 2008 [cited by applicant]
US 20080172660A1 · Arning · 2008 [cited by applicant]
US 20090049280A1 · Tatge · 2009 [cited by applicant]
US 20090100247A1 · Moyer et al. · 2009 [cited by applicant]
US 20090228737A1 · Navon et al. · 2009 [cited by applicant]
US 20090254718A1 · Biscondi et al. · 2009 [cited by applicant]
US 20090276606A1 · Mimar · 2009 [cited by applicant]
US 20100106944A1 · Symes et al. · 2010 [cited by applicant]
US 20100332757A1 · Nychka · 2010 [cited by applicant]
US 20110167244A1 · Alexander · 2011 [cited by applicant]
US 20110202748A1 · Jacobi · 2011 [cited by applicant]
US 20120127179A1 · Aspelin · 2012 [cited by applicant]
US 20120255004A1 · Sallam · 2012 [cited by applicant]
US 20130019072A1 · Strasser · 2013 [cited by applicant]
US 20130185538A1 · Hung et al. · 2013 [cited by applicant]
US 20130185539A1 · Hung et al. · 2013 [cited by applicant]
US 20130185540A1 · Hung et al. · 2013 [cited by applicant]
US 20130201823A1 · Gupta · 2013 [cited by applicant]
US 20130212353A1 · Mimar · 2013 [cited by applicant]
US 20130318327A1 · Gammel · 2013 [cited by applicant]
US 20140007120A1 · Spitz · 2014 [cited by applicant]
US 20140122843A1 · Henry · 2014 [cited by applicant]
US 20150039854A1 · Wick · 2015 [cited by applicant]
US 20160124651A1 · Sankaranarayanan et al. · 2016 [cited by applicant]
US 20160179415A1 · Lee et al. · 2016 [cited by applicant]
US 20160358340A1 · Zhou et al. · 2016 [cited by applicant]
US 20160378716A1 · Grochowski et al. · 2016 [cited by applicant]
US 20170123658A1 · Suh et al. · 2017 [cited by applicant]
US 20170177355A1 · Ould-Ahmed-Vall · 2017 [cited by examiner]
US 20170344369A1 · Cho et al. · 2017 [cited by applicant]
US 20180052690A1 · Tran · 2018 [cited by applicant]
US 20180196673A1 · Stephens et al. · 2018 [cited by applicant]
US 20180287941A1 · Louzoun et al. · 2018 [cited by applicant]
US 20180300266A1 · Lucky et al. · 2018 [cited by applicant]
US 20180336161A1 · Sheikh et al. · 2018 [cited by applicant]
US 20190065185A1 · Kuo · 2019 [cited by examiner]
US 20190205132A1 · Bui et al. · 2019 [cited by applicant]
US 20190243648A1 · Anderson · 2019 [cited by applicant]
US 20190266013A1 · Bui · 2019 [cited by applicant]
US 20190294650A1 · Kim · 2019 [cited by applicant]
US 20200195960A1 · Zhang et al. · 2020 [cited by applicant]
US 20200379762A1 · Bhoria et al. · 2020 [cited by applicant]
US 20210326136A1 · Anderson · 2021 [cited by applicant]
International Search Report for PCT/US2020/034628 mailed Aug. 27, 2020. [cited by applicant]
Hilewitz, et al.; Fast Bit Compression and Expansion with Parallel Extract and Parallel Deposit Instructions; IEEE; 2006. [cited by applicant]