4.2.2 Granularity

On the Alpha architecture, memory is byte-addressable and the smallest unit in which memory may be accessed (the granularity) is a byte. However, the original Alpha architecture, and thus many existing Alpha processors, provided only longword granularity. Moreover, even for longword-sized data it is often expedient for execution efficiency to access memory in quadword units. In the presence of multiple threads of execution (whether on multiple processors or just one processor), allocation of more than one data element within a single quadword can lead to more complicated access sequences (for example, using LDx_L/STx_C) and/or latent and hard-to-diagnose bugs, because of nonobvious and implicit data sharing.

Therefore, it is generally recommended that independent variables (that is, variables not combined in a larger aggregate) be allocated on quadword boundaries.