为啥存在指令/数据对齐?
Posted
技术标签:
【中文标题】为啥存在指令/数据对齐?【英文标题】:Why does instruction/data alignment exist?为什么存在指令/数据对齐? 【发布时间】:2012-11-15 15:28:51 【问题描述】:我经常看到有关架构指令和数据必须与字、半字等边界对齐的信息。虽然遵循这些规则并不难,但我只是想知道是否有人能说出为什么(通常)存在这个要求?
编辑:基本上在这里找到了我的答案:why is data structure alignment important for performance?
【问题讨论】:
部分是为了保持硬件简单。 【参考方案1】:这是因为高效数据总线设计问题。通过对齐的 memoey 地址,数据可以有效地适应数据总线。
对于 32 位字加载,如果是对齐的,所有连接 CPU 和 DRAM MEMORY 的 32 位数据总线。否则,计算机必须使用一次数据总线的较低部分,然后再使用数据总线的较高部分。
而且,目前的缓存架构设计也利用了对齐约束
【讨论】:
以上是关于为啥存在指令/数据对齐?的主要内容,如果未能解决你的问题,请参考以下文章
我安装了oracle客户端 ,为啥在dos下不能imp/exp 指令