《【教学课件】第二章数据表示与指令系统.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第二章数据表示与指令系统.ppt(165页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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%,为了提高表数效率,许,为了提高表数效率,许多计算机采用了隐藏位表示法,此时表数效率多计算机采用了隐藏位表示法,此
26、时表数效率100%100%;当浮点数字长确定后,当浮点数字长确定后,rm取取2 2,具有最大的表,具有最大的表数范围、表数效率和最高的表数精度。数范围、表数效率和最高的表数精度。但但rm 4时,就不能采用隐藏位表数法,因为尾数时,就不能采用隐藏位表数法,因为尾数可以从可以从00、01、10、11中取值,中取值,IBM370系列机、系列机、IBM4300系列机等浮点数的尾系列机等浮点数的尾数是数是16;Burroughs公司的公司的B6700,B7700等大型计算机,等大型计算机,浮点数尾数的基值是浮点数尾数的基值是8;DEC公司的公司的VAX-11、CDC公司公司CDC6600等大型等大型机以
27、及机以及Intel公司的公司的X86系列机等的浮点数均采用系列机等的浮点数均采用尾数基值为尾数基值为2。应用情况:应用情况:l浮点数加法中的对阶、规格化右移操作以及乘浮点数加法中的对阶、规格化右移操作以及乘法中结果取单倍长度会把有效位移掉或截掉从法中结果取单倍长度会把有效位移掉或截掉从而造成精度损失。而造成精度损失。(5 5)浮点数的下溢处理)浮点数的下溢处理尾数下溢处理方式:尾数下溢处理方式:(1)截断截断。也称为不舍入法。简单地将下溢部分截去。也称为不舍入法。简单地将下溢部分截去。在整数运算中最大会接近于在整数运算中最大会接近于1;误差大都是负误差。;误差大都是负误差。(2)舍入法舍入法。
28、被截尾数为。被截尾数为1进进1,运算中最大误差小于一半。,运算中最大误差小于一半。(3)恒置恒置1法法。被截尾数无论是。被截尾数无论是0是是1,恒置,恒置1。最大误差比截。最大误差比截断法大。断法大。(4)ROM或或PLA法法。也称查表舍入法,平均误差接近于零。也称查表舍入法,平均误差接近于零。2.2 高级数据表示l自定义数据表示(自定义数据表示(Self-definingSelf-defining)带标志符的数据表示带标志符的数据表示数据描述符数据描述符l向量数据表示向量数据表示l堆栈数据表示堆栈数据表示 内容:内容:堆栈、向量、数组(队列)、记录、自堆栈、向量、数组(队列)、记录、自定义等
29、。定义等。目的:目的:支持数据结构,提高支持数据结构,提高系统效率和性能系统效率和性能/价价格比。格比。注意点:注意点:新数据表示引入的可行性(原则);新数据表示引入的可行性(原则);新数据表示的必要条件(指令系统和硬件器件);新数据表示的必要条件(指令系统和硬件器件);新数据表示的存取方法(如稀疏向量表示)新数据表示的存取方法(如稀疏向量表示)。2.2.1 自定义数据表示l引入思想:引入思想:减小高级语言和机器语言的语义差距,减减小高级语言和机器语言的语义差距,减轻编译软件的工作量(减少指令种类)轻编译软件的工作量(减少指令种类)l分类分类带标志符数据表示带标志符数据表示数据描述符数据描述符
30、1.1.带标志符数据表示带标志符数据表示l定义:用以定义:用以定义某个数据的数据类型和数值的定义某个数据的数据类型和数值的数据表示数据表示。格式如下:。格式如下:类型标志主要用于指明数据类型(如二进制整类型标志主要用于指明数据类型(如二进制整数、十进制整数等,也可用于指明机器内部所用数、十进制整数等,也可用于指明机器内部所用信息的各种类型)。信息的各种类型)。标志符由编译程序建立,对高级语言程序员来标志符由编译程序建立,对高级语言程序员来说是透明的。说是透明的。类型标志类型标志 数据数据l优点:优点:简化指令系统和程序设计简化指令系统和程序设计简化了系统程序和编译程序的设计简化了系统程序和编译
31、程序的设计便于一致性校验便于一致性校验能由硬件自动完成数据类型的变换能由硬件自动完成数据类型的变换支持数据库系统的实现与数据类型无关的要求支持数据库系统的实现与数据类型无关的要求为软件调试和应用软件开发提供支持为软件调试和应用软件开发提供支持l缺点:缺点:硬件设计的复杂度增加(数据类型转换、一致性硬件设计的复杂度增加(数据类型转换、一致性检验等)检验等)降低指令的执行速度降低指令的执行速度必须用专门的指令完成标志符的初始化必须用专门的指令完成标志符的初始化l引入可行性分析引入可行性分析存储空间是否减少?存储空间是否减少?BA数据数据指令指令总数少总数少总数多总数多通常有面积通常有面积B面积面积
32、A采用标志符后采用标志符后 数据字增长数据字增长不采用标志符不采用标志符采用标志符后采用标志符后 指令字缩短指令字缩短l例例2.2 设处理机设处理机A的数据不带标志符,指令字长和的数据不带标志符,指令字长和数据字长都是数据字长都是32位,设处理机位,设处理机B的数据带的数据带3位标志位标志符,使数据字长增至符,使数据字长增至35位,但可使指令字长减少位,但可使指令字长减少至至30位。现有位。现有1个程序正在处理机个程序正在处理机A和和B上运行的上运行的目标程序都有目标程序都有IC条指令,平均每条指令访问条指令,平均每条指令访问2个操个操作数,每个操作数重复访问作数,每个操作数重复访问R次。次。
33、l(1)分别计算程序在处理机)分别计算程序在处理机A和和B上占用的存储上占用的存储空间大小。空间大小。l(2)在什么条件下,程序在处理机)在什么条件下,程序在处理机B上占用的存上占用的存储空间才小于在处理机储空间才小于在处理机A上占用的存储空间?上占用的存储空间?l解解 (1)程序在处理机)程序在处理机A上占用的存储空间上占用的存储空间l程序在处理机程序在处理机B上占用的存储空间上占用的存储空间l(2)为实现)为实现MB3,即当操作数平均重复访问次数,即当操作数平均重复访问次数R3,在,在带标志符的数据表示的处理机上运行的程序占用的存带标志符的数据表示的处理机上运行的程序占用的存储空间会减小。
34、储空间会减小。实现时间是否减少?实现时间是否减少?l取出数据后转换,必须推迟到运行时间进行取出数据后转换,必须推迟到运行时间进行l专门的指令用于标志符初始化,增加了辅助专门的指令用于标志符初始化,增加了辅助开销开销l指令执行过程中,对每个标志符进行逐个解指令执行过程中,对每个标志符进行逐个解释,并判断数据是否相容,因此单条指令的释,并判断数据是否相容,因此单条指令的执行速度降低,但宏观执行时间减少执行速度降低,但宏观执行时间减少宏观时间宏观时间=设计时间设计时间+编译时间编译时间+调试时间调试时间通用性和利用率通用性和利用率这是一种理想的数据表示模式,通用性较好;这是一种理想的数据表示模式,通
35、用性较好;只用一种存储器,利用率不高,采用指令和数只用一种存储器,利用率不高,采用指令和数据存储器后,利用率不会降低。据存储器后,利用率不会降低。l结论结论运行时间增加,存储空间减少。运行时间增加,存储空间减少。减小高级语言和机器语言的语义差距减小高级语言和机器语言的语义差距通用机中不使用,专用机(支持动态数据通用机中不使用,专用机(支持动态数据类型如类型如LISPLISP和和PROLOGPROLOG)中使用)中使用2.数据描述符l目的:描述复杂和多维的结构类型,进一步减目的:描述复杂和多维的结构类型,进一步减少标志符所占的存贮空间。少标志符所占的存贮空间。举例:现以美国现以美国Burroug
36、hsBurroughs公司的公司的B6500B6500,75007500为例进为例进行自定义数据表示的说明,格式如下:行自定义数据表示的说明,格式如下:描述符描述符标志位标志位特征标记特征标记数据块长度数据块长度数据块起始地址数据块起始地址382020格式:格式:数据数据000数值数值描述符描述符101P CISRTD长度长度地址地址3111120220111:不连续数据:不连续数据0:连续数据:连续数据1:数据集中的一个:数据集中的一个0:数据集的全体:数据集的全体只准读出的数据只准读出的数据00:数据描述符:数据描述符写其他描述符写其他描述符0:不在主存中:不在主存中1:在主存中:在主存中
37、0:单精度数据:单精度数据1:双精度数据:双精度数据l优点优点:实现阵列数据的索引比变址方法实现的好,实现阵列数据的索引比变址方法实现的好,而且能检查程序设计中阵列越界错误而且能检查程序设计中阵列越界错误为向量、数组数据结构的实现提供一定的支为向量、数组数据结构的实现提供一定的支持,有利于简化编译中的代码生成持,有利于简化编译中的代码生成l引入可行性分析:同带标志符的数据表示引入可行性分析:同带标志符的数据表示l描述符的工作过程如下图描述符的工作过程如下图101000000101101101XY操作码操作码指令指令描述符描述符描述符描述符地址生成逻辑地址生成逻辑(数据)(数据)(数据)(数据)
38、数据块数据块数据块数据块主存储器主存储器3.两种自定义数据表示的区别l标志符是和每一个数据相连的,合存在一个标志符是和每一个数据相连的,合存在一个存储单元中,描述单个数据的类型特征。存储单元中,描述单个数据的类型特征。l描述符是和数据分开存放的,专门用来描述描述符是和数据分开存放的,专门用来描述所要访问的数据是整块数据还是单块数据,所要访问的数据是整块数据还是单块数据,访问该数据块或数据元素所需要的地址以及访问该数据块或数据元素所需要的地址以及其他特征信息等。其他特征信息等。2.2.2 向量数据表示l向量表示向量表示向量通常是指由标量的一组有序集合表示的向量通常是指由标量的一组有序集合表示的量
39、,类似于一维数组量,类似于一维数组标量通常只是一个整数或实数标量通常只是一个整数或实数数组数组 A=(a A=(a0 0,a,a1 1,a,a2 2,a,an-1n-1)可看成向量可看成向量Aa0a1a11l 向量在主存储器中的存放原则:向量在主存储器中的存放原则:规律性、地址计算简单、访存冲突小规律性、地址计算简单、访存冲突小元素相邻存放元素相邻存放元素等间距存放元素等间距存放l向量计算机向量计算机-处理向量数据的计算机处理向量数据的计算机l举例:计算举例:计算 c ci i=a=ai i+b+bi i,I=10,11,1000,I=10,11,1000无向量数据表示无向量数据表示(C(C语
40、言语言):lfor(i=10;i=1000;i+)for(i=10;i=1000;i+)l ci=ai+bi;ci=ai+bi;向量数据表示:向量数据表示:lC(10:1000)=A(10:1000)+B(10:1000)C(10:1000)=A(10:1000)+B(10:1000)向量加 X A Y B Z Cl向量指令及包含的参数向量指令及包含的参数基地址、位移量、向量长度基地址、位移量、向量长度格式如下:格式如下:A,B,C:存放A,B,C的向量基址及长度X,Y,Z:寄存器号,存放A,B,C的位移量注:向量起始地址注:向量起始地址=基址基址+位移量位移量 向量有效长度向量有效长度=向量
41、长度向量长度-位移量位移量 向量的数据地址起始地址位移量向量的数据地址起始地址位移量a0an-1a10l举例:计算举例:计算C(4C(4:11)=A(411)=A(4:11)+B(-411)+B(-4:3)3)A0A3A2A1A11A10A9A8A7A6A5A4C0C3C2C1C11C10C9C8C7C6C5C4B3B2B1B0B-1B-2B-3B-4源向量源向量A结果向量结果向量C源向量源向量B位移量位移量Ad=4基址基址Ab起始地址起始地址 As=4Ae=12-4=8Cd基址基址Cb起始地址起始地址 Cs=4Ce=12-4=8起始地址起始地址 Bs=4 Be=4(4)=8位移量位移量 Bd
42、=4基址基址Bb向量起始地址向量起始地址=基址基址+位移量位移量向量有效长度向量有效长度=向量长度向量长度-位移量位移量l稀疏向量的压缩稀疏向量的压缩采用隐蔽位向量法(压缩向量)采用隐蔽位向量法(压缩向量)存取过程如图示:存取过程如图示:A0A3A4A5(0)A6(0)A7A1(0)A2(0)012356471A00A10A20A61A31A41A70A5A0稀疏向量稀疏向量A3A4A7压缩向量压缩向量Z向量(有序位向量)向量(有序位向量)描述符数据表示与向量数据表示描述符数据表示与向量数据表示对向量数据结构提供的支持有何不同?对向量数据结构提供的支持有何不同?l在描述符数据表示的机器中,只能
43、提供在描述符数据表示的机器中,只能提供描述符寄存器和简单的地址形成逻辑等描述符寄存器和简单的地址形成逻辑等硬件,虽能支持向量数据结构的运算,硬件,虽能支持向量数据结构的运算,但运行速度较慢。但运行速度较慢。l在向量数据表示的机器中,有丰富的向在向量数据表示的机器中,有丰富的向量运算指令,有大量的向量寄存器和并量运算指令,有大量的向量寄存器和并行、高速流水运算部件的支持,可以实行、高速流水运算部件的支持,可以实现向量运算的高速执行。现向量运算的高速执行。堆栈数据表示 通用寄存器型机器对堆栈数据结构支持较差,表通用寄存器型机器对堆栈数据结构支持较差,表现为:现为:-堆栈指令少,功能单一;堆栈指令少
44、,功能单一;-堆栈置于存储器内,访问堆栈速度慢堆栈置于存储器内,访问堆栈速度慢以寄存器寻址方式指令为主以寄存器寻址方式指令为主通用寄存器型机器。通用寄存器型机器。高级语言机器:高级语言和机器语言合二为一,高级语言机器:高级语言和机器语言合二为一,高级语言不用编译,直接由机器硬件解释执行。高级语言不用编译,直接由机器硬件解释执行。如如LISP,PROLOG计算机等。计算机等。堆栈机器:堆栈机器:具有堆栈数据表示的机器具有堆栈数据表示的机器,以堆栈寻以堆栈寻址方式指令为主。址方式指令为主。主存主存寄存器寄存器控制控制逻辑逻辑堆栈堆栈l 有若干高速寄存器组成的硬件堆栈,并附加控制有若干高速寄存器组成
45、的硬件堆栈,并附加控制电路让它与主存中的堆栈区在逻辑上组成一个整体,电路让它与主存中的堆栈区在逻辑上组成一个整体,使堆栈的访问速度是寄存器的,堆栈的容量是主存使堆栈的访问速度是寄存器的,堆栈的容量是主存的。的。l有很丰富的堆栈操作类指令且功能很强,直接有很丰富的堆栈操作类指令且功能很强,直接可对堆栈中的数据进行各种运算和处理可对堆栈中的数据进行各种运算和处理l有力地支持高级语言程序的编译;逆波兰表达有力地支持高级语言程序的编译;逆波兰表达式式如:如:F=A*B+C/(D-E)F=A*B+C/(D-E)逆波兰表达式:逆波兰表达式:AB*CDE-/+AB*CDE-/+堆栈指令程序堆栈指令程序l有力
46、地支持子程序的嵌套和递归调用有力地支持子程序的嵌套和递归调用数据表示小结:数据表示小结:分类:分类:基本数据表示基本数据表示 高级数据表示高级数据表示标志符标志符描述符描述符自定义数据表示自定义数据表示向量数据表示向量数据表示堆栈数据表示堆栈数据表示引入数据表示的原则:引入数据表示的原则:(1)系统效率高)系统效率高(2)通用性和利用率高)通用性和利用率高数据表示和数据结构的关系数据表示和数据结构的关系数据表示是数据结构的一个子集,面向硬件;数据表示是数据结构的一个子集,面向硬件;数据结构是数据的组织方式,面向软件和应用数据结构是数据的组织方式,面向软件和应用由算法和软件实现两者的映射。由算法
47、和软件实现两者的映射。数据结构数据表示软硬件界面软硬件界面数据结构和数据表示是软硬件的界面数据结构和数据表示是软硬件的界面结论:结论:数据结构的发展总是优于机器的数数据结构的发展总是优于机器的数据表示据表示系统结构设计者的任务:系统结构设计者的任务:从优化设计的角从优化设计的角度,确定软硬件的分界面,哪些数据类型度,确定软硬件的分界面,哪些数据类型用数据表示来实现,哪些数据类型用数据用数据表示来实现,哪些数据类型用数据结构来实现,应能对新型的数据结构提供结构来实现,应能对新型的数据结构提供更多更好的支持。更多更好的支持。2.3 寻址方式与指令格式的优化设计l寻址方式分析寻址方式分析l程序定位技
48、术程序定位技术l指令格式的优化设计指令格式的优化设计 寻址方式:寻址方式:是指令按什么方式寻找(访问)到所是指令按什么方式寻找(访问)到所 需的操作数或信息。需的操作数或信息。指令所访问的数据指令所访问的数据 主存主存、寄存器寄存器、堆栈堆栈 寻址能力寻址能力的要求的要求 多样性、灵活性、寻址空间范围大小、地址变多样性、灵活性、寻址空间范围大小、地址变换速度换速度 目目标标:以最短的位描述给定的寻址方式以最短的位描述给定的寻址方式2.3.1 寻址方式分析1.1.设置寻址方式的目标设置寻址方式的目标l寻址方式在指令中的指明方式寻址方式在指令中的指明方式占用操作码位:占用操作码位:DJS200DJ
49、S200系列指令系统中系列指令系统中8 8位操作位操作码最高两位:间接(码最高两位:间接(1111)和直接()和直接(0101)地址码设置寻址方式字段:地址码设置寻址方式字段:VAX-11VAX-11指令中源和指令中源和目的各有目的各有4 4位寻址方式位字段位寻址方式位字段主存主存直接、间接、变址、基址、相对寻址直接、间接、变址、基址、相对寻址 直接寻址直接寻址使指令字变长使指令字变长 间接寻址间接寻址使指令执行速度变慢使指令执行速度变慢 相对寻址相对寻址用于条件转移指令中定位转向后代码的位用于条件转移指令中定位转向后代码的位置置 变址寻址变址寻址支持向量、数组,实现循环支持向量、数组,实现循
50、环,用寄存器做,用寄存器做变址器,地址码部分不会很长,访问数据速度相当于变址器,地址码部分不会很长,访问数据速度相当于一次访问内存的速度一次访问内存的速度 基址寻址基址寻址支持逻辑地址到物理地址的变换,支持逻辑地址到物理地址的变换,用于程用于程序的动态再定位;序的动态再定位;2.2.寻址方式寻址方式寄存器寄存器直接、间接寻址直接、间接寻址以寄存器寻址方式为主的计算机称为通用寄存器型以寄存器寻址方式为主的计算机称为通用寄存器型计算机计算机优点:优点:-指令字长短指令字长短 -执行速度快执行速度快 -支持向量、矩阵运算支持向量、矩阵运算缺点:缺点:-不利于编译程序的设计不利于编译程序的设计 -不利