【教学课件】第二章数据表示与指令系统.ppt
《【教学课件】第二章数据表示与指令系统.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第二章数据表示与指令系统.ppt(165页珍藏版)》请在三一办公上搜索。
1、第二章 数据表示与指令系统,2.1 数据表示2.2 浮点数据表示2.3 高级数据表示2.4 指令系统的优化设计2.5 指令系统设计的两种风格,2.1 数据表示,2.1.1 数据类型、数据表示与数据结构,整数、实数、布尔数、二进制位、字符、串、图、表、树、阵列、队列、链表、栈、向量等。,数据类型定义了具有相同属性一组值的集合,还定义了这个集合上的操作集。,基本数据类型:二进制位、整数、十进制数、浮点数、字符、布尔数等。,结构数据类型:由一组相互有关的数据元素复合而成的数据类型数组、字符串、向量、堆栈、队列、记录、树等,计算机体系结构所要研究的一个内容是:在所有这些数据类型中,哪些用硬件实现,哪些
2、用软件实现,并研究它们的实现方法。,所有系统结构都支持基本数据类型,大多数系统结构只能部分地支持结构数据类型,数据表示:机器硬件能直接识别,并可以被指令调用的数据类型,由硬件实现的数据类型。,数据结构:结构数据类型的组织方式。研究数据类型的逻辑结构和物理结构之间的关系并给出算法,面向系统软件、面向应用领域所需处理的数据类型。由软件实现的数据类型。,确定哪些数据类型用数据表示实现,哪些数据类型用数据结构实现,是软硬件的主要分界面之一,本质上是一个软硬取舍问题。,缩短程序的运行时间占用存储空间少减少CPU和主存的通信量通用性和利用率,确定哪些数据类型用数据表示实现的原则:,例:实现A=A+B,A和
3、B都是200200 的矩阵。标量机:6条指令,其中4条循环指令要执行200*200=40000次;因此CPU与主存之间的通信量为:取指令 2440000条;读或写数据 340000个;共要访问主存 740000次以上。,通用性不好,向量机:向量指令:1条指令,减少取指令操作4*40000=160000次,程序执行时间缩短了一半。,对复杂的树数据结构的支持较好,高效;但对向量、数组、链表等其他数据结构支持不够,低效。,举例1:引入树型数据表示,可高效地对向量、数组、链表、树等多种数据结构提供支持。,举例2:引入指针数据表示,通用性好,当选择产生冲突时,根据性能/价格衡量,从减少CPU和主存的通信
4、量及缩短执行时间两方面看,对于处理矩阵运算,向量数据表示优越性要高。,实际系统设计,系统结构设计的任务:确定哪些数据类型用硬件即数据表示实现,哪些数据类型用软件实现,即数据结构,哪些数据类型由软件和硬件共同来实现。,复杂的数据类型一般通过数据结构或通过软硬件联合设计实现(如table、graph、record、tree等),简单的、常用的、通用的数据类型采用数据表示(如int、float、stack等);,数据表示是数据结构的一个子集,数据结构通过 一定的算法变成数据表示才能在系统中处理;数据表示是软、硬件界面的一部分;数据结构是软件和应用的一部分。,数据结构与数据表示的关系,数据表示的确定实
5、质上是软硬件的取舍问题,1.浮点数据表示的提出,早期的计算机系统只有定点数据表示优点:硬件结构简单缺点:编程困难:先确定小数点位置,小数点对齐再运算表示数的范围小:如16位字长表示的整数范围为:-3276832767数据存储单元的利用率很低(大量的前置0),2.1.2 浮点数据表示,2.浮点数据表示的特点,计算机中的浮点数来源于数学中的实数,但两者有很多本质的区别:实数:表示范围无限,表示精度连续。浮点数:表示范围有限,表示精度不连续。,三大特点:表数范围、表数精度和表数效率关键问题:在数据字长确定的情况下,找到具有最大表数范围、最高表数精度和最大表数效率的浮点数表示方式。,3.浮点数据的表示
6、方式,浮点数的一般格式:对任意浮点数N,可表示为:,其中:,m:尾数,多采用规格化小数表示e:阶码的值,一般采用整数、移码表示rm:尾数的基,一般采用二进制、十六进制re:阶码的基,一般采用二进制p:尾数长度(不包括符号位),当rm 16时,每四个二进制位表示一位尾数q:阶码长度(不包括阶码的符号),浮点数的表示需要六个基本参数:尾数m、阶码e的值;尾数的基rm、阶码的基re、尾数长度p(不包括符号位)、阶码长度q(不包括符号位),一种浮点数的表示方式如下:,在浮点表示方式中尾数采用规格化小数的目的是为了在尾数中表示最多的有效数据位及数据表示的惟一性。0.00345 0.34510-2,尾数规
7、格化,数符,阶符,(1)表数范围:在尾数采用原码p位、纯小数,阶码q位采用移码的浮点数表示方式中,规格化浮点数N的表数范围如下:,最大正数:最小正数:最大负数:最小负数:表数范围:,例如:尾数用原码,纯小数表示,阶码用移码整数表示,当p=23,q=7,rm=re=2时,规格化数N在正数区间的表数范围是:,在负数区间的表数范围是:,表示数的个数是:,规格化浮点数的个数应是可表示的阶码的个数与可表示的尾数的个数的乘积。,现以阶码为q=2,尾数p=4,正阶、正尾数为例,比较rm=2和rm=16时的不同情况。,在尾数基值rm 2(二进制),p=4(即尾数bit3bit0,共4位)、做规格化表示(即此时
8、bit3=1)的正阶、正尾的数的范围:,在阶码相同的前提下,尾数采用不同基值时,表示的浮点数大小及个数均不相同。,可表示的最大正浮点数为,可表示规格化的最小正浮点数为,可表示的正阶、正尾规格化数的个数为,最大尾数为,最小阶码为,最大阶码为,阶码的个数为,最小尾数为,尾数的个数为,在尾数基值rm 16(十六进制)q2,p=4(尾数bit3bit0,4位二进制组成一个十六进制数),做规格化表示(即此时bit3bit0 中必须有1位为“1”,不许出现全“0”,bit3bit0 为00011111)的正阶、正尾的数的范围:,最小尾数为,最大尾数为,最小阶码为,最大阶码为,阶码的个数为,可表示的最小正浮
9、点数为,尾数的个数为,可表示的正阶、正尾规格化数的个数为,从上述例子,可得到下列两个结论:(1)当有相同阶码与尾数位数时,rm大,则表示数的范围也大,表示数的个数增多。rm只能取2,4,8,16,。一般使用2,8,16三种。,rm=2时,其个数是32。,可表示的最大正浮点数为,而rm=2时,其最大数是15/2。,(2)rm大时,虽然表示数的范围大,表示数的个数增加,但在数值的分布较稀疏。例如在数轴1/2-2之间,当rm 2时,有数15个;而当rm 16时,有数8个。,原因有两点:一是因为采用规格化表示的缘故。如上例中rm 2时,规格化后,其尾数个数只为原来的1/2;二是因为在同长度阶码时,rm
10、不同,每次小数点移动位置不同,如上例中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】某计算机的浮点数采用1位符号位、6位阶码和9位尾数,基数为16,求规格化时它能表示数值的个数。,解:此浮点数共有16位,阶码为q=5,尾数位数p=9,re=2和rm=16。尾数用原码表示,阶码采用移码。,【例1】某计算机的浮点数采用1位符号位、7位阶码(移码)和
11、8位尾数(原码规格化),基数为2,数据1在这种浮点格式中的表示为,这种浮点表示的大于1的最小数是。,解:此浮点数共有16位,格式如下:10.1211:0 1000001,100000001最小数:0 1000001,10000001,规格化表示的最小尾数,最小正尾数为:0.100000000,可表示的正规格化浮点数的个数为,可表示的负阶、正尾规格化数的个数为,可表示的正、负规格化浮点数的个数为,从上面的分析可以看到,规格化浮点数的表数范围主要与阶码的长度q和rm尾数基值有关,这时,能表示的绝对值最大的浮点数可近似为:,表数范围随着q和rm的增大而扩大。当有相同阶码与尾数位数时,rm大,则表示数
12、的范围大。但rm大时,在数轴上的分布较稀疏。,当浮点数的尾数长度相同时,尾基为2时具有最高的表数精度。,(2)浮点数的表数精度,表数精度也称为表数误差,浮点数存在表数精度的根本原因是由于浮点数的不连续性造成的。浮点数表示的仅仅是实数的一个子集。,规格化浮点数的表数精度主要与尾数基值和尾数长度有关,一般认为尾数最后1位值的一半定义为表数精度,在尾数基值rm 16(十六进制)re 2,尾数4位(4位二进制组成一个十六进制数)、q=2时做规格化表示的最大正数、正规格化数的个数及一个数量单位的大小:,rm 2,正规格化尾数的个数8个,最大正数为(124)22,一个数量单位=(24)221/4,当表示的
13、浮点数有相同的位数、尾数时,rm=2,有最大的表数精度。,rm 16,正规格化尾数的个数15个,最大正数为(1161)162,一个数量单位=(1/16)16216,尾数基值rm2与rm16相比,显然基值越大浮点数的表数效率高。,(3)浮点数的表数效率,浮点数的表数效率定义为,浮点数的表数范围、表数精度和表数效率三个主要特征都与尾数基值rm有关。,(4)浮点数尾数基值的选择,rm 2,表数效率只有50%,为了提高表数效率,许多计算机采用了隐藏位表示法,此时表数效率100%;,当浮点数字长确定后,rm取2,具有最大的表数范围、表数效率和最高的表数精度。,但rm 4时,就不能采用隐藏位表数法,因为尾
14、数可以从00、01、10、11中取值,,IBM370系列机、IBM4300系列机等浮点数的尾数是16;Burroughs公司的B6700,B7700等大型计算机,浮点数尾数的基值是8;DEC公司的VAX-11、CDC公司CDC6600等大型机以及Intel公司的X86系列机等的浮点数均采用尾数基值为2。,应用情况:,浮点数加法中的对阶、规格化右移操作以及乘法中结果取单倍长度会把有效位移掉或截掉从而造成精度损失。,(5)浮点数的下溢处理,尾数下溢处理方式:,(1)截断。也称为不舍入法。简单地将下溢部分截去。在整数运算中最大会接近于1;误差大都是负误差。,(2)舍入法。被截尾数为1进1,运算中最大
15、误差小于一半。,(3)恒置1法。被截尾数无论是0是1,恒置1。最大误差比截断法大。,(4)ROM或PLA法。也称查表舍入法,平均误差接近于零。,2.2 高级数据表示,自定义数据表示(Self-defining)带标志符的数据表示数据描述符向量数据表示堆栈数据表示,内容:堆栈、向量、数组(队列)、记录、自定义等。,目的:支持数据结构,提高系统效率和性能/价格比。,注意点:,新数据表示引入的可行性(原则);新数据表示的必要条件(指令系统和硬件器件);新数据表示的存取方法(如稀疏向量表示)。,2.2.1 自定义数据表示,引入思想:减小高级语言和机器语言的语义差距,减轻编译软件的工作量(减少指令种类)
16、分类带标志符数据表示数据描述符,1.带标志符数据表示,定义:用以定义某个数据的数据类型和数值的数据表示。格式如下:,类型标志主要用于指明数据类型(如二进制整数、十进制整数等,也可用于指明机器内部所用信息的各种类型)。标志符由编译程序建立,对高级语言程序员来说是透明的。,优点:简化指令系统和程序设计简化了系统程序和编译程序的设计便于一致性校验能由硬件自动完成数据类型的变换支持数据库系统的实现与数据类型无关的要求为软件调试和应用软件开发提供支持缺点:硬件设计的复杂度增加(数据类型转换、一致性检验等)降低指令的执行速度必须用专门的指令完成标志符的初始化,引入可行性分析存储空间是否减少?,例2.2 设
17、处理机A的数据不带标志符,指令字长和数据字长都是32位,设处理机B的数据带3位标志符,使数据字长增至35位,但可使指令字长减少至30位。现有1个程序正在处理机A和B上运行的目标程序都有IC条指令,平均每条指令访问2个操作数,每个操作数重复访问R次。(1)分别计算程序在处理机A和B上占用的存储空间大小。(2)在什么条件下,程序在处理机B上占用的存储空间才小于在处理机A上占用的存储空间?,解(1)程序在处理机A上占用的存储空间,程序在处理机B上占用的存储空间,(2)为实现MBMA即有程序在处理机A上占用的存储空间,由此可得R3,即当操作数平均重复访问次数R3,在带标志符的数据表示的处理机上运行的程
18、序占用的存储空间会减小。,实现时间是否减少?取出数据后转换,必须推迟到运行时间进行专门的指令用于标志符初始化,增加了辅助开销指令执行过程中,对每个标志符进行逐个解释,并判断数据是否相容,因此单条指令的执行速度降低,但宏观执行时间减少宏观时间=设计时间+编译时间+调试时间,通用性和利用率这是一种理想的数据表示模式,通用性较好;只用一种存储器,利用率不高,采用指令和数据存储器后,利用率不会降低。,结论运行时间增加,存储空间减少。减小高级语言和机器语言的语义差距通用机中不使用,专用机(支持动态数据类型如LISP和PROLOG)中使用,2.数据描述符,目的:描述复杂和多维的结构类型,进一步减少标志符所
19、占的存贮空间。,举例:现以美国Burroughs公司的B6500,7500为例进行自定义数据表示的说明,格式如下:,描述符,1:不连续数据,0:连续数据,1:数据集中的一个,0:数据集的全体,只准读出的数据,00:数据描述符,写其他描述符,0:不在主存中,1:在主存中,0:单精度数据,1:双精度数据,优点:实现阵列数据的索引比变址方法实现的好,而且能检查程序设计中阵列越界错误为向量、数组数据结构的实现提供一定的支持,有利于简化编译中的代码生成引入可行性分析:同带标志符的数据表示描述符的工作过程如下图,3.两种自定义数据表示的区别,标志符是和每一个数据相连的,合存在一个存储单元中,描述单个数据的
20、类型特征。描述符是和数据分开存放的,专门用来描述所要访问的数据是整块数据还是单块数据,访问该数据块或数据元素所需要的地址以及其他特征信息等。,2.2.2 向量数据表示,向量表示向量通常是指由标量的一组有序集合表示的量,类似于一维数组标量通常只是一个整数或实数数组 A=(a0,a1,a2,an-1)可看成向量,向量在主存储器中的存放原则:规律性、地址计算简单、访存冲突小元素相邻存放元素等间距存放向量计算机-处理向量数据的计算机,举例:计算 ci=ai+bi,I=10,11,1000无向量数据表示(C语言):for(i=10;i=1000;i+)ci=ai+bi;向量数据表示:C(10:1000)
21、=A(10:1000)+B(10:1000),向量指令及包含的参数基地址、位移量、向量长度格式如下:,A,B,C:存放A,B,C的向量基址及长度,X,Y,Z:寄存器号,存放A,B,C的位移量,注:向量起始地址=基址+位移量 向量有效长度=向量长度-位移量 向量的数据地址起始地址位移量,a0,an-1,a10,举例:计算C(4:11)=A(4:11)+B(-4:3),向量起始地址=基址+位移量向量有效长度=向量长度-位移量,稀疏向量的压缩采用隐蔽位向量法(压缩向量)存取过程如图示:,描述符数据表示与向量数据表示对向量数据结构提供的支持有何不同?,在描述符数据表示的机器中,只能提供描述符寄存器和简
22、单的地址形成逻辑等硬件,虽能支持向量数据结构的运算,但运行速度较慢。在向量数据表示的机器中,有丰富的向量运算指令,有大量的向量寄存器和并行、高速流水运算部件的支持,可以实现向量运算的高速执行。,堆栈数据表示,通用寄存器型机器对堆栈数据结构支持较差,表现为:-堆栈指令少,功能单一;-堆栈置于存储器内,访问堆栈速度慢,以寄存器寻址方式指令为主通用寄存器型机器。高级语言机器:高级语言和机器语言合二为一,高级语言不用编译,直接由机器硬件解释执行。如LISP,PROLOG计算机等。,堆栈机器:具有堆栈数据表示的机器,以堆栈寻址方式指令为主。,有若干高速寄存器组成的硬件堆栈,并附加控制电路让它与主存中的堆
23、栈区在逻辑上组成一个整体,使堆栈的访问速度是寄存器的,堆栈的容量是主存的。,有很丰富的堆栈操作类指令且功能很强,直接可对堆栈中的数据进行各种运算和处理有力地支持高级语言程序的编译;逆波兰表达式如:F=A*B+C/(D-E)逆波兰表达式:AB*CDE-/+堆栈指令程序有力地支持子程序的嵌套和递归调用,数据表示小结:分类:基本数据表示 高级数据表示,标志符描述符,自定义数据表示向量数据表示堆栈数据表示,引入数据表示的原则:(1)系统效率高(2)通用性和利用率高,数据表示和数据结构的关系数据表示是数据结构的一个子集,面向硬件;数据结构是数据的组织方式,面向软件和应用由算法和软件实现两者的映射。,数据
24、结构和数据表示是软硬件的界面,结论:数据结构的发展总是优于机器的数据表示,系统结构设计者的任务:从优化设计的角度,确定软硬件的分界面,哪些数据类型用数据表示来实现,哪些数据类型用数据结构来实现,应能对新型的数据结构提供更多更好的支持。,2.3 寻址方式与指令格式的优化设计,寻址方式分析程序定位技术指令格式的优化设计,寻址方式:是指令按什么方式寻找(访问)到所 需的操作数或信息。指令所访问的数据 主存、寄存器、堆栈 寻址能力的要求 多样性、灵活性、寻址空间范围大小、地址变换速度 目标:以最短的位描述给定的寻址方式,2.3.1 寻址方式分析,设置寻址方式的目标,寻址方式在指令中的指明方式占用操作码
25、位:DJS200系列指令系统中8位操作码最高两位:间接(11)和直接(01)地址码设置寻址方式字段:VAX-11指令中源和目的各有4位寻址方式位字段,主存直接、间接、变址、基址、相对寻址 直接寻址使指令字变长 间接寻址使指令执行速度变慢 相对寻址用于条件转移指令中定位转向后代码的位置 变址寻址支持向量、数组,实现循环,用寄存器做变址器,地址码部分不会很长,访问数据速度相当于一次访问内存的速度 基址寻址支持逻辑地址到物理地址的变换,用于程序的动态再定位;,2.寻址方式,寄存器直接、间接寻址以寄存器寻址方式为主的计算机称为通用寄存器型计算机优点:-指令字长短-执行速度快-支持向量、矩阵运算缺点:-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第二 数据 表示 指令系统

链接地址:https://www.31ppt.com/p-5662012.html