Jump to content

Interleaving (data)

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Guy Harris (talk | contribs) at 16:43, 3 October 2018 (Undid revision 862286861 by 183.83.165.202 (talk) - rvv). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In computing, interleaving of data refers to the interspersing of fields or channels of different meaning sequentially in memory, in processor registers, or in file formats. For example, for coordinate data, x0 y0 z0 w0 x1 y1 z1 w1 x2 y2 z2 w2 is interleaved whilst x0 x1 x2 x3 y0 y1 y2 y3 z0 z1 z2 z3 w0 w1 w2 w3 is not.

A processor may support permute instructions, or strided load and store instructions, for moving between interleaved and non-interleaved representations.

Interleaving has performance implications for cache coherency, ease of leveraging SIMD hardware, and leveraging a computer's addressing modes. (e.g. - interleaved data may require one address to be calculated, from which individual fields may then be accessed via immediate offsets; conversely if only one field is required by index, de-interleaved data may leverage scaled index addressing).

See also

References