Memory access system
AssigneeNational Technology & Engineering Solutions of Sandia, LLC
InventorsConrad D. James, Tu-Thach Quach, Sapan Agarwal, James Bradley Aimone
Life of this patent
Estimating the term…
Abstract
A method and system for accessing a memory for a data processing system. The method comprises sending a read request for a plurality of locations in the memory to read the plurality of locations in parallel based on an upper bound for reading the memory. The upper bound for a number of locations is based on a group of constraints for the memory. The method receives a summed value of a plurality of memory values in the plurality of locations in the memory.
Claims19
A method for accessing a memory for a data processing system, the method comprising:
- designating, by a controller, a plurality of locations in the memory as a base portion of locations;
- sending, by a controller, a read request to read the plurality of locations in parallel within an upper bound that indicates a maximum number of locations that may be read in parallel from the memory according to a group of constraints for the memory;
- receiving from the memory, by the controller, a summed value of respective binary values in the plurality of locations in the memory according to a summation function in the memory;
- if the summed value received from the memory is zero, cease using those locations to read the memory;
- if the summed value received from the memory is non-zero and more than one location is present, dividing, by the controller, the base portion into a plurality of smaller portions of locations;
- designating, by the controller, each smaller portion of locations as new respective base portions;
- sending, by the controller, read requests for the locations in each new base portion;
- and
- iteratively repeating, by the controller, the steps of dividing base portions with non-zero summed values and more than one location into smaller respective base portions and sending read requests for locations in the new base portions, until there are no unread base portions in the memory with non-zero sums and more than one location.
A memory system comprising:
- a memory comprising a summation function that allows for parallel input of addresses for locations in the memory;
- and
- a controller configured to:
- designate a plurality of locations in the memory as a base portion of locations;
- send a read request to read the plurality of locations in parallel within an upper bound that indicates a maximum number of locations that may be read in parallel from the memory according to a group of constraints for the memory;
- receive a summed value of respective binary memory values in the plurality of locations in the memory according to the summation function;
- if the summed value received from the memory is zero, cease using those locations to read the memory;
- if the summed value received from the memory is non-zero and more than one location is present, divide the base portion into a plurality of smaller portions of locations;
- designating each smaller portion of locations as new respective base portions;
- sending read requests for the locations in each new base portion;
- and
- iteratively repeat the steps of dividing base portions with non-zero summed values and more than one location into smaller respective base portions and sending read requests for locations in the new base portions, until there are no unread base portions in the memory with non-zero sums and more than one location.
A method for accessing a memory for a data processing system, the method comprising:
- selecting, by a controller, a plurality of memory locations according to a sampling pattern, wherein the sampling patterns occurs within an upper bound indicating a maximum number of locations that may be read in parallel from the memory;
- designating, by the controller, the plurality of locations in the memory as a base portion of locations;
- sending, by the controller, a read request to the memory to read the plurality of locations in parallel according to the sampling pattern;
- receiving from the memory, by the controller, a summed value of respective binary values in the plurality of locations in the memory according to a summation function in the memory;
- if the summed value received from the memory is zero, cease using those locations to read the memory;
- if the summed value received from the memory is non-zero and more than one location is present, dividing, by the controller, the base portion into a plurality of smaller portions of locations;
- designating, by the controller, each smaller portion of locations as new respective base portions;
- sending, by the controller, read requests for the locations in each new base portion;
- and
- iteratively repeating, by the controller, the steps of dividing base portions with non-zero summed values and more than one location into smaller respective base portions and sending read requests for locations in the new base portions, until there are no unread base portions in the memory with non-zero sums and more than one location;
- and
- reconstructing, by the controller, memory values in the memory according to the summed values through a simplex or interior-point method of linear programming.
Dependencies are inferred from the claim text.