Patent ID: 8566382

Claim:
A method for storing data in a block to provide improved accessibility of the stored data in three or more dimensions, the method comprising the steps of: a) loading the data into a plurality of memory macros constituting a row of the block such that sequential values in the data are loaded into sequential memory macros, each memory macro is a predetermined number of bits wide; b) circularly shifting the data loaded in the row a predetermined number of columns relative to a preceding row, each column being one memory macro wide; c) storing the circularly shifted row of data; d) repeating steps (a), (b), and (c) until a predetermined number of rows of data are stored, thereby forming a two dimensional (2D) data block; e) circularly shifting the data stored in the 2D data block a predetermined number of rows relative to a preceding 2D data block; f) storing the circularly shifted 2D data block; and g) repeating steps (a), (b), (c), (d), (e), and (f) until a predetermined number of 2D data blocks are stored, thereby forming a three dimensional (3D) data block.