Jump to content

Memory access pattern

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Fmadd (talk | contribs) at 19:54, 11 June 2016 (lets see how this goes. Not sure this deserves a whole article. glossary def seemed better, but where?). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) โ† Previous revision | Latest revision (diff) | Newer revision โ†’ (diff)

In computing, a memory access pattern is the pattern over time with which a system accesses memory.

A memory access patterns differ in the level of locality of reference and drastically affect cache performance.

At one extreme is the sequential memory access pattern , where data is read , processed, and written in a straightforward incremental manner. Strided or simple 2D access patterns are similarly easy to predict, and are found in implementations of linear algebra and image processing. Loop tiling is an effective approach.

In 3D rendering, access patterns for texture mapping and rasterization of small primitives (with arbitrary distortions of complex surfaces) are often far from linear, but still exhibit spatial locality . This can be turned into good memory locality via some combination of morton order and tiling for texture maps and frame buffer data, or by sorting primitives via tile based deferred rendering.

Data structures which rely heavily on pointer chasing can often produce poor locality of reference, although sorting can sometimes help.

At the opposite extreme is a truly random memory access pattern.