存储在PDP 11中的存储器位置中的位数

时间:2017-05-22 10:26:20

标签: assembly memory-address addressing pdp-11

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

TIA。

3 个答案:

答案 0 :(得分: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-Space D-Space

答案 1 :(得分:0)

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

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

如果你发了一个单词读到奇数地址,例如mov 101,r1我认为它产生了一个奇怪的地址异常。对于所有型号来说,这可能是不正确的或不正确的,但我清楚地记得在1989年左右,那些正在研究PDP-11系统的人解释了一个奇怪的地址陷阱。

答案 2 :(得分:0)

归功于这一点。

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

快速浏览一下DEC文件

  

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

以上来自PDP11 / 34文件,但由于你在谈论32K这应该足够了(不必深入研究每个pdp11 / lsi11文件)。

在模拟器上工作时,记住存在18位地址/总线,这对于如此重要​​的八进制时间段和/或公司/产品更有意义。

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

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