我正在处理以下问题:
单地址计算机是其指令最多可以包含一个操作数地址的计算机。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 字)的用途有点困惑。