【问题标题】:How many number of bits stored in a memory location in PDP 11PDP 11中一个内存位置存储了多少位
【发布时间】:2017-05-22 10:26:19
【问题描述】:

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

TIA。

【问题讨论】:

  • 我怀疑这里的很多人都知道 PDP-11 是什么 :( 大多数人都死了,(机器和用户)。
  • 您可能想在这里问这个问题(并且很可能会得到一个称职的答案):retrocomputing.stackexchange.com
  • PDP-11 实际上是一个字节机器。两个字节称为一个字。按照惯例,PDP-11 中的内存量以字数计算,因此具有 32 kB 内存的 PDP-11 有 64 kB 内存。
  • @fuz 我不认为这就是他的意思。我猜他的意思是使用 16 位(字寻址),pdp-11 本来可以寻址 64k 16 位字,而不是 128kB
  • @Tommylee2k 好吧,PDP-11 是一个字节机器,每个地址指的是一个字节的存储空间。因此,16 个地址行只能引用 64 kB。

标签: assembly memory-address addressing pdp-11


【解决方案1】:

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

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

在 22 位地址可能的超过 400 万个字节位置中, 前 256K 用于引用 UNIBUS 而不是物理 记忆。因此,最大主内存为 222 - 218,即总共 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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • www.dbit.com/pub/pdp11/faq/faq.pages/PDPinst.html google pdp11 奇数地址陷阱,第一击,如你所说等等。 SWAB(交换字节,也显示在那里,这也很好)。
    【解决方案3】:

    这要归功于 fuz。

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

    快速浏览 DEC 文档

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-29
      • 2020-02-15
      • 1970-01-01
      • 2010-12-26
      • 1970-01-01
      • 2017-04-18
      • 2013-12-14
      相关资源
      最近更新 更多