寻址技术
寻找数据及其它信息的地址的技术
寻址技术是指寻找数据及其它信息的地址的技术,它是软件与硬件的一个主要分界面。寻址技术要研究的主要内容包括编址方式、寻址方式和定位方式等。寻址技术研究的对象主要有寄存器、主存储器、堆栈和输入输出设备等,其中以面向主存储器的寻址技术为主要研究对象。
基本介绍
技术,也就是名字系统(Domain Name System,DNS)是传统互联网Internet的核心技术之一。DNS创建了一种用字符(主要是数字、字母)与互联网上的服务器地址(IP地址)相互对应的解析关系,这种对应关系通常称作“域名解析”,可以使得互联网上的资源(站点)更容易记忆和传播。域名(Domain Name)就是互联网上的寻址服务。如新浪网的IP地址是202.108.33.32,而新浪网注册了域名sina.com后,其访问的地址就可以表示为www.sina.com了。
10年前,我们现在所熟知的传统互联网正是由于域名技术的诞生才得到了爆炸式发展:最初,人们是直接采用IP地址来完成网络资源标识和寻址的。但是IP地址一长串的数字,不仅枯燥而且抽象,在记忆上也很不方便。那时的互联网只是专业人士的特有名词。这种情况一直持续到域名系统的诞生,用一个形象的英文符号代替繁琐的IP地址,从而引爆了传统互联网的春天。至今,我们所熟悉的sina、sohu、taobao等等都是通过域名寻址技术,展现在我们每一个人眼前。然而,DNS只能同时为一个域名解析到一个IP地址或URL地址,而且域名的所有者也只能有一个。这样就保证我们每次访问一个网址的时候,只会看到唯一的一个对应的网站。
寻址技术,在计算机体系结构中,设计通用寄存器型指令结构时,用来指明指令中的操作数是一个常数,一个寄存器操作数或者是一个存储器操作数。
分类
寻址可以分为数据寻址和指令寻址。寻找操作数的地址称为数据寻址,数据寻址方式较 多,其最终目的都是寻找所需要的操作数。寻找下一条将要执行的指令地址称为指令寻址, 指令寻址比较简单,它又可以细分为顺序寻址和跳跃寻址。
顺序寻址可通过程序计数器 PC 加 1,自动形成下一条指令的地址;跳跃寻址则需要通过 程序转移类指令实现。
跳跃寻址的转移地址形成方式有三种:直接(绝对)、相对和间接寻址,它与下面介绍 的数据寻址方式中的直接、相对和间接寻址是相同的,只不过寻找到的不是操作数的有效地 址而是转移的有效地址而已。
主要研究内容
寻址技术主要研究内容有编址方式、寻址方式、定位方式。主要研究对象为寄存器、主存储器、堆栈、输入输出设备。
编址方式
一、编址方式指对各种存储设备进行编码的方法。主要内容包括编址单位、零地址空间个数、并行存储器编址技术、输入输出设备的非线性编址技术。
1.常用的编址单位有字编址、字节编址、位编址。字编址方式是最简单、容易实现的一种。每个编址单位与设备的访问单位一致,每取完一条指令,程序计数器加1,每从主存储器中读完一个数据,地址计数器加1。优点是容易实现、使用简单;缺点是没有提供对非数值运算的支持。为了提供对非数值运算的支持,往往使用字节编址或位编址技术,但在这两种编址技术中,不同的信息存储方式有不同主存储器利用率。
2.在计算机中需要进行编址的设备主要有通用寄存器、主存储器、输入输出设备。由于三种设备采用的寻址技术有较大的区别,可以对这三种分别进行编址,即每种设备都有自己的零地址空间(即三个零地址空间)。也可以对通用寄存器独立编址,而对主存储器和输入输出设备统一编址(即两个零地址空间)。也可以对这三种设备进行统一编址,地址最底端分配给通用寄存器,最高端分配给输入输出设备,中间地址分配给主存储器(即一个零地址空间)。另外,堆栈不需要编址,Cache也不需要编址。
3.对I/O设备的接口寄存器通常有三种不同的编址方法:1)给每台设备分配一个地址,这时需要根据指令中的操作码来识别I/O设备上的不同寄存器;2)给每台设备分配两个地址,一个给数据寄存器,一个给状态寄存器或控制寄存器;3)在主存储器和I/O设备统一编制的计算机中,往往根据不同的需要给I/O设备的有关寄存器分配多个地址。
4.一个主存储器通常由多个独立的存储模块(例如用两块256M的内存条组成512M的主存)组成,对于这些模块往往有两种不同的编址方式:1)如果只是简单的扩大主存储器容量,可以使用地址码高位交叉编址方式,地址码高位表示不同的存储体,而低位表示每个存储体内的地址,这种方式要求每个存储模块有独立的地址寄存器、地址译码器、驱动电路、放大电路、读写控制电路、数据寄存器等控制部件,甚至要求存储模块有校验电路、高速缓冲部件;如果要求提高存储其访问速度,则可以使用地址码低位交叉编址方式,低位部分表示不同的存储模块,而高位部分表示不同存储模块的内部地址,不同的存储模块采用流水线方式工作而组成一个并行存储器。
寻址方式
二、寻址方式主要指寻找操作数及数据存放单元的方法。
1.立即数寻址方式中,直接在指令中给出操作数,执行速度快,只能用于元操作数寻址。
2.寄存器寻址。指令在执行过程中所需要的操作数来源于寄存器,运算结果也写回到寄存器。
3.主存储器寻址又分为直接寻址方式、间接寻址方式和变址寻址方式。直接寻址方式指在指令中直接给出参与运算的操作数及运算结果的主存储器地址(有效地址),需要较长的地址码,不利用实现程序循环或数组处理,也不利于操作系统的作业调度;间接寻址方式中在指令中给出操作数的地址的地址,可以两次或更多次访问主存储器以获得操作数;在变址寻址方式中,设置一个或多个变址寄存器(长度由主存储器的寻址空间决定,也可以使用通用寄存器作为变址寄存器)用来存放数组的基地址。
定位方式
三、定位方式指把指令和数据的逻辑地址转换成主存储器的物理地址的方式。
1.直接定位方式中,需要程序员编写程序式或贬抑程序编译源程序时确切知道该程序应该占用的主存物理空间,可以保证主存物理地址不相互重叠。
2.静态定位由专门设计的定位装入程序完成,并要求程序本身可以重定位。静态定位在程序装入主存储器的过程中一次性完成,程序一旦装入主存储器,就不能更改其在主存储器中的物理地址。这种方式中,多个用户不能共享主存储器中的同一段程序代码。
3.在硬件支持下,动态定位在程序实际执行时,才由硬件形成主存物理地址,在程序执行之前,不必把整个程序装入主存,一个程序也可以被分配在多个不连续的主存物理空间,有利于提高准储器的利用率;并且多个程序可以共享主存中的同一段程序代码;动态定位方式支持虚拟存储器
最新修订时间:2022-08-25 12:22
目录
概述
基本介绍
参考资料