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
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().