第2章 数据表示及指令系统_第1页
第2章 数据表示及指令系统_第2页
第2章 数据表示及指令系统_第3页
第2章 数据表示及指令系统_第4页
第2章 数据表示及指令系统_第5页
已阅读5页,还剩116页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第 2 章 数据表示与指令系统 第 2 章 数据表示与指令系统 2.1 数据表示数据表示2.2 寻址方式寻址方式 2.3 指令系统的设计和改进指令系统的设计和改进 第 2 章 数据表示与指令系统 2.1 数数 据据 表表 示示 2.1.1 数据表示与数据结构数据表示与数据结构 数据表示指的是能由机器硬件直接识别和引用的数据类型。 例如,当机器设置有定点加、减、乘、除、移位、比较等一系列定点运算指令和相应的运算硬件,可以直接对定点数进行各种处理时,机器就有了定点数据表示。当机器设置有逻辑加、 逻辑乘、按位相加、逻辑移位等一系列逻辑运算指令和相应的逻辑运算硬件,可以直接对逻辑数进行各种处理,机器就

2、有了逻辑数据表示。 类似的,若机器设置有浮点运算指令(如浮点加、减、乘、除、 比较、存、取等)和相应的运算硬件,可以直接对浮点数进行各种处理,机器就有了浮点数据表示。 第 2 章 数据表示与指令系统 串、队、栈、向量、阵列、链表、树、图等是软件系统所要处理的各种数据结构,它们反映了面向应用所要用到的各种数据元素或信息单元之间的结构关系。数据结构是通过软件映象,将信息变换成机器中所具有的各种数据表示来实现的,可见,数据表示是构成数据结构的元素。不同的数据表示可以为数据结构的不同的数据表示可以为数据结构的实现提供不同的支持,表现在实现的效率和方便性上不同实现提供不同的支持,表现在实现的效率和方便性

3、上不同。因此,数据结构和数据表示是软、硬件的交界面。系统结构设计者在确定软、硬件的功能分配时,应考虑在机器中设置哪些数据表示, 以便对应用中所遇到的数据结构能有高的实现效率。 当然, 这是以花费适当的硬件为代价的。所以,数据表示的确定实质上是所以,数据表示的确定实质上是软、硬件的取舍问题。软、硬件的取舍问题。 第 2 章 数据表示与指令系统 2.1.2 高级数据表示高级数据表示 1. 自定义数据表示自定义数据表示 自定义(Self-defining)数据表示包括带标志符的数据表示和数据描述符两类。 1) 带标志符的数据表示 高级语言用类型说明语句指明数据的类型,让数据类型直接与数据本身联系在一

4、起,运算符不反映数据类型,是通用的。例如FORTRAN程序中,实数(浮点数) I和J的相加是采用如下的语句组指明的: REAL I, J I=I+J 第 2 章 数据表示与指令系统 在说明I、J的数据为实型后,用通用的“+”运算符就可实现实数加法。可是,传统的机器语言程序却正好相反,它用操作码指明操作数的类型。如浮点加法指令 浮加 I J 中,由于操作码是浮加,那么无论I和J是否是浮点数, 总是按浮点数对待,进行浮点数加法。这样,编译时就需要把高级语言程序中的数据类型说明语句和运算符变换成机器语言中不同类型指令的操作码,并验证操作数的类型是否与运算符所要求的一致,若不一致,还需用软件进行转换,

5、这些都增加了编译的负担。 第 2 章 数据表示与指令系统 为了缩短高级语言与机器语言的这种语义差距, 可让机器中的每个数据如下所示,都带有类型标志位: 类型标志 数 据 值 数据(字) 第 2 章 数据表示与指令系统 标志符数据表示的主要优点为:简化了指令系统和程序设计。 (2) 简化了编译程序。 (3) 便于实现一致性校验。 (4) 能由硬件自动完成数据类型的变换。 (5) 支持了数据库系统的实现与数据类型无关的要求。 (1) (6) 为软件调试和应用软件开发提供了支持。 第 2 章 数据表示与指令系统 采用标志符数据表示带来的问题可能有两个。 (1) 每个数据字因增设标志符, 会使程序所占

6、用的主存空间增加。 图 2.2 采用标志符缩短操作码而节省程序空间 第 2 章 数据表示与指令系统 (2) 采用标志符会降低指令的执行速度。第 2 章 数据表示与指令系统 2) 数据描述符 为进一步减少标志符所占的存贮空间,对于向量、数组、记录等数据,由于每个元素具有相同的属性,为此发展出数据描述符。数据描述符和标志符的差别在于标志符是和每个数据相连的,合存在一个存贮单元中,描述单个数据的类型特征;描述符是和数据分开存放的,专门用来描述所要访问的数据是整块数据还是单个数据,访问该数据块或数据元素所需要的地址以及其他特征信息等。 第 2 章 数据表示与指令系统 例, 其数据描述符和数据的形式分别

7、如下所示: 1 0 1 各种标志符 长 度 地 址 描述符 0 0 0 数 据 数 据 数据 000 数据值 描述符 101 各种标志位 长度 地址 第 2 章 数据表示与指令系统 图 2.3 经描述符访存取操作数 第 2 章 数据表示与指令系统 2. 向量数组数据表示向量数组数据表示 在具有向量、数组数据表示的向量处理机上,表现出在硬件上设置有丰富的向量或阵列运算指令,配置有以流水或阵列方式处理的高速运算器,只需用一条如下的向量加法指令: 向量加 A向量参数 B向量参数 C向量参数 第 2 章 数据表示与指令系统 3. 堆栈数据表示堆栈数据表示 (1) 有若干高速寄存器组成的硬件堆栈,并附加

8、控制电路让它与主存中的堆栈区在逻辑上组成一个整体,使堆栈的访问速度是寄存器的,堆栈的容量是主存的。 (2) 有很丰富的堆栈操作类指令且功能很强, 直接可对堆栈中的数据进行各种运算和处理。 (3) 有力地支持高级语言程序的编译。 (4) 有力地支持子程序的嵌套和递归调用。 第 2 章 数据表示与指令系统 图 2.6 用堆栈实现子程序的嵌套和递归调用 第 2 章 数据表示与指令系统 2.1.3 引入数据表示的原则引入数据表示的原则 一方面是看系统的效率有否提高,即是否减少了实现时间和所需的存贮空间。衡量实现时间是否减少,主要是看在主存和处理机之间传送的信息量有否减少。 传送的信息量越少, 其实现时

9、间就会越少。第 2 章 数据表示与指令系统 是否引入某种高级数据表示的另一方面是看引入这种数据表示后, 其通用性和利用率是否高。如果只对某种数据结构的实现效率很高, 而对其他数据结构的实现效率很低,或者引入这种数据表示在应用中很少用到,那么为此所花的硬件过多却并未在性能上得到好处,必然导致性能价格比的下降, 特别是对一些复杂的数据表示。 第 2 章 数据表示与指令系统 2.1.4 浮点数尾数基值大小和下溢处理方法的选择浮点数尾数基值大小和下溢处理方法的选择 1. 浮点数尾数基值的选择浮点数尾数基值的选择 图 2.7 浮点数的一般格式 第 2 章 数据表示与指令系统 图 2.8 浮点数可表示实数

10、域中的值 第 2 章 数据表示与指令系统 2.2 寻寻 址址 方方 式式 2.2.1 寻址方式分析寻址方式分析 大多数计算机都将主存、通用寄存器、堆栈分类编址,因此就有分别面向寄存器、堆栈和主存的寻址方式。 面向寄存器的寻址方式操作数可以取自寄存器或主存,结果大多保存在寄存器中,少量的送入主存。面向堆栈的寻址方式主要访问堆栈,少量访问主存或寄存器。面向主存的寻址方式主要访问主存,少量访问寄存器。 第 2 章 数据表示与指令系统 一、编址方式二、寻址方式三、定位方式一、编址方式 1.需要编址的部件: 存储数据(主存、寄存器、堆栈);I/O设备 第 2 章 数据表示与指令系统 2.编址方式 统一编

11、址:所有从“0”开始 优点:可简化指令系统 缺点:使地址形成复杂化分类编址:各自从“0”开始 优点:指令短、地址形成简单、编址空间较大 缺点:区分每类部件的标志隐含编址: 事先约定好 优点:速度比较快,不必进行地址计算 缺点:不规范第 2 章 数据表示与指令系统 3.编址单位 字编址:编址单位同访问信息量 缺点:未支持非数值运算(字节)字节编址:最普遍,适合非数值运算 从任意位置开始:从任意位置开始: 不浪费存储资源;信息跨存储单元;硬件复杂;不浪费存储资源;信息跨存储单元;硬件复杂;从一个存储字的开始访问:从一个存储字的开始访问: 浪费空间:字节、半字、单字、双字;浪费空间:字节、半字、单字

12、、双字; 硬件简单,访问快;硬件简单,访问快;从地址的整数倍位置开始访问:从地址的整数倍位置开始访问: 不出现跨字信息,少浪费空间;不出现跨字信息,少浪费空间;第 2 章 数据表示与指令系统 图 2.13 各种宽度信息的存贮 第 2 章 数据表示与指令系统 各种信息在存贮器中存放的地址必须是:字节信息地址为 半字信息地址为 0 单字信息地址为 0 0 双字信息地址为 0 0 0 第 2 章 数据表示与指令系统 二、寻址方式 概念: 指令按什么方式访问到所需要的信息或数据 寻址能力包括: 多样性、灵活性、寻址空间范围大小、 地址变换速度 目的: 以最短的位描述给定的寻址方式第 2 章 数据表示与

13、指令系统 寻址方式分析: 大多数采用分类编址 三类: 面向寄存器 面向堆栈 面向主存第 2 章 数据表示与指令系统 比较:1)存储效率 堆栈型 通用寄存器型 支持高级语言和编译程序 支持子程序嵌套、递归调用 释放不用的单元及使用零地址2)运算速度 堆栈型通用寄存器型 减少访存,速度快 支持向量、矩阵 所以三类寻址方式都应当采用第 2 章 数据表示与指令系统 概念: 程序运行时必须装入主存,进行程序逻辑地址到主存物理地址的变换,称为进行程序的定位。1、逻辑地址与物理地址 逻辑地址:程序员编写程序时用的地址,各源程序或程序段从0开始编址。 物理地址:程序在主存中存放的实际地址。2.2.2 逻辑地址

14、与主存物理地址逻辑地址与主存物理地址 第 2 章 数据表示与指令系统 图图 2.11 逻辑地址空间到物理地址空间的变换逻辑地址空间到物理地址空间的变换 第 2 章 数据表示与指令系统 早期:机器语言编程,不需定位目前: *汇编语言和高级语言的使用(符号名代表地址) *程序的独立性-存储工作由OS完成 *程序的模块化-单独编写、编译 *动态数据结构-动态分配内存 *多任务、多用户 *大型程序第 2 章 数据表示与指令系统 2、定位方式分类 直接定位-装入主存前 静态定位-装入主存过程中进行变换 动态定位-装入主存后,程序运行中变换程序员编程或源程序编译时可以确切的知道程序占用的主存物理空间。 适

15、合:单任务系统或多任务系统固定各区 较少使用*利用Von neumann型机器指令可修改的特点,要求修改地址的指令或数据带有特殊标志;*软件方法-定位装入程序*集中一次完成,不可移动(每次装入的位置可不同) 优点:全软件实现; 可对多个程序段静态链接;缺点:主存利用率不高; 程序太大需要用“覆盖技术”; 程序不能共享;引入:60年代起多道程序广泛采用,提出指令不允许修改以支持可再入性和重叠、流水等新技术;实现:基址寻址技术-程序直接装入主存,起始地址存入对应该程序的基址寄存器中。程序执行中通过地址加法器将逻辑地址与基址相加形成物理地址访存。优点:硬件实现速度快;主存利用率高; 程序可共享;支持

16、虚拟存储器;缺点:存储管理算法复杂;硬件开销大; 第 2 章 数据表示与指令系统 图 2.12 基址寻址 第 2 章 数据表示与指令系统 指令一般由两部分组成:一部分是操作码,另一部分是操作地址码。当操作数地址为隐式时(如堆栈的操作,默认为栈顶),后一部分则不是必须的。根据指令地址码部分中显式指明的地址个数,则可形成零地址、单地址、二地址、三地址及四地址指令。 2.3 指令系统的设计和优化指令系统的设计和优化 第 2 章 数据表示与指令系统 我们说的确定指令格式主要就是选择指令字中的操作码长度和地址数。指令字的长度有定长和变长两种。 我们着重要讨论的问题是指令格式的优化问题,优化就是以较少的格

17、式,以尽可能短的码长来实现各种指令编码。指令字包括操作码和地址码,所以对这两部分都采取优化措施。第 2 章 数据表示与指令系统 设计原则: 有利于性能价格比 有利于发展改进设计内容: 1指令格式优化设计 2指令功能优化设计第 2 章 数据表示与指令系统 2.3.1 指令格式的优化指令格式的优化 -如何用最短的位数来表示指令的操作信息和地址信息,使程序中指令的平均字长最短。主要目标:节省程序存储空间; 指令格式尽量规整,简化译码; 优化后执行速度不降低; 1、操作码的优化2、地址码的优化第 2 章 数据表示与指令系统 (1)定长操作码一个字节表示规整、译码简单;有冗余信息,总长增加;没有体现各指

18、令的特点;(2)哈夫曼编码-1952年提出,减少报文字数第 2 章 数据表示与指令系统 1. 操作码的优化表示操作码的优化表示 某模型机指令使用频度举例 第 2 章 数据表示与指令系统 现设一台模型机,共有 7 种不同的指令,使用频度如表 2.5 所示。若操作码用定长码表示需要 3 位。按信息论观点,当各种指令的出现是相互独立的(实际情况并不都是如此)时候,操作码的信息源熵(信息源所包含的平均信息量)H为-pi log2 pi ,由于操作码信息是用二进制位表示的, 则H=-pi log2 pi 按表 2.5 的数据, 得H=0.401.32+0.301.74+0.152.74+0.054.32

19、 +0.044.64+0.035.06+0.035.06 =2.17第 2 章 数据表示与指令系统 说明表示这 7 种指令,操作码平均只需 2.17 位就够了。 采用 3 位定长操作码表示的信息冗余量 %)28(28. 0317. 23即操作码的实际平均长度操作码的实际平均长度 H相当大。 为减少信息冗余, 可改用哈夫曼编码。 第 2 章 数据表示与指令系统 操作码的优化。这要用到哈夫曼压缩的概念。哈夫曼压缩法是一种频率相关的编码方法,即出现频率高的字符编码短,频率低的字符编码长,这样可以缩短平均码长。我们要掌握的是用哈夫曼树实现哈夫曼编码。其方法很简单:第 2 章 数据表示与指令系统 根据所

20、给的各种指令使用频率,把它们从小到大依次排好作为叶结点(相同的频率可任取一个排在前),然后把最小的两个结点值(频率)相加,形成一个新结点,以这个结点的值与其他的叶结点值比较大小,仍旧取最小的两个结点值合并产生新结点,直到最终合并为一个根(通常这个值是1或100)。简单地记为:从小到大排序,从小到大排序,最小两个合并,最小两个合并,重复上述过程,重复上述过程,只剩一个结束。只剩一个结束。第 2 章 数据表示与指令系统 编码时,从根结点开始向下,凡左边分支都编为1,右边分支都编为0(也可取反),则从根结点到叶结点的一条路径上的编码组合就是该指令的哈夫曼编码。注意,哈夫曼树不是唯一的(因为相同的频率

21、可以任取一个在前,且编码时又可任取左1或左0),但所得的平均码长应是一样的。由于哈夫曼编码得到的码长很不规整,所以有时候要采用哈夫曼扩展编码,就是在哈夫曼码的基础上对码长加以限制(取几个确定的长度如2位、4位等),对编码作适当改变。第 2 章 数据表示与指令系统 操作码的哈夫曼编码及扩展操作码编码 第 2 章 数据表示与指令系统 图 2.14 哈夫曼树举例 第 2 章 数据表示与指令系统 只要采用全哈夫曼编码,操作码的平均码长肯定是唯一的。如此例,操作码的平均码长 )(20. 2503. 0503. 0504. 0505. 0315. 0230. 0140. 071位iiilp非常接近于可能的

22、最短位数(H)2.17位。这种编码的信息冗余为 %36. 120. 217. 220. 2第 2 章 数据表示与指令系统 B1700 操作码编码方式比较操作码编码方式比较 第 2 章 数据表示与指令系统 图 2.15 15/15/15 编码法和 8/64/512 编码法 第 2 章 数据表示与指令系统 2. 指令字格式的优化指令字格式的优化 只对操作码进行优化是不够的,例如图 2.16 任意长指令字在按位编址主存中存贮的情况 第 2 章 数据表示与指令系统 等长地址码发挥不出操作码 第 2 章 数据表示与指令系统 如IBM 370 的指令中为访存, 采用基址寻址, 地址码可有如下形式: 第 2

23、 章 数据表示与指令系统 又如将访存地址空间分为若干个段,这样,访存地址就由段号和段内地址两部分组成: 段 号 段内地址 第 2 章 数据表示与指令系统 图 2.18 在定长指令字内实现多种地址制 第 2 章 数据表示与指令系统 同种地址制下的多种地址形式和长度 第 2 章 数据表示与指令系统 如果让最常用的操作码最短,其地址码字段个数越多,就越能使指令的功能增强,越可以从宏观上减少所需的指令条数。 例如,为实现A+BC,采用单地址指令需经取A、加B、 送C 3 条指令完成, 而采用 3 地址指令 加ABC则只需一条指令即可完成。这不仅进一步缩短了程序的占用空间,也会因为减少了访存取指令次数而

24、加快程序执行的速度。 第 2 章 数据表示与指令系统 地址码个数的选择地址码个数的选择 地址码个数通常有三个、两个、一个及个等四种情况 评价地址码个数应该取多少的标准主要有两个: 一是程序的存储容量,包括操作码和地址码 二是程序的执行速度,以程序执行过程中访问主存的信息量代表第 2 章 数据表示与指令系统 通过一个典型例子来分析: 例如:计算算术表达式: fedcbax*第 2 章 数据表示与指令系统 用三地址指令编写的程序如下:用三地址指令编写的程序如下: MUL X, A, B ;X单元暂时用来存放中间运算结果 ADD X, X, C SUB X, X, D ;X单元中存放的是分子运算的结

25、果 ADD Y, E, F ;计算分母 DIV X, X, Y ;最后运算结果在X单元中 第 2 章 数据表示与指令系统 用普通二地址指令编写的程序如下:用普通二地址指令编写的程序如下: MOVE X, A ;复制一个临时变量到X单元中 MUL X, B ADD X, C SUB X, D ;X单元中存放的是分子运算的结果 MOVE Y, E ;复制一个临时变量到Y单元中 ADD Y, F ;Y单元中存放的是分母运算的结果 DIV X, Y ;最后运算结果在X单元中第 2 章 数据表示与指令系统 采用通用寄存器结构的二地址指令编写的程序如下:采用通用寄存器结构的二地址指令编写的程序如下: MO

26、VE R1, A ;把操作数a取到R1通用寄存器中 MUL R1, B ADD R1, C SUB R1, D ;通用寄存器R1中存放分子运算结果 MOVE R2, E ADD R2, F ;通用寄存器R2中存放分母运算结果 DIV R1, R2 ;最后运算结果在通用寄存器R1中 MOVE X, R1 ;把最后运算结果存入X单元中第 2 章 数据表示与指令系统 用一地址指令编写的程序如下:用一地址指令编写的程序如下: LOAD E ;先计算分母,取一个操作数到累加器中 ADD F ;分母运算结果在累加器中 STORE X ;保存分母运算结果,腾出累加器 LOAD A ;取分子的一个操作数到累加

27、器中 MUL B ADD C SUB D ;累加器中是分子运算结果 DIV X ;最后运算结果在累加器中 STORE X ;保存最后运算结果到X单元中第 2 章 数据表示与指令系统 首先转换成逆波兰表达式:首先转换成逆波兰表达式:ab*c+d-ef+/,程序如下: PUSH A ;操作数a压入堆栈 PUSH B ;操作数a压入堆栈 MUL ;栈顶的两个操作数做乘法,结果压回堆顶 PUSH C ADD PUSH D SUB ;栈顶是分子运算的结果 PUSH E PUSH F ADD DIV ;栈顶是最后运算的结果 POP X ;保存最后运算结果第 2 章 数据表示与指令系统 P表示操作码长度,A

28、表示地址码长度,D表示数据长度,R表示通用寄存器的地址码长度,B表示字节数。并取:D2A8P16R8B 地址数目指令条数访存次数程序存储量执行速度(访存信息量)三地址5205P15A65B5P15A15D185B二地址7267P14A63B7P14A19D215B一地址9189P 9A45B9P 9A 9D117B零地址124112P7A40B12P7A29D272B二地址R型8158P+7A+9R40B8P+7A+9R+7D96B第 2 章 数据表示与指令系统 各种不同地址数指令的特点及适用场合 地址数目指令长度程序存储量程序执行速度适用场合三地址短最大一般向量,矩阵运算为主二地址一般很大很

29、低一般不宜采用一地址较长较大较快连续运算,硬件结构简单零地址最长最小最低嵌套,递归,变量较多二地址R型一般最小最快多累加器,数据传送较多第 2 章 数据表示与指令系统 地址码个数结论:地址码个数结论:1、对于一般处理机,采用通用寄存器结构二地址指令是最理想的,其程序存储器容量最省,指令执行速度最快。2、如果强调硬件结构简单,并且以连续运算(如求累加和等)为主,宜采用一地址结构。3、对于以向量,矩阵运算为主的计算机系统,最好采用三地址结构。4、对于解决以递归问题为主的计算机系统,宜采用零地址结构。第 2 章 数据表示与指令系统 缩短地址码长度的方法缩短地址码长度的方法目的:目的:用一个短的地址码

30、表示一个大的逻辑地址空间 用间址寻址方式缩短地址码长度在主存储器的低端开辟一个专门存放地址区域, 用变址寻址方式缩短地址码长度由于程序的局部性,变址寻址方式中的地址偏移量比较短, 用寄存器间接寻址方式缩短地址码长度,很有效的方法例如,16个间址寄存器,用4位地址码就能表示一个任意长的逻辑地址用来支持间接寻址的寄存器,可以借用通用寄存器 第 2 章 数据表示与指令系统 指令格式设计举例指令格式设计举例 第 2 章 数据表示与指令系统 虽然IBM 370 大部分都采用 8 位定长操作码, 但对某些指令(尤其是原 360 指令系统中没有的), 如启动I/O、 测试I/O、 暂停I/O、 页面清除、

31、访问方式位的复位、绝对时钟设置等特殊指令, 其操作码由 8 位扩展到 16 位。采用 8 位操作码的主要指令格式有 5 种,如图 2.20 所示。其中R1, R2, R3表示操作数寄存器和结果寄存器号,B1, B2表示基址寄存器号,D1, D2为相对位移量。它们分别由操作码的最高二位状态来指明其长度和格式。 规则为: 第 2 章 数据表示与指令系统 00 为RR格式, 指令字长 16 位;01 为RX格式, 指令字长 32 位;10 为RS或SI格式, 指令字长 32 位;11 为SS格式, 指令字长 48 位。 第 2 章 数据表示与指令系统 图 2.20 IBM 370 指令的主要格式 第

32、 2 章 数据表示与指令系统 如果整条指令是定长的,那么使地址码的宽度应随不同指令变化,以配合操作码形成定长指令;也可以通过改变指令字中的地址数和地址码的长度,以使单地址及多址都可以在一条指令中使用;如果操作码和地址码之外还有空余的码位,则设法用来存放立即操作数或常数。第 2 章 数据表示与指令系统 基本指令系统:基本指令系统:通用计算机系统的5类基本指令数据传送类指令数据传送类指令 运算类指令运算类指令 程序控制指令程序控制指令 输入输出指令输入输出指令 处理机控制和调试指令处理机控制和调试指令 第 2 章 数据表示与指令系统 1、数据传送类指令,、数据传送类指令, 由如下三个主要因素决定:

33、(1) 数据存储设备的种类数据存储设备的种类(2) 数据单位:字、字节、位、数据块等数据单位:字、字节、位、数据块等(3) 采用的寻址方式采用的寻址方式 指令种类指令种类(以字为传送单位,不考虑寻址方式等):通用寄存器通用寄存器通用寄存器通用寄存器通用寄存器通用寄存器主存储器主存储器通用寄存器通用寄存器堆栈堆栈主存储器主存储器通用寄存器通用寄存器主存储器主存储器主存储器主存储器主存储器主存储器堆栈堆栈堆栈堆栈通用寄存器通用寄存器堆栈堆栈主存储器主存储器第 2 章 数据表示与指令系统 2、运算类指令、运算类指令 考虑四个因数的组合:考虑四个因数的组合:(1) 操作种类:加、减、乘、除、与、或、非

34、、异或、比操作种类:加、减、乘、除、与、或、非、异或、比较、移位、检索、转换、匹配、清除、置位等较、移位、检索、转换、匹配、清除、置位等(2) 数据表示:定点、浮点、逻辑、十进制、字符串、定数据表示:定点、浮点、逻辑、十进制、字符串、定点向量等点向量等(3) 数据长度:字、双字、半字、字节、位、数据块等数据长度:字、双字、半字、字节、位、数据块等(4) 数据存储设备:通用寄存器、主存储器、堆栈等数据存储设备:通用寄存器、主存储器、堆栈等 第 2 章 数据表示与指令系统 以加法指令为例,一般应设置如下几种:以加法指令为例,一般应设置如下几种:寄存器寄存器-寄存器型的寄存器型的 定点单字长加法指令

35、定点单字长加法指令寄存器寄存器-寄存器型的寄存器型的 定点双字长加法指令定点双字长加法指令寄存器寄存器-寄存器型的寄存器型的 定点半字加法指令定点半字加法指令寄存器寄存器-寄存器型的寄存器型的 字节加法指令字节加法指令寄存器寄存器-寄存器型的寄存器型的 浮点单字长加法指令浮点单字长加法指令寄存器寄存器-寄存器型的寄存器型的 浮点双字长加法指令浮点双字长加法指令寄存器寄存器-寄存器型的寄存器型的 单字长逻辑加法指令,单字长逻辑加法指令,寄存器寄存器-寄存器型的寄存器型的 定点向量加法指令定点向量加法指令寄存器寄存器-寄存器型的寄存器型的 浮点向量加法指令浮点向量加法指令第 2 章 数据表示与指令

36、系统 对于移位指令,要组合以下三个因素:(1) 移位方向:左移(L)、右移(R)(2) 移位种类:算术移位(A)、逻辑移位(L)、循环移位(R)(3) 移位长度:单字长(S)、双字长(D)组合起来:32212种,因逻辑左移与算术左移相同,第 2 章 数据表示与指令系统 移位指令应该有10种,分别是:SLAS 单字长算术左移SRAS 单字长算术右移SLLS(SRLS) 单字长逻辑左移,或单字长算术左移SLRS 单字长循环左移SRRS 单字长循环右移SLAD 双字长算术左移SRAD 双字长算术右移SLLD(SRLD) 双字长逻辑左移,或双字长算术左移SLRD 双字长循环左移SRRD 双字长循环右移

37、 位操作指令:置位、清位、位测试、找位等 字符串指令:比较、查找、匹配、转换等第 2 章 数据表示与指令系统 3、程序控制指令、程序控制指令 主要包括三类:转移指令、调用和返回指令、循环控制指令转移条件主要有:零转移条件主要有:零(Z)、正负、正负(N)、进位、进位、溢出溢出(V)及它们的组合及它们的组合第 2 章 数据表示与指令系统 主要条件转移指令有:主要条件转移指令有:BEQ 等于零转移BNEQ 不等于零转移BLS 小于转移BGT 大于转移BLEQ 小于等于转移,或不大于转移BGEQ 大于等于转移,或不小于转移BLSU 不带符号小于转移BGTU 不带符号大于转移BLEQU 不带符号小于等

38、于转移,或不带符号不大于转移BGEQU 不带符号大于等于转移,或不带符号不小于转移BCC 没有进位转移BCS 有进位转移BVC 没有溢出转移BVS 有溢出转移第 2 章 数据表示与指令系统 程序调用和返回指令:程序调用和返回指令:CALL 转入子程序转入子程序RETURN 从子程序返回从子程序返回本身可以带有条件,本身可以带有条件,中断控制指令:中断控制指令:开中断、关中断、改变屏蔽、开中断、关中断、改变屏蔽、中断返回、自陷等中断返回、自陷等 第 2 章 数据表示与指令系统 4、输入输出指令、输入输出指令 主要有:启动、停止、测试、控制设备,数据输入、输出操作等采用单一的直接寻址方式, 在多用

39、户或多任务环境下,输入输出指令属于特权指令 也可以不设置输入输出指令输入输出设备与主存储器共用同一个零地址空间第 2 章 数据表示与指令系统 5、处理机控制和调试指令 处理机状态切换指令 处理机至少有两个或两个以上状态 硬件和软件的调试指令硬件调试指令:钥匙位置、开关状态的读取, 寄存器和主 存单元的显示等软件调试指令:断点的设置、跟踪,自陷井指令等第 2 章 数据表示与指令系统 指令系统性能指令系统性能 完整性是指应该具备的基本指令种类,通用计算机的5类基本指令 规整性包括对称性和均匀性对称性:所有寄存器头等对称, 操作码的设置等都要对称,如:AB与BA均匀性:不同的数据类型、字长、存储设备

40、、操作种类要设置相同的指令 高效率:指令的执行速度要快 指令的使用频度要高 各类指令之间要有一定的比例 兼容性:在同一系列机内指令系统不变(可以适当增加)第 2 章 数据表示与指令系统 第 2 章 数据表示与指令系统 2.4 按增强指令功能的方向发展与改进指令系统按增强指令功能的方向发展与改进指令系统 指令系统的优化设计有两个截然相反的方向:指令系统的优化设计有两个截然相反的方向: 1复杂指令系统计算机CISC(Complex Instruction Set Computer) 增强指令功能,设置功能复杂的指令 面向目标代码、面向高级语言、面向操作系统 用一条指令代替一串指令传统主流:IBM3

41、70、VAX、微机IntelX86、AMD 指令条数几百条 2精简指令系统计算机RISC(Reduced Instruction Set Computer) 简化指令功能,只保留功能简单的指令 较复杂的功能用子程序来实现服务器主流:SUN SPARC、IBM PowerPC第 2 章 数据表示与指令系统 CISC结构和RISC结构的重要区别之一就是在于其指令的功能强弱上。一般,CISC结构追求的目标是强化指令功能,以达到提高性能的目的。 通过对诸如IBM370、VAX-11/780、Intel公司的APX等CISC计算机进行分析,可以发现增强这些机器的指令功能主要是从如下几个方面着手。 第 2

42、 章 数据表示与指令系统 1、面向目标程序的优化 -最直接的优化方法优化的指标:缩短程序的长度-空间开销 缩短程序的执行-时间开销 (一) CISC-加强指令功能方向 面向目标程序 面向高级语言 面向操作系统第 2 章 数据表示与指令系统 对大量目标程序及其执行情况进行统计分析,可以发现有些指令或者指令串的使用频度较高。 如果增强这些指令的功能,并加快其执行,或者将常用的指令串用一条新的指令来替代:减少目标程序存取指令的次数,加快目标程序的执行缩小程序目标代码的长度。这种面向目标程序增强指令功能主要有如下一些方法。 第 2 章 数据表示与指令系统 优化方法:统计指令和指令串的使用频度 静态使用

43、频度 侧重减少占用空间 动态使用频度 侧重减少运行时间 哈夫曼方法 高频指令 增强功能,加快执行,缩短长度 高频指令串 增加新指令,软件向后兼容 低频指令 取消或合并到其他指令中第 2 章 数据表示与指令系统 2、面向高级语言的优化缩短高级语言与机器语言的语义差异第 2 章 数据表示与指令系统 增加对高级语言和编译系统支持的指令功能 对源程序中各种高级语言语句进行使用频度的统计与分析,对于使用频度高的语句,可以设置专门的指令或采取措施增加相应指令的功能,以提高其编译速度和执行速度。 第 2 章 数据表示与指令系统 (2) 高级语言计算机指令系统采用了上述各种对高级语言和编译程序提供支持的措施后

44、,机器语言和高级语言的语义差距比传统的冯诺依曼型机器缩小了许多。这种机器统称为面向高级语言(HL)的机器。在这种机器中,对高级语言解释的份量明显增大。如果进一步增大解释的比重,直至几乎没有语义差距,则可达到使高级语言成为机器的汇编语言。即高级语言和机器语言是一一对应的,这种机器称为间接执行型高级语言机器。它用汇编的方法把高级语言源程序翻译成机器语言程序。 第 2 章 数据表示与指令系统 从面向编译程序,尤其是从优化代码生成的角度进行考虑,增加指令集结构的规 整性来改进指令系统。所谓规整性,是指没有或尽可能减少例外的情况和特殊的应用,以及所有运算都能对称、均匀地在存储器单元或寄存器单元之间进行。

45、如 IBM370的指令集就多少有些不规整,有些指令只能使用指定的寄存器。这样,在编译时,对这些指令就需先把它们要用到的寄存器腾出来,并把要用到的数据移入这些指定的寄存器。这些都增加了不是运算所必须的数据传送操作,并使得对通用寄存器的优化管理更加复杂化。 第 2 章 数据表示与指令系统 3、面向、面向OS的优化的优化 计算机体系结构与操作系统是紧密联系的,操作系统的实现在很大程度上取决于体系结构的支持。这主要表现在对中断处理、进程管理、存储管理和保护、系统工作状态的建立与切换等的支持。就指令系统而言,虽然它不能全面反映体系结构对操作系统的支持,但对其主要方面均有反映。我们可以通过设置支持系统工作

46、状态和访问方式转移的指令、支持进程转移的指令、支持进程同步和互斥的指令等措施,来达到优化实现操作系统的目的。 第 2 章 数据表示与指令系统 核心:缩短OS与系统结构语义差距, 减少OS辅助操作时间,节省OS占用空间思路思路1:统计统计OS常用指令和指令串的使用常用指令和指令串的使用频度,进行分析改进;频度,进行分析改进; 效果有限思路思路2:增设专用于支持增设专用于支持OS的新指令;的新指令; 如:多进程使用公用区测试与设置指令 多进程防止死锁比较与交换指令第 2 章 数据表示与指令系统 图图 2.25 A、 B进程共用进程共用K公用区独立给公用区独立给C增值增值 第 2 章 数据表示与指令

47、系统 3、面向、面向OS的优化的优化思路思路3:硬件、固件实现硬件、固件实现OS的某些功能的某些功能-使用频使用频繁、影响速度繁、影响速度如:VAX11-780为进程切换设置相关指令 保存进程关联信息、恢复进程关联信息 堆栈机HP-300设置PCAL、EXIT指令 支持程序嵌套与递归调用思路思路4:发展由专门的处理机完成发展由专门的处理机完成OS功能的分布功能的分布式系统结构式系统结构第 2 章 数据表示与指令系统 RISC与CISC技术两者的主要区别在于设计思想上的差别,RISC的设计思想是;将那些不是最频繁使用的功能(指令)由软件来加以实现,这样就可以优化硬件,并可使其执行得更快。在第一章

48、中我们学过计算机系统的设计的准则,第一个准则就是:只加速使用频率高的部件。RISC的设计思想与此完全吻合。 CISC越来越指令结构复杂,设计非常困难第 2 章 数据表示与指令系统 1979年,美国加洲伯克分校以David Patterson为首的研究小组进一步研究表明CISC结构存在着如下缺点 :1在CISC结构的指令系统中,各种指令的使用频率相差悬殊。据统计,有20的指令使用频率最大,占运行时间的80。也就是说,有80的指令在20的运行时间内才会用到。例如:2.4.3 按简化指令功能的方向发展与改进指令系统按简化指令功能的方向发展与改进指令系统 1. 精简指令系统思想的提出精简指令系统思想的

49、提出 第 2 章 数据表示与指令系统 2CISC结构指令系统的复杂性带来了计算机体系结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。3CISC结构指令系统的复杂性给VLSI设计增加了很大负担,不利于单片集成。4CISC结构的指令系统中,许多复杂指令需要很复杂的操作,因而运行速度慢。 5在CISC结构的指令系统中,由于各条指令的功能不均衡性,不利于采用先进的计算机体系结构技术(如流水技术)来提高系统的性能。第 2 章 数据表示与指令系统 针对CISC结构存在的这些问题, Patterson等人提出了精简指令系统计算机的设想。通过精减指令来使计算机结构变得简单、合理、有效,并克服

50、CISC结构的上述缺点。他们提出了设计RISC机器应当遵循的一般原则。 这些原则包括: (1) 确定指令系统时,只选择使用频度很高的那些指令,在此基础上增加少量能有效支持操作系统和高级语言实现及其他功能的最有用的指令,让指令的条数大大减少,一般不超过 100 条。 第 2 章 数据表示与指令系统 (2) 大大减少指令系统可采用的寻址方式的种类,一般不超过两种。简化指令的格式,使之也限制在两种之内,并让全部指令都具有相同的长度。 (3) 让所有指令都在一个机器周期内完成。 (4) 扩大通用寄存器的个数,一般不少于 32 个寄存器, 以尽可能减少访存操作,所有指令中只有存(STORE)、取(LOA

51、D)指令才可访存,其他指令的操作一律都在寄存器间进行。 (5) 为提高指令执行速度,大多数指令都采用硬联控制实现, 少数指令采用微程序实现。 (6) 通过精简指令和优化设计编译程序,以简单有效的方式来支持高级语言的实现。 第 2 章 数据表示与指令系统 根据以上原则,Patterson等人研制出 32位RISC CPU:RISC I和RISC II31条指令(算术/逻辑类12条,存取类8条,程序控制类7条,其他4条);3种数据类型;2种寻址方式(变址、相对);按字节编址,指令32位,多为3地址;单周期;78个寄存器;比较效果: RISC I Z8000 MC68000设计错误 12个 60 7

52、0布线错误 12个 100 70控制部分占CPU面积 6% 53% 50%第 2 章 数据表示与指令系统 RISC的定义与特点的定义与特点 卡内基梅隆Carnegie Mellon)大学论述RISC特点:大多数指令在单周期内完成。2、LOAD/STORE结构。3、硬布线控制逻辑。4、减少指令和寻址方式的种类。5、固定的指令格式。6、注重编译优化技术。 第 2 章 数据表示与指令系统 90年代初,IEEE对RISC定义的描述:1、RISC为使流水线高效率执行,应具有下述特征:(1) 简单而统一格式的指令译码。(2) 大部分指令可以单周期执行完成。(3) 只有LOAD和STORE指令可以访问存储器

53、。(4) 简单的寻址方式。(5) 采用延迟转移技术(6) 采用LOAD延迟技术2、RISC为使优化编译器便于生成优化代码,应具有下述特征:(1) 三地址指令格式。(2) 较多的寄存器。(3) 对称的指令格式。第 2 章 数据表示与指令系统 减少减少CPI是是RISC思想的精华思想的精华程序执行时间的计算公式: 这个程序所使用的总的时间ICPIT其中: I是这个程序所需执行的总的指令条数; CPI(Cycles Per Instruction)是每条指令执行的平均周期数; T是一个周期的时间长度。第 2 章 数据表示与指令系统 RISC的速度要比的速度要比CISC快快3倍左右倍左右,关键是关键是

54、RISC的的CPI减小了减小了 硬件方面:采用硬布线控制逻辑 减少指令和寻址方式的种类 使用固定的指令格式 采用LOAD/STORE结构 指令执行过程中设置多级流水线等 软件方面:十分强调优化编译技术的作用 RISC设计思想也可以用于CISC中例如:Intel公司的80 x86处理机的CPI在不断缩小, 8088的CPI大于20, 80286的CPI大约是5.5, 80386的CPI进一步减小到4左右, 80486的CPI已经接近2, Pentium处理机的CPI已经与RISC十分接近。 目前,超标量、超流水线处理机的CPI已经达到0.5,第 2 章 数据表示与指令系统 3. RISC结构采用

55、的基本技术结构采用的基本技术(1) 遵循按RISC机器一般原则设计的技术。 (2) 在逻辑上采用硬联实现和微程序固件实现相结合的技术。 (3) 在CPU中设置数量较大的寄存器组, 并采用重叠寄存器窗口的技术。 (4) 指令的执行采用流水和延迟转移技术。 (5) 采用认真设计和优化编译系统设计的技术。 第 2 章 数据表示与指令系统 RISC的关键技术的关键技术 1、延时转移技术、延时转移技术 定义:定义:为了使指令流水线不断流,在转移指令之后插入一条有效的指令,而转移指令被延迟执行,这种技术称为延迟转移技术。采用指令延迟转移技术时,指令序列的调整由编译器自动采用指令延迟转移技术时,指令序列的调整由编译器自动进行,进行,即是使转移指令在准备将控制转向目标指令的同时,执行紧随在转移指令之后的那条指令,也就是是在将转移指令后延迟槽内的指令执行完毕后,才发生真正的转移(不论转移是否成功),这种优化技术可在保证程序正确执行的同时又可避免延迟转移中损失的一个机器周期时间。 第 2 章 数据表示与指令系统 采用延迟转移技术的两个限制条件采用延迟转移技术的两个限制条件(1)被移动指令在移动过程中所经过的指令之间不能有数据相关(2)被移动的指令不破坏条件码,至少不影响后面的指令使用条件码 如果找不到符号条件的指令,必须在条件转移指令后面插入空

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论