| CPC G06F 9/3016 (2013.01) [G06F 9/30014 (2013.01); G06F 9/30036 (2013.01); G06F 9/30038 (2023.08); G06F 9/30098 (2013.01); G06F 9/30112 (2013.01); G06F 9/30145 (2013.01); G06F 9/32 (2013.01); G06F 9/345 (2013.01); G06F 9/3802 (2013.01); G06F 9/383 (2013.01); G06F 9/3867 (2013.01); G06F 11/00 (2013.01); G06F 11/1048 (2013.01); G06F 12/0875 (2013.01); G06F 12/0897 (2013.01); G06F 5/06 (2013.01); G06F 9/30043 (2013.01); G06F 9/3822 (2013.01); G06F 11/10 (2013.01); G06F 2205/067 (2013.01); G06F 2212/452 (2013.01); G06F 2212/60 (2013.01)] | 20 Claims |

|
1. A device comprising:
a first memory configured to store a first data stream that includes a first set of data elements;
a processor core configured to provide an instruction to read the first data stream;
a memory controller coupled between the first memory and the processor core that includes:
an address generator configured to generate a set of addresses associated with the first data stream;
an interface coupled to the first memory to retrieve the first set of data elements from the first memory using the set of addresses; and
a second memory configured to store a table, wherein the memory controller is configured to:
determine a second set of data elements of a second data stream by:
querying the table based on the first set of data elements by:
determining a respective address for each data element of the first set of data elements; and
querying the table based on the respective address to determine a respective data element of the second set of data elements; and
provide the second set of data elements to the processor core.
|