版权归原作者所有,如有侵权,请联系我们

[科普中国]-扩充直接地址

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

简介

在计算机中,直接地址是地址空间中的物理地址。扩充直接地址是指扩充程序中直接地址项的个数或扩充物理地址空间(即物理地址扩展),因为现在作业要求的地址空间大小,很多都超过内存空间的大小,从物理上增加内存容量,往往受到机器自身的限制,同时也增加系统成本,有很多限制。而增加一个程序直接地址项的个数能从一定程度能提高程序运行速度,从而提高系统系统效率。例如,操作系统文件目录是多级目录,增加第一级索引表中索引点的直接地址项个数,会在一定程度上加快文件检索速度。

直接寻址直接寻址是一种基本的寻址方法,其特点是:在指令格式地址字段中直接指出操作数在内存的地址1。由于操作数的地址直接给出而不需要经过某种变换,所以称这种寻址方式为直接寻址方式。在指令中直接给出参与运算的操作数及运算结果所存放的主存地址,即在指令中直接给出有效地址。直接寻址对象为:1.内部数据存储器,在指令中以直接地址表示; 2.特殊功能寄存器SFR,在指令中用寄存器名称表示。

以寄存器中的内容为地址,该地址的内容为操作数的寻址方式称为寄存器间接寻址。能够进行寄存器间接寻址的寄存器有:R0、R1、DPTR,用前面加@表示,如@R0、@R1、@DPTR。寄存器间接寻址的存储空间包括内部数据存储器和外部数据存储器。由于内部数据存储器共有128字节,因此用一字节的R0和R1可间接寻址整个空间。而外部数据存储器最大可达64K,仅R0或R1无法寻址整个空间,为此需要由P2端口提供外部RAM高8位地址,由R0或R1提供低8位地址,由此共同寻址64K字节范围。也可用16位的DPTR寄存器间接寻址64K字节存储空间。

有关术语地址空间我们把程序中有符号名组成的空间称为地址空间。源程序经过汇编或编译后再经过链接编辑程序加工形成的程序的装配模块,及转换为相对地址编址的模块,它是以0为基址顺序进行编址的。相对地址也称为逻辑地址或虚拟地址,把程序中由相对地址组成的空间叫做逻辑地址空间。相对地址空间通过地址再定位机构转换到绝对地址空间,绝对地址空间也叫物理地址空间。

物理地址存储器存储单元的真实地址叫物理地址,又叫绝对地址。物理地址是可识别的,实际存在的。内存储器的存储单元按它的排列顺序规定一个编号,这个编号就是该存储单元的物理地址。中央处理机按这个地址号即可访问该存储单元。

物理地址的编号一般都是按二进制数字从小到大编排的。例如,一个4K字节的内存储器,各个字节单元的地址编号是:000000000000~111111111111 (212=4 096)当内存储器容量很大时,地址编号就很大。在计算机指令中一般给出相对地址 (又叫逻辑地址),经寻址变换后,得到物理地址。参见“逻辑地址”及“寻址方式”。

物理地址通常是指内存储器中的地址编号。计算机的外存储器物理地址如磁盘机的地址是以圆柱号、磁道号、扇区号来划分的。

物理地址扩展物理地址扩展(Physical Address Extension,缩写为PAE),又释实体位置延伸,是x86处理器的一个功能,让中央处理器在32位操作系统下存取超过4GB的实体内存。

PAE为IntelPentium Pro及以上级别的CPU(包括除了总线频率为400MHz的这个版本的奔腾M之外的所有新型号奔腾系列处理器)所支持,其他兼容的处理器,如速龙(Athlon)和AMD的较新型号的CPU也支持PAE。

x86的处理器增加了额外的地址线以选择那些增加了的内存,所以实体内存的大小从32位增加到了36位。最大的实体内存由4GB增加到了64GB。

32位的虚拟地址(线性地址)则没有变,所以一般的应用软件可以继续使用地址为32位的指令;如果用平面内存模式的话,这些软件的地址空间也被限制为4GB。操作系统用页表将这4GB的地址空间映射到大小为64GB的实体内存,而这个映射对各个进程一般是不一样的。这样一来,即使不能为单单一个程序所用,那些增加了的物理内存仍然可以发挥作用。

对于需要超过4GB内存的应用软件来说,除了一般的PAE支持,还需要操作系统提供另外的特殊的技术。在Windows上,这种技术叫做Address Windowing Extensions(AWE)。而在类Unix的系统上则有多种技术在使用,例如使用mmap()按需要把一部分文件映射到地址空间;但是,这还没有成为一个标准。

间接地址一个简单的计算机指令包括有一个操作码和指 向存储器中某一地点的地址。该地点所存的内容可 以是操作所需要的数据,也可以仍是一个指向存储 器另一地点的地址。在后一情况,指令中的地址就叫做间接地址,因为它指出的不是数据的所在位置,而是间接地指出数据的地址。

在某些计算机中,指令本身就有一个控制段(每 个地址1位就足够了),用它来规定相应的地址是否 间接地址。在另一些计算机中,则在数据字中设一标 记位,用它来判断该字是数据还是指向数据的地址。

有些系统允许多级间址。从存储字中找 到的地址仍可能是指向另一个存储地点的间接地址,等等。允许多级间址的计算机通常都具有超时中 断设施,当间址循环无休止地进行时能引起中断。

间接地址有多种用途。当某些系统要求较长的 地址而在指令中不能方便或合理地提供时,用间接 地址是十分有效的。很多小计算机采用这种方法,但 一些较大的计算机也采用这种方法。大型宝来系统 中的描述字就是间接地址,其中地址字包含了数组 的起始地址和尺寸,以便能自动检验是否超过了地 址边界。Multics系统(多路信息计算系统,一种操作系统)用了两个字的间接地址为它的巨大的虚 拟存储器编址。