1

我正在处理以下问题:

单地址计算机是其指令最多可以包含一个操作数地址的计算机。MARIE 就是这种计算机的一个例子。通常,每条指令都作为单个字存储在内存中。假设以下机器细节。

(i) 一个词包含 n 位,并且 k 位 (k < n) 用于对每个操作码进行编码。其余位用于指定内存地址。

(ii) ISA 中有 100 个不同的操作码。

(iii) 最大的程序需要 128M 字(128x2^20)的内存才能运行。

(a) k 的最小值是多少?n 所需的最小值是多少?保持k的最小值,可以使用的最大操作码数是多少?

(b) 如果每个字的大小必须是整数字节,那么所需的 n 的最小值是多少?那么这台计算机可以使用的最大内存是多少呢?

到目前为止,我已经想出了一个,但我对我的答案有点确定:a)k 的最小数量是 7,因为要拥有 100 个操作码,你需要在操作码字段中使用 7 位。n 的最小数量为 9(我不确定这是 9 还是 8,因为问题说“保持 k 的最小值,k 是操作码位)。我也不确定这个问题是否隐含地说word 有 16 位或更多。

对于 b 我对问题的性质感到困惑,是说新词将有 8 位还是这个词是由位组成的?例如:1 个字(16 位)是 2 个整数字节。此外,在尝试解决此问题时,我对最大程序大小(128M 字)的用途有点困惑。

4

1 回答 1

0

你得到了k=7正确的部分。这当然为操作码提供了空间2^7=128。至于n,您需要考虑您必须处理多少内存。这是以128x2^20单词的形式给出的,即2^27,因此您至少需要n=27. 那么总指令大小是34,它不是 8 的倍数。如果将它向上取整,就40可以得到n=33最大可寻址内存2^33=8G words

于 2014-11-30T00:23:05.947 回答