首页 > 解决方案 > Donald Knuth 的 MIX 计算机

问题描述

在 MIX 计算机中,一个字由五个字节和一个符号组成。符号在记忆中是如何表示的?它是另一个字节,所以每个字真的是六个字节吗?

谢谢。

标签: algorithmknuth

解决方案


你的问题不是很清楚。架构规范没有指定实际的实现。它只指定可观察的行为。

重要的是,在 MIX 中,对内存的访问与单词对齐。在 x86 等其他一些体系结构中,您可以从任意地址读取一个单词,即使是非字对齐的,但在 MIX 中却不是。这意味着除了作为相应单词的符号之外,您不能以任何其他方式访问“符号”。这反过来意味着,如果有人想在硬件中实现 MIX,每个字只使用 31 位就足够了,即 1 位用于符号 + 5 个 6 位的“字节”。

如果您想在使用 8 位乘以“字节”的标准现代硬件上模拟 MIX,您有以下几种选择:

  • 对整个字使用 32 位值,并通过一些位掩码操作模拟其内部结构
  • 使用 6 个 8 位字节:每个 MIX 6 位字节一个 8 位字节,另外一个用于符号。

显然,还有更多人为的选择。


推荐阅读