




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2.1 数据表示数据表示2.2 浮点数据表示浮点数据表示2.3 高级数据表示高级数据表示2.4 指令系统的优化设计指令系统的优化设计2.5 指令系统设计的两种风格指令系统设计的两种风格 2.1.1 数据类型、数据表示与数据结构数据类型、数据表示与数据结构整数、实数、布尔数、二进制位、字符、串、图、整数、实数、布尔数、二进制位、字符、串、图、表、树、阵列、队列、链表、栈、向量等。表、树、阵列、队列、链表、栈、向量等。数据类型数据类型定义了具有相同属性一组值的集合,定义了具有相同属性一组值的集合,还定义了这个集合上的操作集。还定义了这个集合上的操作集。数据数据 用户定义的数据用户定义的数据 用户程
2、序中使用用户程序中使用 系统数据系统数据 执行程序时生成执行程序时生成 指令指令 数据的复合数据的复合l 基本数据类型基本数据类型: 二进制位、整数、十进制数、浮点数、字符、二进制位、整数、十进制数、浮点数、字符、布尔数等。布尔数等。l结构数据类型结构数据类型:由一组相互有关的数据元素复合而由一组相互有关的数据元素复合而成的数据类型成的数据类型数组、字符串、向量、堆栈、队列、记录、树等数组、字符串、向量、堆栈、队列、记录、树等 计算机体系结构所要研究的一个内容是:计算机体系结构所要研究的一个内容是:在所在所有这些数据类型中,哪些用硬件实现,哪些用软有这些数据类型中,哪些用硬件实现,哪些用软件实
3、现,并研究它们的实现方法。件实现,并研究它们的实现方法。所有系统结构都支持基本数据类型所有系统结构都支持基本数据类型大多数系统结构只能部分地支持结构数据类型大多数系统结构只能部分地支持结构数据类型数据表示:数据表示:机器硬件能直接识别,并可以被指令调机器硬件能直接识别,并可以被指令调用的数据类型,用的数据类型,数据结构:数据结构:结构数据类型的组织方式。结构数据类型的组织方式。 确定哪些数据类型用数据表示实现,哪些数据类确定哪些数据类型用数据表示实现,哪些数据类型用数据结构实现,是软硬件的主要分界面之一,型用数据结构实现,是软硬件的主要分界面之一,本质上是一个软硬取舍问题。本质上是一个软硬取舍
4、问题。数据结构数据结构 基本数据类型基本数据类型映像存储器存储器缩短程序的运行时间缩短程序的运行时间占用存储空间少占用存储空间少减少减少CPU和主存的通信量和主存的通信量通用性和利用率通用性和利用率确定哪些数据类型用数据表示实现的原则:确定哪些数据类型用数据表示实现的原则:例:实现例:实现A=A+B,A和和B都是都是200200 的矩阵。的矩阵。标量机:标量机:6 6条指令条指令, , 其中其中4 4条循环指令要执行条循环指令要执行200200* *200200=40000=40000次;因此次;因此CPUCPU与主存之间的通信量为:与主存之间的通信量为:取指令取指令 2 24 4400004
5、0000条;条;读或写数据读或写数据 3 34000040000个;个;共要访问主存共要访问主存 7 74000040000次以上。次以上。通用性不好通用性不好向量机:向量机:向量指令:向量指令: 1 1条指令条指令, , 减少取指令操作减少取指令操作4 4* *40000=16000040000=160000次,程序执行时间缩短了一半。次,程序执行时间缩短了一半。对复杂的树数据结构的支持较好,高效;对复杂的树数据结构的支持较好,高效;但对向量、数组、链表等其他数据结构支持不够,但对向量、数组、链表等其他数据结构支持不够,低效。低效。举例举例1:引入树型数据表示:引入树型数据表示可高效地对向量
6、、数组、链表、树等多种数据结可高效地对向量、数组、链表、树等多种数据结构提供支持。构提供支持。举例举例2:引入指针数据表示:引入指针数据表示通用性好通用性好当当选择产生冲突时,根据性能选择产生冲突时,根据性能/ /价格衡量价格衡量 从减少从减少CPU和主存的通信量及缩短执行时间两方面和主存的通信量及缩短执行时间两方面看,对于处理矩阵运算,向量数据表示优越性要高。看,对于处理矩阵运算,向量数据表示优越性要高。实际系统设计实际系统设计 系统结构设计的任务:系统结构设计的任务:确定哪些数据类型用硬件确定哪些数据类型用硬件即数据表示实现,哪些数据类型用软件实现,即数据表示实现,哪些数据类型用软件实现,
7、即数据结构,哪些数据类型由软件和硬件共同即数据结构,哪些数据类型由软件和硬件共同来实现。来实现。复杂的数据类型一般通过数据结构或通过软硬件联复杂的数据类型一般通过数据结构或通过软硬件联合设计实现合设计实现(如如table、 graph、record、tree等等)简单的、常用的、通用的数据类型采用数据表示简单的、常用的、通用的数据类型采用数据表示(如如int、 float、stack等等); 数据表示是数据结构的一个子集,数据表示是数据结构的一个子集,数据结构通过数据结构通过 一定的算法变成数据表示才能在系统中处理;一定的算法变成数据表示才能在系统中处理; 数据表示是软、硬件界面的一部分;数据
8、结构是数据表示是软、硬件界面的一部分;数据结构是软件和应用的一部分。软件和应用的一部分。l 数据结构与数据表示的关系数据结构与数据表示的关系数据结构数据结构数据表示数据表示软硬件的界面软硬件的界面数据表示的确定实质上是软硬件的取舍问题数据表示的确定实质上是软硬件的取舍问题l早期的计算机系统只有定点数据表示早期的计算机系统只有定点数据表示优点:硬件结构简单优点:硬件结构简单缺点:缺点:l编程困难:先确定小数点位置,小数点对编程困难:先确定小数点位置,小数点对齐再运算齐再运算l表示数的范围小:如表示数的范围小:如1616位字长表示的整数位字长表示的整数范围为:范围为: -32768-3276832
9、76732767l数据存储单元的利用率很低(数据存储单元的利用率很低(大量的前置大量的前置0 0)2.1.2 浮点数据表示浮点数据表示l计算机中的浮点数来源于数学中的实数,但两者有很多计算机中的浮点数来源于数学中的实数,但两者有很多本质的区别:本质的区别: 实数:实数:表示范围表示范围无限,表示精度无限,表示精度连续。连续。 浮点数:浮点数:表示范围表示范围有限,表示精度有限,表示精度不连续。不连续。三大特点:表数范围、表数精度和表数效率三大特点:表数范围、表数精度和表数效率关键问题:在数据字长确定的情况下,找到具有关键问题:在数据字长确定的情况下,找到具有最最大表数范围、最高表数精度和最大表
10、数效率大表数范围、最高表数精度和最大表数效率的浮点的浮点数表示方式。数表示方式。-Nmin 0 -NmaxNminNmax可表示可表示的负数的负数可表示可表示的正数的正数负下负下溢区溢区负上负上溢区溢区正下正下溢区溢区正上正上溢区溢区l浮点数的一般格式:对任意浮点数浮点数的一般格式:对任意浮点数N,可表示为:,可表示为:emrmNqere m:尾数,多采用规格化小数表示:尾数,多采用规格化小数表示e: 阶码的值,一般采用整数、移码表示阶码的值,一般采用整数、移码表示rm :尾数的基,一般采用二进制、十六进制:尾数的基,一般采用二进制、十六进制re :阶码的基,一般采用二进制:阶码的基,一般采用
11、二进制p:尾数长度(不包括符号位),当:尾数长度(不包括符号位),当rm 16时,时,每四个二进制位表示一位尾数每四个二进制位表示一位尾数q:阶码长度:阶码长度(不包括阶码的符号)不包括阶码的符号)浮点数的表示需要六个基本参数:尾数浮点数的表示需要六个基本参数:尾数m m、阶码、阶码e e的的值;尾数的基值;尾数的基r rm m、阶码的基、阶码的基r re e、尾数长度、尾数长度p(p(不包括不包括符号位符号位) )、阶码长度、阶码长度q (q (不包括符号位不包括符号位) )mf ef e m 1 1 q p 在浮点表示方式中尾数采用规格化小数的目的在浮点表示方式中尾数采用规格化小数的目的是
12、为了在尾数中表示最多的有效数据位及数据表是为了在尾数中表示最多的有效数据位及数据表示的惟一性。示的惟一性。0.00345 0.34510-2尾数规格化尾数规格化数符阶符l (1 1)表数范围:)表数范围:在尾数采用原码在尾数采用原码p p位、纯小数,阶码位、纯小数,阶码q q位采用移码的位采用移码的浮点数表示方式中,规格化浮点数浮点数表示方式中,规格化浮点数N的表数范围如下:的表数范围如下:11)1 (|qeqermpmrmmrrNrr最大正数:最大正数:最小正数:最小正数:最大负数:最大负数: 最小负数:最小负数:表数范围:表数范围:1)1(qermpmrrqermmrr1qermmrr11
13、)1 (qermpmrr例如:尾数用原码,纯小数表示,阶码用移码整数例如:尾数用原码,纯小数表示,阶码用移码整数表示,当表示,当p=23,q=7, rm = re=2时,规格化数时,规格化数N在在正数区间的表数范围是:正数区间的表数范围是:127231282)21 (2)2/1 (N128127232)2/1 (2)21 (N在负数区间的表数范围是:在负数区间的表数范围是:表示数的个数是:表示数的个数是:1511282422/122 规格化浮点数的个数应是可表示的阶码的个数规格化浮点数的个数应是可表示的阶码的个数与可表示的尾数的个数的乘积。与可表示的尾数的个数的乘积。现以阶码为现以阶码为q=2
14、,尾数,尾数p=4,正阶、正尾数为例,正阶、正尾数为例,比较比较rm=2和和rm=16时的不同情况。时的不同情况。 7 6 5 4 3 2 1 0阶符阶符00尾符尾符在在尾数基值尾数基值rm 2(二进制)(二进制) ,p=4(即尾数即尾数bit3bit0,共,共4位)、做规格化表示(即此时位)、做规格化表示(即此时bit3=1)的正阶、正尾的数的范围:)的正阶、正尾的数的范围:在阶码相同的前提下,尾数采用不同基值时,表在阶码相同的前提下,尾数采用不同基值时,表示的浮点数大小及个数均不相同。示的浮点数大小及个数均不相同。 可表示的最大正浮点数为可表示的最大正浮点数为可表示规格化的最小正浮点数为可
15、表示规格化的最小正浮点数为可表示的正阶、正尾规格化数的个数为可表示的正阶、正尾规格化数的个数为2/1516/1582)21(342/12201322/1222416/1521144mr最大尾数为最大尾数为 最小阶码为最小阶码为 最大阶码为最大阶码为01203122)3 , 2 , 1 , 0(422阶码的个数为阶码的个数为最小尾数为最小尾数为2/1211mr尾数的个数为尾数的个数为1624在在尾数基值尾数基值rm 16(十六进制)(十六进制) q2, p=4(尾数尾数bit3bit0,4位二进制组成一个十六进制数)位二进制组成一个十六进制数),做规做规格化表示(即此时格化表示(即此时bit3b
16、it0 中必须有中必须有1位为位为“1”,不许出现全不许出现全“0”, bit3bit0 为为00011111)的正)的正阶、正尾的数的范围:阶、正尾的数的范围:最小尾数为最小尾数为1611611mr16151611最大尾数为最大尾数为最小阶码为最小阶码为 最大阶码为最大阶码为0120312122q4222q阶码的个数为阶码的个数为可表示的最小正浮点数为可表示的最小正浮点数为16121612001mr1512p尾数的个数为尾数的个数为可表示的正阶、正尾规格化数的个数为可表示的正阶、正尾规格化数的个数为601522从上述例子,可得到下列两个结论:从上述例子,可得到下列两个结论:(1)当有相同阶码
17、与尾数位数时,)当有相同阶码与尾数位数时, rm大,则表示大,则表示数的范围也大,表示数的个数增多。数的范围也大,表示数的个数增多。 rm只能取只能取2,4,8,16,。一般使用。一般使用2,8,16三种。三种。rm=2时,其个数是时,其个数是32。可表示的最大正浮点数为可表示的最大正浮点数为384016)161()1(31)12(1qmmrr而而rm=2时,其最大数是时,其最大数是15/2。(2) rm大时,虽然表示数的范围大,表示数的大时,虽然表示数的范围大,表示数的个数增加,但在数值的分布较稀疏。例如在数轴个数增加,但在数值的分布较稀疏。例如在数轴1/2-2之间,当之间,当rm 2时,有
18、数时,有数15个;而当个;而当rm 16时,有数时,有数8个。个。原因有两点:一是因为采用规格化表示的缘故。如上例中原因有两点:一是因为采用规格化表示的缘故。如上例中rm 2时,规格化后,时,规格化后,其尾数个数只为原来的其尾数个数只为原来的1/2;二是因为在;二是因为在同长度阶码时,同长度阶码时, rm不同,每次小数点移动位置不同,如上例不同,每次小数点移动位置不同,如上例中中rm 2时,时,1个阶码值移动小数点个阶码值移动小数点1bit,而,而rm 16时,则时,则移移动动4bits。故:。故:rm 增大,则表示数的个数增加,数值上分布稀增大,则表示数的个数增加,数值上分布稀疏,从而计算误
19、差增加。疏,从而计算误差增加。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位符号位、位符号位、6位阶位阶码和码和9位尾数,基数为位尾数,基数为16,求规格化时它能表示数,求规格化时它能表示数值的个数。值的个数。解:此浮点数共有解:此浮点数共有16位位阶码为阶码为q=5,尾数位数,尾数位数p=9,re =2和和rm =16。尾数用原码表示,阶码采用移码。尾数用原码表示,阶码采用移码。可表示的正阶、正尾规格化数的个
20、数为可表示的正阶、正尾规格化数的个数为)162(2213339最大阶码为最大阶码为3112125q32225q阶码的个数为阶码的个数为最大尾数为最大尾数为 (0.1FF)402322162l【例【例1】某计算机的浮点数采用】某计算机的浮点数采用1位符号位、位符号位、7位阶位阶码(移码)和码(移码)和8位尾数(原码规格化),基数为位尾数(原码规格化),基数为2,数据数据1在这种浮点格式中的表示为在这种浮点格式中的表示为 ,这种,这种浮点表示的大于浮点表示的大于1的最小数是的最小数是 。解:此浮点数共有解:此浮点数共有16位,格式如下:位,格式如下: 10.1211: 0 1000001 , 10
21、0000001最小数:最小数: 0 1000001 , 10000001规格化表示的最小尾数 15 14 9 8 0数符数符尾数尾数阶码阶码最小正尾数为:最小正尾数为:0.100000000可表示的正规格化浮点数的个数为可表示的正规格化浮点数的个数为可表示的负阶、正尾规格化数的个数为可表示的负阶、正尾规格化数的个数为4023221624123221622可表示的正、负规格化浮点数的个数为可表示的正、负规格化浮点数的个数为4241222 从上面的分析可以看到,规格化浮点数的表数范从上面的分析可以看到,规格化浮点数的表数范围主要与阶码的长度围主要与阶码的长度q和和rm尾数基值有关,这时,尾数基值有
22、关,这时,能表示的绝对值最大的浮点数可近似为:能表示的绝对值最大的浮点数可近似为:qermrNmax 表数范围表数范围随着随着q和和rm的增大而扩大。当有相同阶码的增大而扩大。当有相同阶码与尾数位数时,与尾数位数时, rm大,则表示数的范围大。但大,则表示数的范围大。但rm大大时,在数轴上的分布较稀疏。时,在数轴上的分布较稀疏。 当浮点数的尾数长度相同时,尾基为当浮点数的尾数长度相同时,尾基为2 2时具有时具有最高的表数精度。最高的表数精度。 表数精度也称为表数误差,浮点数存在表数精表数精度也称为表数误差,浮点数存在表数精度的根本原因是由于浮点数的不连续性造成的。度的根本原因是由于浮点数的不连
23、续性造成的。浮点数表示的仅仅是实数的一个子集。浮点数表示的仅仅是实数的一个子集。规格化浮点数的表数精度主要与尾数基值和尾规格化浮点数的表数精度主要与尾数基值和尾数长度有关,一般认为尾数最后数长度有关,一般认为尾数最后1位值的一半定位值的一半定义为表数精度义为表数精度)2(21mpmrr)16(21mpmrr在在尾数基值尾数基值rm 16(十六进制)(十六进制) re 2, 尾数尾数4位位(4位二进制组成一个十六进制数)、位二进制组成一个十六进制数)、q=2时做规时做规格化表示的最大正数、正规格化数的个数及一个格化表示的最大正数、正规格化数的个数及一个数量单位的大小:数量单位的大小:rm 2,正
24、规格化尾数的个数,正规格化尾数的个数8个,最大正数为个,最大正数为 (124) 22 ,一个数量单位,一个数量单位=(24)221/4当表示的浮点数有相同的位数、尾数时,当表示的浮点数有相同的位数、尾数时,rm=2,有最,有最大的表数精度。大的表数精度。rm 16,正规格化尾数的个数,正规格化尾数的个数15个,最大正数为个,最大正数为 (1161)162,一个数量单位,一个数量单位=(1/16)16216 尾数基值尾数基值rm2与与rm16相比,显然基值越大相比,显然基值越大浮点数的表数效率高。浮点数的表数效率高。mmqepmqepmmrrrrrrr12212)1(21全部浮点数个数可表示的规
25、格化浮点数浮点数的表数效率定义为浮点数的表数效率定义为l浮点数的表数范围、表数精度和表数效率三个主浮点数的表数范围、表数精度和表数效率三个主要特征都与尾数基值要特征都与尾数基值rm有关。有关。(4 4)浮点数尾数基值的选择)浮点数尾数基值的选择rm 2 2,表数效率只有,表数效率只有50%50%,为了提高表数效率,为了提高表数效率,许多计算机采用了隐藏位表示法,此时表数效率许多计算机采用了隐藏位表示法,此时表数效率100%100%; 当浮点数字长确定后,当浮点数字长确定后,rm取取2 2,具有最大的表,具有最大的表数范围、表数效率和最高的表数精度。数范围、表数效率和最高的表数精度。但但rm 4
26、时,就不能采用隐藏位表数法,因为尾数时,就不能采用隐藏位表数法,因为尾数可以从可以从00、01、10、11中取值,中取值,IBM370系列机、系列机、IBM4300系列机等浮点数的尾系列机等浮点数的尾数是数是16;Burroughs公司的公司的B6700,B7700等大型计算机,等大型计算机,浮点数尾数的基值是浮点数尾数的基值是8;DEC公司的公司的VAX-11、CDC公司公司CDC6600等大型等大型机以及机以及Intel公司的公司的X86系列机等的浮点数均采用系列机等的浮点数均采用尾数基值为尾数基值为2。应用情况:应用情况:l浮点数加法中的对阶、规格化右移操作以及乘浮点数加法中的对阶、规格
27、化右移操作以及乘法中结果取单倍长度会把有效位移掉或截掉从法中结果取单倍长度会把有效位移掉或截掉从而造成精度损失。而造成精度损失。(5 5)浮点数的下溢处理)浮点数的下溢处理尾数下溢处理方式:尾数下溢处理方式:(1)截断截断。也称为不舍入法。简单地将下溢部分截去。也称为不舍入法。简单地将下溢部分截去。在整数运算中最大会接近于在整数运算中最大会接近于1;误差大都是负误差。;误差大都是负误差。(2)舍入法舍入法。被截尾数为。被截尾数为1进进1,运算中最大误差小于一半。,运算中最大误差小于一半。(3)恒置恒置1法法。被截尾数无论是。被截尾数无论是0是是1,恒置,恒置1。最大误差比截。最大误差比截断法大
28、。断法大。(4)ROM或或PLA法法。也称查表舍入法,平均误差接近于零。也称查表舍入法,平均误差接近于零。l自定义数据表示(自定义数据表示(Self-definingSelf-defining)带标志符的数据表示带标志符的数据表示数据描述符数据描述符l向量数据表示向量数据表示l堆栈数据表示堆栈数据表示 内容:内容:堆栈、向量、数组(队列)、记录、自堆栈、向量、数组(队列)、记录、自定义等。定义等。 目的:目的:支持数据结构,提高支持数据结构,提高系统效率和性能系统效率和性能/ /价价格比。格比。 注意点:注意点: 新数据表示引入的可行性(原则);新数据表示引入的可行性(原则); 新数据表示的必
29、要条件(指令系统和硬件器件);新数据表示的必要条件(指令系统和硬件器件); 新数据表示的存取方法(如稀疏向量表示)新数据表示的存取方法(如稀疏向量表示)。l引入思想:引入思想:减小高级语言和机器语言的语义差距,减减小高级语言和机器语言的语义差距,减轻编译软件的工作量(减少指令种类)轻编译软件的工作量(减少指令种类)l分类分类带标志符数据表示带标志符数据表示数据描述符数据描述符l定义:用以定义:用以定义某个数据的数据类型和数值的定义某个数据的数据类型和数值的数据表示数据表示。格式如下:。格式如下: 类型标志主要用于指明数据类型(如二进制类型标志主要用于指明数据类型(如二进制整数、十进制整数等,也
30、可用于指明机器内部所整数、十进制整数等,也可用于指明机器内部所用信息的各种类型)。用信息的各种类型)。 标志符由编译程序建立,对高级语言程序员标志符由编译程序建立,对高级语言程序员来说是透明的。来说是透明的。类型标志类型标志 数据数据l优点:优点:简化指令系统和程序设计简化指令系统和程序设计简化了系统程序和编译程序的设计简化了系统程序和编译程序的设计便于一致性校验便于一致性校验能由硬件自动完成数据类型的变换能由硬件自动完成数据类型的变换支持数据库系统的实现与数据类型无关的要求支持数据库系统的实现与数据类型无关的要求为软件调试和应用软件开发提供支持为软件调试和应用软件开发提供支持l缺点:缺点:硬
31、件设计的复杂度增加(数据类型转换、一致性硬件设计的复杂度增加(数据类型转换、一致性检验等)检验等)降低指令的执行速度降低指令的执行速度必须用专门的指令完成标志符的初始化必须用专门的指令完成标志符的初始化l引入可行性分析引入可行性分析存储空间是否减少?存储空间是否减少? BA数据数据指令指令总数少总数少总数多总数多通常有面积通常有面积B面积面积A采用标志符后采用标志符后 数据字增长数据字增长不采用标志符不采用标志符采用标志符后采用标志符后 指令字缩短指令字缩短l例例2.2 设处理机设处理机A的数据不带标志符,指令字长和的数据不带标志符,指令字长和数据字长都是数据字长都是32位,设处理机位,设处理
32、机B的数据带的数据带3位标志位标志符,使数据字长增至符,使数据字长增至35位,但可使指令字长减少位,但可使指令字长减少至至30位。现有位。现有1个程序正在处理机个程序正在处理机A和和B上运行的上运行的目标程序都有目标程序都有IC条指令,平均每条指令访问条指令,平均每条指令访问2个个操作数,每个操作数重复访问操作数,每个操作数重复访问R次。次。l(1)分别计算程序在处理机)分别计算程序在处理机A和和B上占用的存储上占用的存储空间大小。空间大小。l(2)在什么条件下,程序在处理机)在什么条件下,程序在处理机B上占用的存上占用的存储空间才小于在处理机储空间才小于在处理机A上占用的存储空间?上占用的存
33、储空间?RICICMA32232l解解 (1)程序在处理机)程序在处理机A上占用的存储空间上占用的存储空间RICICMB35230l程序在处理机程序在处理机B上占用的存储空间上占用的存储空间l(2)为实现)为实现MB3,即当操作数平均重复访问次数,即当操作数平均重复访问次数R3,在带标志符的数据表示的处理机上运行的程序占用的在带标志符的数据表示的处理机上运行的程序占用的存储空间会减小。存储空间会减小。实现时间是否减少?实现时间是否减少?l取出数据后转换,必须推迟到运行时间进行取出数据后转换,必须推迟到运行时间进行l专门的指令用于标志符初始化,增加了辅助专门的指令用于标志符初始化,增加了辅助开销
34、开销l指令执行过程中,对每个标志符进行逐个解指令执行过程中,对每个标志符进行逐个解释,并判断数据是否相容,因此单条指令的释,并判断数据是否相容,因此单条指令的执行速度降低,但宏观执行时间减少执行速度降低,但宏观执行时间减少宏观时间宏观时间= =设计时间设计时间+ +编译时间编译时间+ +调试时间调试时间通用性和利用率通用性和利用率这是一种理想的数据表示模式,通用性较好;这是一种理想的数据表示模式,通用性较好;只用一种存储器,利用率不高,采用指令和数只用一种存储器,利用率不高,采用指令和数据存储器后,利用率不会降低。据存储器后,利用率不会降低。l结论结论运行时间增加,存储空间减少。运行时间增加,
35、存储空间减少。减小高级语言和机器语言的语义差距减小高级语言和机器语言的语义差距通用机中不使用,专用机(支持动态数据通用机中不使用,专用机(支持动态数据类型如类型如LISPLISP和和PROLOGPROLOG)中使用)中使用l目的:描述复杂和多维的结构类型,进一步减目的:描述复杂和多维的结构类型,进一步减少标志符所占的存贮空间。少标志符所占的存贮空间。举例:现以美国现以美国BurroughsBurroughs公司的公司的B6500B6500,75007500为例为例进行自定义数据表示的说明,格式如下:进行自定义数据表示的说明,格式如下:描述符描述符标志位标志位特征标记特征标记数据块长度数据块长度
36、数据块起始地址数据块起始地址382020格式:格式:数据数据000数值数值描述符描述符101P CISRTD长度长度地址地址3111120220111:不连续数据:不连续数据0:连续数据:连续数据1:数据集中的一个:数据集中的一个0:数据集的全体:数据集的全体只准读出的数据只准读出的数据00:数据描述符:数据描述符写其他描述符写其他描述符0:不在主存中:不在主存中1:在主存中:在主存中0:单精度数据:单精度数据1:双精度数据:双精度数据l优点优点: :实现阵列数据的索引比变址方法实现的好,实现阵列数据的索引比变址方法实现的好,而且能检查程序设计中阵列越界错误而且能检查程序设计中阵列越界错误为向
37、量、数组数据结构的实现提供一定的支为向量、数组数据结构的实现提供一定的支持,有利于简化编译中的代码生成持,有利于简化编译中的代码生成l引入可行性分析:同带标志符的数据表示引入可行性分析:同带标志符的数据表示l描述符的工作过程如下图描述符的工作过程如下图101000000101101101XY操作码操作码指令指令描述符描述符描述符描述符地址生成逻辑地址生成逻辑(数据)(数据)(数据)(数据)数据块数据块数据块数据块主存储器主存储器1013101410141014000(a11)000(a12)000(a13)000(a14)000(a21)000(a22)000(a23)000(a24)000(
38、a31)000(a32)000(a33)000(a34)阵列描述符三元素向量3*4 二维阵列Aa11 a12 a13 a14a21 a22 a23 a24a31 a32 a33 a343*4 二维阵列用描述符描述二维阵列l标志符是和每一个数据相连的,合存在一个标志符是和每一个数据相连的,合存在一个存储单元中,描述单个数据的类型特征。存储单元中,描述单个数据的类型特征。l描述符是和数据分开存放的,专门用来描述描述符是和数据分开存放的,专门用来描述所要访问的数据是整块数据还是单块数据,所要访问的数据是整块数据还是单块数据,访问该数据块或数据元素所需要的地址以及访问该数据块或数据元素所需要的地址以及
39、其他特征信息等。其他特征信息等。l向量表示向量表示向量通常是指由标量的一组有序集合表示的向量通常是指由标量的一组有序集合表示的量,类似于一维数组量,类似于一维数组标量通常只是一个整数或实数标量通常只是一个整数或实数数组数组 A=(aA=(a0 0,a,a1 1,a,a2 2,a,an-1n-1) )可看成向量可看成向量Aa0a1a11l 向量在主存储器中的存放原则:向量在主存储器中的存放原则: 规律性、地址计算简单、访存冲突小规律性、地址计算简单、访存冲突小元素相邻存放元素相邻存放元素等间距存放元素等间距存放l向量计算机向量计算机- -处理向量数据的计算机处理向量数据的计算机l举例:计算举例:
40、计算 c ci i=a=ai i+b+bi i, I=10,11,1000, I=10,11,1000无向量数据表示无向量数据表示(C(C语言语言) ):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)向量加A向量参数B向量参数C向量参数向量加 X A Y B Z Cl向量指令及包含的参数向量指令及包含的参数基地址、位移量、向量长度基地址、位移量、向量长度格式
41、如下:格式如下:A,B,C:存放A,B,C的向量基址及长度X,Y,Z:寄存器号,存放A,B,C的位移量向量长度位移量基地址起始地址(基址+位移)向量的有效长度向量编址所用的参数注:向量起始地址注:向量起始地址= =基址基址+ +位移量位移量 向量有效长度向量有效长度= =向量长度向量长度- -位移量位移量 向量的数据地址起始地址位移量向量的数据地址起始地址位移量a0an-1a10l举例:计算举例:计算C(4C(4:11)=A(411)=A(4:11)+B(-411)+B(-4:3)3)A0A3A2A1A11A10A9A8A7A6A5A4C0C3C2C1C11C10C9C8C7C6C5C4B3B
42、2B1B0B-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=4基址基址Bb向量起始地址向量起始地址= =基址基址+ +位移量位移量向量有效长度向量有效长度= =向量长度向量长度- -位移量位移量l稀疏向量的压缩稀疏向量的压缩采用隐蔽位向量法(压缩向量)采用隐蔽位向量法(压缩向量)存取过程如图示:存取过程如图示:A0A3A4A5 (0)A6 (0)A7A1 (0)A2 (
43、0)012356471A00A10A20A61A31A41A70A5A0稀疏向量稀疏向量A3A4A7压缩向量压缩向量Z向量(有序位向量)向量(有序位向量)l在描述符数据表示的机器中,只能提供在描述符数据表示的机器中,只能提供描述符寄存器和简单的地址形成逻辑等描述符寄存器和简单的地址形成逻辑等硬件,虽能支持向量数据结构的运算,硬件,虽能支持向量数据结构的运算,但运行速度较慢。但运行速度较慢。l在向量数据表示的机器中,有丰富的向在向量数据表示的机器中,有丰富的向量运算指令,有大量的向量寄存器和并量运算指令,有大量的向量寄存器和并行、高速流水运算部件的支持,可以实行、高速流水运算部件的支持,可以实现
44、向量运算的高速执行现向量运算的高速执行。 通用寄存器型机器对堆栈数据结构支持较差,表通用寄存器型机器对堆栈数据结构支持较差,表现为:现为:- 堆栈指令少,功能单一;堆栈指令少,功能单一;- 堆栈置于存储器内,访问堆栈速度慢堆栈置于存储器内,访问堆栈速度慢以寄存器寻址方式指令为主以寄存器寻址方式指令为主通用寄存器型机器。通用寄存器型机器。高级语言机器:高级语言和机器语言合二为一,高级语言机器:高级语言和机器语言合二为一,高级语言不用编译,直接由机器硬件解释执行。高级语言不用编译,直接由机器硬件解释执行。如如LISP,PROLOG计算机等。计算机等。 堆栈机器:堆栈机器:具有堆栈数据表示的机器具有
45、堆栈数据表示的机器,以堆栈寻以堆栈寻址方式指令为主。址方式指令为主。主存主存寄存器寄存器控制控制逻辑逻辑堆栈堆栈l 有若干高速寄存器组成的硬件堆栈,并附加控制有若干高速寄存器组成的硬件堆栈,并附加控制电路让它与主存中的堆栈区在逻辑上组成一个整体,电路让它与主存中的堆栈区在逻辑上组成一个整体,使堆栈的访问速度是寄存器的,堆栈的容量是主存使堆栈的访问速度是寄存器的,堆栈的容量是主存的。的。l有很丰富的堆栈操作类指令且功能很强,直接有很丰富的堆栈操作类指令且功能很强,直接可对堆栈中的数据进行各种运算和处理可对堆栈中的数据进行各种运算和处理l有力地支持高级语言程序的编译;逆波兰表达有力地支持高级语言程
46、序的编译;逆波兰表达式式如:如:F=AF=A* *B+C/(D-E)B+C/(D-E)逆波兰表达式:逆波兰表达式:ABAB* *CDE-/+ CDE-/+ 堆栈指令程序堆栈指令程序l有力地支持子程序的嵌套和递归调用有力地支持子程序的嵌套和递归调用qrsti+1i+2i+3irsti+1iiiq嵌套调用间接递归直接递归i+1子程序现场信息返回地址r局部性参数i子程序现场信息返回地址q局部性参数.全局参数i+1子程序i子程序用堆栈实现子程序的嵌套和递归调用数据表示小结:数据表示小结:分类:分类: 基本数据表示基本数据表示 高级数据表示高级数据表示标志符标志符描述符描述符自定义数据表示自定义数据表示
47、向量数据表示向量数据表示堆栈数据表示堆栈数据表示引入数据表示的原则:引入数据表示的原则:(1)系统效率高)系统效率高(2)通用性和利用率高)通用性和利用率高数据表示和数据结构的关系数据表示和数据结构的关系数据表示是数据结构的一个子集,面向硬件;数据表示是数据结构的一个子集,面向硬件;数据结构是数据的组织方式,面向软件和应用数据结构是数据的组织方式,面向软件和应用由算法和软件实现两者的映射。由算法和软件实现两者的映射。数据结构数据表示软硬件界面软硬件界面数据结构和数据表示是软硬件的界面数据结构和数据表示是软硬件的界面结论:结论:数据结构的发展总是优于机器的数数据结构的发展总是优于机器的数据表示据
48、表示系统结构设计者的任务:系统结构设计者的任务:从优化设计的角从优化设计的角度,确定软硬件的分界面,哪些数据类型度,确定软硬件的分界面,哪些数据类型用数据表示来实现,哪些数据类型用数据用数据表示来实现,哪些数据类型用数据结构来实现,应能对新型的数据结构提供结构来实现,应能对新型的数据结构提供更多更好的支持。更多更好的支持。l寻址方式分析寻址方式分析l程序定位技术程序定位技术l指令格式的优化设计指令格式的优化设计 寻址方式:寻址方式:是指令按什么方式寻找(访问)到所是指令按什么方式寻找(访问)到所 需的操作数或信息。需的操作数或信息。 指令所访问的数据指令所访问的数据 主存主存、寄存器寄存器、堆
49、栈堆栈 寻址能力寻址能力的要求的要求 多样性、灵活性、寻址空间范围大小、地址变多样性、灵活性、寻址空间范围大小、地址变换速度换速度 目目标标:以最短的位描述给定的寻址方式以最短的位描述给定的寻址方式2.3.1 寻址方式分析1.1.设置寻址方式的目标设置寻址方式的目标l寻址方式在指令中的指明方式寻址方式在指令中的指明方式占用操作码位:占用操作码位:DJS200DJS200系列指令系统中系列指令系统中8 8位操作位操作码最高两位:间接(码最高两位:间接(1111)和直接()和直接(0101)地址码设置寻址方式字段:地址码设置寻址方式字段:VAX-11VAX-11指令中源和指令中源和目的各有目的各有
50、4 4位寻址方式位字段位寻址方式位字段主存主存直接、间接、变址、基址、相对寻址直接、间接、变址、基址、相对寻址 直接寻址直接寻址使指令字变长使指令字变长 间接寻址间接寻址使指令执行速度变慢使指令执行速度变慢 相对寻址相对寻址用于条件转移指令中定位转向后代码的位用于条件转移指令中定位转向后代码的位置置 变址寻址变址寻址支持向量、数组,实现循环支持向量、数组,实现循环,用寄存器做,用寄存器做变址器,地址码部分不会很长,访问数据速度相当于变址器,地址码部分不会很长,访问数据速度相当于一次访问内存的速度一次访问内存的速度 基址寻址基址寻址支持逻辑地址到物理地址的变换,支持逻辑地址到物理地址的变换,用于
51、程用于程序的动态再定位;序的动态再定位;2.2.寻址方式寻址方式寄存器寄存器直接、间接寻址直接、间接寻址以寄存器寻址方式为主的计算机称为通用寄存器型以寄存器寻址方式为主的计算机称为通用寄存器型计算机计算机优点:优点: - -指令字长短指令字长短 - -执行速度快执行速度快 - -支持向量、矩阵运算支持向量、矩阵运算缺点:缺点: - -不利于编译程序的设计不利于编译程序的设计 - -不利于中断和子程序的递归调用不利于中断和子程序的递归调用 - -增加了硬件的复杂度增加了硬件的复杂度l堆栈堆栈堆栈寻址(只对栈顶元素进行操作)堆栈寻址(只对栈顶元素进行操作)特点:特点: 程序所占主存空间小,指令长度
52、短程序所占主存空间小,指令长度短 支持程序的嵌套和递归调用,支持中断处理支持程序的嵌套和递归调用,支持中断处理 支持高级语言编译支持高级语言编译l面向主存:主要访问内存,少量访问寄存器面向主存:主要访问内存,少量访问寄存器op m1 m2op m1 m2l面向通用寄存器:多数在寄存器,少量在内存面向通用寄存器:多数在寄存器,少量在内存op r m op r m 、op r1 r2op r1 r2l面向堆栈:主要在堆栈,可减轻编译负担面向堆栈:主要在堆栈,可减轻编译负担opop、 op m op m 、op rop r(2)(2)寻址方式分类寻址方式分类 大多数采用分类编址,有三类:大多数采用分
53、类编址,有三类: 存储效率存储效率:堆栈型堆栈型 通用寄存器型通用寄存器型 程序占用空间小程序占用空间小 利于减轻对高级语言编译的负担利于减轻对高级语言编译的负担 支持子程序嵌套、递归调用支持子程序嵌套、递归调用 省去大量地址码字段,省空间省去大量地址码字段,省空间 运算速度运算速度:堆栈型:堆栈型通用寄存器型通用寄存器型 堆栈访存次数过多堆栈访存次数过多 面向寄存器方式支持向量、矩阵面向寄存器方式支持向量、矩阵 一般在系统中三类寻址方式都应当采用一般在系统中三类寻址方式都应当采用3. 3. 比较:比较:l 寻址方式分析寻址方式分析多种寻址方式可以显著减少程序的指令条数,多种寻址方式可以显著减
54、少程序的指令条数,但这同时也可能增加实现的复杂度和使用这些但这同时也可能增加实现的复杂度和使用这些寻址方式的指令的执行时钟周期数寻址方式的指令的执行时钟周期数(CPI)(CPI),故,故需对多种寻址方式进行分析需对多种寻址方式进行分析2.3.2 2.3.2 程序定位技术程序定位技术l逻辑地址:程序员编写程序时使用的地址逻辑地址:程序员编写程序时使用的地址l物理地址:程序在主存中的实际地址物理地址:程序在主存中的实际地址l一般来讲,逻辑地址的空间大于物理地址的空一般来讲,逻辑地址的空间大于物理地址的空间。因此,映射实际上是压缩。间。因此,映射实际上是压缩。l程序定位技术程序定位技术直接定位直接定
55、位:程序装入前,编译时就已确定了:程序装入前,编译时就已确定了程序中的指令和数据的主存物理地址程序中的指令和数据的主存物理地址静态再定位静态再定位:程序装入时,由定位装入程序:程序装入时,由定位装入程序把程序的逻辑地址变换成物理地址,而在程把程序的逻辑地址变换成物理地址,而在程序的执行过程中,物理地址不再改变。序的执行过程中,物理地址不再改变。动态再定位动态再定位:在执行每条指令时才形成访存:在执行每条指令时才形成访存物理地址的方法。通过基址寻址来实现物理地址的方法。通过基址寻址来实现基址寄存器内存逻辑地址用户程序优点:优点:l 提高了主存利用率提高了主存利用率l主存中的同一个程序段可为多个程
56、序共享主存中的同一个程序段可为多个程序共享l支持虚拟存储器支持虚拟存储器问题:问题:l需要硬件支持,虚拟存储器的软件管理算法也需要硬件支持,虚拟存储器的软件管理算法也较复杂较复杂2.3.3 指令格式的优化设计l指令指令 = = 操作码操作码 + + 地址码地址码l指令格式的优化:如何用最短的位数来表示指令指令格式的优化:如何用最短的位数来表示指令的操作信息和地址信息,使程序中指令的平均字的操作信息和地址信息,使程序中指令的平均字长最短长最短l主要目标主要目标节省程序的存储空间节省程序的存储空间指令格式尽量规整,便于译码指令格式尽量规整,便于译码1. 操作码的优化设计l操作码主要包括两部分内容操
57、作码主要包括两部分内容操作种类:加减乘除、数据传送、移位、转移、操作种类:加减乘除、数据传送、移位、转移、I/OI/O操作数描述:操作数描述:l数据类型:定点、浮点、字符(串)、逻辑数、数据类型:定点、浮点、字符(串)、逻辑数、向量向量l进位制:进位制:2 2、1010、1616进制进制l数据字长:字、半字、双字、字节数据字长:字、半字、双字、字节l地址码通常包括三部分内容地址码通常包括三部分内容地址地址: : 直接、间接地址、立即数、寄存器编号、直接、间接地址、立即数、寄存器编号、变址寄存器编号变址寄存器编号地址的附加信息地址的附加信息: : 偏移量、块长度、间距偏移量、块长度、间距寻址方式
58、寻址方式: : 直接、间接、立即数、变址、相对寄直接、间接、立即数、变址、相对寄存器寻址存器寻址l操作码的三种编码方法操作码的三种编码方法固定长度固定长度: : 规整性好规整性好, , 解码简单解码简单, , 占用占用空间大空间大HuffmanHuffman编码编码: : 空间小空间小, , 规整性不好规整性不好, , 解码复杂解码复杂扩展编码扩展编码: : 折衷方案折衷方案l哈夫曼哈夫曼(Huffman)(Huffman)压缩概念压缩概念当各种事件发生的概率不均等时当各种事件发生的概率不均等时, , 采用优化技术采用优化技术对发生对发生概率较高概率较高的事件用的事件用较短较短的位数的位数(
59、(时间时间) )来表来表示示( (处理处理), ), 而对出现概率较低的允许用较长的位而对出现概率较低的允许用较长的位数数( (时间时间) )来表示来表示( (处理处理), ), 以达到平均位数以达到平均位数最最少的少的目的目的用于代码压缩、程序压缩、空间压缩和时间压缩用于代码压缩、程序压缩、空间压缩和时间压缩l操作码的优化表示操作码的优化表示信息源熵信息源熵:信息源包含的平均信息量:信息源包含的平均信息量操作码的优化表示就是要使信息冗余量操作码的优化表示就是要使信息冗余量R最小最小niiippH12logH即为操作码可以达到的最短平均码长即为操作码可以达到的最短平均码长lHlHlR1信息冗余
60、量信息冗余量niiipll1实际编码的操作码码长为:实际编码的操作码码长为:例例1.1.七条指令,频度如下七条指令,频度如下 I1 I2 I3 I4 I5 I6 I7 I1 I2 I3 I4 I5 I6 I7 0.4 0.3 0.15 0.05 0.04 0.03 0.03 0.4 0.3 0.15 0.05 0.04 0.03 0.03信息源熵信息源熵 H=2.17=2.17信息冗余量信息冗余量R=(3-2.17)/3=0.28=28% (1 1)等长编码)等长编码 可用可用000000110110来分别表示来分别表示7 7种不同的指令种不同的指令 I1: 000I1: 000 I2: 00
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 购物中心企业县域市场拓展与下沉战略研究报告
- 内燃机等原动机批发企业ESG实践与创新战略研究报告
- 女士外套批发企业数字化转型与智慧升级战略研究报告
- 鸡蛋批发企业数字化转型与智慧升级战略研究报告
- 电工仪器仪表批发企业数字化转型与智慧升级战略研究报告
- 印花手帕企业ESG实践与创新战略研究报告
- 工艺图钉企业县域市场拓展与下沉战略研究报告
- 袋装醋企业县域市场拓展与下沉战略研究报告
- 啤酒专门零售企业ESG实践与创新战略研究报告
- 动物挂件企业数字化转型与智慧升级战略研究报告
- 高空作业事故安全经验分享
- 劳动用工协议书范本正规范本(通用版)1
- JCT640-2010 顶进施工法用钢筋混凝土排水管
- 英纳能特种防护材料珠海产研生态基地建设项目(一期)环境影响报告表
- 小班安全《安安全全玩滑梯》
- 形式发票与商业发票的区别
- 人工智能在软件缺陷预测中的应用
- 03D501-1 防雷与接地安装
- IPQC入职岗位培训
- 牛津自然拼读
- 京东集团员工手册-京东
评论
0/150
提交评论