CPC G06F 3/0604 (2013.01) [G06F 3/0656 (2013.01); G06F 3/0659 (2013.01); G06F 3/0683 (2013.01); G06F 9/3004 (2013.01); G06F 9/30047 (2013.01); G06F 9/30076 (2013.01); G06F 9/3016 (2013.01); G06F 9/32 (2013.01); G06F 9/3802 (2013.01); G06F 9/383 (2013.01); G06F 12/0875 (2013.01); G06F 12/0897 (2013.01); G06F 13/14 (2013.01); G06F 2212/1016 (2013.01); G06F 2212/452 (2013.01); G06F 2212/60 (2013.01)] | 18 Claims |
1. A circuit device comprising:
a memory controller configured to couple to a memory and at least one processing unit that includes:
an address generator configured to generate, in response to an instruction from the at least one processing unit, a set of addresses to retrieve a set of data from the memory using a set of loops;
data storage configured to the set of data retrieved from the memory; and
fetch circuitry that includes:
a set of registers each configured to store a respective loop count of a respective loop of the set of loops;
a first set of computation circuitry configured to determine an amount of data in a pending portion of the set of data based on the loop counts stored in the set of registers;
a second set of computation circuitry configured to determine an amount of available space in the data storage; and
a fetch controller coupled to the first set of computation circuitry and the second set of computation circuitry and configured to provide fetch commands to retrieve the set of data from the memory such that:
when the amount of data in the pending portion of the set of data is less than or equal to the amount of available space in the data storage, a set of fetch commands associated with the pending portion is provided to the memory;
when the amount of data in the pending portion of the set of data is greater than the amount of available space in the data storage and the amount of available space in the data storage is greater than a hysteresis value, a subset of the set of fetch commands associated with the pending portion having an amount based on the hysteresis value is provided to the memory; and
when the amount of data in the pending portion of the set of data is greater than the amount of available space in the data storage and the amount of available space in the data storage is less than the hysteresis value, providing of the set of fetch commands associated with the pending portion is delayed until the amount of available space in the data storage at least meets the hysteresis value.
|