为什么内存不对齐需要两次访问内存?

我们都知道内存对齐可以提高效率,具体来说就是减少内存访问次数。许多计算机系统对基本数据类型合法地址做出了一些限制,要求某种类型对象的地址必须是某个K的倍数。我们将通过图来说明为什么对齐不内存需要两次访问内存:

先来看下图:我们将数据读入到寄存器中,并且假设我们的处理器以四个字节为偏移量访问内存(1-4)四个字节,

为什么内存不对齐需要两次访问内存?_第1张图片

显然,我们需要将0-3和4-5都读入到内存中,然后拼成我们想要的四个字节,故需要两次访问,看下图:

为什么内存不对齐需要两次访问内存?_第2张图片

上图通过shift拼出我们需要的字节。

参考文章:http://www.ibm.com/developerworks/library/pa-dalign/

你可能感兴趣的:(为什么内存不对齐需要两次访问内存?)