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