计算机系统结构第二章指令系统.ppt
《计算机系统结构第二章指令系统.ppt》由会员分享,可在线阅读,更多相关《计算机系统结构第二章指令系统.ppt(139页珍藏版)》请在三一办公上搜索。
1、1,2.1 数据表示2.2 寻址技术2.3 指令格式的优化设计2.4 指令系统的功能设计2.5 RISC指令系统2.6 VLIW指令系统,第2章 指 令 系 统,在机器上直接运行的程序是由指令组成的。指令系统是软件与硬件之间的一个主要分界面,也是他们之间互相沟通的一座桥梁。硬件设计人员采用各种手段实现指令系统,而软件设计人员则使用这些指令系统编制系统软件和应用软件,用这些软件来填补指令系统与人们习惯的使用方式之间的语义差距。指令系统设计必须由软件设计人员和硬件设计人员共同来完成。指令系统发展相当缓慢,需要用软件来填补的东西也就越来越多。,本章主要内容有三大方面:数据表示寻址技术指令系统设计有三
2、种类型的指令系统:CISC:复杂指令系统RISC:精简指令系统VLIW:超长指令字指令系统设计:指令的格式设计指令系统的功能设计指令系统的性能评价,2.1 数据表示,2.1.1 数据表示与数据类型2.1.2 浮点数的表示方法2.1.3 浮点数格式设计2.1.4 浮点数的舍入处理2.1.5 警戒位的设置方法2.1.6 自定义数据表示,2.1.1 数据表示与数据类型,数据表示的定义:数据表示是指计算机硬件能够直接识别,可以被指令系统直接调用的那些数据类型。例如:定点、逻辑、浮点、十进制、字符、字符串、堆栈和向量等数据类型:文件、图、表、树、阵列、队列、链表、栈、向量、串、实数、整数、布尔数、字符等
3、确定哪些数据类型用数据表示实现,是软件与硬件的取舍问题,确定数据表示的原则 一是缩短程序的运行时间 二是减少CPU与主存储器之间的通信量 三是这种数据表示的通用性和利用率 数据表示在不断发展 例如:矩阵、树、图、表及自定义数据表示 等已经开始用于数据表示中例2.1:计算CAB,其中,A、B、C均为 200200的矩阵。分析采用向量数据表示 的作用。,解:如果在没有向量数据表示的计算机上实现,一般需要6条指令,其中有4条指令要循环4万次。因此,CPU与主存储器之间的通信量:取指令:2440,000条,读或写数据:340,000个,共要访问主存储器:740,000次以上如果有向量数据表示,只需要一
4、条指令。减少访问主存(取指令)次数440,000次,用软件和硬件结合的方法实现新的数据表示 用字节编址和字节运算指令来支持字符串数据表示 用变址寻址方式来支持向量数据表示因此,设计计算机系统时,要确定哪些数据类型用硬件实现,即数据表示;哪些数据类型用软件实现,即数据结构;哪些数据类型用软件和硬件混合实现。,2.1.6 自定义数据表示,一般处理机中的数据表示方法数据存储单元(寄存器、主存储器、外存储器等)只存放纯数据,数据的属性通过指令中的操作码来解释:数据的类型,如定点、浮点、字符、字符串、逻辑数、向量等;进位制,如2进制、10进制、16进制等;数据字长,如字、半字、双字、字节等;寻址方式,如
5、直接寻址、间接寻址、相对寻址、寄存器寻址等;数据的功能,如地址、地址偏移量、数值、控制字、标志 等;同一种操作(如加法)通常有很多条指令。P65表2.13,在高级语言和应用软件中,每种操作通常只有一种,数据的属性在数据被引用之前就已经定义好了。数据的属性由数据自己定义;在高级语言与机器语言之间的语义差距,要靠编译器等填补。Burroughs公司在大型机中引入自定义数据表示方式和带标志符的数据表示方式,1.带标志符的数据表示法 在B5000大型机中,每个数据有一位标志符 在B6500和B7500大型机中,每个数据有三位 来标志符 在R-2巨型机中采用10位标志符,R-2巨型机中的标志符 功能位:
6、操作数、指令、地址、控制字 陷井位:由软件定义四种捕捉方式 封写位:指定数据是只读的还是可读可写 类型位:二进制,十进制,定点数,浮点数,复数,字符串,单精度,双精度;绝对地址、相对地址、变址地址、未连接地址等。标志符由编译器或其它系统软件建立,对高级语言程序员透明程序(包括指令和数据)的存储量分析 数据存储量增加,指令存储量减少。,例2.13:假设X处理机的数据不带标志符,其指 令字长和数据字长均为32位;Y处理机的数据 带标志符,数据字长增加至35位,其中3位是 标志符,其指令字长由32位减少至30位。并 假设一条指令平均访问两个操作数,每个操 作数平均被访问R次。分别计算这两种不同类 型
7、的处理机中程序所占用的存储空间。指令总条 数为I。解:X和Y处理机程序占用的存储空间总和分别 为:和,程序占用存储空间的比值:当R3时,有,在实际应用中经常是 R10,即带标志符的处理机所占用的存储空间通常 要小。,常规数据表示方法 与带标志符数据表示方法 的比较,2.数据描述符表示法对于向量、矩阵、数组等,每个数据的属性相同,没有必要都带标志符。数据描述符与标志符的区别:标志符只作用于一个数据,而数据描述符要作用于一组数据。描述符一般单独存放,独立占一个存储单元,描述出一组数据的属性,包括整个数据块的访问地址、长度等信息。,2.数据描述符表示法Burroughs公司生产的B-6700机中采用
8、的数据描述符表示方法。最高三位为101时表示数据描述符,最高三位为000时表示数据。,例 P70 存放一个34矩阵。,2.2 寻址技术,寻找操作数及其地址的技术称为寻址技术,是软件与硬件的一个主要分界面。研究内容包括:2.2.1 编址方式 2.2.2 寻址方式 2.2.3 定位方式 重点:寻址方式的选择,2.2.1 编址方式,对各种存储设备进行编码的方法。主要内容:编址单位、零地址空间个数、并行存储器的编址、输入输出设备的编址1.编址单位常用的编址单位:字编址、字节编址、位编址、块编址等字编址实现最容易,因为每个编址单位与设备的访问单位相一致,即每个编址单位所包含的信息量与访问一次设备所获取的
9、信息量相同。每取完一条指令,程序计数器加1,每从主存中读出一个数据,地址计数器加1,地址信息、存储容量没有浪费。字节编址适应非数值计算的需要,能够使编址单位与信息的基本单位(一个字节)相一致。通常主存的字长是一个字节的4倍以上,有的达到几十倍。由于编址字长与存储器的访问字长不一致,数据如何在主存中存放?,2.2.1 编址方式,编址单位与访问字长 一般:字节编址,字访问 部分机器:位编址,字访问 辅助存储器:块编址,位访问,字节编址字访问的优点:有利于符号处理 字节编址字访问的问题:(1)地址信息浪费 对于32位机器,浪费2位地址(最低2位地址)对于64位机器,浪费3位地址(2)存储器空间浪费(
10、3)读写逻辑复杂(4)大端(Big Endin)与小端(Little Endian)问题,不浪费存储器资源,可能有的四种不同长度的数据一个接一个存放。两个缺点:(1)当要访问一个双字、一个单字或半字时,有可能花两个存储周期。(2)存储器的读写控制比较复杂。当从存储器中读出一个字节时,首先用除掉最低3位之外的其余地址去读主存,将从主存中读出8个字节。然后用地址的低3位控制一套多路开关从8个字节数据中选择一个。写的方法类似,读出和写入只需一个存储周期,why?,读一个字节用多路选择器,写一个字节先读后写,浪费部分存储器资源,无论存储的是字节、半字、字还是双字,都必须从一个存储字的起始位置存放。优点
11、:一个存储周期即可读出数据。缺点:浪费部分存储器资源。,双字地址的最末3个二进制位必须为000,单字地址的最末2个二进制位必须为00,半字地址的最末1个二进制位必须为0。优点:一个存储周期即可读出数据。缺点:浪费部分存储器资源,读写控制稍复杂。,2.零地址空间个数P75表2.14三个零地址空间:通用寄存器、主存储器、输入输出设备独立编址两个零地址空间:主存储器与输入输出设备统一编址,一般在地址码的高端划出一部分来用作输入输出设备的地址。主存与I/O设备统一编址可以简化指令系统。一个零地址空间:最低端是通用寄存器,最高端是输入输出设备,中间为主存储器隐含编址方式:堆栈、Cache等,3.并行存储
12、器的编址技术高位交叉编址:主要用来扩大存储器容量。地址码的低位部分是各个存储体的体内地址,高位部分经过译码器译码后,用来区分存储体的体号。低位交叉编址:主要是提高存储器速度。地址码的低位部分是各个存储体的体号,高位部分经过译码器译码后,用来区分存储体的体内地址。,2.2.2 寻址方式,寻找操作数及数据存放地址的方法1.寻址方式的设计思想立即数寻址方式 用于数据比较短,且为源操作数的场合面向寄存器的寻址方式 OPCR OPCR,R OPCR,R,R OPCR,M,寄存器寻址P83主要优点:指令字长短(寄存器数量相对要少),指令执行速度快,支持向量和矩阵等运算主要缺点:不利于优化编译,现场切换困难
13、,硬件复杂,面向堆栈的寻址方式P85:OPC;运算型指令 OPCM;数据传送型指令主要优点:支持高级语言,有利与编译程序,节省存储空间,支持程序的嵌套和递归调用,支持中断处理主要缺点:运算速度比较低,栈顶部分设计成一个高速的寄存器堆,面向主存储器的寻址方式:直接寻址、间接寻址、变址寻址、相对寻址 基址寻址、自动变址、OPCM OPCM,M OPCM,M,M,2.2.3 定位方式,程序的主存物理地址在什么时间确定?采用什么方式来实现?程序需要定位的主要原因:程序的独立性程序的模块化设计表、队列、堆栈等数据结构在程序运行过程中,其大小往往是变化的有些程序本身很大,大于分配给它的主存物理空间,主要的
14、定位方式直接定位方式:在程序装入主存储器之前,程序中的指令和数据的主存物理就已经确定了的称为直接定位方式。静态定位:用专门设计的定位装入程序完成定位,所以要求程序本身可以重定位。在程序运行前,装入主存储器的过程中集中一次完成地址变换,确定指令和数据在主存中的物理地址。,主要的定位方式动态定位:在程序执行过程中,当访问到相应的指令或数据时才进行地址变换,确定指令和数据的主存物理地址的称为动态定位方式。必须有硬件支持,与变址寻址方式方法相同。程序在装入主存时,指令和数据的地址不做任何修改,只把主存的起始地址存入与该程序相对应的基址寄存器中。程序执行时,用地址加法器将指令中的逻辑地址与基址寄存器中的
15、主存起始地址相加即得物理地址。,2.3 指令格式的优化设计,主要目标:节省程序的存储空间 指令格式尽量规整,便于译码 2.3.1 指令的组成 2.3.2 操作码的优化设计 2.3.3 地址码的优化设计 2.3.4 指令格式设计举例,2.3.1 指令的组成,一般的指令主要由两部分组成:操作码和地址码地址码通常包括三部分内容:地址:地址码、立即数、寄存器、变址寄存器地址的附加信息:偏移量、块长度、跳距寻址方式:直接寻址、间接寻址、立即数寻址、变址寻址、相对寻址、寄存器寻址,操作码主要包括两部分内容:操作种类:加、减、乘、除、数据传送、移位、转移、输入输出、程序控制、处理机控制等操作数描述:数据的类
16、型:定点数、浮点数、复数、字符、字符串、逻辑数、向量 进位制:2进制、10进制、16进制 数据字长:字、半字、双字、字节,2.3.2 操作码的优化表示,操作码的三种编码方法:固定长度、Huffman编码、扩展编码优化操作码编码的目的:节省程序存储空间例如:Burroughs公司的B-1700机,1.固定长操作码定长定域:IBM公司的大中型机:最左边8位为操作码 Intel公司的Intanium处理机:14位定长操作码 许多RISC处理机采用定长操作码主要优点:规整 译码简单主要缺点:浪费信息量(操作码的总长位数增加),2.Huffman编码法 1952年由Huffman首先提出 操作码的最短平
17、均长度可通过如下公式计算:pi表示第i种操作码在程序中出现的概率 固定长编码的信息冗余量:必须知道每种操作码在程序中出现的概率,例2.16:假设一台模型计算机共有7种不同的操作码,如果采用固定长操作码需要3位。已知各种操作码在程序中出现的概率如下表,计算采用Huffman编码法的操作码平均长度,并计算固定长操作码和Huffman操作码的信息冗余量。,例2.17解答:利用Huffman树进行操作码编码(又称最小概率合并法)把所有指令按照操作码在程序中出现的概率大小,自左向右顺序排列。选取两个概率最小的结点合并成一个概率值是二者之和的新结点,并把这个新结点与其它还没有合并的结点一起形成一个新的结点
18、集合。,在新结点集合中选取两个概率最小的结点进行合并,如此继续进行下去,直至全部结点合并完毕。最后得到的根结点的概率值为1。每个新结点都有两个分支,分别用带有箭头的线表示,并分别用一位代码“0”和“1”标注。从根结点开始,沿箭头所指方向寻找到达属于该指令概率结点的最短路径,把沿线所经过的代码排列起来就得到了这条指令的操作码编码。,利用Huffman树进行操作码编码,利用Huffman树进行操作码编码,利用Huffman树进行操作码编码,利用Huffman树进行操作码编码,利用Huffman树进行操作码编码,利用Huffman树进行操作码编码,利用Huffman树进行操作码编码,利用Huffma
19、n树进行操作码编码,Huffman操作码编码,解:采用Huffman编码法的操作码平均长度为:0.4510.3020.153 0.0540.0350.0160.016 1.97(位)操作码的最短平均长度为:0.451.1520.301.737 0.152.7370.054.322 0.035.0590.016.644 0.016.6441.95(位),采用3位固定长操作码的信息冗余量为:Huffman编码法的信息冗余量仅为:与3位固定长操作码的信息冗余量35相比要小得多,3.扩展编码法Huffman操作码的主要缺点:操作码长度很不规整,硬件译码困难 与地址码共同组成固定长的指令比较困难扩展编码
20、法:由固定长操作码与Huffman编码法相结合形成例2.18:(P94)将例2.17改为1-2-3-5扩展编码法,操作码最短平均长度为:H0.4510.3020.153(0.050.030.010.01)52.00 信息冗余量为:,例2.19:将例2.17改为2-4等长扩展编码法,操作码最短平均长度为:H(0.450.300.15)2(0.050.030.010.01)4 2.202-4等长扩展编码法信息冗余量为:,2.3.3 地址码的优化表示,1.地址码个数的选择地址码个数通常有3个、2个、1个及个等4种情况评价指令中地址码个数应该取多少的标准主要有两个:程序存储容量,包括操作码和地址码程序
21、执行速度,以程序执行过程中访问主存的信息量代表通过一个典型例子来分析:,例如:计算一个典型的算术表达式:用三地址指令编写的程序如下:MUL X,A,B;X(A)(B)ADD X,X,C;X(X)(C)SUB X,X,D;分子的计算结果在中 ADD Y,E,F;计算分母,存入Y DIV X,X,Y;最后结果在X单元中,用普通二地址指令编写的程序: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单元中,用多寄存器结构的二地址指令编写程序
22、:MOVE 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中,用一地址指令编写的程序:LOAD E;先计算分母,;取一个操作数到累加器中 ADD F;分母运算结果在累加器中 STORE X;保存分母运算结果到X中 LOAD A;开始计算分子 MUL B ADD C SUB D;累加器中是分子运算结果 DIV X;最后运算结果在累加器中 STORE X;保存最后运算结果到X中,65,用0地址指令编
23、写程序:ab*c+d-ef+/PUSH A;操作数a压入堆栈 PUSH B;操作数b压入堆栈 MUL;栈顶两数相乘,结果压回堆顶 PUSH C ADD PUSH D SUB;栈顶是分子运算的结果 PUSH E PUSH F ADD DIV;栈顶是最后运算的结果 POP X;保存最后运算结果,关于地址码个数结论:对于一般商用处理机,采用多寄存器结构的二地址指令是最理想的。如果强调硬件结构简单,并且以连续运算(如求累加和等)为主,宜采用一地址结构。对于以向量、矩阵运算为主的处理机,最好采用三地址结构。部分RISC处理机也采用三地址指令。对于解决递归问题为主的处理机,宜采用零地址结构。编程容易、节省
24、程序存储量。,2.缩短地址码长度的方法 用一个短地址码表示一个大地址空间用间址寻址方式缩短地址码长度 方法:在主存储器的低端开辟一个专门存放间接地址的区域用变址寻址方式缩短地址码长度 变址寻址方式中的地址偏移量比较短,用寄存器间接寻址方式缩短地址码长度 例如:16个间址寄存器,用4位地址码就能表示很长的逻辑地址空间。,MIPS 有32个64位通用寄存器,R0,R1,R31。32个浮点数寄存器,F0,F1,F31。R0的值永远是0。,2.3.4 指令格式设计举例,2.4 指令系统的功能设计,指令系统的性能 完整性、规整性、高效率和兼容性 基本指令系统 通用计算机必须有5类基本指令 2.4.3 指
25、令系统的优化设计 CISC、RISC和VLIW,2.4.1 指令系统的性能,完整性、规整性、高效率和兼容性1.完整性是指应该具备的基本指令种类 如:通用计算机必须有类基本指令数据传送类、运算类、程序控制、输入输出指令、处理机控制和调试指令2.规整性包括对称性和均匀性对称性:各种与指令系统有关的数据存储设备的使用、操作码的设置等都要对称。如:所有的寄存器同等对待。如A-B与B-A均匀性:对于各种不同的数据类型、字长、存储设备、操作种类,指令的设置要同等对待。,3.高效率:指令的执行速度要快指令的使用频度要高各类指令要有一定的比例 如:运算类指令占40%以上,数据传送类指令占30%等。4.兼容性:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机系统 结构 第二 指令系统

链接地址:https://www.31ppt.com/p-6342675.html