Interleaving (data)

{{short description|Ordering fields of data sequentially}}

{{unreferenced|date=September 2016}}

{{Other uses|Interleaving (disambiguation){{!}}Interleaving}}

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

:x0 x1 x2 x3 y0 y1 y2 y3 z0 z1 z2 z3 w0 w1 w2 w3

the former is interleaved while the latter 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

{{reflist}}

Category:Computer memory

Category:Computer data storage

{{compu-storage-stub}}