南风烟雨五庄观 发表于 2013-8-11 23:47:58

我对于"内存对齐"实质的理解

本帖最后由 南风烟雨五庄观 于 2013-8-12 00:09 编辑

其实这个问题已经有前辈们解答过了,就是【4绿竹漪漪4】发的帖子《为什么要数据对齐!》,其中版主【仰望天上的光】已经做了较为详细的解答。但遗憾的是,由于叙述不够简洁和准确的原因,有些话新手读起来非常头痛,很难领悟。为了使得像我一样的新人少走弯路,我特意画了一张图来说明,希望能帮助到喜欢打破沙锅问到底的鱼油们:ton:



其要点就是
--1、32位系统的地址总线的最低两位其实没有连到CPU,因此传到CPU中的有效数字只有高30位,最低两位始终默认为00。相当于CPU接受的地址始终是4的倍数。
--2、为了让CPU保持高效运作,必须充分利用内存传给CPU是按"一次传输4字节数据"的特性。这就要求我们要尽量避免由于不对齐而出现的某个数据的传输不但需要一次以上的传输,还必须重新组合计算高位和低位,浪费了CPU效率。

18555587 发表于 2013-8-12 05:10:39

不知道会这个之后做什么用

南风烟雨五庄观 发表于 2013-8-12 07:41:44

18555587 发表于 2013-8-12 05:10 static/image/common/back.gif
不知道会这个之后做什么用

帮助理解高层中的现象是底层世界中怎么样一种情形的映射,可以更好理解CPU工作的特点,而已。亲爱的朋友,你觉得又需要做什么用呢?:big
对于自学而言,知其然更需知其所以然,否则还是不能真正转化为自己的知识。

牡丹花下死做鬼 发表于 2013-8-12 07:55:32

不错不错 {:5_106:}继续努力啊 (*^__^*) 嘻嘻……

疯行万里天下 发表于 2013-8-12 08:20:52

感谢楼主{:5_102:}

18555587 发表于 2013-8-12 08:53:46

南风烟雨五庄观 发表于 2013-8-12 07:41 static/image/common/back.gif
帮助理解高层中的现象是底层世界中怎么样一种情形的映射,可以更好理解CPU工作的特点,而已。亲爱的朋友, ...

虽然不太懂,有心情的时候再研究研究,但是表示支持!

myq549277513 发表于 2014-6-11 07:05:03

如果写的更详细就好了~

zhudesheng 发表于 2020-8-4 08:59:38

我终于裂开了
页: [1]
查看完整版本: 我对于"内存对齐"实质的理解