《计算机系统结构-第二章(指令系统).ppt》由会员分享,可在线阅读,更多相关《计算机系统结构-第二章(指令系统).ppt(126页珍藏版)》请在三一办公上搜索。
1、指令系统,指令系统的分类数据表示寻址技术指令格式的优化设计指令系统的功能设计综合实例:MIPS指令集,指令系统的分类,本章内容,分类标准根据CPU中操作数的存储方法分类(主要分类准则)根据指令中显式操作数个数分类根据操作数能否放在存储器中分类 分类堆栈型指令系统累加器型指令系统寄存器型指令系统,6 之 1,以C=A+B为例说明不同指令系统的特点,6 之 2,灰色块:操作数黑色块:结果TOS:栈顶,三种指令系统的特点,堆栈型指令系统优点:指令长度短,代码密度高,占用存储空间小。缺点:代码效率低,执行效率不高。累加器型指令系统优点:指令长度短,代码密度高,代码效率高。缺点:执行效率不高。寄存器型指
2、令系统优点:指令简单,执行效率高,对编译程序支持好。缺点:指令长度长。,本章内容,现在通用寄存器型已成为主流结构,6 之 3,通用寄存器型指令系统的分类,本章内容,根据分类标准2、3可以分为:,6 之 4,不同通用寄存器型指令系统的特点,本章内容,6 之 5,指令系统的选择,本章内容,针对应用需求,对指令中各属性分布进行分析,根据指令执行效率确定指令集风格根据各种指令的各属性分布确定寄存器数及操作数个数必须考虑对OS和编译程序的支持,6 之 6,数据表示,本章内容,基本概念基本数据表示高级数据表示数据表示设计,基本概念,本章内容数据表示,数据类型 计算机系统中可以使用和处理的各种数据的类型,主
3、要有:整数、布尔数、字符、文件、图、表、树、阵列、队列、链表、栈、向量、串等。数据表示 能由硬件直接识别和引用(即有相应运算指令和有硬件支持)的数据类型,例如:定点数据表示、逻辑数据表示、浮点数据表示等。数据结构 带有结构的数据元素的集合,例如:串、队列、栈、向量、阵列、链表、树、图等。,3 之 1,三者之间的关系,本章内容数据表示,3 之 2,数据表示和数据结构都是数据类型的子集;数据表示是数据类型中最常用、也是相对较简单,用硬件实现相对比较容易的;数据结构由软件进行实现,转换成数据表示。,确定哪些数据类型用数据表示实现,是软件与硬件的取舍问题。,结 论,本章内容数据表示,3 之 3,数据类
4、型是指令系统的核心内容,系统结构设计者在设计时应首先确定:哪些数据类型全部用硬件实现,即数据表示;哪些数据类型用软件实现,即数据结构;哪些数据类型可由硬件给予适应的支持,即由软件和硬件共同来实现,并确定软件和硬件的适当比例关系。,基本数据表示,本章内容数据表示,内容 定点数、浮点数、十进制数、逻辑数、字符等。目的 支持数据结构,提高系统效率和性能/价格。设计 根据应用需求,设计各种参数、指标。举例 浮点数数据表示的设计。,2 之 1,浮点数数据表示设计,浮点数格式浮点数尾数基值选择浮点数尾数下溢处理浮点数格式设计,本章内容数据表示,2 之 2,浮点数格式,两个符号:mf:尾数符号e f:阶码符
5、号,本章内容数据表示 浮点数数据表示,两个数值:m:尾数的值e:阶码的值,两个基:rm:尾数的基re:阶码的基,两个字长:p:尾数的长度q:阶码的长度,浮点数尾数基值的选择,表数范围 随rm加大,范围加大。表数个数 随rm加大,个数增多。表数精度 随rm加大,精度变低。运算精度损失 随rm加大,损失变小。运算速度 随rm加大,速度变快。,rm的选择应根据应用需要来综合平衡:巨/大/中型机rm宜取大 尾数字长较长可以弥补精度的损失。小/微型机rm宜取小 提高的精度可以弥补尾数字长较短的不足。,本章内容数据表示 浮点数数据表示,浮点数尾数下溢的处理,问题 在浮点数操作(相加、相乘、右移等)过程中产
6、生的下溢会造成精度的损失。解决 设计下溢处理方法,有多种方法,不同的方法有不同的优点和缺点,其出发点和应用场合也不一样,应根据需要进行选择。,截断法 舍入法 恒置“1”法 查表舍入法,本章内容数据表示 浮点数数据表示,浮点数格式设计,本章内容数据表示 浮点数数据表示,尾数 码制可以采用原码或补码,数制可以采用整数或小数,基可以采用二进制、四进制、八进制、十进制或十六进制。多数机器采用原码、小数表示,尾数的基rm=2。阶码 码制可以采用移码或补码,数制采用整数,基re=2。一般机器都采用移码、整数表示。,2 之 1,浮点数格式设计,本章内容数据表示 浮点数数据表示,设计重点 在表数范围和表数精度
7、给定的情况下,如何确定最短的尾数字长p和阶码字长q。研究对象阶码长度q 影响表数范围。尾数长度p 影响表数精度。尾数基值rm 影响表数范围、精度及数在数轴上分布离散程度。,2 之 2,高级数据表示,本章内容数据表示,内容 堆栈、向量、数组(队列)、记录、自定义数据表示等。目的 支持数据结构,提高系统效率和性能/价格。举例 自定义数据表示。,2 之 1,自定义数据表示,本章内容数据表示,存在问题解决方法带标志符的数据表示法数据描述符表示法,2 之 2,存在问题,本章内容数据表示 自定义数据表示,在高级语言与机器语言之间存在着很大的语义差距(例如:运算符和数据类型之间的关系),增加了编译程序的负担
8、,能否在设计机器语言时,缩短与高级语言之间的差距?,带标志符的数据表示法,本章内容数据表示 自定义数据表示,思想 每个数据的格式为:例子在B5000大型机中,每个数据有一位标志符在B6500/B7500大型机中,每个数据有三位标志在R-2巨型机中采用10位标志符,标志符,数值,标志符由编译器或其它系统软件建立,对一般高级语言程序员和计算机用户透明。,4 之 1,带标志符的数据表示法,优点简化指令系统和程序设计简化编译程序便于硬件实现一致性校验能由硬件自动完成数据类型的变换为软件调试和应用软件开发提供支持,支持了数据库系统的实现与数据类型无关的要求缺点数据和指令的长度可能不一致指令执行速度降低,
9、程序设计时间、编译时间和调试时间缩短硬件复杂度增加。,本章内容数据表示 自定义数据表示,4 之 2,存储空间分析,问题 存储空间将会增加。解决 合理地设计和使用会不增反降。原因数据字增加,指令字缩小编译程序缩短,目的程序缩短,本章内容数据表示 自定义数据表示,数据字长加长,数据,指令,指令字长缩短,采用标志符的指令字长,标志符长度,不采用标志符的指令和数据字长,采用标志符的数据长度,4 之 3,存储空间分析,例:假设X处理机的数据不带标志符,其指令字长和数据字长均为32位;Y处理机的数据带标志符,数据字长增加至35位,其中3位是标志符,其指令字长由32位减少至30位。并假设一条指令平均访问两个
10、操作数,每个操作数平均被访问R次。分别计算一个有I条指令的程序在这两种不同类型的处理机中所占用的存储空间。,答:程序在X中的存储空间:程序在Y中的存储空间:二者的比值为:分析:当R3时有 BY/BX 1。在实际应用中经常是R10。,本章内容数据表示 自定义数据表示,4 之 4,数据描述符表示法,本章内容数据表示 自定义数据表示,思想 对于许多连续存放的同属性数据,例如:向量、矩阵、多维数组等,可以采用一个数据描述符作用于这样的一组数据,而没有必要让每个数据都带标志符。例子 以Burroughs公司生产的B-6700机中采用的数据描述符表示方法进行介绍。,5 之 1,B-6700中的格式,本章内
11、容数据表示 自定义数据表示,数据描述符格式 数据格式,5 之 2,取操作数的过程,本章内容数据表示 自定义数据表示,5 之 3,101,000,000,101,操作码,x,y,指令,主存储器,101,101,地址形成逻辑,寄存器,描述符,(数据),(数据),描述符,描述二维阵列(按行存储),本章内容数据表示 自定义数据表示,5 之 4,特 点,本章内容数据表示 自定义数据表示,优点整块数据可一次性操作简化编译中的代码生成 比较 标志符是和每个数据相连,合存于一个存储单元中,描述单个数据的类型特征;描述符是和数据分开存放的,专门用来描述一组数据。,5 之 5,数据表示设计,本章内容数据表示,确定
12、哪些数据类型用数据表示来实现的原则主要有:,原则一原则二,设计原则一,本章内容数据表示数据表示设计,是否提高系统的效率,即:是否减少了实现时间和所需的存储空间。实现时间的衡量主存和处理机间所需传送的消息量有否减少高速运算部件是否节省了时间是否节省了大量的辅助操作(由硬件完成)是否节省了编译所需要的时间 例子 向量数据表示的引入(例如:两个200200的定点数矩阵相加)。,设计原则二,本章内容数据表示 数据表示设计,通用性和利用率是否高。堆栈机 尽管堆栈操作速度很快,但矩阵运算效率却降低了。阵列机 还需要解决通用性问题、如何高效地实现不同的数据结构、如何确定阵列型数据表示的规模等。树型结构机器
13、堆栈、向量、链表等结构的实现低效。,寻址技术,概念 寻址技术就是寻找操作数及其他信息的地址的技术,它是软件和硬件的一个主要分界面。对象 寄存器、主存储器、堆栈和输入输出设备。,内容方法 分析各种寻址技术的优缺点,如何选择和确定寻址技术。,本章内容,编址方式 寻址方式 定位方式,编址方式,本章内容寻址技术,编址单位零地址空间个数I/O设备的编址技术并行存储器的编址技术,编址单位,本章内容寻址技术编址方式,字编址字节编址位编址,字编址,本章内容寻址技术编址方式编址单位,方法 每个编址单位与设备的访问单位相一致。即,每个编址单位所包含的信息量(例:二进制位数)与访问一次设备(指读或写)所获得的信息量
14、是相同的。优点 实现很简单,地址信息、存储器容量等没有任何浪费。缺点 没有对非数值计算的应用(要求按字节编址,因为它的基本寻址单位是字节)提供支持。,字节编址,方法 每个编址单位是字节。优点 编址单位与信息的基本单位(一个字节)相一致。缺点 地址空间的浪费。,问题 因为每个编址单位所包含的信息量(一个字节)与访问一次设备所获得的信息量(通常是一个字:字节的4倍以上)不相同,从而就产生了数据如何在存储器里存放的问题。解决 有三种:(1、2、3),本章内容寻址技术编址方式编址单位,从任意位置开始存储,优点 不浪费存储器资源。,本章内容寻址技术编址方式编址单位字节编址,缺点增加读取时间(可能需要两个
15、存储周期)存储器的读写控制比较复杂,字,单-,字节,单字,字,半-,单字,字,双-,半字,字节,存储字长:64位(8字节),主存空间,从存储字起始位置开始存储,缺点 浪费存储器资源。,本章内容寻址技术编址方式编址单位字节编址,优点读取都可以在一个存储周期内完成存储器的读写控制比较简单,存储字长:64位(8字节),主存空间,从地址整数倍位置开始存储,性能是前两种方法的折中,本章内容寻址技术编址方式编址单位字节编址,存储字长:64位(8字节),主存空间,xx00,xx08,xx10,xx18,xx20,xx28,xx30,地址,位编址,本章内容寻址技术编址方式编址单位,方法 每个编址单位是位。特点
16、 同字节编址,只不过地址信息的浪费更大。,早期的计算机大多采用字编址,目前使用最普遍的是字节编址,而位编址是一种很有应用前景的编址方式。,零地址空间个数,本章内容寻址技术编址方式,三个零地址空间 通用寄存器、主存储器和输入输出设备均独立编址。两个零地址空间 主存储器与输入输出设备统一编址。一个零地址空间 所有存储设备统一编址,最低端是通用寄存器,最高端是输入输出设备,中间为主存储器。没有零地址空间(隐含编址方式)所有存储设备都无需编址,例如:堆栈、Cache等。,I/O设备的编址技术,本章内容寻址技术编址方式,一台设备一个地址 对I/O设备本身进行编址,没有对寄存器进行编址。一台设备两个地址
17、一个地址是数据寄存器,另一个是状态或控制寄存器。一台设备多个地址 根据各种I/O设备的不同需要为它分配不同数据的地址。,并行存储器的编址技术,本章内容寻址技术编址方式,高位交叉编址 主要目的是用来扩大存储器容量。低位交叉编址 主要目的是提高存储器速度。,高位交叉编址,本章内容寻址技术编址方式并行存储器的编址技术,MBR,存储体0,MAR,0.00.0,0.0F.F,MBR,存储体1,MAR,0.10.0,0.1F.F,MBR,存储体n-1,MAR,F.F0.0,F.FF.F,译码器,高位 地址寄存器(低位),MBR 数据寄存器 MAR 地址寄存器,低位交叉编址,本章内容寻址技术编址方式并行存储
18、器的编址技术,MBR,存储体0,MAR,0.00.0,F.F0.0,MBR,存储体1,MAR,0.00.1,F.F0.1,MBR,存储体n-1,MAR,0.0F.F,F.FF.F,译码器,地址寄存器(高位)(低位),MBR 数据寄存器 MAR 地址寄存器,寻址方式,本章内容寻址技术,常用寻址方式寻址方式选择寻址方式参数大小选择,常用寻址方式的含义和使用,寻址方式选择,本章内容寻址技术寻址方式,选择方法 使用频度分析法根据指令系统风格和各种寻址方式的使用频率,选择高频率的寻址方式。例子 在VAX指令集机器上运行gcc、Spice和Tex基准程序,各种寻址方式的分布见图。,2 之 1,结论:偏移寻
19、址和立即数使用频率很高,必须支持这两种方式;对其他寻址方式,则应根据软、硬取舍原则进行选择。,2 之 2,寻址方式参数大小选择,本章内容寻址技术寻址方式,选择方法 根据频度分析法进行分析和选择。例子偏移寻址参数大小选择立即数参数大小选择,结论:偏移寻址方式中的地址长度至少为1216bit(75%99%)。,问题:偏移的范围如何确定,因为其大小直接影响指令的长度。,在Alpha体系结构计算机上使用SPEC CPU2000测试所得结果,结论:立即数寻址模式中的立即数字段长度至少为816bit(50%80%)。,问题:立即数的取值范围如何确定,因为其大小直接影响指令的长度。,在Alpha体系结构计算
20、机上使用SPEC CPU2000测试所得结果,定位方式,本章内容寻址技术,直接定位方式 在程序装入主存储器之前,程序中的指令和数据的主存物理地址就已经确定了的称为直接定位方式。静态定位方式 在程序装入主存储器的过程中随即进行地址变换,确定指令和数据的主存物理地址的称为静态定位方式。动态定位方式 在程序执行过程中,当访问到相应的指令或数据时才进行地址变换,确定指令和数据的主存物理地址的称为动态定位方式。,指令格式的优化设计,本章内容,指令的组成操作码的优化设计地址码的优化设计指令字格式的优化设计,指令的组成,本章内容指令格式的优化设计,指令一般由两部分组成:操作码和地址码。,操作码 由两部分组成
21、:指令的操作种类所用操作数的类型,地址码 由三部分组成:操作数地址地址的附加信息寻址方式,2 之 1,指令格式优化设计的目标,本章内容指令格式的优化设计,节省程序的存储空间指令格式要尽量规整,以减少硬件译码的复杂度,2 之 2,本章内容指令格式的优化设计,操作码的优化设计,评价方法固定长度操作码Huffman编码扩展编码法,本章内容指令格式的优化设计操作码的优化设计,评价方法,编码的平均码长l其中:pi:表示第i种操作码在程序中出现的概率;li:表示第i种操作码的编码长度;n:操作码的总数。,编码的信息冗余量R其中:H:为信息熵(理论上的最短平均码长)。,2 之 1,本章内容指令格式的优化设计
22、操作码的优化设计,例 子,为增加可比性,对下面介绍的编码方法采用同一例子:假设一台模型计算机,共有7种不同的指令,已知各种指令在程序中出现的概率如下表。,2 之 2,本章内容指令格式的优化设计操作码的优化设计,固定长度操作码,思想 所有指令的操作码长度都是相同的。如果需要编码的指令有n条,则固定长度操作码的位数至少需要 log2n 位。目前许多的RISC采用该思想。例子 H=1.95;l=3;R=35%特点优点:非常规整,硬件译码也很简单。缺点:浪费严重。,本章内容指令格式的优化设计操作码的优化设计,Huffman编码,思想 概率高的用短位数表示,概率低的用长位数表示。算法 利用Huffman
23、树实现。特点 是最优化的编码方式(平均码长最短,信息的冗余量最小),但操作码很不规整。,4 之 1,本章内容指令格式的优化设计操作码的优化设计,Huffman编码算法,把所有指令按照使用概率自左向右排列好。选取两个概率最小的结点合并成一个概率值是二者之和的新结点,并把这个新结点与其它还没有合并的结点一起形成新结点集合。在新结点集合中选取两个概率最小的结点进行合并,如此继续进行下去,直至全部结点合并完毕。最后得到的根结点的概率值为1。每个结点都有两个分支,分别用“0”和“1”表示。从根结点开始,沿尖头所指方向,到达属于该指令的概率结点,把沿线所经过的代码组合起来得到这条指令的操作码编码。,4 之
24、 2,本章内容指令格式的优化设计操作码的优化设计,Huffman编码举例,4 之 3,本章内容指令格式的优化设计操作码的优化设计,Huffman编码举例,H=1.95;l=1.97;R1%,4 之 4,本章内容指令格式的优化设计操作码的优化设计,扩展编码法,思想 是固定长度操作码和Huffman编码法相结合形成的。即:对Huffman编码,根据使用频率宏观分布,将编码长度扩展成有限几种长度的编码。问题 有多种扩展编码,等长扩展(例如:4-8-12、3-6-9等)?不等长扩展(例如:4-6-10等)?解决 取决于具体指令的使用频度的分布。,5 之 1,本章内容指令格式的优化设计操作码的优化设计,
25、扩展编码法举例,5 之 2,本章内容指令格式的优化设计操作码的优化设计,等长(4-8-12)15/15/15扩展编码法,5 之 3,本章内容指令格式的优化设计操作码的优化设计,等长(4-8-12)8/64/512扩展编码法,5 之 4,本章内容指令格式的优化设计操作码的优化设计,不等长(4-6-10)扩展编码法,5 之 5,本章内容指令格式的优化设计,地址码的优化设计,地址个数的选择优化单个地址码,本章内容指令格式的优化设计地址码的优化设计,地址个数的选择,采用各种不同地址数指令编写的程序的特点和适用范围,本章内容指令格式的优化设计地址码的优化设计,优化单个地址码,目的 要用一个较短的地址码表
26、示一个较大的逻辑地址空间,同时还要有较灵活有效的寻址方式。常用方法用间址寻址方式缩短地址码长度用变址寻址方式缩短地址码长度用寄存器间接地址方式缩短地址码长度(是最有效的方法),本章内容指令格式的优化设计,指令字格式的优化设计,问题 操作码和地址码的优化,会造成指令字的不定长,无法同时满足速度快和空间省。解决 合理结合,形成定长或多种长度的指令字,例如:长操作码配短地址码等。,指令系统的功能设计,本章内容,指令系统性能基本指令系统指令系统优化设计复杂指令系统计算机(CISC)精简指令系统计算机(RISC),指令系统性能,本章内容指令系统的功能设计,完整性 是指作为通用计算机所应该具备的基本指令种
27、类。高效率 是指指令的执行速度要快,使用频度要高。例如:在RISC体系结构中,大多数指令都能在一个节拍内完成,而且只设置那些使用频度高的指令。兼容性 是计算机系统的生命力之所在。,4 之 1,指令系统性能,本章内容指令系统的功能设计,4 之 2,规整性 是硬件设计(如:VLSI技术)和软件设计(如:编译程序)的需要。规整性主要包括:对称性和均匀性。,对于规整性的要求必须有所选择。,对称性,本章内容指令系统的功能设计规整性,4 之 3,是指各种与指令系统有关的数据存储设备的使用、操作码的设置等都要对称。例1:所有的通用寄存器要同等对待例2:如果设置A-B指令,则也应该设置B-A指令,均匀性,本章
28、内容指令系统的功能设计规整性,4 之 4,是指对于各种不同的数据类型、字长、操作种类和数据存储设备,指令的设置要同等对待。例如:某机器有5种数据表示、4种字长、8种数据存储设备,则在设计加法指令时,指令种类应该是:548160种两地址加法指令(不可能也不太现实)。,基本指令系统,本章内容指令系统的功能设计,在设计通用计算机时,指令系统的完整性是必须要考虑的,基本指令有:数据传送类指令 运算类指令 程序控制指令 输入输出指令 处理机控制和调试指令,复杂指令系统计算机(CISC),本章内容指令系统的功能设计,思想 增强原有指令的功能以及设置更为复杂的新指令取代原先由软件子程序完成的功能,实现软件功
29、能的硬化。途径从面向目标程序的优化实现来改进指令系统从面向高级语言的优化实现来改进指令系统从面向操作系统的优化实现来改进指令系统,从面向目标程序的优化实现来改进,本章内容指令系统的功能设计CISC,优化目的缩短目标程序的长度,即减少程序的空间开销缩短目标程序的执行时间,即减少程序的时间开销 优化思路 对大量已有的目标程序及其执行情况进行统计,按统计出的各种指令和指令串的使用频度来分析改进。,4 之 1,本章内容指令系统的功能设计CISC,4 之 2,指令的使用频度,指令静态使用频度 是指对多种典型程序源代码中所用的指令和指令串进行统计所得出的百分比(着眼于减少目标程序所占用的存储空间)。指令动
30、态使用频度 是指对多种典型程序在运行过程中所执行的指令和指令串进行统计所得出的百分比(着眼于减少目标程序的执行时间)。,统计结果表明:指令动态使用频度指令静态使用频度,本章内容指令系统的功能设计CISC,对使用频率高的指令,增强其功能、加快其执行速度并缩短字长;对使用频率高的指令串,增设新指令来替代它;对使用频率低的指令,取消或合并,但要考虑到指令系统的兼容性问题。,4 之 3,优化方法,本章内容指令系统的功能设计CISC,例如:循环在程序中占有相当大的 比例,所以在指令上提供专门的支持。循环控制部分通常用3条指令完成一条加法指令一条比较指令一条分支指令设置循环控制指令,用一条指令完成上述3条
31、指令的功能。,4 之 4,例 子,从面向高级语言的优化实现来改进,本章内容指令系统的功能设计CISC,优化目的 尽可能减小高级语言和机器语言之间的语义差距,以利于支持高级语言编译器(缩短编译器的代码长度及编译时间)的构造。优化方法增强对高级语言支持的指令的功能增强对编译程序支持的指令的功能高级语言计算机,增强对高级语言支持的指令的功能,本章内容指令系统的功能设计CISC从面向高级语言的优化实现来改进,思想 对源程序中各种高级语言语句的静态/动态使用频度进行统计分析来改进。问题 高级语言因用途不同,其语句使用频度有较大差异,因此指令系统很难做到对各种语言都是优化的。解决 优化你所用的高级语言。,
32、增强对编译程序支持的指令的功能,本章内容指令系统的功能设计CISC从面向高级语言的优化实现来改进,思想 缩短高级语言和机器语言之间的语义差距。问题 如果计算机系统结构过分优化于一种高级语言的实现,就会显著减低与其语义结构相差较大的其它高级语言的实现效率。解决同时面向各种高级语言的优化实现来改进动态自适应指令系统,同时面向各种高级语言的优化实现来改进,本章内容指令系统的功能设计CISC从面向高级语言的优化实现来改进增强支持编译程序指令的功能,可以设法改进指令系统,使它与各种高级语言的语义差距都有共同的缩小。,Von Neumann系统结构,右移,COBOL,PL/I,APL,FORTRAN,BA
33、SIC,动态自适应指令系统,本章内容指令系统的功能设计CISC从面向高级语言的优化实现来改进增强支持编译程序指令的功能,让机器具有分别面向各种高级语言的多种指令系统、多种系统结构,并能动态地切换。,高级语言计算机,本章内容指令系统的功能设计CISC从面向高级语言的优化实现来改进,思想 让高级语言和机器语言之间无语义差距。方法间接执行高级语言机器 高级语言=汇编语言直接执行高级语言机器 高级语言=机器语言,从面向操作系统的优化实现来改进,本章内容指令系统的功能设计CISC,优化目的减少运行操作系统所需的辅助操作时间;节省操作系统所占用的存贮空间。优化方法对操作系统中常用的指令和指令串的使用频率进
34、行统计和分析来改造;增设专用于操作系统的新指令;将操作系统中由软件子程序实现的某些功能改用硬件或固件实现。,2 之 1,从面向操作系统的优化实现来改进,本章内容指令系统的功能设计CISC,指令集对操作系统的支持主要有:处理机工作状态和访问方式的切换。进程的管理和切换。存储管理和信息保护。进程的同步与互斥,信号灯的管理等。支持操作系统的有些指令属于特权指令,一般用户程序是不能使用的。,2 之 2,精简指令系统计算机(RISC),本章内容指令系统的功能设计,CISCRISCRISC的定义RISC的思想RISC的关键技术RISC的特点,CISCRISC,本章内容指令系统的功能设计RISC,RISC思
35、想的提出主要是因为CISC存在这样的一些问题:指令系统复杂,不利于VLSI的设计,也不利于设计自动化技术的采用;许多复杂指令的执行速度很低;编译程序选择目标指令的范围大,很难优化;20%和80%的规律:80%的指令只在20%的运行时间里用到。,RISC的定义,本章内容指令系统的功能设计RISC,Carnegie-Mellon大学的定义IEEE的Michael Slater的定义,至今没有一个确切的定义,Carnegie-Mellon大学的定义,本章内容指令系统的功能设计RISCRISC的定义,RISC应有如下的特点:大多数指令在单周期内完成;LOAD/STORE结构;硬布线控制逻辑;减少指令和
36、寻址方式的种类;固定的指令格式;注重编译优化技术。,IEEE的Michael Slater的定义,本章内容指令系统的功能设计RISCRISC的定义,RISC处理器所设计的指令系统应使流水线处理能高效率执行,并使优化编译器能生成优化代码。RISC为使流水线高效率执行,应具有:简单而统一格式的指令译码;大部分指令可以单周期执行完成;仅LOAD和STORE指令可以访问存储器;简单的寻址方式;采用延迟转移技术;采用LOAD延迟技术。RISC为使优化编译器便于生成优化代码,应具有:三地址指令格式、较多的寄存器、对称的指令格式。,RISC的思想,本章内容指令系统的功能设计RISC,减少指令总数和简化指令的
37、功能来降低硬件设计的复杂度,提高指令的执行速度。,减少指令平均执行周期数(CPI)是RISC思想的精华!,RISC的关键技术,本章内容指令系统的功能设计RISC,硬件为主固件为辅 在CPU中设置数量较大的寄存器组 采用重叠寄存器窗口技术提高使用效率。指令的执行采用流水 采用延时转移技术和指令取消技术来降低(条件)转移指令对流水的影响。采用认真设计和优化编译系统设计的技术 例如:指令流调整技术。,重叠寄存器窗口技术,本章内容指令系统的功能设计RISCRISC的关键技术,目标 缩短CALL、RETURN操作时间。方法 将设置的大量的寄存器,分成多个组和一个全局区;每个组中分高、本、低三个区;相邻组
38、的高、低区重叠;不同的过程使用不同的组和共享全局区,这样可以加速参数与结果的传递。例子 RISC II中采用的重叠寄存器窗口,见后图。,4 之 1,RISC II中采用的重叠寄存器窗口,R31C,R26C,R25C,R16C,高,本,R15C,R10C,低,过程C,R31A,R26A,R25A,R16A,高,本,R15A,R10A,低,过程A,R31B,R26B,R25B,R16B,高,本,R15B,R10B,低,过程B,0,9,84,89,90,99,100,105,106,115,116,121,122,131,132,137,R9A,R0A,R9B,R0B,R9C,R0C,全局,出C,出
39、B/入C,出A/入B,入A,局部A,局部B,局部C,调用,调用,4 之 2,寄存器窗口技术的效果,过程调用所需开销的比较,Quick sort程序的调用次数多,深度不大,而Puzzle程序正好相反。VAX-11、PDP-11、MC68000为CISC计算机,RISC II为RISC计算机。,4 之 3,重叠寄存器窗口技术,本章内容指令系统的功能设计RISCRISC的关键技术,设计问题 寄存器设置多少个组?每个组多少个寄存器?解决方法 嵌套调用不超过8层,每层24个寄存器(每个区8个寄存器)可基本满足要求,不满足概率在1%左右(可使用主存缓冲)。,4 之 4,延时转移技术,本章内容指令系统的功能
40、设计RISCRISC的关键技术,问题(条件)转移指令会引起流水线断流。,F,E,F,E,F,E,F,E,1:add r1,r22:jmp next23:next1:sub r3,r4n:next2:move r4,a,产生转移地址,指令作废,重新取指令,3 之 1,延时转移技术,本章内容指令系统的功能设计RISCRISC的关键技术,解决 延时转移技术。,F,E,F,E,F,E,1:jmp next22:add r1,r23:next1:sub r3,r4n:next2:move r4,a,产生转移地址,插入指令,重新取指令,3 之 2,指令序列的调整由编译器自动进行,延时转移技术,本章内容指令
41、系统的功能设计RISCRISC的关键技术,分析 采用延迟转移技术的两个限制条件:被移动指令在移动过程中与所经过的指令之间不能有数据相关;被移动指令不破坏条件码,至少不影响后面的指令使用条件码。,如果找不到符合条件的指令,必须在(条件)转移指令后面插入空操作;如果指令的执行过程分为多个流水段,则要插入多条指令。,3 之 3,指令取消技术,本章内容指令系统的功能设计RISCRISC的关键技术,问题 采用指令延时技术,遇到条件转移指令时,调整指令序列非常困难,在许多情况下找不到可以用来调整的指令。解决 采用指令取消技术(为了提高程序的执行效率,应该尽量少取消指令)。,4 之 1,例1:向后转移(lo
42、op结构),本章内容指令系统的功能设计RISCRISC的关键技术,调整前 调整后loop:X X X X X XY Y Y loop:Y Y YZ Z ZZ Z Zcmp r1,r2,loopcmp r1,r2,loopW W WX X XW W W分析:能够使指令流水线在绝大多数情况下不断流,因为绝大多数情况下,转移是成功的。,4 之 2,例2:向前转移(if-then-else结构),本章内容指令系统的功能设计RISCRISC的关键技术,R R RS S Scmp r1,r2,thru;若转移,则取消TTTT T T;若不转移,则执行TTTU U Uthru:VVV分析:成功与不成功的概率
43、通常各为50%,效果就不明显。用于转移不成功为主的场合。,4 之 3,例3:隐含转移(if-then结构),本章内容指令系统的功能设计RISCRISC的关键技术,语句:if(a=,ra,rb,nextt:inc rbjmp xxx next:next:inc rbjmp txxx:分析:用于转移成功为主的场合。,4 之 4,指令流调整技术,本章内容指令系统的功能设计RISCRISC的关键技术,目的 通过调整指令序列、变量重新命名等方法消除数据相关,提高流水线执行效率。例子调整前调整后addr1,r2,r3addr1,r2,r3addr3,r4,r5mulr6,r7,r0mulr6,r7,r3a
44、ddr3,r4,r5mulr3,r8,r9mulr0,r8,r9,调整后执行速度快一倍,RISC的特点,优点简化指令系统设计,适合VLSI实现提高执行速度和效率降低设计成本,提高了系统的可靠性可以提供直接支持高级语言的能力,简化编译程序的设计,缺点加重了汇编语言程序员的负担对浮点运算和虚拟存储器的支持不够理想相对来说,RISC机器上的编译程序要比CISC机器上的难写。,本章内容指令系统的功能设计RISC,综合实例MIPS指令集,概述MIPS的寄存器MIPS的数据表示MIPS的寻址方式MIPS指令格式MIPS操作,本章内容,概 述,本章内容MIPS指令集,MIPS计算机是一个简单的64bit l
45、oad-store系统结构的RISC计算机。MIPS强调:简单的load-store指令集;设计上重视流水线效率;使得编译器更容易产生高效的目标代码。,MIPS是一种适合学习和理解的系统结构模型,MIPS的寄存器,本章内容MIPS指令集,整数寄存器 MIPS设置了32个64bit的通用寄存器(GPR)用于整数操作,分别命名为:R0、R1、R31。其中R0的值永远为0。浮点寄存器 MIPS设置了32个64bit的浮点数寄存器(FPR)用于浮点数数操作,分别命名为:F0、F1、F31。特殊寄存器 例如:浮点状态寄存器等。,MIPS的数据表示,本章内容MIPS指令集,用于整数的数据类型 有:字节(8
46、bit)、半字(16bit)、字(32bit)和双字(64bit)。用于浮点数的数据类型 有:单精度(32bit),双精度(64bit)。,MIPS的寻址方式,本章内容MIPS指令集,数据寻址方式只有两种:立即数和偏移寻址,字段长度都为16bit。,寄存器间接寻址是通过将0放入16bit位移字段中得到的;16bit绝对寻址是通过将寄存器R0作为基址寄存器得到的。,MIPS指令格式,本章内容MIPS指令集,所有的指令都是32bit,其中6bit为操作码(包含寻址模式),具体格式见右图。,MIPS操作,本章内容MIPS指令集,ALU操作分支与跳转load/store操作浮点数操作,ALU操作举例,上标:表示对字段进行复制。#:连接两个字段。:逻辑左移,分支与跳转举例,下标:标识字段中特定的位。,load/store操作举例,浮点数操作,本章内容MIPS指令集MIPS操作,浮点操作包括加、减、乘、除,后缀S表示单精度浮点数,后缀D表示双精度浮点数,例如:ADD.D、ADD.S、SUB.D、SUB.S、MUL.D、MUL.S、DIV.D、DIV.S等。,作 业,本章内容,参见“第二章(习题).DOC”,可要认真做哦!,