【问题标题】:word/byte addressability & non-aligned/aligned access to main memory字/字节可寻址性和对主存储器的非对齐/对齐访问
【发布时间】:2016-04-19 08:58:55
【问题描述】:

我在 Tannebaum 的 MOS 中遇到过两对概念:

  • 字与字节可寻址性
  • 对齐访问与非对齐访问

我真的不明白这两对有什么关系。尤其: 拥有字节可寻址内存(1),不允许非对齐访问(2)有什么意义?在我看来,(2)意味着我们不能利用(1)。

换句话说,会:

  • 允许非对齐访问的字寻址内存

为程序员提供任何可能性

  • 不允许非对齐访问的字寻址内存

不能吗?

谢谢

【问题讨论】:

  • “字节可寻址内存 (1) 的意义何在,不允许非对齐访问” 因为通常您还有加载和存储字节的说明(例如ldrb/strb 在 ARM 上,lb/sb 在 MIPS 上等)。这些对有效地址没有字对齐要求。
  • (2) 可能会简化硬件设计人员。对于程序员来说,这可能比简化更重要。
  • @Michael : 你的意思是有些指令可能有字对齐要求,而另一些则没有?
  • 是的。虽然“加载字”指令可能有字对齐要求,但“加载字节”指令有这个要求是没有意义的。
  • 字节唯一合理的自然对齐方式是字节。或 1,如果您愿意。换句话说,一个字节总是对齐的。

标签: memory assembly memory-management operating-system cpu-architecture


【解决方案1】:

字可寻址性:

在过去,有 12、14 和 36 位的计算机。这些是机器词。你不能在这样的系统中寻址一个字节——它们没有字节。你说话了。

对齐访问:

访问未对齐的数据需要多个周期。处理器必须采取额外的步骤来分段抓取数据。一些处理器(尤其是 RISC)完全禁止非对齐访问以提高性能。

这样的系统仍然是字节可寻址的,因为您可以访问字节操作数的单个字节。

【讨论】:

    猜你喜欢
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 2017-10-02
    • 2010-11-07
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多