第四章 指令系统 指令系统( instruction repertory/set...

29
第第第 第第第第第第instruction repertory/set ): 第第第第第第第第第第第第第第第第 一。 第第第 第第第第第第第 第第第第第第第第第第第第第第第第第第第 第第第 一统 ——第第第第第第 第第第第第第第 一( µOP 第第第第第 第第第第第 第第第第第第第第1 第第第 第第 第第第 第第第 第 (、); 2 第第第第第 ); 3 第第第第第 ); 4 第第第第5 CISC 第 RISC

Upload: arissa

Post on 20-Mar-2016

252 views

Category:

Documents


9 download

DESCRIPTION

第四章 指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。. 指令系统与控制器的关系:一台计算机的控制器就是实现对该机指令系统的解释 —— 控制硬件经由一系列的微操作( µ OP )实现指令系统的全部功能。 本章内容主要涉及: ( 1 )指令系统概述(发展、作用); ( 2 )指令格式; ( 3 )指令类型; ( 4 ) 寻址方式; ( 5 ) CISC 和 RISC 。. 4.1 指令系统概述. 一、从外部应用看指令系统 二、从计算机设计及硬件结构看指令系统 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第四章    指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。

第四章 指令系统指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。 指令系统与控制器的关系:一台计算机的控制器就是实现对该机指令系统的解释——控制硬件经由一系列的微操作( µOP )实现指令系统的全部功能。 本章内容主要涉及:( 1 )指令系统概述(发展、作用);( 2 )指令格式;( 3 )指令类型;( 4 )寻址方式;( 5 ) CISC 和 RISC 。

Page 2: 第四章    指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。

4.1 指令系统概述一、从外部应用看指令系统二、从计算机设计及硬件结构看指令系统 指令系统表征着计算机的基本功能和使用属性,是计算机系统设计的核心问题。 指令系统的设置又与计算机硬件密切相关。一般来说,性能较好的计算机都设有功能齐全、通用性强、指令丰富的指令系统,而这,是需要复杂的硬件结构来支持的。三、指令系统的发展 五十 ~ 六十年代初,分立元件时代:计算机硬件结构简单,指令系统一般情况是:定点加减、逻辑、转移、传送等十几~ 几十条基本指令,寻址方式简单。

Page 3: 第四章    指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。

六十年代中后期, IC 出现,指令系统增加了乘除、浮点、十进制、字符串等指令,达一、二百条,寻址方式趋于多样化。 IC 不断发展, LSI 、 VLSI 出现,使计算机硬件结构越来越复杂化,指令系统也因此趋于多用途、强功能化。这一阶段的发展主要围绕着缩小机器指令与高级语言( HLL )的语义差距,并且为了方便 OS 实现与优化而出现了特权指令、多机系统专用指令。结果是指令系统越来越复杂化。

Page 4: 第四章    指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。

指令系统过于复杂带来的负面结果: 1 、设计周期长; 2 、不易维护; 3 、硬件资源浪费。 指令系统发展过程中的小插曲:指令系统与系列计算机( series computers ) 1 、什么是系列计算机 基本指令系统相同,基本体系结构相同的一系列计算机。例: IBM 370 系列、 VAX-11 系列、 IBM PC 系列…

Page 5: 第四章    指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。

2 、一个系列有多种型号,各型号基本结构相同,但器件可能因推出时间不同而异,进而造成性能不同。 3 、系列机出现的原因:解决软件兼容问题。 4 、系列机能够解决软件兼容问题的必要条件:该系列的各机型有共同的指令集,新机型的指令系统必然包含旧机型中的所有指令。

Page 6: 第四章    指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。

计算机体系结构( computer architecture ): 从计算机设计者的角度,计算机体系结构是指将逻辑元件及部件组成计算机的技术和科学,例如将加法器、堆栈、存储体、磁带机等组成一个计算机,计算机体系结构设计不包括具体的逻辑线路及工程实现。 从程序设计者的角度,计算机体系结构是计算机的功能描述,例如指令系统、存储器的编址方式、中断系统的功能、机器运行方式等。具有相同结构而由不同硬件实现的计算机可以公用软件。

Page 7: 第四章    指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。

相关知识补充:计算机系统结构(计算机体系结构)简述 ( 1 )计算机系统结构概念的提出 计算机系统是一个十分复杂的系统,研究它不仅要从微观结构着手,研究如何运用数字逻辑电路构成计算机的各种部件;还要从宏观结构考虑,研究如何构成高效的计算机结构,为软件提供更好的支持。 ( 2 )对计算机系统结构研究的三个层次 系统结构;组成; 实现方式。

Page 8: 第四章    指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。

对计算机系统进行研究的三个层次: 一、计算机实现方式的研究( Computer Implementation ) ——物理设计。包括:器件的设计与选择,各模块的机械参数设计,印刷电路板的设计与制作,机箱物理特性的设计和选择,组装技术的设计和选择,电源、冷却方式的设计和选择等。 计算机实现方式是构成计算机系统的基础,对计算机组成和系统结构设计有重要影响。 计算机系统实现方面的知识的取得:在工程实践和科研开发中不断积累。

Page 9: 第四章    指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。

对计算机系统进行研究从三个层次进行: 一、计算机实现方式的研究( Computer Implementation )——物理设计。 二、计算机组成的研究( Computer Organization ) —— 逻辑设计。 从逻辑角度研究计算机系统中各个组成部分的构成方法。包括:数据通路的设计,存储系统的设计,运算功能部件的设计,控制器控制方式的设计,输入输出接口的设计等。以上内容构成计算机的内特性。

Page 10: 第四章    指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。

对计算机系统进行研究从三个层次进行: 一、计算机实现方式的研究 二、计算机组成的研究 三、计算机系统结构的研究( Computer Architecture ) —— 概念性结构设计和功能外特性的研究。 不同虚拟机层次的用户看到的计算机的外特性不同; 计算机系统结构的外特性是指系统程序员看到的外特性; 指令系统就是计算机的一个主要的外特性。

Page 11: 第四章    指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。

一个计算机系列产品,无论在实现上如何更新换代(如奔腾机各型号产品),保持不变的特性就是它的系统结构。 与生命周期短暂的计算机产品比较,设计良好的计算机系统结构应具有较长的生命周期。得到这种相对稳定性,依靠的是对系统结构的认真研究与好的设计。

Page 12: 第四章    指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。

计算机实现、计算机组成、计算机系统结构及各种软件之间的关系如下图:

计算机指令系统计算机组成计算机实现

编译

应用程序操作系统

编译程序系统结构 硬件基础软、硬件 界面

Page 13: 第四章    指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。

四、指令系统的性能要求详见 P.128。4.2 指令格式与指令类型4.2.1 指令格式一、一般(代码化的)指令格式由两部分构成:操作码和地址码 操作码:指明操作性质,有定长、变长格式;地址码:指明操作数位置,常见有三地址、二地址、单地址、零地址、四地址、六地址、七地址…多种形式。

OP A1A2 An…………….

Page 14: 第四章    指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。

二、选择与确定各类格式应考虑的因素1 、指令长度应尽可能短——节省存储空间,提高处理速度。2 、指令长度与机器字长应是字符长度( 8位)的整数倍——充分利用存储空间,减少指令或数据的存取时间。3 、指令中操作码字段应有足够的位数。4 、指令中地址字段的位数要足够长。 地址字段的位数主要决定于: 存储器容量; 编址单元的大小(最小寻址单位); 寻址方式。

Page 15: 第四章    指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。

例:存储容量为 1MB 的存储器,直接寻址,当最小寻址单元长分别为 8位和 32位时,地址字段长应各是多少? ——20位, 18位。 4.2.2 指令类型 一、按地址格式分:四地址、三地址、二地址、单地址、零地址…。现代计算机指令系统中包含多种地址格式的指令。

Page 16: 第四章    指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。

二、按指令使用权限分: 1 、特权指令( privileged instruction )——只有操作系统和其他系统软件才能使用,以防止程序员出错影响整个系统工作的一类指令。 例:停机指令、修改虚存页表的指令、 I/O 指令…。 特权指令在整个指令系统中所占比例很小。 2 、非特权指令——用户编程序时可直接使用的指令。三、按指令使用范围分 1 、通用指令——广为使用的指令。 2 、专用指令——应用范围很小的指令。 例:数“ 1”指令。在特殊应用中有效。

Page 17: 第四章    指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。

四、按指令操作性质分:1 、数据传送指令 2 、算术运算指令 3 、逻辑运算指令 4 、移位指令 5 、字符(串)指令 6、程序控制(转移)指令 转移指令——条件转移、无条件转移; 循环控制指令; 过程调用与返回指令; 陷阱( trap )指令——原专为处理异常情况用;现在更多的是有意利用此类指令以便于用户进行系统调用。

Page 18: 第四章    指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。

例: IBM PC 中的 INT TYPE指令,用它可进入中断子程序。 7 、堆栈操作指令堆栈( stack)的概念;堆栈在计算机中的使用—— ( 1 )堆栈结构的计算机:用堆栈来为大多数运算提供操作数并保存结果; ( 2 )一般计算机:堆栈主要用来暂存中断和子程序调用时的现场数据(包括返回地址)。

Page 19: 第四章    指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。

8、特权指令 9、 I/O 指令 ( 1 )作用:输入程序和数据,输出结果; 发送控制命令、接收应答信号以控制外设工作。 ( 2 )有些计算机中没有专门的 I/O 指令。 10 、其他指令向量指令:直接对整个向量运算。 多处理机指令:管理共享资源及多处理机之间通信。。

Page 20: 第四章    指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。

4.3 寻址方式( Addressing Mode )一、寻址方式的定义:确定操作数地址的技术,也叫编址技术。是计算机技术中硬件技术对软件技术支持最早的一种技术。寻址技术与程序设计关系极为密切。各种寻址方式应从程序角度理解其寻址功能和意义,然后再考虑如何用硬件的方法自动实现它们。二、寻址方式的设计目标: 使指令功能更强; 使程序设计更容易; 使程序执行效率更高。三、具体的寻址方式(略)

Page 21: 第四章    指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。

4.4 RISC 和 CISCRISC : Reduced Instruction Set Computer 精简指令集计算机CISC : Complex Instruction Set Computer 复杂指令集计算机 4.4.1 关于 CISC一、 CISC之所以复杂化的原因 1 、随着 VLSI技术的发展,硬件成本不断下降而软件成本不断升高。于是人们热衷于在指令系统中增加更多、更复杂的指令以提高 OS 的效率并缩短指令系统与 HLL之间的语义差距,以便于 HLL 的编译并降低软件成本。 2 、为了程序兼容,同系列新机型的指令系统相对于旧机型只能扩充而不能减去一条指令。

Page 22: 第四章    指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。

4.4 RISC 和 CISC4.4.1 关于 CISC二、指令系统过于复杂即 CISC 的缺点庞大的指令系统不仅使计算机研制周期变长,调试与维护的难度也增加,甚至会降低系统性能。 4.4.2 RISC 的产生与发展 一、 RISC 的产生1 、起始于“指令系统合理性”问题的研究。1975 年 IBM首次提出 RISC 的设想。

Page 23: 第四章    指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。

2 、可行性依据来自对 CISC 的测试结果:各种指令使用频率相差悬殊。如最常用的是较简单的指令,在指令系统中占总数的 20%,而使用频率为 80%。相反,较少用的复杂指令实现时用的微程序代码却可占代码总数的 80%。 3 、最终形成及不断发展源于对 CISC 几个具体劣势的进一步考虑: ( 1 ) CISC 的硬件实现越来越复杂; ( 2 )复杂操作与简单操作共存于同一计算机中将难于实现流水操作,影响速度; ( 3 ) CISC 的芯片数多,时间延迟的增加也影响速度。

Page 24: 第四章    指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。

二、 RISC 的发展 1 、七十年代中期开始, RISC产品推出,市场占有量呈上升态。 2 、 1987 年, SUN公司用 SPARC芯片构成工作站,使其销量居世界之首。 3 、目前, IBM 、 Intel、 Motorola等都有 RISC 的研究及相应产品。 例: 公司 IBM DEC HP SGI SUN 产品 Power PC Alpha HPPA R10000 ultra SPARC

Page 25: 第四章    指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。

三、 RISC 的特点首先要注意到, RISC 的着眼点不是简单地简化指令系统,而是借此使计算机的结构更加简单合理,从而提高速度。为此可以具体认识一个公式: P=I CPI T∙ ∙其中, P —— 计算机执行某程序需要的时间; I ——HLL 程序编译后在机器上运行的实际指 令数; CPI —— 执行每条指令需要的平均周期数; T ——每个机器周期所占的时间。

Page 26: 第四章    指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。

下面列表比较 CISC 与 RISC 的三个参数的情况: 类型 指令条数 指令平均周期数 周期时间 I CPI T CISC 1 2~5 33ns~5ns RISC 1.3~1.4 1.1~1.4 10ns~2ns

P=I CPI T∙ ∙ 由表可以计算出 RISC 的 P比 CISC 要小,其中的关键在于的指令平均执行周期数 CPI 减小了,这正是 RISC 设计思想的精华,也是多方面共同努力的结果。

Page 27: 第四章    指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。

在此基础上,具体了解 RISC 的主要特点:1 、指令条数少,避免复杂指令;2 、指令长度固定,指令格式种类少,寻址方式种类少,指令之间各字段划分较为一致;3 、许多指令的操作在寄存器之间进行, CPU中通用寄存器的数量较多;4 、大部分指令在一个或小于一个机器周期内完成;5 、以硬布线逻辑为主,不用或少用微码控制;6、用高级语言编程注重编译优化工作,以减少程序执行时间。

Page 28: 第四章    指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。

四、对于 RISC 和 CISC 的性能评价尚无最终结论——原因在于以下问题的存在:1 、没有在方方面面都可比较的成对的 RISC 和 CISC 机器。(成活期、技术水平、成本、门电路的复杂性、编译器的精致性、操作系统的支持…)2 、难于将硬件效应与编译器编写技巧的效应分开。3 、对于 RISC 的分析比较大都是在模型机而不是在商品机上完成的。而近几年来, RISC 和 CISC技术出现逐渐交融的趋势。

Page 29: 第四章    指令系统 指令系统( instruction repertory/set ):一台计算机能执行的全部指令的集合。

例如,随着芯片密度的硬件速度的提高, RISC 系统已变得更复杂;与此同时,在达到极限性能的努力中, CISC 设计也使用了 RISC 机的一些焦点技术,其中最主要的就是增加通用寄存器的数量及更进一步强调流水线设计。 P.152 14 题:从以下有关 RISC 的描述中,选择正确答案。 A 、采用 RISC技术后,计算机体系结构又恢复到早期的比较简单的情况。 B 、为了实现兼容,新设计的 RISC ,是从原来 CISC 系统的指令系统中挑选一部分实现的。 C 、 RISC 的主要目标是减少指令数。 D、 RISC没有(设有)乘、除法指令和浮点运算指令。