【发布时间】: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