1

PDP 11 被称为字可寻址,这意味着每次数据访问都返回 16 位数据。假设我对内存中的地址 100 发出读取请求。它会从地址 100 返回 8 位(LSB),从地址 101 返回 8 位(MSB)。而且由于 PDP 11 有 16 个地址位,为什么它只有 32K 内存位置而不是 64K 内存位置?是不是因为它是字可寻址的(每次访问 2 个字节)

TIA。

4

3 回答 3

2

以下是有关硬件内存寻址的一些附加信息,例如 11/70 和 11/84,它们允许任何 PDP-11 型号中可用的最大物理内存。(请原谅不一致的格式。我必须在 Stackoverflow 对 Markdown 语法的限制范围内工作。)

PDP-11/70 使用 22 位寻址物理内存。这表示总共 2 22(超过 400 万)字节位置。

在 22 位地址可能的超过 400 万字节位置中,前 256K 用于引用 UNIBUS 而不是物理内存。因此,最大主内存为 2 22 - 2 18,或总共 3,932,160 字节。

PDP-11/70 使用三个独立的地址空间。主存储器使用 22 位地址,UNIBUS 使用 18 位地址,计算机程序使用 16 位虚拟地址。信息总结如下:

                                   Bytes

16 bits  program virtual space     2^16 = 64K
18 bits  UNIBUS space              2^18 = 256K
22 bits  physical memory space     4 million

(取自http://bitsavers.trailing-edge.com/pdf/dec/pdp11/handbooks/PDP11_Handbook1979.pdf

就程序虚拟地址空间而言,一些 PDP-11 型号,例如 PDP-11/45、11/70 和 11/84,硬件支持两个独立的 16 位虚拟地址空间,一个用于程序指令,一个用于数据。这有效地使这些机器的虚拟地址空间增加了一倍。在我对 PDP-11 系统进行编程时,通常将这两个地址空间称为I-SpaceD-Space

于 2017-08-30T19:37:25.210 回答
0

值得称赞的是这个。

pdp11 是一个基于字节的机器,一个字的定义是 16 位(对于一个八进制机器来说非常奇怪)。

快速浏览 DEC 文档

16 位字(两个 8 位字节)直接寻址 32K 字或 64K 字节 (K = 1024)

以上来自 PDP11/34 文档,但既然您在谈论 32K,这应该就足够了(不必深入研究每个 pdp11/lsi11 文档)。

在模拟器上工作时,请记住有 18 位地址/总线,这对于如此多以八进制为导向的时间段和/或公司/产品来说更有意义。

啊,是的,扩展寻址 18 位。

该文档继续使用单词作为内存单位,了解这是一个约定,了解您的历史,今天我们使用字节,但实际上如果您在内存世界中,他们使用位他们不使用字节来定义一个大小记忆。可能很好,必须查看数据总线是 16 位并且地址是基于字的,这并不意味着处理器可以做什么,您正在阅读的处理器可能有 32 或 64位宽数据总线是否意味着它只能是字或双字(取决于架构及其常用术语的双字或四字)可寻址?没有。

于 2017-05-22T13:57:36.110 回答
0

PDP-11 是一个字节寻址机器,但它有一个 16 位数据总线。如果您向地址 100 发出一个字读取,它将返回 100 和 101 处的两个字节。PDP-11 是小端,因此 100 处的字节是低字节。

PDP-11 具有操作字节和字的指令,字节读取只会将地址 100 处的字节读取到指定寄存器的低字节。我认为有特殊的指令可以交换寄存器的低字节和高字节。

如果您向奇数地址发出一个字读取,例如mov 101,r1我认为它会产生一个奇数地址异常。这可能对所有模型都不正确或不正确,但我清楚地记得不得不向大约在 1989 年左右在 PDP-11 系统上工作的人解释什么是奇怪的地址陷阱。

于 2017-05-22T13:54:59.057 回答