PDP 11 中内存位置中存储的位数



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

蒂亚。

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

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

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

PDP-11/70 使用三个单独的地址空间。主要 内存使用 22 BLT 地址,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

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

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

如果您发出一个单词,则读到一个奇怪的地址,例如mov 101,r1我认为它生成了一个奇怪的地址异常。对于所有模型来说,这可能是不正确的或不正确的,但我清楚地记得,在1989年左右,我不得不向一个在PDP-11系统上工作的人解释什么是奇怪的地址陷阱。

功劳归于fuz。

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

快速浏览 DEC 文档

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

以上来自 PDP11/34 文档,但由于您谈论的是 32K,这应该就足够了(不必挖掘每个 pdp11/lsi11 文档)。

在模拟器上工作时,请记住有 18 位地址/总线,这对于这样一个高度面向八进制的时间段和/或公司/产品更有意义。

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

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

相关内容

  • 没有找到相关文章

最新更新