| CPC G06F 11/1658 (2013.01) [G06F 9/3001 (2013.01); G06F 9/3885 (2013.01); G06F 9/3889 (2013.01); G06F 9/3895 (2013.01); G06F 11/1016 (2013.01); G06F 11/102 (2013.01); G06F 11/16 (2013.01); G06F 11/1616 (2013.01); G06F 13/1657 (2013.01); G06F 15/8038 (2013.01); G06N 3/04 (2013.01); G11C 7/1072 (2013.01); G11C 11/1655 (2013.01); G11C 11/1657 (2013.01); G11C 11/1675 (2013.01); G11C 11/4076 (2013.01); G11C 11/408 (2013.01); G11C 11/4093 (2013.01); G06F 2015/765 (2013.01)] | 20 Claims |

|
1. A method performed for operating a distributed memory device comprising:
determining a number of words that are required simultaneously to perform a task, the task requiring at least one computation, and
providing instructions for writing words that need to be accessed simultaneously in a plurality of memory banks when a number of words that can be accessed simultaneously from one of the plurality of memory banks is lower than the number of words that are required simultaneously;
receiving, by a configuration manager, an indication to perform the task; and
in response to receiving the indication, configuring a memory controller to:
within a first line access cycle:
access at least one first word from a first memory bank from the plurality of memory banks using a first memory line,
send the at least one first word to at least one processing unit connected to the memory controller, and
open a first memory line in a second memory bank to access a second address from the second memory bank from the plurality of memory banks, and
within a second line access cycle:
access at least one second word from the second memory bank using the first memory line,
send the at least one second word to at least one processing unit connected to the memory controller, and
access a third address from the first memory bank using a second memory line in the first memory bank.
|