计算机组成原理-第4章指令系统课件

上传人:txadgkn****dgknqu... 文档编号:241641150 上传时间:2024-07-12 格式:PPT 页数:64 大小:628.72KB
返回 下载 相关 举报
计算机组成原理-第4章指令系统课件_第1页
第1页 / 共64页
计算机组成原理-第4章指令系统课件_第2页
第2页 / 共64页
计算机组成原理-第4章指令系统课件_第3页
第3页 / 共64页
点击查看更多>>
资源描述
第四章第四章 指令系统指令系统1 1 指令系统的发展与性能要求指令系统的发展与性能要求2 2 指令的一般格式指令的一般格式3 3 寻址方式寻址方式4 4 指令格式的优化指令格式的优化第四章 指令系统1 指令系统的发展与性能要求1引言引言指令系统:指令系统:又称指令集(又称指令集(Instruction Set)是是计算机体系结构设计的核心,是计算机软、硬计算机体系结构设计的核心,是计算机软、硬件接口,是用机器语言、汇编语言编写程序的件接口,是用机器语言、汇编语言编写程序的用户所能看到的计算机的基本属性。用户所能看到的计算机的基本属性。指令系统的设计主要是确定它的指令格式、指令系统的设计主要是确定它的指令格式、类型、操作以及对操作数的访问方式。类型、操作以及对操作数的访问方式。引言指令系统:又称指令集(Instruction Set)是24.1 指令系统的发展与性能要求指令系统的发展与性能要求指令指令:即:即机器指令机器指令,要计算机执行某种操作的命令要计算机执行某种操作的命令要计算机执行某种操作的命令要计算机执行某种操作的命令。指令划分指令划分:微指令微指令微指令微指令、机器指令机器指令机器指令机器指令和和宏指令宏指令宏指令宏指令。4.1.1 4.1.1 指令系统的发展指令系统的发展指令系统指令系统:一台计算机中所有指令的集合一台计算机中所有指令的集合一台计算机中所有指令的集合一台计算机中所有指令的集合;是表征;是表征 计算机性能的重要因素计算机性能的重要因素。系列计算机系列计算机:基本指令系统相同、基本体系结构相同基本指令系统相同、基本体系结构相同基本指令系统相同、基本体系结构相同基本指令系统相同、基本体系结构相同 的一系列计算机的一系列计算机的一系列计算机的一系列计算机。简单简单 复杂复杂4.1 指令系统的发展与性能要求指令:即机器指令,要计算机3完备性完备性:直接提供的指令足够使用,不必再用软件来:直接提供的指令足够使用,不必再用软件来 实现。实现。有效性有效性:程序能够高效地运行。表现在占用存储空间:程序能够高效地运行。表现在占用存储空间 小、执行速度快。小、执行速度快。规整性规整性:指令系统的对称性、匀齐性、指令格式和数:指令系统的对称性、匀齐性、指令格式和数 据格式的一致性。据格式的一致性。兼容性兼容性:完全兼容不可能,只能做到:完全兼容不可能,只能做到“向上兼容向上兼容向上兼容向上兼容”(低(低 档机上的软件可以在高档机上运行)。档机上的软件可以在高档机上运行)。4.1.2 4.1.2 对指令系统性能的要求对指令系统性能的要求完备性:直接提供的指令足够使用,不必再用软件来4.1.2 44.1指令系统的发展指令系统的发展系列计算机的基本指令系统相同,基本体系结构相同。能实现向上兼容。随着VLSL技术的发展,多数计算机指令系统多达几百条,称这些计算机为复杂指令系统计算机(CISC)。研制周期长难保证正确性不易调试维护后提出精简指令系统计算机(RISC)。4.1指令系统的发展系列计算机的基本指令系统相同,基本体系结5一种指令集结构中的指令到底要支持哪些类型的操作一种指令集结构中的指令到底要支持哪些类型的操作?这是指令集结构功能设计的基本问题。这是指令集结构功能设计的基本问题。精简指令集计算机(精简指令集计算机(RISCRISC)尽可能地降低指令集结构的复杂性,以达到简尽可能地降低指令集结构的复杂性,以达到简 化实现,提高性能的目的。化实现,提高性能的目的。当今指令集结构功能设计的一个主要趋势。当今指令集结构功能设计的一个主要趋势。复杂指令集计算机(复杂指令集计算机(CISCCISC)强化指令功能,实现软件功能向硬件功能转移。强化指令功能,实现软件功能向硬件功能转移。两种截然不同的方向:两种截然不同的方向:一种指令集结构中的指令到底要支持哪些类型的操作?这是指令集结61复杂指令集计算机(复杂指令集计算机(CISC)CISCCISC (Complex Instruction Set Computer)(Complex Instruction Set Computer)1)CISC1)CISC结构追求的目标:结构追求的目标:强化指令功能,减少程序的指令条数强化指令功能,减少程序的指令条数其中其中Tc:表示时钟周期。表示时钟周期。IN:表示表示CPU执行某一程序中执行某一程序中所包含的指令总数。所包含的指令总数。CPI:表示执行每条指令所需的表示执行每条指令所需的平均时钟周期数。平均时钟周期数。CISCCISC是通过减少是通过减少是通过减少是通过减少I IN N值来减少值来减少值来减少值来减少TcpuTcpu的的的的1复杂指令集计算机(CISC)1)CISC结构追求的目标7 1)指令系统复杂,表现在:指令系统复杂,表现在:指令数多,一般大于指令数多,一般大于100100条条 寻址方式多,一般大于寻址方式多,一般大于4 4种种 指令格式多,一般大于指令格式多,一般大于4 4种种2)CISC2)CISC的主要特点:的主要特点:5)有专用寄存器有专用寄存器4)采用微程序控制采用微程序控制3)各种指令都可访问存储器各种指令都可访问存储器2)绝大多数指令需要多个机器时钟周期方可完成绝大多数指令需要多个机器时钟周期方可完成6)难以用优化编译生成高效的目标代码程序难以用优化编译生成高效的目标代码程序 1)指令系统复杂,表现在:2)CISC的主要特8指令系统庞大指令系统庞大 硬件复杂、庞大硬件复杂、庞大 执行速度低执行速度低 编译程序复杂、长编译程序复杂、长 部分指令使用效率低部分指令使用效率低 3 3)CISCCISC结构存在的缺点:结构存在的缺点:指令系统庞大 硬件复杂、庞大 执行速度低 编译程序复杂、长 9执行频率排序执行频率排序80X86指令指令指令执行频率(执行指令总数)指令执行频率(执行指令总数)1Load222条件分支条件分支203比较比较164Store125加加86与与67减减58寄寄存存器器寄寄存存器器间间数数据移动据移动49调用调用110返回返回1合合 计计96Intel 80X86Intel 80X86最常用的十条指令最常用的十条指令 执行频率排序80X86指令指令执行频率(执行指令总数)1L102 RISC(Reduced Instruction Set Computer)(Reduced Instruction Set Computer)19751975年,年,IBMIBM的的801801小型计算机小型计算机19791979年年,加加州州大大学学提提出出RISCRISC这这一一术术语语,并并研研制制出出RISC-I,RISC-IIRISC-I,RISC-II计算机计算机19811981年,斯坦福大学于推出了年,斯坦福大学于推出了MIPS RISCMIPS RISC计算机计算机19871987年,年,SUNSUN公司的公司的SPARCSPARC系列工作站系列工作站19881988年年MotorolaMotorola推出的推出的MC 88000 RISCMC 88000 RISC计算机计算机1)RISC1)RISC的产生的产生RISCRISC是通过减少是通过减少是通过减少是通过减少CPICPI值,简化结构来减少值,简化结构来减少值,简化结构来减少值,简化结构来减少TcpuTcpu2 RISC(Reduced Instruction 11 1)1)精简指令系统精简指令系统指令条数少,一般小于指令条数少,一般小于100100条条基本寻址方式少,一般基本寻址方式少,一般2 2 3 3种种指令格式少,一般指令格式少,一般2 2 3 3种种指令长度一致指令长度一致(32(32位位)2)RISC2)RISC的主要特点:的主要特点:2)2)以寄存器以寄存器-寄存器方式工作,除了寄存器方式工作,除了Load/StoreLoad/Store指令访问存储器外,其余指令只访问寄存器指令访问存储器外,其余指令只访问寄存器 1)精简指令系统2)RISC的主要特点:2)以寄存器-寄存124)4)使用较多的通用寄存器,一般至少使用较多的通用寄存器,一般至少3232个,不个,不允许有专用寄存器允许有专用寄存器5)5)大多采用硬联线控制,少用或不用微程序实现大多采用硬联线控制,少用或不用微程序实现3)3)除了除了Load/StoreLoad/Store指令访问存储器外,所有指令在一个指令访问存储器外,所有指令在一个机器时钟周期完成,并采用流水线技术机器时钟周期完成,并采用流水线技术4)使用较多的通用寄存器,一般至少32个,不允许有专用寄存器134.1.3低级语言与硬件结构的关系高级语言用法与具体机器的指令系统无关。低级语言(机器语言&汇编语言)和具体机器的指令系统密切相关。汇编语言依赖于计算机的硬件结构和指令系统。4.1.3低级语言与硬件结构的关系高级语言用法与具体机器的指14高级语言如何访问机器硬件资源高级语言提供了与汇编语言之间的调用接口。用汇编语言编写的程序作为高级语言的一个外部过程或函数。利用堆栈来传递参数或参数的地址。两者编译生成目标(OBJ)文件。利用连接程序(LINKER)把它们连接成可执行文件便可运行。高级语言如何访问机器硬件资源高级语言提供了与汇编语言之间的调15操作码字段操作码字段:表示指令的操作特性与功能。:表示指令的操作特性与功能。地址码字段地址码字段:通常用于指定参与操作的操作数地址。:通常用于指定参与操作的操作数地址。4.2 4.2 指令格式指令格式 指令的一般结构形式指令的一般结构形式:操作码字段:表示指令的操作特性与功能。4.2 指令格式 164.2.1 指令字长度指令的长度指令的长度是指一条指令所包含二进制是指一条指令所包含二进制代码的位数,取决于操作码长度和操作代码的位数,取决于操作码长度和操作数地址个数及每个地址的长度。数地址个数及每个地址的长度。机器字长:机器字长:计算机能直接处理的二进制计算机能直接处理的二进制数据的位数数据的位数。指令长度与机器字长的关系:指令长度与机器字长的关系:半字长指令半字长指令单字长指令单字长指令双字长指令双字长指令4.2.1 指令字长度指令的长度是指一条指令所包含二进制代174.2.2 操作码操作码(1 1)定长编码:)定长编码:便于译码,扩展性差便于译码,扩展性差IBM370机机(2 2)变长编码:)变长编码:能缩短指令平均长度能缩短指令平均长度PDP-11 作用作用:指定指令是执行什么性质的操作。:指定指令是执行什么性质的操作。不同的指令用操作码字段的不同编码表示。不同的指令用操作码字段的不同编码表示。4.2.2 操作码(1)定长编码:便于译码,扩展性差 18 (2)(2)一地址指令一地址指令一地址指令一地址指令:单操作数指令单操作数指令单操作数指令单操作数指令。该指令常以。该指令常以AC中中 数作为被操作数,指令中地址码字段所指明的数数作为被操作数,指令中地址码字段所指明的数 为操作数,操作结果又放回为操作数,操作结果又放回AC。根据指令中操作数地址的个数,将指令划分为:根据指令中操作数地址的个数,将指令划分为:4.2.3 地址码地址码 (1)(1)零地址指令零地址指令零地址指令零地址指令:指令中只有操作码,没有地址码指令中只有操作码,没有地址码。作用作用:常用于指定参与操作的操作数地址常用于指定参与操作的操作数地址。(ACAC)OP OP(A A)AC AC(2)一地址指令:单操作数指令。该指令常以AC中 根据指19(3 3)二地址指令二地址指令二地址指令二地址指令:双操作数指令双操作数指令,两地址指明被操作,两地址指明被操作 数和操作数地址数和操作数地址,其中其中A1兼做结果地址兼做结果地址:(A A1 1)OP OP(A A2 2)A A1 1(4 4)三地址指令三地址指令三地址指令三地址指令:三个地址分别指明被操作数、操作三个地址分别指明被操作数、操作 数以及结果存放地址数以及结果存放地址:(A A1 1)OP OP(A A2 2)A A3 3(3)二地址指令:双操作数指令,两地址指明被操作(A1)OP20A(A)VSAC(AC)VS A A 为为内存或运算器中通用寄存器的内存或运算器中通用寄存器的地址地址;(A)(A)为为内存或运算器中通用寄存器内存或运算器中通用寄存器地址地址为为A A中的数中的数。A(A)VSAC(AC)VS A 为内存或运算器中通用寄存器21二、地址码二地址地址根据操作数的物理位置分为:SS 存储器-存储器类型RS 寄存器-存储器类型RR 寄存器-寄存器类型慢二、地址码二地址地址根据操作数的物理位置分为:慢22 为了便于书写和阅读程序,每一指令采用为了便于书写和阅读程序,每一指令采用3 3个或个或4 4个英文缩写字母来表示,称为个英文缩写字母来表示,称为指令助记符指令助记符指令助记符指令助记符。注注注注:1 1 在不同的计算机中,指令助记符的规定是在不同的计算机中,指令助记符的规定是 不一样的;不一样的;2 2 由于机器只能识别二进制语言,因此指令由于机器只能识别二进制语言,因此指令 助记符必须转换成相应的二进制操作码。助记符必须转换成相应的二进制操作码。4.2.4 指令助记符指令助记符 为了便于书写和阅读程序,每一指令采用3个或4个英文缩写238位微型计算机的指令格式如8088,字长8位,指令结构可变包括单字长指令、双字长指令和三字长指令操作码长度固定PDP/11系列机的指令格式字长16位单字长指令操作码字段不固定4.2.5 指令格式举例(指令格式举例(P135)8位微型计算机的指令格式4.2.5 指令格式举例(P135244.2.6 Pentium指令格式指令格式指令长度可变,最短1个字节,最长12个字节,典型的CISC指令系统由可选前缀(04)、操作码(12)、一个由mod-R/M字节和一个SIB(Scale Index Base)比例变址字节组成的地址指定器、一个可选的位移量(04)和一个可选的立即数字段(04)构成。指令前缀 段取代 操作数长度取代 地址长度取代操作码 Mod Reg或操作码 R/M S I B 位移量 立即数4.2.6 Pentium指令格式指令长度可变,最短1个字25指令前缀中的重复前缀指定串的重复操作,这样使Pentium处理串比软循环快得多。LOCK前缀用于多CPU环境中对共享存储器的排他性访问段取代用于改变默认段寄存器的情况操作数长度取代和地址长度取代用于在保护模式下决定操作数和指令的长度以下4个指令前缀都是可选的,分别为0或1个字节指令前缀 段取代 操作数长度取代 地址长度取代4.2.6 Pentium指令格式指令格式指令前缀中的重复前缀指定串的重复操作,这样使Pentium处26操作码是必须的,12个字节Mod、Reg、R/M为共1个字节,是可选的。mod-R/M指定的操作数是在R中还是在M中。mod(2位)R/M(3位)的32种值构成了8种寄存器方式和24种变址方式(参考汇编语言教材);Reg或OP(3位)指定另一个操作数(寄存器)或用作OP的补充。操作码 Mod Reg或操作码 R/M S I B 位移量 立即数1个字节 1个字节 4.2.6 Pentium指令格式指令格式操作码是必须的,12个字节操作码 Mod Reg或操作27S、I、B共1个字节,分别是比例系数、变址寄存器号、基址寄存器号,可选。mod-R/M中的某些编码要求SIB字节来完成寻址方式的指定;SS(2)指定比例变换的因子,Index(2)指定变址寄存器,Base(3)指定基址寄存器位移量:可以是0,1,2,4个字节立即数:可以是0,1,2,4个字节操作码 Mod Reg或操作码 R/M S I B 位移量 立即数4.2.6 Pentium指令格式指令格式S、I、B共1个字节,分别是比例系数、变址寄存器号、基址寄存28寻址方式寻址方式:采用地址指定方式时,形成操作数地址采用地址指定方式时,形成操作数地址采用地址指定方式时,形成操作数地址采用地址指定方式时,形成操作数地址 或指令地址的方式或指令地址的方式或指令地址的方式或指令地址的方式。寻址方式寻址方式指令指令寻址方式寻址方式数据数据寻址方式寻址方式4.3 指令和数据的寻址方式指令和数据的寻址方式寻址技术:寻址技术:指的是指令按什么方式寻找(或访问)到指的是指令按什么方式寻找(或访问)到所需的操作数或信息。它影响主存规模速度及存取方所需的操作数或信息。它影响主存规模速度及存取方式。寻址方式对应用程序员是透明的。式。寻址方式对应用程序员是透明的。寻址方式:采用地址指定方式时,形成操作数地址寻址方式指令寻址291.1.顺序寻址方式顺序寻址方式顺序寻址方式顺序寻址方式 程序指令按程序指令按顺序顺序存放在内存中,执行时按顺序从内存放在内存中,执行时按顺序从内存中取出所要执行的指令。存中取出所要执行的指令。程序计数器程序计数器程序计数器程序计数器(指令指针寄存器指令指针寄存器指令指针寄存器指令指针寄存器,指令计数器指令计数器指令计数器指令计数器)PCPC(P Program C Counter)存放存放正在执行的指令地址正在执行的指令地址(要(要执行的下一指令地址)。执行的下一指令地址)。一、一、指令的寻址方式指令的寻址方式1.顺序寻址方式一、指令的寻址方式30 程序要执行的下条指令地址不是由程序要执行的下条指令地址不是由程序要执行的下条指令地址不是由程序要执行的下条指令地址不是由PCPCPCPC给出,而是由给出,而是由给出,而是由给出,而是由本指令的地址码给出本指令的地址码给出本指令的地址码给出本指令的地址码给出。用途用途:实现程序转移或构成循环程序实现程序转移或构成循环程序。2.跳跃寻址方式跳跃寻址方式 程序要执行的下条指令地址不是由PC给出,而是由本指令的地31寻址方式特征位寻址方式特征位:指出是何种寻址方式。指出是何种寻址方式。有效地址由形式地址和寻址方式特征位等共同确定有效地址由形式地址和寻址方式特征位等共同确定有效地址由形式地址和寻址方式特征位等共同确定有效地址由形式地址和寻址方式特征位等共同确定。实质实质:将形式地址(将形式地址(将形式地址(将形式地址()转化为有效地址()转化为有效地址()转化为有效地址()转化为有效地址()。二、操作数寻址方式二、操作数寻址方式形式地址形式地址(D):偏移量偏移量,逻辑地址逻辑地址,指令中给出的地址。,指令中给出的地址。有效地址有效地址(E):真实地址真实地址,物理地址物理地址,用形式地址并结,用形式地址并结 合某些计算规则求出来的地址。合某些计算规则求出来的地址。例例例例:一种:一种单地址单地址单地址单地址指令的结构如下:指令的结构如下:寻址方式特征位:指出是何种寻址方式。二、操作数寻址方式形式地32 不明显指定操作数的地址,而是在指令中隐含着不明显指定操作数的地址,而是在指令中隐含着不明显指定操作数的地址,而是在指令中隐含着不明显指定操作数的地址,而是在指令中隐含着操作数的地址操作数的地址操作数的地址操作数的地址。比如单地址指令格式的第二操作数比如单地址指令格式的第二操作数由由AC隐含指定。隐含指定。1.隐含寻址隐含寻址(Implied Addressing)例例例例:加法指令加法指令加法指令加法指令ADD 200HADD 200H0010001000100010ACAC0011001100110011200H=ADD ACADD AC,200H200HALUALU 不明显指定操作数的地址,而是在指令中隐含着操作数332.立即寻址(立即寻址(Immediate Addressing)优点优点:无需访问内存,指令的执行时间很短。无需访问内存,指令的执行时间很短。缺点缺点:操作数的范围受限。:操作数的范围受限。适用范围适用范围:用于操作数固定的指令中,主要用于用于操作数固定的指令中,主要用于 给寄存器或存储器赋初值。给寄存器或存储器赋初值。例例例例:MOV ALMOV AL,13H 13H 特点特点:地址字段指出的地址字段指出的不是操作数地址,而是不是操作数地址,而是不是操作数地址,而是不是操作数地址,而是操作数本身操作数本身操作数本身操作数本身。13H13HALAL2.立即寻址(Immediate Addressing)优34其形式地址()又称为直接地址()3.直接寻址(直接寻址(Direct Addressing)特点特点:地址字段直接指出操作数在内存中地址地址字段直接指出操作数在内存中地址地址字段直接指出操作数在内存中地址地址字段直接指出操作数在内存中地址。例例例例:MOV AXMOV AX,2000H2000HE=D1000H1000H1000H1000HFFFFHFFFFH优点优点:简单。:简单。缺点缺点:寻址空间受限。:寻址空间受限。0000H0000H其形式地址()又称为直接地址()3.直接寻址(Dire35特点特点:地址字段中的地址字段中的D是是操作数地址的指针操作数地址的指针。4.间接寻址(间接寻址(Indirect Addressing)E=(D)10001000HH 10001000HH50005000HH50005000HH1313HH说明说明:两次访存影响执行速度,两次访存影响执行速度,现已不大使用现已不大使用现已不大使用现已不大使用。优点优点:寻址空间大:寻址空间大。缺点缺点:需多次访问主存。:需多次访问主存。特点:地址字段中的D是操作数地址的指针。4.间接寻址(In36寄存器寻址方式寄存器寻址方式:寄存器中存放的是寄存器中存放的是操作数操作数操作数操作数。5 5.寄存器寻址寄存器寻址寄存器寻址寄存器寻址(Register Addressing)Register Addressing)和寄存器间和寄存器间和寄存器间和寄存器间接寻址接寻址接寻址接寻址(Register Indirect Addressing)Register Indirect Addressing)区别区别:(1 1)寄存器中前者存的是)寄存器中前者存的是操作数操作数操作数操作数,后者是,后者是操作数地址操作数地址操作数地址操作数地址。(2 2)前者前者前者前者不需要不需要不需要不需要访问内存访问内存访问内存访问内存,速度相对快;寻址空间小;,速度相对快;寻址空间小;后者后者后者后者需要需要需要需要访问内存访问内存访问内存访问内存,速度相对慢;寻址空间大。,速度相对慢;寻址空间大。联系联系:地址字段中给出的都是寄存器的编号地址字段中给出的都是寄存器的编号。例例例例:寄存器寻址:寄存器寻址:寄存器寻址:寄存器寻址:MOV AX,BXMOV AX,BX寄存器间接寻址:寄存器间接寻址:寄存器间接寻址:寄存器间接寻址:MOV AX,BXMOV AX,BX寄存器间接寻址方式寄存器间接寻址方式:寄存器中存放的寄存器中存放的不是操作数不是操作数不是操作数不是操作数,而是操作数在内存中的地址而是操作数在内存中的地址而是操作数在内存中的地址而是操作数在内存中的地址。寄存器寻址方式:寄存器中存放的是操作数。5.寄存器寻址(R37特点特点:把把把把PCPCPCPC的内容加上指令格式中形式地址的内容加上指令格式中形式地址的内容加上指令格式中形式地址的内容加上指令格式中形式地址D D D D而形成而形成而形成而形成 操作数的有效地址操作数的有效地址操作数的有效地址操作数的有效地址E E E E。6.相对寻址方式相对寻址方式(Relative Addressing)E=(PC)+D特点:把PC的内容加上指令格式中形式地址D而形成 6.相38特点特点:把基址寄存器的内容加上指令格式中把基址寄存器的内容加上指令格式中把基址寄存器的内容加上指令格式中把基址寄存器的内容加上指令格式中D D而形成而形成而形成而形成 操作数的操作数的操作数的操作数的E E。用途用途:可用于扩大寻址能力可用于扩大寻址能力。7.基址寻址方式基址寻址方式(Base-Register Addressing)E=(BR)+D特点:把基址寄存器的内容加上指令格式中D而形成7.基址寻址39特点特点:把某个变址寄存器的内容加上指令格式中把某个变址寄存器的内容加上指令格式中把某个变址寄存器的内容加上指令格式中把某个变址寄存器的内容加上指令格式中D D 而形成操作数的而形成操作数的而形成操作数的而形成操作数的E E。用途用途:用于实现程序块的有规律变化。用于实现程序块的有规律变化。8.变址寻址方式变址寻址方式(Index Addressing)例例:MOV AX,2000HSP特点:把某个变址寄存器的内容加上指令格式中D8.变址寻址方40基址寻址方式和变址寻址方式有什么特点?基址寻址方式和变址寻址方式有什么特点?(上海交通大学硕士研究生入学考试试题)(上海交通大学硕士研究生入学考试试题)解解:两者有不同的特点和用途:两者有不同的特点和用途:在基址寻址的系统在基址寻址的系统中,中,基址是不变的,程序中的所有地址都相对于基地基址是不变的,程序中的所有地址都相对于基地基址是不变的,程序中的所有地址都相对于基地基址是不变的,程序中的所有地址都相对于基地址来变化址来变化址来变化址来变化。而对于变址寻址则相反,。而对于变址寻址则相反,指令中的指令中的指令中的指令中的D D D D给出给出给出给出的是一个存储器地址基准,变址寄存器的是一个存储器地址基准,变址寄存器的是一个存储器地址基准,变址寄存器的是一个存储器地址基准,变址寄存器X X X X中存放的是中存放的是中存放的是中存放的是相对于该基准地址的偏移量相对于该基准地址的偏移量相对于该基准地址的偏移量相对于该基准地址的偏移量。不同的变址寄存器值指。不同的变址寄存器值指出了不同的单元;出了不同的单元;在基址寻址中,在基址寻址中,偏移量位数较短偏移量位数较短偏移量位数较短偏移量位数较短,而在变址寻址中,而在变址寻址中,偏移量位数足以表示整个存储空间偏移量位数足以表示整个存储空间偏移量位数足以表示整个存储空间偏移量位数足以表示整个存储空间;前者前者主要解决程序逻辑空间与存储器物理空间的无主要解决程序逻辑空间与存储器物理空间的无主要解决程序逻辑空间与存储器物理空间的无主要解决程序逻辑空间与存储器物理空间的无关性关性关性关性,而后者,而后者主要为了可编写出高效率访问一片存储主要为了可编写出高效率访问一片存储主要为了可编写出高效率访问一片存储主要为了可编写出高效率访问一片存储空间的程序空间的程序空间的程序空间的程序。基址寻址方式和变址寻址方式有什么特点?解:两者有不同的41用途用途:用在用在I/O指令中,以实现指令中,以实现外存储器外存储器外存储器外存储器或或外围设备外围设备外围设备外围设备同同内内内内存存存存之间的之间的数据块传送数据块传送数据块传送数据块传送,还适用于,还适用于内存的数据块搬家内存的数据块搬家内存的数据块搬家内存的数据块搬家。9.块寻址方式块寻址方式(Block Addressing)200200HH800800HH指定数据块长度的三种方法:指定数据块长度的三种方法:指定数据块长度的三种方法:指定数据块长度的三种方法:(1 1)指令中划出字段指出长度;)指令中划出字段指出长度;)指令中划出字段指出长度;)指令中划出字段指出长度;(2 2)指令中指出数据块的首尾地址;)指令中指出数据块的首尾地址;)指令中指出数据块的首尾地址;)指令中指出数据块的首尾地址;(3 3)由块结束字符指出数据块的长度。)由块结束字符指出数据块的长度。)由块结束字符指出数据块的长度。)由块结束字符指出数据块的长度。用途:用在I/O指令中,以实现外存储器或外围设备同内存之间的42方法方法:E E由段寄存器的内容加上段内偏移地址而形成由段寄存器的内容加上段内偏移地址而形成由段寄存器的内容加上段内偏移地址而形成由段寄存器的内容加上段内偏移地址而形成。应用应用:微型机采用段寻址方式,微型机采用段寻址方式,20位物理地址为位物理地址为16位位 段地址左移四位加上段地址左移四位加上16位偏移量。位偏移量。10.段寻址方式段寻址方式(Segment Addressing)段段内内内内直接直接直接直接寻址;寻址;段段内内内内间接间接间接间接寻址;寻址;段段间间间间直接直接直接直接寻址;寻址;段段间间间间间接间接间接间接寻址;寻址;分类分类:方法:E由段寄存器的内容加上段内偏移地址而形成。10.段寻434.4 堆栈寻址方式堆栈寻址方式堆栈堆栈:是一组能存入和取出数据的:是一组能存入和取出数据的暂时暂时存储单元存储单元。区别区别:对数据的存取方法或寻址方式不同。:对数据的存取方法或寻址方式不同。分类分类:串联堆栈和存储器堆栈。:串联堆栈和存储器堆栈。特点特点:数据传送在栈顶和某个通用寄存器之间进行数据传送在栈顶和某个通用寄存器之间进行数据传送在栈顶和某个通用寄存器之间进行数据传送在栈顶和某个通用寄存器之间进行。存存存存/取数方式:取数方式:取数方式:取数方式:当压入数据时,栈中数据先向栈底移动一个数据字,当压入数据时,栈中数据先向栈底移动一个数据字,空出栈顶寄存器来存放压入的数据。当取出数据时,从空出栈顶寄存器来存放压入的数据。当取出数据时,从栈顶的寄存器中取出数据,栈中数据向栈顶顺序移动一栈顶的寄存器中取出数据,栈中数据向栈顶顺序移动一个数据字。个数据字。4.4.1 4.4.1 串联堆栈(硬堆栈,下压堆栈)串联堆栈(硬堆栈,下压堆栈)由由由由CPUCPU中的一组专门寄存器组成。中的一组专门寄存器组成。中的一组专门寄存器组成。中的一组专门寄存器组成。4.4 堆栈寻址方式堆栈:是一组能存入和取出数据的暂时存储单44“先进后出先进后出”FILOFILO(F Firstirst I In n L Lastast O Outut)。“后进先出后进先出”LIFOLIFO(L Lastast I In n F First irst OOutut)。“先进后出”FILO(First In Last Out)。45在主存储器中划分出一部分区域来作为堆栈在主存储器中划分出一部分区域来作为堆栈在主存储器中划分出一部分区域来作为堆栈在主存储器中划分出一部分区域来作为堆栈。优点优点优点优点:(1)容量可任意;)容量可任意;(2)可同时建立多个堆栈;)可同时建立多个堆栈;(3)可用对存储器寻址的任一指令来对堆栈中数)可用对存储器寻址的任一指令来对堆栈中数 据寻址。据寻址。需设置一个堆栈指示器需设置一个堆栈指示器SP(Stack Pointer),它是它是CPU中的一个专用寄存器,指定堆栈的栈顶。中的一个专用寄存器,指定堆栈的栈顶。4.4.2 存储器堆栈(软堆栈)存储器堆栈(软堆栈)缺点缺点缺点缺点:(1 1)容量有限;)容量有限;(2 2)读出具有破坏性;)读出具有破坏性;在主存储器中划分出一部分区域来作为堆栈。4.4.2 存储器堆46 串联堆栈串联堆栈不需要堆栈指示器不需要堆栈指示器不需要堆栈指示器不需要堆栈指示器,栈顶是由硬件确定,栈顶是由硬件确定,操作时操作时栈顶不动栈顶不动栈顶不动栈顶不动,数据数据数据数据串联地在寄存器间串联地在寄存器间移动移动移动移动。因存储单元中的数据不容易移动,为此实行因存储单元中的数据不容易移动,为此实行栈顶移栈顶移栈顶移栈顶移动动动动,数据不动数据不动数据不动数据不动。数据的压入和读出用数据的压入和读出用“进栈进栈”(PUSH)和和“出栈出栈”(POP)指令。指令。进栈操作描述进栈操作描述进栈操作描述进栈操作描述:(A)Msp,(SP)-1 SP 出栈操作描述出栈操作描述出栈操作描述出栈操作描述:(SP)+1 SP,(Msp)A注注注注:进栈时先存入数据,后修改堆栈指示器进栈时先存入数据,后修改堆栈指示器进栈时先存入数据,后修改堆栈指示器进栈时先存入数据,后修改堆栈指示器;出栈时先修改堆栈指示器,后取出数据出栈时先修改堆栈指示器,后取出数据出栈时先修改堆栈指示器,后取出数据出栈时先修改堆栈指示器,后取出数据。串联堆栈不需要堆栈指示器,栈顶是由硬件确定,操作时47计算机组成原理-第4章指令系统课件48寻址方式举例:Pentium寻址方式举例:Pentium49Pentium寻址方式Pentium寻址方式50P120例4某16位机器所使用的指令格式和寻址方式如下所示,该机有两个20位基址寄存器,四个16位变址寄存器,十六个16位通用寄存器。指令汇编格式中的S(源),D(目标)都是通用寄存器,M是主存中的一个单元。三种指令的操作码分别是MOV(OP)=(A)H,STO(OP)=(1B)H,LAD(OP)=(3C)H。MOV是传送指令,STO为存数指令,LAD为取数指令。要求:(1)分析三种指令的指令格式与寻址方式特点。(2)CPU完成哪一种操作所花时间最短?哪一种操作所花时间最长?第二种指令的执行时间有时会等于第三种指令的执行时间吗?(3)下列情况下每个十六进制指令字分别代表什么操作?其中如果有编码不正确,如何改正才能成为合法指令?P120例4某16位机器所使用的指令格式和寻址方式如下所示,51P120例4 F0F1 3CD21111 0000 1111 0001 0011 1100 1101 0010 3C 15号寄存器 13CD2把主存13CD2的内存装载到15号寄存器 6FD60110 1111 1101 0110由于是单字长指令,则一定是MOV指令。则OP错误,修改为001010 00 1101 011028D6P120例4 F0F1 3CD2 3C 524.5 典型指令典型指令(1 1 1 1)数据传送指令)数据传送指令)数据传送指令)数据传送指令 主要用于主存和寄存器、寄存器和寄存器之间的数主要用于主存和寄存器、寄存器和寄存器之间的数据传送。主要有据传送。主要有:取数取数取数取数、存数存数存数存数、传送传送传送传送、成组传送成组传送成组传送成组传送、字字字字节交换节交换节交换节交换、清除累加器清除累加器清除累加器清除累加器和和堆栈操作指令堆栈操作指令堆栈操作指令堆栈操作指令等。等。(2 2 2 2)算术运算指令)算术运算指令)算术运算指令)算术运算指令 主要用于定点或浮点的算术运算、向量运算。主要主要用于定点或浮点的算术运算、向量运算。主要有:二进制有:二进制定点加定点加定点加定点加、减减减减、乘乘乘乘、除指令除指令除指令除指令;浮点加浮点加浮点加浮点加、减减减减、乘乘乘乘、除指令除指令除指令除指令,求反求反求反求反、求补求补求补求补、算术移位算术移位算术移位算术移位指令。指令。4.5.1 指令的分类指令的分类4.5 典型指令(1)数据传送指令4.5.1 指令的分类53(4 4)程序控制指令)程序控制指令)程序控制指令)程序控制指令 转移指令一般分为:转移指令一般分为:条件转移条件转移条件转移条件转移、无条件转移无条件转移无条件转移无条件转移、转子转子转子转子程序程序程序程序、返回主程序返回主程序返回主程序返回主程序、中断返回指令中断返回指令中断返回指令中断返回指令等。等。条件转移的条件有进位标志位条件转移的条件有进位标志位(C)、结果为零标志结果为零标志(Z)、负标志负标志(N)、溢出标志溢出标志(V)和奇偶标志和奇偶标志(P)等。等。(5 5)输入输出指令)输入输出指令)输入输出指令)输入输出指令 主要用来启动外围设备,检查测试外围设备的工作主要用来启动外围设备,检查测试外围设备的工作状态,并实现外围设备和状态,并实现外围设备和CPU之间、外围设备与外围之间、外围设备与外围设备之间的信息传送。设备之间的信息传送。(3 3 3 3)逻辑运算指令)逻辑运算指令)逻辑运算指令)逻辑运算指令 主要用于无符号数的位操作、代码转换、判断及主要用于无符号数的位操作、代码转换、判断及运算。主要有:运算。主要有:逻辑加逻辑加逻辑加逻辑加、乘乘乘乘、异或异或异或异或、移位移位移位移位等。等。(4)程序控制指令(3)逻辑运算指令54(6 6)字符串处理指令)字符串处理指令)字符串处理指令)字符串处理指令 常用在文字编辑中对字符串进行处理。包括:常用在文字编辑中对字符串进行处理。包括:字字字字符串传送符串传送符串传送符串传送、转换转换转换转换、比较比较比较比较、查找查找查找查找、抽取抽取抽取抽取和和替换替换替换替换等。等。(7 7)特权指令)特权指令)特权指令)特权指令 是具有特殊权限的指令,只用于操作系统或其他是具有特殊权限的指令,只用于操作系统或其他系统软件,一般不直接提供用户使用。系统软件,一般不直接提供用户使用。主要用于主要用于系统资源的分配和管理系统资源的分配和管理系统资源的分配和管理系统资源的分配和管理:改变系统工作改变系统工作改变系统工作改变系统工作方式方式方式方式,检测用户的访问权限检测用户的访问权限检测用户的访问权限检测用户的访问权限、修改虚拟存储器管理的修改虚拟存储器管理的修改虚拟存储器管理的修改虚拟存储器管理的段表段表段表段表、页表页表页表页表,完成任务的创建和切换完成任务的创建和切换完成任务的创建和切换完成任务的创建和切换。(8 8)其他指令)其他指令)其他指令)其他指令 状态寄存器状态寄存器置位置位置位置位、复位复位复位复位、测试测试测试测试、暂停暂停暂停暂停、空操作空操作空操作空操作,以及以及其它其它其它其它系统控制用的系统控制用的特殊指令特殊指令特殊指令特殊指令。(6)字符串处理指令554.5 典型指令典型指令基本指令系统P122表4.9介绍20%和80%规律:CISC中大约有20%的指令使用频率高,占据了80%的处理机时间,而有80%的不常用指令只占用处理机的20%时间。VLSI技术发展引起的问题VLSI工艺要求规整性,而大量复杂指令控制逻辑极其不规整,给VLSI工艺造成了很大的困难。现在用微程序实现复杂指令与用简单指令组成的子程序相比,没有多大的区别。因为现在控制存储器和主存的速度差缩小。CISC中,通过增强指令系统的功能,简化了软件,增加了硬件的复杂程度。然而指令复杂了,指令的执行时间必然加长,从而使整个系统的执行时间反而增加,因而在计算机体系结构设计中,软硬件的功能分配必须恰当4.5 典型指令基本指令系统564.5 典型指令典型指令RISC特点(采用流水线技术)简单而统一格式的指令译码;大部分指令可以单周期执行只有LOAD/STORE可以访问存储器简单的寻址方式采用延迟转移技术采用LOAD延迟技术三地址指令格式较多的寄存器对称的指令格式返回4.5 典型指令RISC返回571.1.1.1.霍夫曼编码(操作码设计)霍夫曼编码(操作码设计)霍夫曼编码(操作码设计)霍夫曼编码(操作码设计)基本思想基本思想基本思想基本思想(频率相关思想)(频率相关思想)(频率相关思想)(频率相关思想):当事件发生的概率不当事件发生的概率不当事件发生的概率不当事件发生的概率不均等时,对概率高的事件用较短的位数(或时间)来均等时,对概率高的事件用较短的位数(或时间)来均等时,对概率高的事件用较短的位数(或时间)来均等时,对概率高的事件用较短的位数(或时间)来表示,对概率低的事件用较长的位数(或时间)来表表示,对概率低的事件用较长的位数(或时间)来表表示,对概率低的事件用较长的位数(或时间)来表表示,对概率低的事件用较长的位数(或时间)来表示,导致平均位数(时间)最短。示,导致平均位数(时间)最短。示,导致平均位数(时间)最短。示,导致平均位数(时间)最短。表示方法:表示方法:表示方法:表示方法:霍夫曼树。霍夫曼树。4.6.1 操作码的优化设计操作码的优化设计4.6 4.6 指令格式的优化指令格式的优化1.霍夫曼编码(操作码设计)基本思想(频率相关思想):当58用霍夫曼压缩概念进行编码的步骤:(1)将将要要编编码码的的字字符符按按出出现现频频率率的的次次序序排排列列,频频率率相相等等的的符符号可任意排列;号可任意排列;(2)把把出出现现频频率率最最小小的的两两个个符符号号合合并并,并并将将其其频频率率相相加加,按按相加后的频率次序重新排序;相加后的频率次序重新排序;(3)继继续续过过程程(2),直直至至只只剩剩下下两两个个频频率率,此此后后以以相相反反过过程程进行编码;进行编码;(4)对最后两个频率分别指定代码对最后两个频率分别指定代码0和和1;(5)若若某某一一频频率率由由两两个个频频率率相相加加而而成成,则则分分别别指指定定这这两两个个频频率的下一个代码为率的下一个代码为0或或1;(6)继续过程(继续过程(5),直到所有符号均已指定不同代码为止。),直到所有符号均已指定不同代码为止。用霍夫曼压缩概念进行编码的步骤:(1)将要编码的字符按出现频59例:现设一台模型机,共有例:现设一台模型机,共有7种不同的指令,使用频度如表种不同的指令,使用频度如表所示。若用定长操作码表示,则需要所示。若用定长操作码表示,则需要3位。位。I10.40I20.30I30.15I40.05I50.04I60.03I70.03指令指令使用频度使用频度操作码表示的平均长度操作码表示的平均长度L=lli i*P*Pi i l li i:第:第:第:第i i个操作码的长度个操作码的长度个操作码的长度个操作码的长度H=-PH=-Pi iloglog2 2P Pi i=0.40*1.32+0.30*1.74+0.15*2.74+0.05*4.32+0.04*4.64+0.03*5.06+0.03*5.06=2.17则则信息冗余量信息冗余量K=1-H/操作码的实际平均长度操作码的实际平均长度=1-2.17/3=0.28(即即28%)操作码的信息源熵:操作码的信息源熵:操作码的信息源熵:操作码的信息源熵:信息源所包含信息源所包含信息源所包含信息源所包含的平均最短信息量的平均最短信息量的平均最短信息量的平均最短信息量.H=-PH=-Pi iloglog2 2P Pi i,其中其中其中其中P Pi i为第为第为第为第i i个信息源个信息源个信息源个信息源的频度的频度的频度的频度例:现设一台模型机,共有7种不同的指令,使用频度如表所示。若60 P Pi il li i=0.40*1+0.30*2+0.15*3+0.05*5+0.04*5+0.03*5+0.03*5=0.40*1+0.30*2+0.15*3+0.05*5+0.04*5+0.03*5+0.03*5 =2.21(=2.21(位位位位)这种编码的信息冗余为这种编码的信息冗余为这种编码的信息冗余为这种编码的信息冗余为K=1-2.17/2.211.8%K=1-2.17/2.211.8%1.000.600.300.150.060.090.030.030.040.050.150.300.40111111000000为减少此信息冗余量,改用为减少此信息冗余量,改用为减少此信息冗余量,改用为减少此信息冗余量,改用霍夫曼树霍夫曼树霍夫曼树霍夫曼树:I7 I6 I5 I4 I3 I2 I1I7 I6 I5 I4 I3 I2 I1Pili=0.40*1+0.30*2+0.15*3+0.061例:例:例:例:7 7 7 7种指令使用频率分别为种指令使用频率分别为种指令使用频率分别为种指令使用频率分别为0.40.40.40.4、0.260.260.260.26、0.150.150.150.15、0.060.060.060.06、0.050.050.050.05、0.040.040.040.04、0.040.040.040.04,要求对每种指令进行操作码编码。,要求对每种指令进行操作码编码。,要求对每种指令进行操作码编码。,要求对每种指令进行操作码编码。1.000.600.340.190.080.040.040.050.060.150.260.400.1111111100000(11111)(11110)(11101)(11100)(110)(10)(0)I7I6I1I2I3I4I50 结果:结果:霍夫曼编码平均码长霍夫曼编码平均码长(pili)最短;最短;定长编码平均码长最长。定长编码平均码长最长。霍夫曼树如下:霍夫曼树如下:特点:特点:节省空间(时间);节省空间(时间);操作码规整性差,不利于译码硬件设计。操作码规整性差,不利于译码硬件设计。例:7种指令使用频率分别为0.4、0.26、0.15、0.062 地址码表示和寻址方式采取相应优化措施,程序所需总地址码表示和寻址方式采取相应优化措施,程序所需总地址码表示和寻址方式采取相应优化措施,程序所需总地址码表示和寻址方式采取相应优化措施,程序所需总位数才得以减少。由于操作数地址是随机的,无规律可循,位数才得以减少。由于操作数地址是随机的,无规律可循,位数才得以减少。由于操作数地址是随机的,无规律可循,位数才得以减少。由于操作数地址是随机的,无规律可循,归结为指令格式的优化。归结为指令格式的优化。归结为指令格式的优化。归结为指令格式的优化。地址码优化时应注意的问题:地址码优化时应注意的问题:地址码优化时应注意的问题:地址码优化时应注意的问题:(1 1)操操操操作作作作数数数数地地地地址址址址码码码码长长长长度度度度可可可可在在在在很很很很宽宽宽宽的的的的范范范范围围围围内内内内变变变变化化化化,只只只只要要要要恰恰恰恰当当当当安安安安排排排排就就就就可可可可与与与与变变变变长长长长操操操操作作作作码码码码很很很很好好好好合合合合成成成成定定定定长长长长指指指指令令令令。这这这这样样样样地地地地址址址址码码码码宽宽宽宽度应随不同指令,其宽度可以变化;度应随不同指令,其宽度可以变化;度应随不同指令,其宽度可以变化;度应随不同指令,其宽度可以变化;(2 2)通通通通过过过过改改改改变变变变指指指指令令令令字字字字中中中中的的的的地地地地址址址址数数数数和和和和地地地地址址址址码码码码的的的的长长长长度度度度,以以以以使使使使单地址、双地址甚至三地址都可以在指令中使用;单地址、双地址甚至三地址都可以在指令中使用;单地址、双地址甚至三地址都可以在指令中使用;单地址、双地址甚至三地址都可以在指令中使用;(3 3)设法利用空白处存放立即操作数或常数。)设法利用空白处存放立即操作数或常数。)设法利用空白处存放立即操作数或常数。)设法利用空白处存放立即操作数或常数。(4 4)丰富多彩的寻址方式。)丰富多彩的寻址方式。)丰富多彩的寻址方式。)丰富多彩的寻址方式。4.6.2 地址码的优化设计 地址码表示和寻址方式采取相应优化措施,程序所需总位数631地址码个数的选择地址码个数的选择2缩短单个地址码长度的方法缩短单个地址码长度的方法(1 1)用间接寻址方式缩短地址码长度。用间接寻址方式缩短地址码长度。(2 2)用变址寻址方式缩短地址码长度。用变址寻址方式缩短地址码长度。(3 3)用寄存器间址寻址方式缩短地址码用寄存器间址寻址方式缩短地址码长度。长度。缩短地址码长度的方法:缩短地址码长度的方法:1地址码个数的选择缩短地址码长度的方法:64
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!