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。如下图
版权声明:本文标题:内存如何聪明地排列?了解内存对齐的关键概念。 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.betaflare.com/web/1772346182a3273810.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论