Aligned and unaligned memory accesses?

前端 未结 6 1655
长情又很酷
长情又很酷 2020-12-13 20:33

What is the difference between aligned and unaligned memory access?

I work on an TMS320C64x DSP, and I want to use the intrinsic functions (C functions for assembly

6条回答
  •  伪装坚强ぢ
    2020-12-13 21:05

    Many computer architectures store memory in "words" of several bytes each. For example, the Intel 32-bit architecture stores words of 32 bits, each of 4 bytes. Memory is addressed at the single byte level, however; therefore an address can be "aligned", meaning it starts at a word boundary, or "unaligned", meaning it doesn't.

    On certain architectures certain memory operations may be slower or even completely not allowed on unaligned addresses.

    So, if you know your addresses are aligned on the right addresses, you can use _amem2(), for speed. Otherwise, you should use _mem2().

提交回复
热议问题