欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    计算机系统结构第二章指令系统.ppt

    • 资源ID:6342675       资源大小:884.50KB        全文页数:139页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    计算机系统结构第二章指令系统.ppt

    1,2.1 数据表示2.2 寻址技术2.3 指令格式的优化设计2.4 指令系统的功能设计2.5 RISC指令系统2.6 VLIW指令系统,第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 数据表示与数据类型,数据表示的定义:数据表示是指计算机硬件能够直接识别,可以被指令系统直接调用的那些数据类型。例如:定点、逻辑、浮点、十进制、字符、字符串、堆栈和向量等数据类型:文件、图、表、树、阵列、队列、链表、栈、向量、串、实数、整数、布尔数、字符等确定哪些数据类型用数据表示实现,是软件与硬件的取舍问题,确定数据表示的原则 一是缩短程序的运行时间 二是减少CPU与主存储器之间的通信量 三是这种数据表示的通用性和利用率 数据表示在不断发展 例如:矩阵、树、图、表及自定义数据表示 等已经开始用于数据表示中例2.1:计算CAB,其中,A、B、C均为 200200的矩阵。分析采用向量数据表示 的作用。,解:如果在没有向量数据表示的计算机上实现,一般需要6条指令,其中有4条指令要循环4万次。因此,CPU与主存储器之间的通信量:取指令:2440,000条,读或写数据:340,000个,共要访问主存储器:740,000次以上如果有向量数据表示,只需要一条指令。减少访问主存(取指令)次数440,000次,用软件和硬件结合的方法实现新的数据表示 用字节编址和字节运算指令来支持字符串数据表示 用变址寻址方式来支持向量数据表示因此,设计计算机系统时,要确定哪些数据类型用硬件实现,即数据表示;哪些数据类型用软件实现,即数据结构;哪些数据类型用软件和硬件混合实现。,2.1.6 自定义数据表示,一般处理机中的数据表示方法数据存储单元(寄存器、主存储器、外存储器等)只存放纯数据,数据的属性通过指令中的操作码来解释:数据的类型,如定点、浮点、字符、字符串、逻辑数、向量等;进位制,如2进制、10进制、16进制等;数据字长,如字、半字、双字、字节等;寻址方式,如直接寻址、间接寻址、相对寻址、寄存器寻址等;数据的功能,如地址、地址偏移量、数值、控制字、标志 等;同一种操作(如加法)通常有很多条指令。P65表2.13,在高级语言和应用软件中,每种操作通常只有一种,数据的属性在数据被引用之前就已经定义好了。数据的属性由数据自己定义;在高级语言与机器语言之间的语义差距,要靠编译器等填补。Burroughs公司在大型机中引入自定义数据表示方式和带标志符的数据表示方式,1.带标志符的数据表示法 在B5000大型机中,每个数据有一位标志符 在B6500和B7500大型机中,每个数据有三位 来标志符 在R-2巨型机中采用10位标志符,R-2巨型机中的标志符 功能位:操作数、指令、地址、控制字 陷井位:由软件定义四种捕捉方式 封写位:指定数据是只读的还是可读可写 类型位:二进制,十进制,定点数,浮点数,复数,字符串,单精度,双精度;绝对地址、相对地址、变址地址、未连接地址等。标志符由编译器或其它系统软件建立,对高级语言程序员透明程序(包括指令和数据)的存储量分析 数据存储量增加,指令存储量减少。,例2.13:假设X处理机的数据不带标志符,其指 令字长和数据字长均为32位;Y处理机的数据 带标志符,数据字长增加至35位,其中3位是 标志符,其指令字长由32位减少至30位。并 假设一条指令平均访问两个操作数,每个操 作数平均被访问R次。分别计算这两种不同类 型的处理机中程序所占用的存储空间。指令总条 数为I。解:X和Y处理机程序占用的存储空间总和分别 为:和,程序占用存储空间的比值:当R3时,有,在实际应用中经常是 R10,即带标志符的处理机所占用的存储空间通常 要小。,常规数据表示方法 与带标志符数据表示方法 的比较,2.数据描述符表示法对于向量、矩阵、数组等,每个数据的属性相同,没有必要都带标志符。数据描述符与标志符的区别:标志符只作用于一个数据,而数据描述符要作用于一组数据。描述符一般单独存放,独立占一个存储单元,描述出一组数据的属性,包括整个数据块的访问地址、长度等信息。,2.数据描述符表示法Burroughs公司生产的B-6700机中采用的数据描述符表示方法。最高三位为101时表示数据描述符,最高三位为000时表示数据。,例 P70 存放一个34矩阵。,2.2 寻址技术,寻找操作数及其地址的技术称为寻址技术,是软件与硬件的一个主要分界面。研究内容包括:2.2.1 编址方式 2.2.2 寻址方式 2.2.3 定位方式 重点:寻址方式的选择,2.2.1 编址方式,对各种存储设备进行编码的方法。主要内容:编址单位、零地址空间个数、并行存储器的编址、输入输出设备的编址1.编址单位常用的编址单位:字编址、字节编址、位编址、块编址等字编址实现最容易,因为每个编址单位与设备的访问单位相一致,即每个编址单位所包含的信息量与访问一次设备所获取的信息量相同。每取完一条指令,程序计数器加1,每从主存中读出一个数据,地址计数器加1,地址信息、存储容量没有浪费。字节编址适应非数值计算的需要,能够使编址单位与信息的基本单位(一个字节)相一致。通常主存的字长是一个字节的4倍以上,有的达到几十倍。由于编址字长与存储器的访问字长不一致,数据如何在主存中存放?,2.2.1 编址方式,编址单位与访问字长 一般:字节编址,字访问 部分机器:位编址,字访问 辅助存储器:块编址,位访问,字节编址字访问的优点:有利于符号处理 字节编址字访问的问题:(1)地址信息浪费 对于32位机器,浪费2位地址(最低2位地址)对于64位机器,浪费3位地址(2)存储器空间浪费(3)读写逻辑复杂(4)大端(Big Endin)与小端(Little Endian)问题,不浪费存储器资源,可能有的四种不同长度的数据一个接一个存放。两个缺点:(1)当要访问一个双字、一个单字或半字时,有可能花两个存储周期。(2)存储器的读写控制比较复杂。当从存储器中读出一个字节时,首先用除掉最低3位之外的其余地址去读主存,将从主存中读出8个字节。然后用地址的低3位控制一套多路开关从8个字节数据中选择一个。写的方法类似,读出和写入只需一个存储周期,why?,读一个字节用多路选择器,写一个字节先读后写,浪费部分存储器资源,无论存储的是字节、半字、字还是双字,都必须从一个存储字的起始位置存放。优点:一个存储周期即可读出数据。缺点:浪费部分存储器资源。,双字地址的最末3个二进制位必须为000,单字地址的最末2个二进制位必须为00,半字地址的最末1个二进制位必须为0。优点:一个存储周期即可读出数据。缺点:浪费部分存储器资源,读写控制稍复杂。,2.零地址空间个数P75表2.14三个零地址空间:通用寄存器、主存储器、输入输出设备独立编址两个零地址空间:主存储器与输入输出设备统一编址,一般在地址码的高端划出一部分来用作输入输出设备的地址。主存与I/O设备统一编址可以简化指令系统。一个零地址空间:最低端是通用寄存器,最高端是输入输出设备,中间为主存储器隐含编址方式:堆栈、Cache等,3.并行存储器的编址技术高位交叉编址:主要用来扩大存储器容量。地址码的低位部分是各个存储体的体内地址,高位部分经过译码器译码后,用来区分存储体的体号。低位交叉编址:主要是提高存储器速度。地址码的低位部分是各个存储体的体号,高位部分经过译码器译码后,用来区分存储体的体内地址。,2.2.2 寻址方式,寻找操作数及数据存放地址的方法1.寻址方式的设计思想立即数寻址方式 用于数据比较短,且为源操作数的场合面向寄存器的寻址方式 OPCR OPCR,R OPCR,R,R OPCR,M,寄存器寻址P83主要优点:指令字长短(寄存器数量相对要少),指令执行速度快,支持向量和矩阵等运算主要缺点:不利于优化编译,现场切换困难,硬件复杂,面向堆栈的寻址方式P85:OPC;运算型指令 OPCM;数据传送型指令主要优点:支持高级语言,有利与编译程序,节省存储空间,支持程序的嵌套和递归调用,支持中断处理主要缺点:运算速度比较低,栈顶部分设计成一个高速的寄存器堆,面向主存储器的寻址方式:直接寻址、间接寻址、变址寻址、相对寻址 基址寻址、自动变址、OPCM OPCM,M OPCM,M,M,2.2.3 定位方式,程序的主存物理地址在什么时间确定?采用什么方式来实现?程序需要定位的主要原因:程序的独立性程序的模块化设计表、队列、堆栈等数据结构在程序运行过程中,其大小往往是变化的有些程序本身很大,大于分配给它的主存物理空间,主要的定位方式直接定位方式:在程序装入主存储器之前,程序中的指令和数据的主存物理就已经确定了的称为直接定位方式。静态定位:用专门设计的定位装入程序完成定位,所以要求程序本身可以重定位。在程序运行前,装入主存储器的过程中集中一次完成地址变换,确定指令和数据在主存中的物理地址。,主要的定位方式动态定位:在程序执行过程中,当访问到相应的指令或数据时才进行地址变换,确定指令和数据的主存物理地址的称为动态定位方式。必须有硬件支持,与变址寻址方式方法相同。程序在装入主存时,指令和数据的地址不做任何修改,只把主存的起始地址存入与该程序相对应的基址寄存器中。程序执行时,用地址加法器将指令中的逻辑地址与基址寄存器中的主存起始地址相加即得物理地址。,2.3 指令格式的优化设计,主要目标:节省程序的存储空间 指令格式尽量规整,便于译码 2.3.1 指令的组成 2.3.2 操作码的优化设计 2.3.3 地址码的优化设计 2.3.4 指令格式设计举例,2.3.1 指令的组成,一般的指令主要由两部分组成:操作码和地址码地址码通常包括三部分内容:地址:地址码、立即数、寄存器、变址寄存器地址的附加信息:偏移量、块长度、跳距寻址方式:直接寻址、间接寻址、立即数寻址、变址寻址、相对寻址、寄存器寻址,操作码主要包括两部分内容:操作种类:加、减、乘、除、数据传送、移位、转移、输入输出、程序控制、处理机控制等操作数描述:数据的类型:定点数、浮点数、复数、字符、字符串、逻辑数、向量 进位制:2进制、10进制、16进制 数据字长:字、半字、双字、字节,2.3.2 操作码的优化表示,操作码的三种编码方法:固定长度、Huffman编码、扩展编码优化操作码编码的目的:节省程序存储空间例如:Burroughs公司的B-1700机,1.固定长操作码定长定域:IBM公司的大中型机:最左边8位为操作码 Intel公司的Intanium处理机:14位定长操作码 许多RISC处理机采用定长操作码主要优点:规整 译码简单主要缺点:浪费信息量(操作码的总长位数增加),2.Huffman编码法 1952年由Huffman首先提出 操作码的最短平均长度可通过如下公式计算:pi表示第i种操作码在程序中出现的概率 固定长编码的信息冗余量:必须知道每种操作码在程序中出现的概率,例2.16:假设一台模型计算机共有7种不同的操作码,如果采用固定长操作码需要3位。已知各种操作码在程序中出现的概率如下表,计算采用Huffman编码法的操作码平均长度,并计算固定长操作码和Huffman操作码的信息冗余量。,例2.17解答:利用Huffman树进行操作码编码(又称最小概率合并法)把所有指令按照操作码在程序中出现的概率大小,自左向右顺序排列。选取两个概率最小的结点合并成一个概率值是二者之和的新结点,并把这个新结点与其它还没有合并的结点一起形成一个新的结点集合。,在新结点集合中选取两个概率最小的结点进行合并,如此继续进行下去,直至全部结点合并完毕。最后得到的根结点的概率值为1。每个新结点都有两个分支,分别用带有箭头的线表示,并分别用一位代码“0”和“1”标注。从根结点开始,沿箭头所指方向寻找到达属于该指令概率结点的最短路径,把沿线所经过的代码排列起来就得到了这条指令的操作码编码。,利用Huffman树进行操作码编码,利用Huffman树进行操作码编码,利用Huffman树进行操作码编码,利用Huffman树进行操作码编码,利用Huffman树进行操作码编码,利用Huffman树进行操作码编码,利用Huffman树进行操作码编码,利用Huffman树进行操作码编码,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操作码的主要缺点:操作码长度很不规整,硬件译码困难 与地址码共同组成固定长的指令比较困难扩展编码法:由固定长操作码与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种情况评价指令中地址码个数应该取多少的标准主要有两个:程序存储容量,包括操作码和地址码程序执行速度,以程序执行过程中访问主存的信息量代表通过一个典型例子来分析:,例如:计算一个典型的算术表达式:用三地址指令编写的程序如下: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单元中,用多寄存器结构的二地址指令编写程序: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地址指令编写程序: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处理机也采用三地址指令。对于解决递归问题为主的处理机,宜采用零地址结构。编程容易、节省程序存储量。,2.缩短地址码长度的方法 用一个短地址码表示一个大地址空间用间址寻址方式缩短地址码长度 方法:在主存储器的低端开辟一个专门存放间接地址的区域用变址寻址方式缩短地址码长度 变址寻址方式中的地址偏移量比较短,用寄存器间接寻址方式缩短地址码长度 例如:16个间址寄存器,用4位地址码就能表示很长的逻辑地址空间。,MIPS 有32个64位通用寄存器,R0,R1,R31。32个浮点数寄存器,F0,F1,F31。R0的值永远是0。,2.3.4 指令格式设计举例,2.4 指令系统的功能设计,指令系统的性能 完整性、规整性、高效率和兼容性 基本指令系统 通用计算机必须有5类基本指令 2.4.3 指令系统的优化设计 CISC、RISC和VLIW,2.4.1 指令系统的性能,完整性、规整性、高效率和兼容性1.完整性是指应该具备的基本指令种类 如:通用计算机必须有类基本指令数据传送类、运算类、程序控制、输入输出指令、处理机控制和调试指令2.规整性包括对称性和均匀性对称性:各种与指令系统有关的数据存储设备的使用、操作码的设置等都要对称。如:所有的寄存器同等对待。如A-B与B-A均匀性:对于各种不同的数据类型、字长、存储设备、操作种类,指令的设置要同等对待。,3.高效率:指令的执行速度要快指令的使用频度要高各类指令要有一定的比例 如:运算类指令占40%以上,数据传送类指令占30%等。4.兼容性:在同一系列机内,指令系统,包括寻址方式和数据表示等保持基本不变;可以适当增加指令、增加寻址方式,增加数据表示等;但不能减少任何已有的。,2.4.2 基本指令系统,通用计算机必须有类基本指令数据传送类指令运算类指令 程序控制指令输入输出指令处理机控制和调试指令,1.数据传送类指令 由如下三个主要因素决定:(1)数据存储设备的种类(2)数据单位:字、字节、位、数据块等(3)采用的寻址方式 例如,考虑数据存储设备的种类:寄存器寄存器 寄存器主存储器寄存器堆栈 主存储器寄存器主存储器主存储器 主存储器堆栈堆栈寄存器 堆栈主存储器,2.运算类指令:考虑四个因数的组合:操作种类:加、减、乘、除、与、或、非、异或、比较、移位、检索、转换、匹配、清除、置位等数据表示:定点、浮点、逻辑、十进制、字符串、向量等数据长度:字、双字、半字、字节、位、数据块等数据存储设备:寄存器、主存储器、堆栈等例 P 104,以寄存器加法指令为例,一般设置如下几种:寄存器-寄存器型的定点单字长加法指令 寄存器-寄存器型的定点双字长加法指令 寄存器-寄存器型的定点半字加法指令 寄存器-寄存器型的字节加法指令 寄存器-寄存器型的浮点单字长加法指令 寄存器-寄存器型的浮点双字长加法指令 寄存器-寄存器型的单字长逻辑加法指令 寄存器-寄存器型的定点向量加法指令 寄存器-寄存器型的浮点向量加法指令,以移位指令为例:需要组合以下三个因素:(1)移位方向:左移(L)、右移(R)(2)移位种类:算术移位(A)、逻辑移位(L)、循环移位(R)(3)移位长度:单字长(S)、双字长(D)组合起来共有:32212种,其中,逻辑左移与算术左移相同 一般机器中要设置10条移位指令,一般机器中要设置10条移位指令 SLAS 单字长算术左移 SRAS 单字长算术右移 SLLS(SRLS)单字长逻辑左移,单字长算术左移 SLRS 单字长循环左移 SRRS 单字长循环右移 SLAD 双字长算术左移 SRAD 双字长算术右移 SLLD(SRLD)双字长逻辑左移,双字长算术左移 SLRD 双字长循环左移 SRRD 双字长循环右移,3.程序控制指令有多种转移指令:无条件转移,条件转移指令调用与返回指令循环控制指令转移条件:零(Z)、正负(N)、进位(C)、溢出(V)及其组合由条件转移指令之前的指令产生条件码由条件转移指令本身产生转移条件多组条件码条件转移指令举例,一般条件转移指令 条件码由转移指令之前的指令产生,对指令流水线的影响小。例如:BEQ ADR;等于零转移 BLS ADR;小于转移 BLEQ ADR;小于等于转移 BLSU ADR;不带符号小于转移 BLEQU ADR;不带符号小于等于转移 BCC ADR;没有进位转移 BVC ADR;没有溢出转移,复合条件转移指令代替2条指令,首先进行运算,并根据运算的结果决定是否转移不需要条件码,与高级语言一致。例如:DNB R ADR;R(R)-1,如果R0转移 INB R ADR;R(R)+1,如果R0转移 JEQ R1,R2,ADR;如果(R1)=(R2)转移 JAD EQ,Rd,Rs,ADR;Rd(Rd)+(Rs),;如果(Rd)=0转移,循环控制指令用1条指令完成循环的控制代替3条指令的功能:运算、比较和转移。例如:JL Rs,Rz,Ri,ADRRs中存放循环变量,Rz中存放循环终值,Ri中存放循环的步长。地址个数太多时,可以把其中的1个或几个地址隐含起来。例如,在IBM370下列机中,Ri隐含,循环步长放在与Rz紧相邻的下一寄存器中。,程序调用和返回指令 本身可以不带条件,也可以带有条件 CALL 转入子程序 RETURN 从子程序返回 CALL CC 当条件CC满足时转入子程序 RETURN CC 当条件CC满足时从子程序返回中断控制指令:开中断、关中断 改变屏蔽 中断返回 自陷等,4.输入输出指令启动、停止、测试设备,数据输入、输出等采用单一的直接寻址方式,在多用户或多任务环境下,输入输出指令属于特权指令5.处理机控制和调试指令处理机状态切换指令,处理机有多个状态,管态和用户态硬件和软件的调试指令硬件调试指令:开关状态读取、寄存器和主存单元的显示等软件调试指令:断点设置、跟踪,自陷指令等,2.4.3 指令系统的优化设计,优化指令系统设计的3个阶段:CISC:复杂指令系统 60年代至70年代中期RISC:精简指令系统 70年代后期至现在VLIW:80年代初期至现在关键在软硬件的功能分配,系统的综合性能 时间与空间;执行、编译、编写时间。,1.复杂指令系统计算机 CISC(Complex Instruction Set Computer)方法:用一条指令代替一串指令增加新的指令增强指令功能,设置功能复杂的指令,把原来由软件实现的常用的功能改用硬件的指令系统来实现。增加寻址方式增加数据表示方式优化的途径:面向目标代码面向高级语言面向操作系统,2.精简指令系统计算机 RISC(Reduced Instruction Set Computer)只保留功能简单的指令,功能较复杂的指令用软件实现,提高流水线效率3.超长指令字 VLIW(Very Long Instruction Word)一种显式指令级并行指令系统二维程序结构指令级并行度高,2.5 RISC指令系统,三类指令系统:CISC、RISC、VLIW 2.5.1 从CISC到RISC 2.5.2 RISC的定义与特点 2.5.3 RISC思想的精华 2.5.4 RISC的关键技术,2.5.1 从CISC到RISC,70年代,指令系统已经非常复杂,1975年,IBM公司率先组织力量开始研究指令系统的合理性问题1979年研制出世界上第一台采用RISC思想的计算机IBM 8011986年,IBM正式推出采用RISC体系结构的工作站IBM RT PCCISC指令系统存在的问题:1979年,美国加洲伯克利分校 David Patterson 提出:,1.20与80规律在CISC中,大约20的指令占据了80的处理机执行时间。例如:P113 表2.25 8088处理机的指令种类大约100种 前11种(11)指令的使用频度已经超过80 前8种(8)指令的运行时间已经超过80 前20种(20)指令:使用频度达到91.1 运行时间达到97.72 其余80的指令:使用频度只有8.9 2.28的处理机运行时间,2.VLSI技术的发展引起的问题VLSI工艺要求规整性,RISC正好适应了VLSI工艺的要求主存与控存的速度相当 简单指令没有必要用微程序实现,复杂指令用微程序实现与用简单指令组成的子程序实现没有多大区别由于VLSI的集成度迅速提高,使得生产单芯片处理机成为可能。,3.软硬件的功能分配问题复杂的指令使指令的执行周期大大加长 CISC处理机的指令平均执行周期都在4以上在CISC中,增强指令系统功能,简化了软件,硬件复杂了1981年,Patterson等人研制了32位的RISC I微处理器,总共31种指令,3种数据类型,两种寻址方式,研制周期10个月,比当时最先进的MC68000和Z8002快3至4倍1983年,又研制了RISC II,指令种类扩充到39种,单一变址寻址方式,通用寄存器138个,2.5.2 RISC的定义与特点,卡内基梅隆(Carnegie Mellon)大学论述RISC的特点如下:P115(1)大多数指令在单周期内完成(2)LOAD/STORE结构(3)硬布线控制逻辑(4)减少指令和寻址方式的种类(5)固定的指令格式(6)注重编译的优化,90年代初,IEEE的Michael Slater对RISC描述:(1)RISC为提高流水线效率,应具有下述特征:简单而统一格式的指令译码 大部分指令可以单周期执行完成 只有LOAD和STORE指令可以访问存储器 简单的寻址方式 采用延迟转移技术 采用LOAD延迟技术(2)为使编译器便于生成优化代码,应具有:三地址指令格式,较多的寄存器,对称的指 令格式,2.5.3 RISC思想的精华,减少CPI是RISC思想的精华程序执行时间的计算公式:CPI 其中:是执行这个程序所使用的总的时间;是这个程序所需执行的总的指令条数;CPI(Cycles Per Instruction)是每条指令执行的平均周期数 是一个周期的时间长度。,同类问题的程序长度,RISC比CISC长30%40%CPI,RISC比CISC少2倍10倍 RISC的速度要比CISC快3倍左右,关键是 RISC的CPI减小了,硬件方面:采用硬布线控制逻辑 减少指令和寻址方式的种类 使用固定的指令格式 采用LOAD/STORE结构 指令执行过程中设置多级流水线等 软件方面:十分强调优化编译技术的作用。,RISC设计思想也可以用于CISC中 x86处理机的CPI在不断缩小,8088的CPI大于20,80286的CPI大约是5.5,80386的CPI进一步减小到4左右,80486的CPI已经接近2,Pentium处理机的CPI已经与RISC十分接近。目前,超标量处理机、超流水线处理机的CPI 已经达到0.05,实际上用IPC(Instruction Per Cycle)更确切。,2.5.4 RISC的关键技术,1.延时转移技术为了使指令流水线不断流,在转移指令之后插入一条没有数据相关和控制相关的有效指令,而转移指令被延迟执行,这种技术称为延迟转移技术。采用指令延迟转移技术时,指令序列的调整由编译器自动进行,用户不必干预。读采用延迟转移的程序,必须十分小心。,无条件转移指令的延迟执行,条件转移指令的延迟执行调整前的指令序列:1:MOVE R1,R2 2:CMP R3,R4;(R3)与(R4)比较 3:BEQ EXIT;如果(R3)=(R4)则转移 NEXT:MOVE R4,A,调整后的指令序列:1:CMP R3,R4;(R3)与(R4)比较 2:BEQ EXIT;如果(R3)=(R4)则转移 3:MOVE R1,R2;被插入的指令 NEXT:MOVE R4,A,采用延迟转移技术的两个限制条件被移动指令在移动过程中与所经过的指令之间没有数据相关被移动指令不破坏条件码,至少不影响后面的指令使用条件码如果找不到符合上述条件的指令,必须在条件转移指令后面插入空操作如果指令的执行过程分为多个流水段,则要插入多条指令插入1条指令成功的概率比较大,插入2条或2条以上指令成功的概率明显下降,2.指令取消技术 采用指令延时技术,经常找不到可以用来调整的指令,可考虑采用另一种方法:指令取消技术 分为两种情况:(1)向后转移(适用于循环程序)实现方法:循环体的第一条指令安放在两个位置,分别在循环体的前面和后面。如果转移成功,则执行循环体后面的指令,然后返回到循环体开始;否则取消循环体后面的指令,效果:能够使指令流水线在绝大多数情况下不断流。对于循环程序,由于绝大多数情况下,转移是成功的。只有最后一次出循环时,转移不成功。,(2)向前转移(IF THEN)实现方法:如果转移不成功,执行转移指令 之后的下条指令,否则取消下条指令。例子:R R R“IF”部分的程序代码 S S S COMP R1,R2,THRU T T T“THEN”部分的程序代码 U U U THRU:V V V 效果:转移成功与不成功的概率,通常各50 主要优点:不必进行指令流调整,3.重叠寄存器窗口技术(Overlapping Register Window)原因:在RISC中,子程序比CISC中多 因为传送参数而访问存储器的信息量很大 美国加洲大学伯克利分校的F Baskett提出 实现方法:设置一个数量比较大的寄存器堆,并把它划分成很多个窗口。每个过程使用其中相邻的三个窗口和一个公共的窗口,在这些窗口中:有一个窗口是与前一个过程共用有个窗口是与下一个过程共用。与前一过程共用的窗口可以用来存放前一过程传递给本过程的参数,同时也可以用于存放本过程传送给前一过程的计算结果。,例子:(在RISC II中采用的方法)目前,SUN公司的SPARC、SuperSPARC、UtraSPARC等处理机,把最后一个过程与第一个过程的公用寄存器重叠起来,形成一个循环圈。效果:可以减少大量的访存操作。另外,要在主存中开辟一个堆栈,当调用层数超过规定层数(寄存器溢出)时,把益出部分的寄存器中内容压入堆栈。,4.指令流调整技术目标:通过变量重新命名消除数据相关,提高流水线效率例子:调整后的指令序列比原指令序列的执行速度快一倍 ADD R1,R2,R3 ADD R1,R2,R3 ADD R3,R4,R5 MUL R6,R7,R0 MUL R6,R7,R3 ADD R3,R4,R5 MUL R3,R8,R9 MUL R0,R8,R9 调整前的指令序列 调整后的指令序列,5.以硬件为主固件为辅 固件的主要缺点是:执行速度低。目前,ROM的速度低于SRAM 一条机器指令通常要多条微指令解释执行 固件的主要优点是:便于实现复杂指令,便于修改指令系统 以硬联逻辑为主来实现指令系统 对于少数复杂的指令,目前的许多处理机也用微程序技术实现。,2.5.5 RISC优化编译技术,RISC对编译器带来的方便主要有:(1)指令系统比较简单、对称、均匀,指令选择工作简单。(2)选择寻址方式的工作简单,(3)因为采用LOAD/STORE方式,省去了是否生成访问存储器指令的选择工作。(4)由于大多数指令在一个周期内执行完成,为编译器调整指令序列提供了极大的方便。,RISC对编译器造成的困难主要有:(1)必须精心安排每一个寄存器的用法,以便充分发挥每一个通用寄存器的效率,尽量减少访问主存储器的次数。(2)做数据和控制相关性分析,要调整指令的执行序列,并与硬件相配合实现指令延迟技术和指令取消技术等。(3)要设计复杂的子程序库,RISC的子程序库通常要比CISC的子程序库大得多。,2.6 VLIW指令系统,2.6.1 什么是WLIW2.6.2 指令级并行技术2.6.3 VLIW的主要特点2.6.4 VLIW处理机,2.6.1 什么是VLIW,1.VLIW(Very Long Instruction Word)的背景由美国J.A.Fisher教授于1981年首先提出 最初来源于水平微程序由J.A.Fisher创建的Mutiflow公司研制了的世界上第一台VLIW处理机TRACE28/300。一条指令中包含有多个能够同时执行的操作 TRACE28/300处理机的一条超长指令中最多有28条可以同时执行的指令。算法和编译技术是关键在下一代处理机中将普遍采用,2.什么是VLIW指令系统 一种显式指令级并行指令系统。EPIC:Explicitly Parallel Instruction Computing 在一条VLIW指令中包含有多个相同或不同的操作字段(每个操作字段的功能相当于一般处理机中的一条指令)。每个操作字段能够分别独立控制各自的功能部件同时工作,即用一条指令来实现多个操作的并行执行,之所以放到一条指令是为了减少内存访问。通常一条指令多达上百位,有若干操作数,每条指令可以做不同的几种运算。哪些指令可以并行执行是由编译器来选择的。通常VLIW机只有一个控制器,每个周期启动一条长指令,长指令被分为几个字段,每个字段控制相应的部件。由于编译器需要考虑数据相关性,避免冲突,并且尽可能利用并行,完成指令调度,所以硬件结构较简单。,2.6.2 指令级并行,提出VLIW指令系统的主要目的是要开发程序中的指令级并行性(Instruction Level Parallelism)超标量(Superscalar)处理机 依靠设置多条指令流水线,并通过同时发射多条指令来提高处理机的运算速度,将一条指令分成若干个周期处理以达到多条指令重叠处理,从而提高cpu部件利用率的技术叫做标量流水技术.超级标量是指cpu内一般能有多条流水线,这些流水线能够并行处理.在单流水线结构中,指令虽然能够重叠执行,但仍然是顺序的,每个周期只能发射(issue)或退休(retire)一条指令.超级标量结构的cpu支持指令级并行,每个周期可以发射多条指令(2-4条居多).这样,可以使得cpu的IPC(Instruction Per Clock)1,从而提高cpu处理速度.,超级标量机能同时对若干条指令进行译码,将可以并行执行的指令送往不同的执行部件,在程序运行期间,由硬件(通常是状态记录部件和调度部件)来完成指令调度.超级标量机主要是借助硬件资源重复(例如有两套译码器和ALU等)来实现空间的并行操作.我们熟知的pentium系列(可能是p-II开始),还有SUN SPARC系列的较高级型号,以及MIPS若干型号等都采用了超级标量技术.,超流水线(Superpipelining)处理机 通过分时使用同一条指令流水线的不同部分来提高处理机的运算速度。超级流水线又叫做深度流水线,它是提高cpu速度通常采取的一种技术。CPU处理指令是通过Clock来驱动的,每个clock完成一级流水线操作。每个周期所做的操作越少,那么需要的时间就越短,时间越短,频率就可以提得越高。所以超级流水线就是将cpu处理指令的操作进一步细分,增加流水线级数来提高频率。频率高了,当流水线开足马力运行时平均每个周期完成一条指令(单发射情况下),这样cpu处理得速度就提高了。,超流水线(Superpipelining)处理机 通过分时使用同一条指令流水线的不同部分来提高处理机的运算速度,超级流水线又叫做深度流水线,它是提高cpu速度通常采取的一种技术。CPU处理指令是通过Clock来驱动的,每个clock完成一级流水线操作。每个周期所做的操作越少,那么需要的时间就越短,时间越短,频率就可以提得越高。所以超级流水线就是将cpu处理指令的操作进一步细分,增加流水线级数来提高频率。频率高了,当流水线开足马力运行时平均每个周期完成一条指令(单发射情况下),这样cpu处理得速度就提高了。当然,这是理想情况下,一般是流水线级数越多,重叠执行就越多,那么发生竞争冲突得可能性就越大,对流水线性能有一定影响。现在很多cpu都

    注意事项

    本文(计算机系统结构第二章指令系统.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开