admin管理员组

文章数量:1516870

目录


内存对齐的原因

1.平台原因(移植原因):

不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。
2.性能原因:

内存对齐最最底层的原因是内存的IO是以64bit为单位进行的,因此内存对齐为了高效的内存IO, 大部分都是更为高效的高速缓存IO。

数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因在于,为了访问未对齐的内存,处理器需要作两次内存访问;而对齐的内存访问仅需要一次访问。你int如果从0地址开始就一次读取就够了,如果你从1地址开始,那么要读2次。

内存对齐的原理

前面我们说过内存是由chip构成。每个chip内部,是由8个bank组成的。其构造如下图:

图2.内存颗粒物理结构

在每个bank内部,就是电容的行列矩阵结构了。(注意,二维矩阵中的一个元素一般存储着8个bit,也就是说包含了8个小电容)。

图3.bank物理结构

8个同位置的元素,一起组成在内存中连续的64个bit。如下图

本文标签: 内存对齐编程地址开始