Fetching non-zero data
AssigneeMicrosoft Technology Licensing, LLC
InventorsKarthikeyan Avudaiyappan, Jeffrey A Andrews
Life of this patent
Estimating the term…
Abstract
Embodiments of the present disclosure include techniques storing and retrieving data. In one embodiment, sub-matrices of data are stored as row slices and column slices. A fetch circuit determines if particular slices of one sub-matrix, when combined with corresponding slices of another sub-matrix, produce a zero result and need not be retrieved. In another embodiment, the present disclosure includes a memory circuit comprising memory banks and sub-banks. The sub-banks store slices of sub-matrices. A request moves between serially configured memory banks and slices in different sub-banks may be retrieved at the same time.
Claims20
A circuit for storing and retrieving data comprising:
- at least one memory circuit storing a first sub-matrix of data as a plurality of row slices comprising a plurality of data values and storing a second sub-matrix of data as a plurality of column slices comprising a plurality of data values;
- and
- a fetch circuit,
- wherein the fetch circuit determines row slices of the first sub-matrix of data that produce a non-zero result when multiplied by a plurality of corresponding column slices of the second sub-matrix of data, and the determined row slices are retrieved from the at least one memory circuit.
A method of storing and retrieving data comprising:
- storing a first sub-matrix of data in at least one memory as a plurality of row slices comprising a plurality of data values;
- storing a second sub-matrix of data in the at least one memory as a plurality of column slices comprising a plurality of data values;
- determining row slices of the first sub-matrix of data that produce a non-zero result when multiplied by a plurality of corresponding column slices of the second sub-matrix of data;
- and
- retrieving the determined row slices from the at least one memory.
A non-transitory machine-readable medium storing a program executable by a computer for storing and retrieving data, the program comprising sets of instructions for:
- storing a first sub-matrix of data in at least one memory as a plurality of row slices comprising a plurality of data values;
- storing a second sub-matrix of data in the at least one memory as a plurality of column slices comprising a plurality of data values;
- determining row slices of the first sub-matrix of data that produce a non-zero result when multiplied by a plurality of corresponding column slices of the second sub-matrix of data;
- and
- retrieving the determined row slices from the at least one memory.
Dependencies are inferred from the claim text.