了解单词对齐

了解单词对齐,第1张

了解单词对齐

硬件很复杂; 这是一个简化的解释。

典型的现代计算机可能具有32位数据总线。这意味着,CPU需要进行的任何取回 *** 作都会取回特定存储器地址的所有32位。由于数据总线无法获取小于32位的任何内容,因此地址总线上甚至不使用最低的两个地址位,因此,就好像RAM被组织为32位
而不是8位 字节 的序列一样。

当CPU对单个字节进行访存时,总线上的读取周期将访存32位,然后CPU将丢弃其中的24位,将剩余的8位加载到任何寄存器中。如果CPU要获取
在32位边界上对齐的32位值,则有几种常规选择:

  • 在总线上执行两个单独的读取周期,以加载数据字的相应部分并重新组装它们
  • 通过丢弃地址的低两位来读取该地址处的32位字
  • 读取一些意外的组合成32位字的字节组合,可能不是您想要的字节组合
  • 抛出异常

我使用过的各种CPU都采用了所有这四个路径。通常,为了获得最大的兼容性,将所有n位读取对齐到n位边界是最安全的。但是,如果确定您的软件可以在某些特定的CPU系列上以已知的未对齐读取行为运行,那么您当然可以采用快捷方式。而且,即使可能进行未对齐的读取(例如在x86系列CPU上),读取速度也会变慢。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5623119.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存