【教学课件】第二章数据表示与指令系统.ppt
《【教学课件】第二章数据表示与指令系统.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第二章数据表示与指令系统.ppt(165页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第二章第二章 数据表示与指令系统数据表示与指令系统2.1 数据表示数据表示2.2 浮点数据表示浮点数据表示2.3 高级数据表示高级数据表示2.4 指令系统的优化设计指令系统的优化设计2.5 指令系统设计的两种风格指令系统设计的两种风格2.1 2.1 数据表示数据表示 2.1.1 数据类型、数据表示与数据结构数据类型、数据表示与数据结构整数、实数、布尔数、二进制位、字符、串、图、整数、实数、布尔数、二进制位、字符、串、图、表、树、阵列、队列、链表、栈、向量等。表、树、阵列、队列、链表、栈、向量等。数据类型数据类型定义了具有相同属性一组值的集合,定义了具有相同属性一组值的集合,还定义了这个集合上的
2、操作集。还定义了这个集合上的操作集。数据数据 用户定义的数据用户定义的数据 用户程序中使用用户程序中使用 系统数据系统数据 执行程序时生成执行程序时生成 指令指令 数据的复合数据的复合l 基本数据类型基本数据类型:二进制位、整数、十进制数、浮点数、字符、二进制位、整数、十进制数、浮点数、字符、布尔数等。布尔数等。l结构数据类型结构数据类型:由一组相互有关的数据元素复合而由一组相互有关的数据元素复合而成的数据类型成的数据类型数组、字符串、向量、堆栈、队列、记录、树等数组、字符串、向量、堆栈、队列、记录、树等 计算机体系结构所要研究的一个内容是:计算机体系结构所要研究的一个内容是:在所在所有这些数
3、据类型中,哪些用硬件实现,哪些用软有这些数据类型中,哪些用硬件实现,哪些用软件实现,并研究它们的实现方法。件实现,并研究它们的实现方法。所有系统结构都支持基本数据类型所有系统结构都支持基本数据类型大多数系统结构只能部分地支持结构数据类型大多数系统结构只能部分地支持结构数据类型数据表示:数据表示:机器硬件能直接识别,并可以被指令调机器硬件能直接识别,并可以被指令调用的数据类型,用的数据类型,由硬件实现的数据类型。由硬件实现的数据类型。由硬件实现的数据类型。由硬件实现的数据类型。数据结构:数据结构:结构数据类型的组织方式。结构数据类型的组织方式。研究数据类研究数据类研究数据类研究数据类型的逻辑结构
4、和物理结构之间的关系并给出算法,型的逻辑结构和物理结构之间的关系并给出算法,型的逻辑结构和物理结构之间的关系并给出算法,型的逻辑结构和物理结构之间的关系并给出算法,面向系统软件、面向应用领域所需处理的数据类型。面向系统软件、面向应用领域所需处理的数据类型。面向系统软件、面向应用领域所需处理的数据类型。面向系统软件、面向应用领域所需处理的数据类型。由软件实现的数据类型。由软件实现的数据类型。由软件实现的数据类型。由软件实现的数据类型。确定哪些数据类型用数据表示实现,哪些数据类确定哪些数据类型用数据表示实现,哪些数据类型用数据结构实现,是软硬件的主要分界面之一,型用数据结构实现,是软硬件的主要分界
5、面之一,本质上是一个软硬取舍问题。本质上是一个软硬取舍问题。数据结构数据结构 基本数据类型基本数据类型映像存储器存储器缩短程序的运行时间缩短程序的运行时间占用存储空间少占用存储空间少减少减少CPU和主存的通信量和主存的通信量通用性和利用率通用性和利用率确定哪些数据类型用数据表示实现的原则:确定哪些数据类型用数据表示实现的原则:例:实现例:实现A=A+B,A和和B都是都是200200 的矩阵。的矩阵。标量机:标量机:6 6条指令条指令,其中其中4 4条循环指令要执行条循环指令要执行200*200=40000200*200=40000次;因此次;因此CPUCPU与主存之间的通信量为:与主存之间的通
6、信量为:取指令取指令 2 2440000440000条;条;读或写数据读或写数据 340000 340000个;个;共要访问主存共要访问主存 740000 740000次以上。次以上。通用性不好通用性不好向量机:向量机:向量指令:向量指令:1 1条指令条指令,减少取指令操作减少取指令操作4*40000=1600004*40000=160000次,程序执行时间缩短了一半。次,程序执行时间缩短了一半。对复杂的树数据结构的支持较好,高效;对复杂的树数据结构的支持较好,高效;但对向量、数组、链表等其他数据结构支持不够,但对向量、数组、链表等其他数据结构支持不够,低效。低效。举例举例1:引入树型数据表示
7、:引入树型数据表示可高效地对向量、数组、链表、树等多种数据结可高效地对向量、数组、链表、树等多种数据结构提供支持。构提供支持。举例举例2:引入指针数据表示:引入指针数据表示通用性好通用性好当当选择产生冲突时,根据性能选择产生冲突时,根据性能/价格衡量价格衡量 从减少从减少CPU和主存的通信量及缩短执行时间两方面和主存的通信量及缩短执行时间两方面看,对于处理矩阵运算,向量数据表示优越性要高。看,对于处理矩阵运算,向量数据表示优越性要高。实际系统设计实际系统设计 系统结构设计的任务:系统结构设计的任务:确定哪些数据类型用硬件确定哪些数据类型用硬件即数据表示实现,哪些数据类型用软件实现,即即数据表示
8、实现,哪些数据类型用软件实现,即数据结构,哪些数据类型由软件和硬件共同来实数据结构,哪些数据类型由软件和硬件共同来实现。现。复杂的数据类型一般通过数据结构或通过软硬件联复杂的数据类型一般通过数据结构或通过软硬件联合设计实现合设计实现(如如table、graph、record、tree等等)简单的、常用的、通用的数据类型采用数据表示简单的、常用的、通用的数据类型采用数据表示(如如int、float、stack等等);数据表示是数据结构的一个子集,数据表示是数据结构的一个子集,数据结构通过数据结构通过 一定的算法变成数据表示才能在系统中处理;一定的算法变成数据表示才能在系统中处理;数据表示是软、硬
9、件界面的一部分;数据结构是数据表示是软、硬件界面的一部分;数据结构是软件和应用的一部分。软件和应用的一部分。l 数据结构与数据表示的关系数据结构与数据表示的关系数据结构数据结构数据表示数据表示软硬件的界面软硬件的界面数据表示的确定实质上是软硬件的取舍问题数据表示的确定实质上是软硬件的取舍问题1.1.1.1.浮点数据表示的提出浮点数据表示的提出浮点数据表示的提出浮点数据表示的提出l早期的计算机系统只有定点数据表示早期的计算机系统只有定点数据表示优点:硬件结构简单优点:硬件结构简单缺点:缺点:l编程困难:先确定小数点位置,小数点对编程困难:先确定小数点位置,小数点对齐再运算齐再运算l表示数的范围小
10、:如表示数的范围小:如1616位字长表示的整数位字长表示的整数范围为:范围为:-32768-327683276732767l数据存储单元的利用率很低(数据存储单元的利用率很低(大量的前置大量的前置0 0)2.1.2 浮点数据表示浮点数据表示2.2.2.2.浮点数据表示的特点浮点数据表示的特点浮点数据表示的特点浮点数据表示的特点l计算机中的浮点数来源于数学中的实数,但两者有很多计算机中的浮点数来源于数学中的实数,但两者有很多本质的区别:本质的区别:实数:实数:表示范围表示范围无限,表示精度无限,表示精度连续。连续。浮点数:浮点数:表示范围表示范围有限,表示精度有限,表示精度不连续。不连续。三大特
11、点:表数范围、表数精度和表数效率三大特点:表数范围、表数精度和表数效率关键问题:在数据字长确定的情况下,找到具有关键问题:在数据字长确定的情况下,找到具有最最大表数范围、最高表数精度和最大表数效率大表数范围、最高表数精度和最大表数效率的浮点的浮点数表示方式。数表示方式。-Nmin 0 -NmaxNminNmax可表示可表示的负数的负数可表示可表示的正数的正数负下负下溢区溢区负上负上溢区溢区正下正下溢区溢区正上正上溢区溢区3.3.3.3.浮点数据的表示方式浮点数据的表示方式浮点数据的表示方式浮点数据的表示方式l浮点数的一般格式:对任意浮点数浮点数的一般格式:对任意浮点数N,可表示为:,可表示为:
12、其中:其中:m:尾数,多采用规格化小数表示:尾数,多采用规格化小数表示e:阶码的值,一般采用整数、移码表示阶码的值,一般采用整数、移码表示rm:尾数的基,一般采用二进制、十六进制:尾数的基,一般采用二进制、十六进制re:阶码的基,一般采用二进制:阶码的基,一般采用二进制p:尾数长度(不包括符号位),当:尾数长度(不包括符号位),当rm 16时,时,每四个二进制位表示一位尾数每四个二进制位表示一位尾数q:阶码长度:阶码长度(不包括阶码的符号)不包括阶码的符号)浮点数的表示需要六个基本参数:尾数浮点数的表示需要六个基本参数:尾数m m、阶码、阶码e e的的值;尾数的基值;尾数的基r rm m、阶码
13、的基、阶码的基r re e、尾数长度、尾数长度p(p(不包括不包括符号位符号位)、阶码长度、阶码长度q(q(不包括符号位不包括符号位)一种浮点数的表示方式如下:一种浮点数的表示方式如下:一种浮点数的表示方式如下:一种浮点数的表示方式如下:mf ef e m 1 1 q p 在浮点表示方式中尾数采用规格化小数的目的在浮点表示方式中尾数采用规格化小数的目的是为了在尾数中表示最多的有效数据位及数据表是为了在尾数中表示最多的有效数据位及数据表示的惟一性。示的惟一性。0.00345 0.34510-2尾数规格化尾数规格化数符阶符l (1 1)表数范围:)表数范围:在尾数采用原码在尾数采用原码p p位、纯
14、小数,阶码位、纯小数,阶码q q位采用移码的位采用移码的浮点数表示方式中,规格化浮点数浮点数表示方式中,规格化浮点数N的表数范围如下:的表数范围如下:最大正数:最大正数:最小正数:最小正数:最大负数:最大负数:最小负数:最小负数:表数范围:表数范围:例如:尾数用原码,纯小数表示,阶码用移码整数例如:尾数用原码,纯小数表示,阶码用移码整数表示,当表示,当p=23,q=7,rm=re=2时,规格化数时,规格化数N在正在正数区间的表数范围是:数区间的表数范围是:在负数区间的表数范围是:在负数区间的表数范围是:表示数的个数是:表示数的个数是:规格化浮点数的个数应是可表示的阶码的个数规格化浮点数的个数应
15、是可表示的阶码的个数与可表示的尾数的个数的乘积。与可表示的尾数的个数的乘积。现以阶码为现以阶码为q=2,尾数,尾数p=4,正阶、正尾数为例,正阶、正尾数为例,比较比较rm=2和和rm=16时的不同情况。时的不同情况。7 6 5 4 3 2 1 0阶符阶符00尾符尾符在在尾数基值尾数基值rm 2(二进制)(二进制),p=4(即尾数即尾数bit3bit0,共,共4位)、做规格化表示(即此时位)、做规格化表示(即此时bit3=1)的正阶、正尾的数的范围:)的正阶、正尾的数的范围:在阶码相同的前提下,尾数采用不同基值时,表在阶码相同的前提下,尾数采用不同基值时,表示的浮点数大小及个数均不相同。示的浮点
16、数大小及个数均不相同。可表示的最大正浮点数为可表示的最大正浮点数为可表示规格化的最小正浮点数为可表示规格化的最小正浮点数为可表示的正阶、正尾规格化数的个数为可表示的正阶、正尾规格化数的个数为最大尾数为最大尾数为 最小阶码为最小阶码为 最大阶码为最大阶码为阶码的个数为阶码的个数为最小尾数为最小尾数为尾数的个数为尾数的个数为在在尾数基值尾数基值rm 16(十六进制)(十六进制)q2,p=4(尾数尾数bit3bit0,4位二进制组成一个十六进制数)位二进制组成一个十六进制数),做规做规格化表示(即此时格化表示(即此时bit3bit0 中必须有中必须有1位为位为“1”,不许出现全,不许出现全“0”,b
17、it3bit0 为为00011111)的)的正阶、正尾的数的范围:正阶、正尾的数的范围:最小尾数为最小尾数为最大尾数为最大尾数为最小阶码为最小阶码为 最大阶码为最大阶码为阶码的个数为阶码的个数为可表示的最小正浮点数为可表示的最小正浮点数为尾数的个数为尾数的个数为可表示的正阶、正尾规格化数的个数为可表示的正阶、正尾规格化数的个数为从上述例子,可得到下列两个结论:从上述例子,可得到下列两个结论:(1)当有相同阶码与尾数位数时,)当有相同阶码与尾数位数时,rm大,则表示大,则表示数的范围也大,表示数的个数增多。数的范围也大,表示数的个数增多。rm只能取只能取2,4,8,16,。一般使用。一般使用2,
18、8,16三种。三种。rm=2时,其个数是时,其个数是32。可表示的最大正浮点数为可表示的最大正浮点数为而而rm=2时,其最大数是时,其最大数是15/2。(2)rm大时,虽然表示数的范围大,表示数的个大时,虽然表示数的范围大,表示数的个数增加,但在数值的分布较稀疏。例如在数轴数增加,但在数值的分布较稀疏。例如在数轴1/2-2之间,当之间,当rm 2时,有数时,有数15个;而当个;而当rm 16时,时,有数有数8个。个。原因有两点:一是因为采用规格化表示的缘故。如上例中原因有两点:一是因为采用规格化表示的缘故。如上例中rm 2时,规格化后,时,规格化后,其尾数个数只为原来的其尾数个数只为原来的1/
19、2;二是因为在;二是因为在同长度阶码时,同长度阶码时,rm不同,每次小数点移动位置不同,如上例不同,每次小数点移动位置不同,如上例中中rm 2时,时,1个阶码值移动小数点个阶码值移动小数点1bit,而,而rm 16时,则时,则移移动动4bits。故:。故:rm 增大,则表示数的个数增加,数值上分布稀增大,则表示数的个数增加,数值上分布稀疏,从而计算误差增加。疏,从而计算误差增加。rm=2,20(0.10010.1111),21(0.10.1111)rm=16,160(0.10010.1111),161(0.0001)1/2 1 2l【例【例1】某计算机的浮点数采用】某计算机的浮点数采用1位符号
20、位、位符号位、6位阶位阶码和码和9位尾数,基数为位尾数,基数为16,求规格化时它能表示数,求规格化时它能表示数值的个数。值的个数。解:此浮点数共有解:此浮点数共有16位位阶码为阶码为q=5,尾数位数,尾数位数p=9,re=2和和rm=16。尾数用原码表示,阶码采用移码。尾数用原码表示,阶码采用移码。可表示的正阶、正尾规格化数的个数为可表示的正阶、正尾规格化数的个数为最大阶码为最大阶码为阶码的个数为阶码的个数为最大尾数为最大尾数为(0.1FF)l【例【例1】某计算机的浮点数采用】某计算机的浮点数采用1位符号位、位符号位、7位阶位阶码(移码)和码(移码)和8位尾数(原码规格化),基数为位尾数(原码
21、规格化),基数为2,数据数据1在这种浮点格式中的表示为在这种浮点格式中的表示为 ,这种,这种浮点表示的大于浮点表示的大于1的最小数是的最小数是 。解:此浮点数共有解:此浮点数共有16位,格式如下:位,格式如下:10.1211:0 1000001,100000001最小数:最小数:0 1000001,10000001规格化表示的最小尾数 15 14 9 8 0数符数符尾数尾数阶码阶码最小正尾数为:最小正尾数为:0.100000000可表示的正规格化浮点数的个数为可表示的正规格化浮点数的个数为可表示的负阶、正尾规格化数的个数为可表示的负阶、正尾规格化数的个数为可表示的正、负规格化浮点数的个数为可表
22、示的正、负规格化浮点数的个数为 从上面的分析可以看到,规格化浮点数的表数范从上面的分析可以看到,规格化浮点数的表数范围主要与阶码的长度围主要与阶码的长度q和和rm尾数基值有关,这时,尾数基值有关,这时,能表示的绝对值最大的浮点数可近似为:能表示的绝对值最大的浮点数可近似为:表数范围表数范围随着随着q和和rm的增大而扩大。当有相同阶码的增大而扩大。当有相同阶码与尾数位数时,与尾数位数时,rm大,则表示数的范围大。但大,则表示数的范围大。但rm大大时,在数轴上的分布较稀疏。时,在数轴上的分布较稀疏。当浮点数的尾数长度相同时,尾基为当浮点数的尾数长度相同时,尾基为2 2时具有时具有最高的表数精度。最
23、高的表数精度。(2 2)浮点数的表数精度浮点数的表数精度浮点数的表数精度浮点数的表数精度 表数精度也称为表数误差,浮点数存在表数精表数精度也称为表数误差,浮点数存在表数精度的根本原因是由于浮点数的不连续性造成的。度的根本原因是由于浮点数的不连续性造成的。浮点数表示的仅仅是实数的一个子集。浮点数表示的仅仅是实数的一个子集。规格化浮点数的表数精度主要与尾数基值和尾规格化浮点数的表数精度主要与尾数基值和尾数长度有关,一般认为尾数最后数长度有关,一般认为尾数最后1位值的一半定位值的一半定义为表数精度义为表数精度在在尾数基值尾数基值rm 16(十六进制)(十六进制)re 2,尾数尾数4位位(4位二进制组
24、成一个十六进制数)、位二进制组成一个十六进制数)、q=2时做规时做规格化表示的最大正数、正规格化数的个数及一个格化表示的最大正数、正规格化数的个数及一个数量单位的大小:数量单位的大小:rm 2,正规格化尾数的个数,正规格化尾数的个数8个,最大正数为个,最大正数为 (124)22,一个数量单位,一个数量单位=(24)221/4当表示的浮点数有相同的位数、尾数时,当表示的浮点数有相同的位数、尾数时,rm=2,有最,有最大的表数精度。大的表数精度。rm 16,正规格化尾数的个数,正规格化尾数的个数15个,最大正数为个,最大正数为 (1161)162,一个数量单位,一个数量单位=(1/16)16216
25、 尾数基值尾数基值rm2与与rm16相比,显然基值越大相比,显然基值越大浮点数的表数效率高。浮点数的表数效率高。(3 3 3 3)浮点数的表数效率)浮点数的表数效率)浮点数的表数效率)浮点数的表数效率浮点数的表数效率定义为浮点数的表数效率定义为l浮点数的表数范围、表数精度和表数效率三个主浮点数的表数范围、表数精度和表数效率三个主要特征都与尾数基值要特征都与尾数基值rm有关。有关。(4 4)浮点数尾数基值的选择)浮点数尾数基值的选择rm 2 2,表数效率只有,表数效率只有50%50%,为了提高表数效率,许,为了提高表数效率,许多计算机采用了隐藏位表示法,此时表数效率多计算机采用了隐藏位表示法,此
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第二 数据 表示 指令系统
限制150内