计算机系统结构第2章.ppt
《计算机系统结构第2章.ppt》由会员分享,可在线阅读,更多相关《计算机系统结构第2章.ppt(146页珍藏版)》请在三一文库上搜索。
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与主存储器之间的通信量 三是这种数据表示的通用性和利用率 数据表示在不断发展 例如:矩阵、树、图、表及自定义数据表示 等已经开始用于数据表示中 例:计算CAB,其中,A、B、C均为 200200的矩阵。分析采用向量数据表示 的作用。,解:如果在没有向量数据表示的计算机上实现,一般需要6条指令,其中有4条指令要循环4万次。因此,CPU与主存储器之间的通信量: 取指令:2440,000条, 读或写数据:340,000个, 共要访问主
4、存储器:740,000次以上 如果有向量数据表示,只需要一条指令。 减少访问主存(取指令)次数440,000次 用软件和硬件结合的方法实现新的数据表示 用字节编址支持字符串数据表示 用变址寻址方式来支持向量数据表示,1. 浮点数的表示方式 两个数值: 尾数m:数制(小数或整数)和码制(原码或补码) 阶码e:整数, 移码(偏码、增码、余码)或补码 两个基值: 尾数基值rm:2、4、8、16和10进制等 阶码基值re: 通常为2进制,2.1.2 浮点数的表示方法,两个字长:长度和物理位置,均不包括符号位 尾数长度p:尾数部分按基值计算的长度 阶码长度q:阶码部分的二进制位数,2. 浮点数的表数范围
5、 尾数为原码、小数,阶码用移码、整数时, 规格化浮点数N的表数范围: 尾数为补码,负数区间的表数范围为: 浮点数在数轴上的分布情况,3. IEEE754浮点数国际标准 32位单精度浮点数格式如下: 阶码用移-127码表示,即阶码的0255分别表示阶码的真值为-127128。 尾数用原码、小数,1位符号位、23位小数和1位隐藏的整数共25位表示。 尾数和阶码的基值都是2。 64位双精度浮点数,阶码用11位移码表示,4. 浮点数的表数精度(误差) 产生误差的根本原因是浮点数的不连续性 误差产生的直接原因有两个: (1) 两个浮点数都在浮点集内,而运算结果却可能不在这个浮点集内 (2) 数据从十进制
6、转化为2、4、8、16进制,产生误差。 规格化浮点数的精度为: 最后1个有效位的可信度为一半 当rm2时,有:,5. 浮点数的表数效率 浮点数是一种冗余数制(Redundat Number System) 浮点数的表数效率定义为: 简化表示: 当尾数基值为2时,浮点数的表数效率为:,浮点数的表数效率随rm增大 当尾数基值rm16时,浮点数的表数效率为: 尾数基值rm16与rm2相比,浮点数的表数效率提高了:,2.1.3 浮点数格式设计,1. 浮点数格式设计的主要问题 在表示浮点数的6个参数中,只有尾数基值rm、尾数长度p和阶码长度q与表数范围、表数精度和表数效率有关 在字长确定的情况下,如何选
7、择尾数基值rm, 使表数范围最大、表数精度和表数效率最高,2. 浮点数格式设计原则 定义浮点数格式的6个参数,确定原则如下: 尾数:多数机器用原码、小数表示 采用原码表示:加减法比补码表示复杂,乘除法比补码简单,而且非常直观。 采用小数表示能简化运算,特别是乘法和除法运算。 阶码:一般机器用整数、移码表示 采用移码表示的主要原因是:浮点0与机器0一致。阶码进行加减运算时,移码的加减法运算要比补码复杂,基值: 尾数的基值rm2, 阶码的基值re2, 采用隐藏位表示方式能够使规格化浮点数的表数效率达到100(当rm2时) 浮点数格式设计的关键问题是: 在表数范围和表数精度给定的情况下,如何确定最短
8、的尾数字长p和阶码字长q,并根据总字长的要求,恰当分配p与q,2.1.4 浮点数的舍入处理,浮点数要进行舍入处理的原因是: (1)十进制数转化为浮点数时,有效位长度超过给定的尾数字长。 (2)两个浮点数的加减乘除结果,尾数长度超过给定的尾数字长。 舍入处理要解决的问题是: 把规格化尾数的pg位处理成只有p位。 其中:p是浮点数表示方式给定的尾数字长, g是超过给定尾数字长的部分。,舍入方法的主要性能标准是: 绝对误差小, 积累误差小, 容易实现。 进行舍入处理时要注意的问题是: 必须先规格化,然后再舍入,否则舍入是没有意义的。 在计算积累误差时,要同时考虑到正数区和负数区的情况。,方法1:恒舍
9、法 又称截断法、必舍法等 优缺点:实现非常容易。误差大,正负区误差相反,但同一区误差积累。,方法2:恒置法 恒置r/2法、冯诺依曼法 规则:把有效字长的最低一位置成r/2。 优缺点:实现比较容易,积累误差较小,正负区误差平衡。精度比较低。,方法3:下舍上入法 4舍5入法、0舍1入法等 优缺点:精度高,积累误差小,正负区误差完全平衡。实现起来比较困难。,关于舍入方法的主要结论: 恒置法虽有少量的积累误差,且损失一位精度,但由于实现很容易,普遍在小型微型机中使用。 下舍上入法只有少量积累误差,且精度比较高,但实现很复杂,用于软件实现的算法中。,2.1.5 警戒位的设置方法,在规定的尾数字长之外,运
10、算器中的累加器需要另外增加的长度称为警戒位(Guard Bit) i) 不设置警戒位,可能出现很大的误差 ii) 警戒位的用处只有两个: (1) 用于左规格化时移入尾数有效字长内。 (2) 用于舍入。,警戒位的来源有以下几个方面: (1) 做加、减法时,因对阶从有效字长内移出去的部分。 (2) 做乘法时,双倍字长乘积的低字长部分。 (3) 做除法时,因没有除尽而多上商的几位。 (4) 右规格化时移出有效字长的那部分。 (5) 从十进制转换成二进制时,尾数超出有效字长的部分。,2.1.6 自定义数据表示,一般处理机中的数据表示方法 数据存储单元(寄存器、主存储器、外存储器等)只存放纯数据,数据的
11、属性通过指令中的操作码来解释: 数据的类型,如定点、浮点、字符、字符串、逻辑数、向量等; 进位制,如2进制、10进制、16进制等; 数据字长,如字、半字、双字、字节等; 寻址方式,如直接寻址、间接寻址、相对寻址、寄存器寻址等;,数据的功能,如地址、地址偏移量、数值、控制字、标志等; 同一种操作(如加法)通常有很多条指令。 在高级语言和应用软件中 数据的属性由数据自己定义; 在高级语言与机器语言之间的语义差距,要靠编译器等填补。 Burroughs公司在大型机中引入自定义数据表示方式和带标志符的数据表示方式,1. 带标志符的数据表示法 在B5000大型机中,每个数据有一位标志符 在B6500和B
12、7500大型机中,每个数据有三位 标志符 在R-2巨型机中采用10位标志符,R-2巨型机中的标志符 功能位:操作数、指令、地址、控制字 陷井位:由软件定义四种捕捉方式 封写位:指定数据是只读的还是可读可写 类型位:二进制,十进制,定点数,浮点数,复数,字符串,单精度,双精度;绝对地址、相对地址、变址地址、未连接地址等。 标志符由编译器或其它系统软件建立,对程序员透明 程序(包括指令和数据)的存储量分析 数据存储量增加,指令存储量减少。,常规数据表示方法 与 带标志符数据表示方法 的 比较,采用标志符数据表示方法的主要优点: (1)简化了指令系统。 (2)由硬件实现一致性检查和数据类型转换。 (
13、3)简化程序设计,缩小了人与计算机之间的语义差距。 (4)简化编译器,使高级语言与机器语言之间的语义差距大大缩短。 (5)支持数据库系统,一个软件不加修改就可适用于多种数据类型。 (6)方便软件调试,在每个数据中都有陷井位。,采用标志符数据表示方法的主要缺点: (1)数据和指令的长度可能不一致 可以通过精心设计指令系统来解决。 (2)指令的执行速度降低 但是,程序的运行时间是由设计时间、编译时间和调试时间共同组成的。 采用标志符数据表示方法,程序的设计时间、编译时间和调试时间可以缩短。 (3)硬件复杂度增加 由硬件实现一致性检查和数据类型的转换。,2. 数据描述符表示法 数据描述符与标志符的区
14、别:标志符只作用于一个数据,而数据描述符要作用于一组数据。 Burroughs公司生产的B-6700机中采用的数据描述符表示方法。 最高三位为101时表示数据描述符, 最高三位为000时表示数据。,例: 用数据描述符表示方法 表示一个34的矩阵:,2.2 寻址技术,寻找操作数及其地址的技术称为寻址技术 2.2.1 编址方式 2.2.2 寻址方式 2.2.3 定位方式 重点:寻址方式的选择,2.2.1 编址方式,对各种存储设备进行编码的方法。 主要内容:编址单位、零地址空间个数、并行存储器的编址、输入输出设备的编址 1. 编址单位 常用的编址单位:字编址、字节编址、位编址、块编址等 编址单位与访
15、问字长 一般:字节编址,字访问 部分机器:位编址,字访问 辅助存储器:块编址,位访问,字节编址字访问的优点: 有利于符号处理 字节编址字访问的问题: (1) 地址信息浪费 对于32位机器,浪费2位地址(最低2位地址) 对于64位机器,浪费3位地址 (2) 存储器空间浪费 (3) 读写逻辑复杂 (4) 大端(Big Endin)与小端(Little Endian)问题,(2)存储器空间浪费,读一个字节 用多路选择器,写一个字节 先读后写,(3)读写逻辑复杂 增加1个align操作,(4)大端(Big Endin)与小端(Little Endian)问题,2. 零地址空间个数 三个零地址空间:通用
16、寄存器、主存储器、输入输出设备独立编址 两个零地址空间:主存储器与输入输出设备统一编址 一个零地址空间:最低端是通用寄存器,最高端是输入输出设备,中间为主存储器 隐含编址方式:堆栈、Cache等 3. 并行存储器的编址技术 高位交叉编址:主要用来扩大存储器容量。 低位交叉编址:主要是提高存储器速度。,4. 输入输出设备的编址 一台设备一个地址:通过指令来区分地址,地址内部区分地址。 一台设备两个地址:数据寄存器、状态或控制寄存器。 多个编址寄存器共用同一个地址的方法: 依靠地址内部来区分,适用于被编址的寄存器的长度比较短 “下跟法”隐含编址方式,必须按顺序读写寄存器。 一台设备多个地址:增加编
17、程的困难,2.2.2 寻址方式,寻找操作数及数据存放地址的方法 1. 寻址方式的设计思想 立即数寻址方式 用于数据比较短,且为源操作数的场合 面向寄存器的寻址方式 OPC R OPC R, R OPC R, R, R OPC R, M,面向主存储器的寻址方式: 直接寻址、间接寻址、变址寻址、相对寻址 基址寻址、自动变址、 OPC M OPC M, M OPC M, M, M 面向堆栈的寻址方式: OPC ;运算型指令 OPC M ;数据传送型指令,2. 寄存器寻址 主要优点:指令字长短,指令执行速度快,支持向量和矩阵等运算 主要缺点:不利于优化编译,现场切换困难,硬件复杂 3. 堆站寻址方式
18、主要优点:支持高级语言,有利与编译程序,节省存储空间,支持程序的嵌套和递归调用,支持中断处理 主要缺点:运算速度比较低,栈顶部分设计成一个高速的寄存器堆,4. 间接寻址方式与变址寻址方式的比较 目的相同:都是为了解决操作数地址的修改 原则上,一种处理机中只需设置间址寻址方式与变址寻址方式中的任何一种即可,有些处理机两种寻址方式都设置 如何选取间址寻址方式与变址寻址方式? 例2.15:一个由N个元素组成的数组,已经存放在起始地址为AS的主存连续单元中,现要把它搬到起始地址为AD的主存连续单元中。不必考虑可能出现的存储单元重叠问题。为了编程简单,采用一般的两地址指令编写程序。,用间接寻址方式编写程
19、序如下: START: MOVE ASR, ASI ;保存源起始地址 MOVE ADR, ADI ;保存目标起始地址 MOVE NUM, CNT ;保存数据的个数 LOOP: MOVE ASI,ADI ;传送一个数据 INC ASI ;源数组的地址增量 INC ADI ;目标数组地址增量 DEC CNT ;个数减1 BGT LOOP ;测试数据传送完? HALT ;停机,ASR: AS ;源数组的起始地址 ADR: AD ;目标数组的起始地址 NUM: N ;需要传送的数据个数 ASI: 0 ;当前正在传送的源 ;数组地址 ADI: 0 ;当前正在传送的目标 ;数组地址 CNT: 0 ;剩余数
20、据的个数,用变址寻址方式编写程序如下: START: MOVE AS, X ;取源数组起始地址 MOVE NUM, CNT ;保存数据个数 LOOP: MOVE (X),AD-AS(X);传送一个数据 INC X ;增量变址寄存器 DEC CNT ;个数减1 BGT LOOP ;测试数据传送完成 HALT ;停机 NUM: N ;传送的数据个数 CNT: 0 ;剩余数据的个数,主要优缺点比较: (1)采用变址寻址方式编写的程序简单、易读。 (2)对于程序员,两种寻址方式的主要差别是: 间址寻址:间接地址在主存中,没有偏移量 变址寻址:基地址在变址寄存器中, 有偏移量 (3)实现的难易程度:间址
21、寻址方式容易实现 (4)指令的执行速度:间址寻址方式慢 (5)对数组运算的支持:变址寻址方式比较好 自动变址:在访问间接地址时,地址自动增减 前变址与后变址:变址与间址混合时 前变址寻址方式:EA(X)A) 后变址寻址方式:EA(X)(A),2.2.3 定位方式,程序的主存物理地址在什么时间确定?采用什么方式来实现? 程序需要定位的主要原因: 程序的独立性 程序的模块化设计 数据结构在程序运行过程中,其大小往往是变化的 有些程序本身很大,大于分配给它的主存物理空间,主要的定位方式 直接定位方式:在程序装入主存储器之前,程序中的指令和数据的主存物理就已经确定了的称为直接定位方式。 静态定位:在程
22、序装入主存储器的过程中随即进行地址变换,确定指令和数据的主存物理地址的称为静态定位方式。 动态定位:在程序执行过程中,当访问到相应的指令或数据时才进行地址变换,确定指令和数据的主存物理地址的称为动态定位方式。,2.3 指令格式的优化设计,主要目标:节省程序的存储空间 指令格式尽量规整,便于译码 2.3.1 指令的组成 2.3.2 操作码的优化设计 2.3.3 地址码的优化设计 2.3.4 指令格式设计举例,2.3.1 指令的组成,一般的指令主要由两部分组成: 操作码和地址码 地址码通常包括三部分内容: 地址:地址码、立即数、寄存器、变址寄存器 地址的附加信息:偏移量、块长度、跳距 寻址方式:直
23、接寻址、间接寻址、立即数寻址、变址寻址、相对寻址、寄存器寻址,操作码主要包括两部分内容: 操作种类:加、减、乘、除、数据传送、移位、转移、输入输出、程序控制、处理机控制等 操作数描述: 数据的类型:定点数、浮点数、复数、字符、字符串、逻辑数、向量 进位制:2进制、10进制、16进制 数据字长:字、半字、双字、字节,2.3.2 操作码的优化表示,操作码的三种编码方法: 固定长度、Huffman编码、扩展编码 优化操作码编码的目的:节省程序存储空间 例如:Burroughs公司的B-1700机,1. 固定长操作码 定长定域: IBM公司的大中型机:最左边8位为操作码 Intel公司的Intaniu
24、m处理机:14位定长操作码 许多RISC处理机采用定长操作码 主要优点: 规整 译码简单 主要缺点: 浪费信息量(操作码的总长位数增加),2. Huffman编码法 1952年由Huffman首先提出 操作码的最短平均长度可通过如下公式计算: pi表示第i种操作码在程序中出现的概率 固定长编码相对于Huffman编码的信息冗余量: 必须知道每种操作码在程序中出现的概率,例:假设一台模型计算机共有7种不同的操作码,如果采用固定长操作码需要3位。已知各种操作码在程序中出现的概率如下表,计算采用Huffman编码法的操作码平均长度,并计算固定长操作码和Huffman操作码的信息冗余量。,解答: 利用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机系统 结构
链接地址:https://www.31doc.com/p-2922584.html