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

上传人:无*** 文档编号:145739333 上传时间:2022-08-30 格式:PPT 页数:126 大小:1.61MB
收藏 版权申诉 举报 下载
计算机系统结构第二章指令系统_第1页
第1页 / 共126页
计算机系统结构第二章指令系统_第2页
第2页 / 共126页
计算机系统结构第二章指令系统_第3页
第3页 / 共126页
资源描述:

《计算机系统结构第二章指令系统》由会员分享,可在线阅读,更多相关《计算机系统结构第二章指令系统(126页珍藏版)》请在装配图网上搜索。

1、指令系统 指令系统的分类 数据表示 寻址技术 指令格式的优化设计 指令系统的功能设计 综合实例:MIPS指令集指令系统的分类本章内容根据CPU中操作数的存储方法分类(主要分类准则)根据指令中显式操作数个数分类根据操作数能否放在存储器中分类堆栈型指令系统累加器型指令系统寄存器型指令系统6 之 1以以C=A+B为例说明不同指令系统的特点为例说明不同指令系统的特点6 之 2 灰色块:灰色块:操作数 黑色块:黑色块:结果 TOSTOS:栈顶三种指令系统的特点指令长度短,代码密度高,占用存储空间小。代码效率低,执行效率不高。指令长度短,代码密度高,代码效率高。执行效率不高。指令简单,执行效率高,对编译程

2、序支持好。指令长度长。本章内容现在通用寄存器型已成为主流结构6 之 3通用寄存器型指令系统的分类本章内容 根据分类标准2、3可以分为:6 之 4不同通用寄存器型指令系统的特点本章内容6 之 5指令系统的选择本章内容 针对应用需求,对指令中各属性分布进行分析,根据指令执行效率确定指令集风格 根据各种指令的各属性分布确定寄存器数及操作数个数 必须考虑对OS和编译程序的支持6 之 6数据表示 本章内容 基本概念 基本数据表示 高级数据表示 数据表示设计基本概念本章内容数据表示 计算机系统中可以使用和处理的各种数据的类型,主要有:整数、布尔数、字符、文件、图、表、树、阵列、队列、链表、栈、向量、串等。

3、能由硬件直接识别和引用(即有相应运算指令和有硬件支持)的数据类型,例如:定点数据表示、逻辑数据表示、浮点数据表示等。带有结构的数据元素的集合,例如:串、队列、栈、向量、阵列、链表、树、图等。3 之 1三者之间的关系本章内容数据表示 3 之 2 数据表示和数据结构都是数据类型的子集;数据表示是数据类型中最常用、也是相对较简单,用硬件实现相对比较容易的;数据结构由软件进行实现,转换成数据表示。确定哪些数据类型用数据表示实现,是软件与硬件的取舍问题。结 论本章内容数据表示 3 之 3 数据类型是指令系统的核心内容,系统结构设计者在设计时应首先确定:基本数据表示本章内容数据表示 定点数、浮点数、十进制

4、数、逻辑数、字符等。支持数据结构,提高系统效率和性能/价格。根据应用需求,设计各种参数、指标。浮点数数据表示的设计。2 之 1浮点数数据表示设计 浮点数格式 浮点数尾数基值选择 浮点数尾数下溢处理 浮点数格式设计本章内容数据表示 2 之 2浮点数格式两个符号::尾数符号:阶码符号本章内容数据表示 浮点数数据表示remmN1位位1位位q位位p位位mfefem两个数值:两个数值::尾数的值尾数的值 :阶码的值阶码的值两个基:两个基::尾数的基尾数的基:阶码的基阶码的基两个字长两个字长::尾数的长度尾数的长度:阶码的长度阶码的长度浮点数尾数基值的选择 随rm加大,范围加大。随rm加大,个数增多。随r

5、m加大,精度变低。随rm加大,损失变小。随rm加大,速度变快。rm的选择应根据应用需要来综合平衡:m 尾数字长较长可以弥补精度的损失。m 提高的精度可以弥补尾数字长较短的不足。本章内容数据表示 浮点数数据表示浮点数尾数下溢的处理 在浮点数操作(相加、相乘、右移等)过程中产生的下溢会造成精度的损失。设计,有多种方法,不同的方法有不同的优点和缺点,其出发点和应用场合也不一样,应根据需要进行选择。截断法 舍入法 恒置“1”法 查表舍入法 本章内容数据表示 浮点数数据表示浮点数格式设计本章内容数据表示 浮点数数据表示 码制可以采用原码或补码,数制可以采用整数或小数,基可以采用二进制、四进制、八进制、十

6、进制或十六进制。多数机器采用表示,尾数的基rm。码制可以采用移码或补码,数制采用整数,基re=2。一般机器都采用表示。2 之 1浮点数格式设计本章内容数据表示 浮点数数据表示 在表数范围和表数精度给定的情况下,如何确定最短的尾数字长p和阶码字长q。阶码长度q 影响表数范围。尾数长度p 影响表数精度。尾数基值rm 影响表数范围、精度及数在数轴上分布离散程度。2 之 2高级数据表示本章内容数据表示 堆栈、向量、数组(队列)、记录、自定义数据表示等。支持数据结构,提高系统效率和性能/价格。自定义数据表示。2 之 1自定义数据表示本章内容数据表示 存在问题 解决方法带标志符的数据表示法数据描述符表示法

7、2 之 2存在问题本章内容数据表示 自定义数据表示 在高级语言与机器语言之间存在着很大的语义差距(例如:),增加了编译程序的负担,能否在设计机器语言时,缩短与高级语言之间的差距?带标志符的数据表示法本章内容数据表示 自定义数据表示 每个数据的格式为:在B5000大型机中,每个数据有一位标志符 在B6500/B7500大型机中,每个数据有三位标志 在R-2巨型机中采用10位标志符10位标志符位标志符功能功能数值数值陷井陷井封写封写类型类型校验校验2位位2位位1位位4位位1位位标志符标志符数值数值 标志符由编译器或标志符由编译器或其它系统软件建立,对其它系统软件建立,对一般高级语言程序员和一般高级

8、语言程序员和计算机用户透明。计算机用户透明。4 之 1带标志符的数据表示法简化指令系统和程序设计简化编译程序便于硬件实现一致性校验能由硬件自动完成数据类型的变换为软件调试和应用软件开发提供支持支持了数据库系统的实现与数据类型无关的要求数据和指令的长度可能不一致指令执行速度降低,程序设计时间、编译时间和调试时间缩短硬件复杂度增加。本章内容数据表示 自定义数据表示4 之 2存储空间分析 存储空间将会增加。合理地设计和使用会不增反降。数据字增加,指令字缩小编译程序缩短,目的程序缩短本章内容数据表示 自定义数据表示数据字长数据字长加长加长数据数据指令指令指指令令字字长长缩缩短短采用标志符采用标志符的指

9、令字长的指令字长标志符长度标志符长度不采不采用标用标志符志符的指的指令和令和数据数据字长字长采用标志符的数据长度采用标志符的数据长度4 之 3存储空间分析假设X处理机的数据不带标志符,其指令字长和数据字长均为32位;Y处理机的数据带标志符,数据字长增加至35位,其中3位是标志符,其指令字长由32位减少至30位。并假设一条指令平均访问两个操作数,每个操作数平均被访问R次。分别计算一个有I条指令的程序在这两种不同类型的处理机中所占用的存储空间。程序在X中的存储空间:程序在Y中的存储空间:二者的比值为:当R3时有 BY/BX 数据表示 自定义数据表示RIIBY35230321635153223235

10、230RRRIIRIIBBXYRIIBX322324 之 4数据描述符表示法本章内容数据表示 自定义数据表示 对于许多连续存放的同属性数据,例如:向量、矩阵、多维数组等,可以采用一个数据描述符作用于这样的一组数据,而没有必要让每个数据都带标志符。以Burroughs公司生产的机中采用的数据描述符表示方法进行介绍。5 之 1B-6700中的格式本章内容数据表示 自定义数据表示101数据块起始地址数据块起始地址标志位标志位数据块长度数据块长度000数值数值5 之 2取操作数的过程本章内容数据表示 自定义数据表示5 之 3101000000101操作码操作码xy指令指令主存储器主存储器101101地

11、址形地址形成逻辑成逻辑寄存器寄存器描述符描述符(数据)(数据)(数据)(数据)描述符描述符描述二维阵列(按行存储)本章内容数据表示 自定义数据表示101标志标志3101标志标志4101标志标志4101标志标志4000a11000a12000a13000a14000a21000a22000a23000a24000a31000a32000a33000a34OPCXY343332312423222114131211aaaaaaaaaaaaA5 之 4特 点本章内容数据表示 自定义数据表示 整块数据可一次性操作简化编译中的代码生成 标志符是和每个数据相连,合存于一个存储单元中,;描述符是和数据分开存放

12、的,。5 之 5数据表示设计本章内容数据表示 确定哪些数据类型用数据表示来实现的原则主要有:w 原则一原则一w 原则二原则二设计原则一本章内容数据表示数据表示设计 主存和处理机间所需传送的消息量有否减少高速运算部件是否节省了时间是否节省了大量的辅助操作(由硬件完成)是否节省了编译所需要的时间 向量数据表示的引入(例如:两个200200的定点数矩阵相加)。设计原则二本章内容数据表示 数据表示设计 尽管堆栈操作速度很快,但矩阵运算效率却降低了。还需要解决通用性问题、如何高效地实现不同的数据结构、如何确定阵列型数据表示的规模等。堆栈、向量、链表等结构的实现低效。寻址技术 寻址技术就是寻找操作数及其他

13、信息的地址的技术,它是软件和硬件的一个主要分界面。寄存器、主存储器、堆栈和输入输出设备。分析各种寻址技术的优缺点,如何选择和确定寻址技术。本章内容w 编址方式编址方式w 寻址方式寻址方式w 定位方式定位方式编址方式本章内容寻址技术 编址单位 零地址空间个数 I/O设备的编址技术 并行存储器的编址技术编址单位本章内容寻址技术编址方式 字编址 字节编址 位编址字编址本章内容寻址技术编址方式编址单位 。即,每个编址单位所包含的信息量(例:二进制位数)与访问一次设备(指读或写)所获得的信息量是相同的。实现很简单,地址信息、存储器容量等没有任何浪费。没有对非数值计算的应用(要求按字节编址,因为它的基本寻

14、址单位是字节)提供支持。字节编址 每个编址单位是字节。编址单位与信息的基本单位(一个字节)相一致。地址空间的浪费。因为每个编址单位所包含的信息量(一个字节)与访问一次设备所获得的信息量(通常是一个字:字节的4倍以上)不相同,从而就产生了数据如何在存储器里存放的问题。有三种:(1、2、3)本章内容寻址技术编址方式编址单位从任意位置开始存储 不浪费存储器资源。本章内容寻址技术编址方式编址单位字节编址n增加读取时间(可能需增加读取时间(可能需要两个存储周期)要两个存储周期)n存储器的读写控制比较存储器的读写控制比较复杂复杂字字单单-字节字节单字单字字字半半-单字单字字字双双-半字半字字节字节存储字长

15、:存储字长:6464位(位(8 8字节)字节)主存空间主存空间从存储字起始位置开始存储 浪费存储器资源。本章内容寻址技术编址方式编址单位字节编址n读取都可以在一个存储读取都可以在一个存储周期内完成周期内完成n存储器的读写控制比较存储器的读写控制比较简单简单存储字长:存储字长:64位(位(8字节)字节)主存空间主存空间字节字节浪费浪费半字半字浪费浪费单字单字浪费浪费双字双字从地址整数倍位置开始存储性能是前两种方法的折中 本章内容寻址技术编址方式编址单位字节编址存储字长:存储字长:64位(位(8字节)字节)主存空间主存空间字节字节浪费浪费双字双字单字单字浪费浪费双字双字字节字节浪费浪费单字单字双字

16、双字字节字节 浪费浪费半字半字xx00 xx08xx10 xx18xx20 xx28xx30地址地址位编址本章内容寻址技术编址方式编址单位 每个编址单位是位。同字节编址,只不过地址信息的浪费更大。零地址空间个数本章内容寻址技术编址方式 通用寄存器、主存储器和输入输出设备均独立编址。主存储器与输入输出设备统一编址。所有存储设备统一编址,最低端是通用寄存器,最高端是输入输出设备,中间为主存储器。所有存储设备都无需编址,例如:堆栈、Cache等。I/O设备的编址技术本章内容寻址技术编址方式 对I/O设备本身进行编址,没有对寄存器进行编址。一个地址是数据寄存器,另一个是状态或控制寄存器。根据各种I/O

17、设备的不同需要为它分配不同数据的地址。并行存储器的编址技术本章内容寻址技术编址方式 高位交叉编址 主要目的是用来扩大存储器容量。低位交叉编址 主要目的是提高存储器速度。高位交叉编址本章内容寻址技术编址方式并行存储器的编址技术MBR存储体存储体0MAR0.00.00.0F.FMBR存储体存储体1MAR0.10.00.1F.FMBR存储体存储体n-1MARF.F0.0F.FF.F译码器译码器 高位高位 地址寄存器(低位)地址寄存器(低位)数据寄存器数据寄存器 地址寄存器地址寄存器 低位交叉编址本章内容寻址技术编址方式并行存储器的编址技术MBR存储体存储体0MAR0.00.0F.F0.0MBR存储体

18、存储体1MAR0.00.1F.F0.1MBR存储体存储体n-1MAR0.0F.FF.FF.F译码器译码器 地址寄存器(高位)地址寄存器(高位)(低位)(低位)数据寄存器数据寄存器 地址寄存器地址寄存器 寻址方式本章内容寻址技术 常用寻址方式 寻址方式选择 寻址方式参数大小选择常用寻址方式的含义和使用常用寻址方式的含义和使用寻址方式选择本章内容寻址技术寻址方式 使用根据指令系统风格和各种寻址方式的使用频率,选择高频率的寻址方式。在VAX指令集机器上运行gcc、Spice和Tex基准程序,各种寻址方式的分布见图。2 之 1偏移寻址和立即数使用频率很高,必须支持偏移寻址和立即数使用频率很高,必须支持

19、这两种方式;对其他寻址方式,则应根据软、这两种方式;对其他寻址方式,则应根据软、硬取舍原则进行选择。硬取舍原则进行选择。2 之 2寻址方式参数大小选择本章内容寻址技术寻址方式 根据进行分析和选择。偏移寻址参数大小选择立即数参数大小选择 偏移寻址方式中的地偏移寻址方式中的地址长度至少为址长度至少为1216bit(75%99%)。)。偏移的范围如何确偏移的范围如何确定,因为其大小直接定,因为其大小直接影响指令的长度。影响指令的长度。在在Alpha体系结构计算机上使用体系结构计算机上使用SPEC CPU2000测试所得结果测试所得结果 立即数寻址模式中的立立即数寻址模式中的立即数字段长度至少为即数字

20、段长度至少为816bit(50%80%)。)。立即数的取值范围如立即数的取值范围如何确定,因为其大小直何确定,因为其大小直接影响指令的长度。接影响指令的长度。在在Alpha体系结构计算机上使用体系结构计算机上使用SPEC CPU2000测试所得结果测试所得结果定位方式本章内容寻址技术 在程序装入主存储器之前,程序中的指令和数据的主存物理地址就已经确定了的称为直接定位方式。在程序装入主存储器的过程中随即进行地址变换,确定指令和数据的主存物理地址的称为静态定位方式。在程序执行过程中,当访问到相应的指令或数据时才进行地址变换,确定指令和数据的主存物理地址的称为动态定位方式。指令格式的优化设计本章内容

21、 指令的组成 操作码的优化设计 地址码的优化设计 指令字格式的优化设计指令的组成本章内容指令格式的优化设计 指令一般由两部分组成:和。由两部分组成:由两部分组成:指令的操作种类指令的操作种类所用操作数的类型所用操作数的类型 由三部分组成:由三部分组成:操作数地址操作数地址地址的附加信息地址的附加信息寻址方式寻址方式2 之 1指令格式优化设计的目标本章内容指令格式的优化设计程序的 指令格式要,以减少硬件译码的复杂度2 之 2本章内容指令格式的优化设计操作码的优化设计 评价方法 固定长度操作码 Huffman编码 扩展编码法本章内容指令格式的优化设计操作码的优化设计评价方法其中:表示第i种操作码在

22、程序中出现的概率;表示第i种操作码的编码长度;操作码的总数。其中:为信息熵(理论上的最短平均码长)。ipinipH2log1lH-1 R iilnipl12 之 1本章内容指令格式的优化设计操作码的优化设计例 子 为增加可比性,对下面介绍的编码方法采用同一例子:。2 之 2指令指令I1概率概率 0.45I20.30I30.15I40.05I50.03I60.01I70.01本章内容指令格式的优化设计操作码的优化设计固定长度操作码 所有指令的操作码长度都是相同的。如果需要编码的指令有n条,则固定长度操作码的位数至少需要 log2n 位。目前许多的RISC采用该思想。H=1.95;l=3;R=35

23、%非常规整,硬件译码也很简单。浪费严重。本章内容指令格式的优化设计操作码的优化设计Huffman编码 概率高的用短位数表示,概率低的用长位数表示。利用Huffman树实现。是最优化的编码方式(平均码长最短,信息的冗余量最小),但操作码很不规整。4 之 1本章内容指令格式的优化设计操作码的优化设计Huffman编码算法 把所有指令按照使用概率自左向右排列好。选取两个概率最小的结点合并成一个概率值是二者之和的新结点,并把这个新结点与其它还没有合并的结点一起形成新结点集合。在新结点集合中选取两个概率最小的结点进行合并,如此继续进行下去,直至全部结点合并完毕。最后得到的根结点的概率值为1。每个结点都有

24、两个分支,分别用“0”和“1”表示。从根结点开始,沿尖头所指方向,到达属于该指令的概率结点,把沿线所经过的代码组合起来得到这条指令的操作码编码。4 之 2本章内容指令格式的优化设计操作码的优化设计Huffman编码举例0.450.300.150.050.030.010.011.000.550.250.100.050.020101010101014 之 3本章内容指令格式的优化设计操作码的优化设计Huffman编码举例指令序号指令序号概率概率Huffman编码法编码法操作码长度操作码长度I10.4501位位I20.30102位位I30.151103位位I40.0511104位位I50.03111

25、105位位I60.011111106位位I70.011111116位位H=1.95;l=1.97;R1%4 之 4本章内容指令格式的优化设计操作码的优化设计扩展编码法 是固定长度操作码和Huffman编码法相结合形成的。即:。有多种扩展编码,等长扩展(例如:4-8-12、3-6-9等)?不等长扩展(例如:4-6-10等)?取决于具体指令的使用频度的分布。5 之 1本章内容指令格式的优化设计操作码的优化设计扩展编码法举例序号序号概率概率1-2-3-5扩展编码扩展编码I10.450I20.3010I30.15110I40.0511100I50.0311101I60.0111110I70.01111

26、112-4等长扩展编码等长扩展编码0001101100110111101111平均码长平均码长2.02.2信息冗余量信息冗余量2.5%11.4%5 之 2本章内容指令格式的优化设计操作码的优化设计等长(4-8-12)15/15/15扩展编码法操作码编码操作码编码说明说明0000000111104位长度的操作码位长度的操作码共共15种种1111 00001111 00011111 11108位长度的操作码位长度的操作码共共15种种1111 1111 00001111 1111 00011111 1111 111012位长度的操作码位长度的操作码共共16种种5 之 3本章内容指令格式的优化设计操作

27、码的优化设计等长(4-8-12)8/64/512扩展编码法操作码编码操作码编码说明说明0000000101114位长度的操作码位长度的操作码共共8种种1000 00001000 00011111 01118位长度的操作码位长度的操作码共共64种种1000 1000 00001000 1000 00011111 1111 011112位长度的操作码位长度的操作码共共512种种5 之 4本章内容指令格式的优化设计操作码的优化设计不等长(4-6-10)扩展编码法5 之 5编码方法编码方法各种不同长度操作码的指令种类各种不同长度操作码的指令种类总的总的指令种类指令种类4位操作码位操作码 6位操作码位操

28、作码 10位操作码位操作码15/3/1615316348/31/1683116558/30/3283032708/16/2568162562804/32/256432256292本章内容指令格式的优化设计地址码的优化设计 地址个数的选择 优化单个地址码本章内容指令格式的优化设计地址码的优化设计地址个数的选择地址数目地址数目指令指令条数条数程序程序存储量存储量程序执程序执行速度行速度适用场合适用场合三地址三地址少少最大最大一般一般向量、矩阵运算为主向量、矩阵运算为主二地址二地址一般一般很大很大很低很低一般不宜采用一般不宜采用一地址一地址较多较多较大较大较快较快连续运算,硬件结构简单连续运算,硬件

29、结构简单零地址零地址最多最多最小最小最低最低嵌套、递归、变量较多嵌套、递归、变量较多二地址二地址R型型一般一般最小最小最快最快多累加器、数据传送较多多累加器、数据传送较多采用各种不同地址数指令编写的程序的特点和适用范围采用各种不同地址数指令编写的程序的特点和适用范围本章内容指令格式的优化设计地址码的优化设计优化单个地址码 要用一个较短的地址码表示一个较大的逻辑地址空间,同时还要有较灵活有效的寻址方式。用间址寻址方式缩短地址码长度用变址寻址方式缩短地址码长度用寄存器间接地址方式缩短地址码长度(是最有效的方法)本章内容指令格式的优化设计指令字格式的优化设计 操作码和地址码的优化,会造成指令字的不定

30、长,无法同时满足速度快和空间省。合理结合,形成定长或多种长度的指令字,例如:长操作码配短地址码等。指令系统的功能设计本章内容 指令系统性能 基本指令系统 指令系统优化设计复杂指令系统计算机(CISC)精简指令系统计算机(RISC)指令系统性能本章内容指令系统的功能设计 是指作为通用计算机所应该具备的基本指令种类。是指指令的执行速度要快,使用频度要高。例如:在RISC体系结构中,大多数指令都能在一个节拍内完成,而且只设置那些使用频度高的指令。是计算机系统的生命力之所在。4 之 1指令系统性能本章内容指令系统的功能设计4 之 2 是硬件设计(如:VLSI技术)和软件设计(如:编译程序)的需要。规整

31、性主要包括:对称性和均匀性。对称性本章内容指令系统的功能设计规整性4 之 3 :所有的通用寄存器要同等对待:如果设置A-B指令,则也应该设置B-A指令均匀性本章内容指令系统的功能设计规整性4 之 4 :某机器有5种数据表示、4种字长、8种数据存储设备,则在设计加法指令时,指令种类应该是:548160种两地址加法指令(不可能也不太现实)。基本指令系统本章内容指令系统的功能设计 在设计通用计算机时,指令系统的完整性是必须要考虑的,基本指令有:数据传送类指令 运算类指令 程序控制指令 输入输出指令 处理机控制和调试指令复杂指令系统计算机(CISC)本章内容指令系统的功能设计 增强原有指令的功能以及设

32、置更为复杂的新指令取代原先由软件子程序完成的功能,实现软件功能的硬化。从面向目标程序的优化实现来改进指令系统从面向高级语言的优化实现来改进指令系统从面向操作系统的优化实现来改进指令系统从面向目标程序的优化实现来改进本章内容指令系统的功能设计CISC 缩短目标程序的长度,即减少程序的空间开销缩短目标程序的执行时间,即减少程序的时间开销 对大量已有的目标程序及其执行情况进行,按统计出的各种指令和指令串的来分析改进。4 之 1本章内容指令系统的功能设计CISC4 之 2指令的使用频度 是指对多种典型程序中所用的指令和指令串进行统计所得出的百分比(着眼于减少目标程序所占用的存储空间)。是指对多种典型程

33、序所执行的指令和指令串进行统计所得出的百分比(着眼于减少目标程序的执行时间)。统计结果表明:指令动态使用频度统计结果表明:指令动态使用频度指令静态使用频度指令静态使用频度本章内容指令系统的功能设计CISC对使用频率高的指令,增强其功能、加快其执行速度并缩短字长;对使用频率高的指令串,增设新指令来替代它;对使用频率低的指令,取消或合并,但要考虑到指令系统的兼容性问题。4 之 3优化方法本章内容指令系统的功能设计CISC例如:循环在程序中占有相当大的 比例,所以在指令上提供专门的支持。循环控制部分通常用3条指令完成 一条加法指令 一条比较指令 一条分支指令设置循环控制指令,用一条指令完成上述3条指

34、令的功能。4 之 4例 子从面向高级语言的优化实现来改进本章内容指令系统的功能设计CISC 尽可能减小高级语言和机器语言之间的语义差距,以利于支持高级语言编译器(缩短编译器的代码长度及编译时间)的构造。增强对高级语言支持的指令的功能增强对编译程序支持的指令的功能高级语言计算机增强对高级语言支持的指令的功能本章内容指令系统的功能设计CISC从面向高级语言的优化实现来改进 对源程序中各种高级语言语句的静态/动态使用频度进行统计分析来改进。高级语言因用途不同,其语句使用频度有较大差异,因此指令系统很难做到对各种语言都是优化的。优化你所用的高级语言。增强对编译程序支持的指令的功能本章内容指令系统的功能

35、设计CISC从面向高级语言的优化实现来改进 缩短高级语言和机器语言之间的语义差距。如果计算机系统结构过分优化于一种高级语言的实现,就会显著减低与其语义结构相差较大的其它高级语言的实现效率。同时面向各种高级语言的优化实现来改进动态自适应指令系统同时面向各种高级语言的优化实现来改进本章内容指令系统的功能设计CISC从面向高级语言的优化实现来改进增强支持编译程序指令的功能 可以设法改进指令系统,使它与各种高级语言的语义差距都有共同的缩小。Von Neumann系统结构系统结构右移右移COBOLPL/IAPLFORTRANBASIC动态自适应指令系统本章内容指令系统的功能设计CISC从面向高级语言的优

36、化实现来改进增强支持编译程序指令的功能 让机器具有分别面向各种高级语言的多种指令系统、多种系统结构,并能动态地切换。微程序机器微程序机器面向面向BASIC系统结构系统结构面向面向FORTRAN系统结构系统结构面向面向COBOL系统结构系统结构BASIC虚拟机虚拟机FORTRAN虚拟机虚拟机COBOL虚拟机虚拟机高级语言计算机本章内容指令系统的功能设计CISC从面向高级语言的优化实现来改进 让高级语言和机器语言之间无语义差距。间接执行高级语言机器 高级语言=汇编语言直接执行高级语言机器 高级语言=机器语言微程序机器级微程序机器级高级语言程序高级语言程序传统传统机器机器面面 向向高级语言高级语言机

37、机 器器间接执行间接执行高级语言高级语言机机 器器解解释释汇汇编编解解释释解解释释解解释释编编译译编编译译直直接接执执行行高高级级语语言言机机器器从面向操作系统的优化实现来改进本章内容指令系统的功能设计CISC减少运行操作系统所需的辅助操作时间;节省操作系统所占用的存贮空间。对操作系统中常用的指令和指令串的使用频率进行统计和分析来改造;增设专用于操作系统的新指令;将操作系统中由软件子程序实现的某些功能改用硬件或固件实现。2 之 1从面向操作系统的优化实现来改进本章内容指令系统的功能设计CISC 指令集对操作系统的支持主要有:处理机工作状态和访问方式的切换。进程的管理和切换。存储管理和信息保护。

38、进程的同步与互斥,信号灯的管理等。支持操作系统的有些指令属于特权指令,一般用户程序是不能使用的。2 之 2精简指令系统计算机(RISC)本章内容指令系统的功能设计 CISCRISC RISC的定义 RISC的思想 RISC的关键技术 RISC的特点CISCRISC本章内容指令系统的功能设计RISC RISC思想的提出主要是因为CISC存在这样的一些问题:指令系统复杂,不利于VLSI的设计,也不利于设计自动化技术的采用;许多复杂指令的执行速度很低;编译程序选择目标指令的范围大,很难优化;20%和80%的规律:80%的指令只在20%的运行时间里用到。RISC的定义本章内容指令系统的功能设计RISC

39、 Carnegie-Mellon大学的定义 IEEE的Michael Slater的定义至今没有一个确切的定至今没有一个确切的定义义Carnegie-Mellon大学的定义本章内容指令系统的功能设计RISCRISC的定义 RISC应有如下的特点:大多数指令在单周期内完成;LOAD/STORE结构;硬布线控制逻辑;减少指令和寻址方式的种类;固定的指令格式;注重编译优化技术。IEEE的Michael Slater的定义本章内容指令系统的功能设计RISCRISC的定义 RISC为使流水线高效率执行,应具有:简单而统一格式的指令译码;大部分指令可以单周期执行完成;仅LOAD和STORE指令可以访问存储

40、器;简单的寻址方式;采用延迟转移技术;采用LOAD延迟技术。RISC为使优化编译器便于生成优化代码,应具有:三地址指令格式、较多的寄存器、对称的指令格式。RISC的思想本章内容指令系统的功能设计RISC 减少指令总数和简化指令的功能来降低硬件设计的复杂度,提高指令的执行速度。减少指令平均执行周减少指令平均执行周期数(期数(CPI)是是RISC思想的精华!思想的精华!RISC的关键技术本章内容指令系统的功能设计RISC 采用重叠寄存器窗口技术提高使用效率。采用延时转移技术和指令取消技术来降低(条件)转移指令对流水的影响。例如:指令流调整技术。重叠寄存器窗口技术本章内容指令系统的功能设计RISCR

41、ISC的关键技术 缩短CALL、RETURN操作时间。将设置的大量的寄存器,分成多个组和一个全局区;每个组中分高、本、低三个区;相邻组的高、低区重叠;不同的过程使用不同的组和共享全局区,这样可以加速参数与结果的传递。RISC II中采用的重叠寄存器窗口,见后图。4 之 1RISC II中采用的重叠寄存器窗口中采用的重叠寄存器窗口R31CR26CR25CR16C高高本本R15CR10C低低过程过程CR31AR26AR25AR16A高高本本R15AR10A低低过程过程AR31BR26BR25BR16B高高本本R15BR10B低低过程过程B098489909910010510611511612112

42、2131132137R9AR0AR9BR0BR9CR0C全局全局出出C出出B/入入C出出A/入入B入入A局部局部A局部局部B局部局部C调调用用调调用用4 之 2寄存器窗口技术的效果寄存器窗口技术的效果RISC II溢出次数溢出次数程序名称程序名称调用次数调用次数最大调用深度最大调用深度RISC II访存次数访存次数VAX-11访存次数访存次数111K43KQuick SortPuzzle1020641244K8K696K444KMC68000机器类型机器类型VAX-11PDP-11RISC II5执行指执行指令条数令条数199626执行时执行时间间(s)2219210访问内访问内存次数存次数1

43、5120.2过程调用所需开销的比较过程调用所需开销的比较 Quick sort程序的调用次程序的调用次数多,深度不数多,深度不大,而大,而Puzzle程序正好相反。程序正好相反。VAX-11、PDP-11、MC68000为为CISC计算机,计算机,RISC II为为RISC计算机。计算机。4 之 3重叠寄存器窗口技术本章内容指令系统的功能设计RISCRISC的关键技术 寄存器设置多少个组?每个组多少个寄存器?嵌套调用不超过8层,每层24个寄存器(每个区8个寄存器)可基本满足要求,不满足概率在1%左右(可使用主存缓冲)。4 之 4延时转移技术本章内容指令系统的功能设计RISCRISC的关键技术

44、(条件)转移指令会引起流水线断流。F EF EF EF E1:add r1,r22:jmp next23:next1:sub r3,r4n:next2:move r4,a产生转移地址产生转移地址指令作废指令作废重新取指令重新取指令3 之 1延时转移技术本章内容指令系统的功能设计RISCRISC的关键技术 延时转移技术。F EF EF E1:jmp next22:add r1,r23:next1:sub r3,r4n:next2:move r4,a产生转移地址产生转移地址插入指令插入指令重新取指令重新取指令3 之 2指令序列的调整由编译器自动进行延时转移技术本章内容指令系统的功能设计RISCRI

45、SC的关键技术 采用延迟转移技术的两个限制条件:被移动指令在移动过程中与所经过的指令之间不能有数据相关;被移动指令不破坏条件码,至少不影响后面的指令使用条件码。如果找不到符合条件的指令,必须在(条件)转移指如果找不到符合条件的指令,必须在(条件)转移指令后面插入空操作;如果指令的执行过程分为多个流水段,令后面插入空操作;如果指令的执行过程分为多个流水段,则要插入多条指令。则要插入多条指令。3 之 3指令取消技术本章内容指令系统的功能设计RISCRISC的关键技术 采用指令延时技术,遇到条件转移指令时,调整指令序列非常困难,在许多情况下找不到可以用来调整的指令。采用指令取消技术(为了提高程序的执

46、行效率,应该尽量少取消指令)。4 之 1例1:向后转移(loop结构)本章内容指令系统的功能设计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

47、 Uthru:VVV成功与不成功的概率通常各为50%,效果就不明显。用于转移不成功为主的场合。4 之 3例3:隐含转移(if-then结构)本章内容指令系统的功能设计RISCRISC的关键技术语句:if(ab)then b=b+1调整前:调整后:cmp=,ra,rb,nextt:inc rbjmp xxx next:next:inc rbjmp txxx:用于转移成功为主的场合。4 之 4指令流调整技术本章内容指令系统的功能设计RISCRISC的关键技术 通过、等方法消除数据相关,提高流水线执行效率。调整前调整后addr1,r2,r3addr1,r2,r3addr3,r4,r5mulr6,r7

48、,r0mulr6,r7,r3addr3,r4,r5mulr3,r8,r9mulr0,r8,r9调整后执行速度快一倍RISC的特点简化指令系统设计,适合VLSI实现提高执行速度和效率降低设计成本,提高了系统的可靠性可以提供直接支持高级语言的能力,简化编译程序的设计加重了汇编语言程序员的负担对浮点运算和虚拟存储器的支持不够理想相对来说,RISC机器上的编译程序要比CISC机器上的难写。本章内容指令系统的功能设计RISC综合实例MIPS指令集 概述 MIPS的寄存器 MIPS的数据表示 MIPS的寻址方式 MIPS指令格式 MIPS操作本章内容概 述本章内容MIPS指令集 MIPS计算机是一个简单的

49、64bit load-store系统结构的RISC计算机。MIPS强调:简单的load-store指令集;设计上重视流水线效率;使得编译器更容易产生高效的目标代码。MIPS是一种适合学习和理解的系统结构模型MIPS的寄存器本章内容MIPS指令集 MIPS设置了32个64bit的通用寄存器(GPR)用于整数操作,分别命名为:R0、R1、R31。MIPS设置了32个64bit的浮点数寄存器(FPR)用于浮点数数操作,分别命名为:F0、F1、F31。例如:浮点状态寄存器等。MIPS的数据表示本章内容MIPS指令集 有:字节(8bit)、半字(16bit)、字(32bit)和双字(64bit)。有:单

50、精度(32bit),双精度(64bit)。MIPS的寻址方式本章内容MIPS指令集 数据寻址方式只有两种:和,字段长度都为16bit。是通过将是通过将0放入放入16bit位移字段中得到的;位移字段中得到的;是通过将寄存是通过将寄存器器R0作为基址寄存器得到的。作为基址寄存器得到的。MIPS指令格式本章内容MIPS指令集 所有的指令都是32bit,其中6bit为操作码(包含寻址模式),具体格式见右图。MIPS操作本章内容MIPS指令集 ALU操作 分支与跳转 load/store操作 浮点数操作ALU操作举例操作举例表示对字段进行复制。表示对字段进行复制。连接两个字段。连接两个字段。逻辑左移逻辑左移分支与跳转举例分支与跳转举例标识字段中特定的位。标识字段中特定的位。load/store操作举例操作举例浮点数操作本章内容MIPS指令集MIPS操作 浮点操作包括加、减、乘、除,后缀S表示单精度浮点数,后缀D表示双精度浮点数,例如:等。作 业本章内容

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!