体系结构课件chapter22章节

上传人:E**** 文档编号:90648873 上传时间:2019-06-14 格式:PPT 页数:27 大小:1.41MB
返回 下载 相关 举报
体系结构课件chapter22章节_第1页
第1页 / 共27页
体系结构课件chapter22章节_第2页
第2页 / 共27页
体系结构课件chapter22章节_第3页
第3页 / 共27页
体系结构课件chapter22章节_第4页
第4页 / 共27页
体系结构课件chapter22章节_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《体系结构课件chapter22章节》由会员分享,可在线阅读,更多相关《体系结构课件chapter22章节(27页珍藏版)》请在金锄头文库上搜索。

1、1,2-2 寻址方式,寻址方式:是指令按什么方式寻找(访问)到所需的操作数或信息的。 1 寻址方式分析 2 寻址方式在指令中的指明 3 程序在主存中的定位技术 4 物理主存中信息的存储分布,2,1 寻址方式分析,大多数计算机都将主存、通用寄存器、堆栈分类编址,因此就有分别面向寄存器、堆栈和主存的寻址方式。 面向主存:主要访问内存,少量访问寄存器 面向通用寄存器:多数在寄存器,少量在内存 面向堆栈:主要在堆栈,可减轻编译负担,3,寻址方式(又称编址方式)指的是确定本条指令的操作数或操作数地址,或确定下一条要执行指令的指令地址的方法。 不同的计算机系统,使用数目和功能不同的寻址方式,其实现的复杂程

2、度和运行性能各不相同。有的计算机寻址方式较少,而有些计算机采用多种寻址方式。通常需要在指令中为每一个操作数专设一个地址字段,用来表示数据的来源或去向的地址。在指令中给出的操作数的地址被称为形式地址,使用形式地址信息并按一定的规则计算出来的一个数值才是数据(或指令)的实际地址。 可能存放操作数的存储结构: CPU中的寄存器(编号) 主存储器 堆栈 外存储器 外设端口(接口中CPU可直接访问的寄存器),寻址方式的种类(选讲介绍),4,操作数出现在指令中或紧跟指令之后。,Num 即为操作数的值。,适用于操作数固定的情况,提高了指令的执行速度,当该立即数的值限定为较小值(占用位数少)时,可在第一个指令

3、字中直接给出(定长指令字),否则可在第二个指令字中给出(变长指令字)。,立即数寻址,5,(1)寄存器直接寻址方式:操作数在指定寄存器中,指令中给出寄存器号。,直接寻址,例:RegNo.=5,使用5# 累加器,此时5# 累加器中的内容为7,可记为(R5)=7,对寄存器寻址方式,操作数就是这里的数值7。,6,(2)存储器直接寻址方式:指令中给出存放操作数的主存单元地址。,则 Addr 为操作数在存储器中的地址。 或转移指令等用到的指令地址。,例:Addr = 5718H ,这里的 H 表示 5718 是 16 进制的值, 可能用作下一条指令的地址; 也可能用作操作数的地址,若 5718H= 3,即

4、内存储器 5718 单元中的内容为 3, 则操作数就是这里的 3 。,7,(1)寄存器间址方式:操作数在主存中,在指令中给出存放操作数地址的寄存器号。,间接寻址,例: RegNo.=5,使用5# 累加器,此时5# 累加器中的内容为7,可记为(R5)=7,对寄存器间接寻址,从内存7# 单元读出来的数才是操作数.,8,(2)存储器间址方式:指令的地址码字段给出的内容既不是操作数,也不是操作数的地址,而是操作数(或指令)地址的地址。,多一次读内存储器的操作。 指令中的 Addr 可以用其他寻址方式给出,例如变址寻址,这就成为变址寻址与间接寻址的复合寻址方式。,9,操作数的地址由指定的变址寄存器(由R

5、eg指定)的内容和指令中的地址码(Disp)相加得到存储操作操作数的主存地址。,变址寻址,例:Disp=18H,Reg=5,(R5)=5700H 则操作数地址 = 5718H,便于对数组元素进行处理,是计算机中常用的一种寻址方式。,10,操作数(或指令)的地址由程序计数器 PC 的内容(即当前执行指令的地址)和指令的地址码(位移量,可正可负)相加得到。得到操作数有效地址,或是程序转移地址。,相对寻址(偏移寻址),例:Disp = 48H (PC) = 5600H 则实际地址 = 5648H,1)主要用于转移指令,对浮动程序很有用。 2)位移量可正可负,通常用补码表示。,11,在计算机中设置一个

6、专用的基址寄存器,通过基址寄存器的内容和指令中的位移量相加得到操作数(或指令)的地址。,基址寻址,例:Disp= 18H,BS= 5700H 则操作数地址=5718H,主要用于为程序或数据分配存储区,对多道程序或浮动程序很有用,解决了程序在存储器中的定位和扩大寻址空间等问题。,12,堆栈是内存储器中一块按 “后进先出” 原则进行读写的存储区,并通过一个专用的寄存器(称为堆栈指针SP)给出堆栈的栈顶(和次栈顶)地址完成数据的读写操作,故不必在指令中用操作数地址字段给出堆栈地址。通常在读写操作的前后伴随有计算机自动(不是用户通过指令)修改 SP 内容的动作,以确保按正确的 “后进先出” 原则读写堆

7、栈区。 例如:(SP)- 1 SP和 AR,即SP的内容减 1 存回 SP,并送内存地址寄存器,接下来才可以把数据写到堆栈中。完成一次读堆栈操作后,要接着执行(SP)+ 1 SP 的一次自动修改 SP 内容的操作。,堆栈寻址,需要注意的是,指令长度可能是一个字,也可能是两个字或多个字,要看操作数地址字段的位数要求,由具体的情况决定。,13,寻址方式使用情况统计结果,例1:在VAX指令集机器上运行gcc、Spice和Tex基准程序,各种寻址方式的分布如下图:,立即值寻址方式和偏移寻址方式的使用频率十分高。,14,各种偏移量字段大小的使用情况,例2:在某R-R机器上运行SPECint92和SPEC

8、fp92进行测试,结果分布如下:,15,各种偏移量字段大小的使用情况(续),程序所使用的偏移量大小分布十分广泛; 较小的偏移量和较大的偏移量均占有相当大的比例; 将偏移量字段的大小设置为1216位。这种长度可以支持上述7599基于偏移寻址方式的数据访问中偏移量大小的表示。 结论:根据寻址方式的频率分布,确定满足大多数要求的寻址范围,与操作码长度组合决定寻址长度。,16,在一种Load/Store型指令集结构上,一些指令使用立即值寻址方式的频率,比较指令和ALU指令使用立即值寻址方式十分频繁。,17,不同立即值大小的使用分布情况,将立即值的大小设置为816位,可以覆盖所有使用立即值寻址方式指令的

9、5080。,18,2 寻址方式在指令中的指明方式,两种: 操作码占用位 DJS200中:操作码中2位表示 地址码设置寻址方式字段 VAX-11的4位 寻址灵活、操作码短,但需专门的寻址方式位字段,19,3 程序在主存中的定位技术,逻辑地址与主存物理地址 逻辑地址:程序员编写程序时使用的地址。 物理地址:程序在主存中的实际地址。 一般来讲,逻辑地址的空间大于物理地址的空间。 如逻辑地址为32位,即232=4GB 物理地址只有256MB 映射实际上是压缩。,20,当程序装入主存时,进行程序的再定位 静态再定位:用软件方法把目标程序的逻辑地址变换成物理地址,而在程序的执行过程中,物理地址不再改变。

10、动态再定位:在执行每条指令时才形成访存物理地址的方法。通过基址寻址。,21,变址寻址:支持向量、数组,实现循环; 基址寻址:支持逻辑地址到物理地址的变换,实现动态再定位; 存储保护:设置多对上、下界寄存器。 整数边界存储 保证访存速度 造成浪费,22,图 2.11 逻辑地址空间到物理地址空间的变换,23,图 2.12 基址寻址,24,在计算机中设置一个专用的基址寄存器,通过基址寄存器的内容和指令中的位移量相加得到操作数(或指令)的地址。,基址寻址,主要用于为程序或数据分配存储区,对多道程序或浮动程序很有用,解决了程序在存储器中的定位和扩大寻址空间等问题。,程序基点(a),逻辑地址,25,4 物理主存中信息的存储分布,一台机器中存放宽度不同的多种信息 如IBM370 主存宽度64位 信息:字节(8位)、半字(双字节)、单字(4字节)、双字(8字节) 按字节编址 不同宽度的信息是按该信息的首字节地址寻址,26,任意存储: 信息跨主字字节边界 有时需要两个存储周期才能访问,27,目标:在一个存储周期访问到任何所需的信息 要求:信息在主存中存放的地址必须是该信息宽度(字节数)的整数倍 问题:造成存储空间的一定浪费,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号